nossr50 5 лет назад
Родитель
Сommit
25a9c75a5a

+ 23 - 11
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTByte.java

@@ -1,11 +1,12 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTByte implements NBTBase {
 
-    private String key;
-    private Byte value;
+    private byte value;
 
-    public NBTByte(Byte value) {
+    public NBTByte(byte value) {
         this.value = value;
     }
 
@@ -14,20 +15,31 @@ public class NBTByte implements NBTBase {
         return NBTType.BYTE;
     }
 
-    public String getKey() {
-        return key;
+    public byte getValue() {
+        return value;
     }
 
-    public void setKey(String key) {
-        this.key = key;
+    public void setValue(byte value) {
+        this.value = value;
     }
 
-    public Byte getValue() {
-        return value;
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTByte nbtByte = (NBTByte) o;
+        return value == nbtByte.value;
     }
 
-    public void setValue(Byte value) {
-        this.value = value;
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
     }
 
+    @Override
+    public String toString() {
+        return "NBTByte{" +
+                "value=" + value +
+                '}';
+    }
 }

+ 28 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTByteArray.java

@@ -1,10 +1,17 @@
 package com.gmail.nossr50.core.nbt;
 
+import org.checkerframework.checker.nullness.qual.NonNull;
+
+import java.util.Arrays;
+
 public class NBTByteArray implements NBTBase {
 
-    private String key;
     private byte[] values;
 
+    public NBTByteArray(byte[] values) {
+        this.values = values;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.BYTE_ARRAY;
@@ -14,14 +21,6 @@ public class NBTByteArray implements NBTBase {
         return values.length;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public byte[] getValues() {
         return values;
     }
@@ -29,4 +28,24 @@ public class NBTByteArray implements NBTBase {
     public void setValues(byte[] values) {
         this.values = values;
     }
+
+    @Override
+    public String toString() {
+        return "NBTByteArray{" +
+                "values=" + Arrays.toString(values) +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTByteArray that = (NBTByteArray) o;
+        return Arrays.equals(values, that.values);
+    }
+
+    @Override
+    public int hashCode() {
+        return Arrays.hashCode(values);
+    }
 }

+ 25 - 14
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTCompound.java

@@ -1,16 +1,15 @@
 package com.gmail.nossr50.core.nbt;
 
-import java.util.Collection;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.Set;
+import org.checkerframework.checker.nullness.qual.NonNull;
+
+import java.util.*;
 
 public class NBTCompound implements NBTBase {
 
-    private String key;
+    @NonNull
     private Map<String, NBTBase> tagMap;
 
-    public NBTCompound(String key) {
+    public NBTCompound() {
         tagMap = new LinkedHashMap<>();
     }
 
@@ -23,14 +22,6 @@ public class NBTCompound implements NBTBase {
         return tagMap.get(key);
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public void addNBT(String tagKey, NBTBase nbt) {
         tagMap.put(tagKey, nbt);
     }
@@ -50,5 +41,25 @@ public class NBTCompound implements NBTBase {
     public void removeEntry(String tagKey) {
         tagMap.remove(tagKey);
     }
+
+    @Override
+    public String toString() {
+        return "NBTCompound{" +
+                "tagMap=" + tagMap +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTCompound that = (NBTCompound) o;
+        return tagMap.equals(that.tagMap);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(tagMap);
+    }
 }
 

+ 26 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTDouble.java

@@ -1,23 +1,20 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTDouble implements NBTBase {
 
-    private String key;
     private double value;
 
+    public NBTDouble(double value) {
+        this.value = value;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.DOUBLE;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public double getValue() {
         return value;
     }
@@ -25,4 +22,24 @@ public class NBTDouble implements NBTBase {
     public void setValue(double value) {
         this.value = value;
     }
+
+    @Override
+    public String toString() {
+        return "NBTDouble{" +
+                "value=" + value +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTDouble nbtDouble = (NBTDouble) o;
+        return Double.compare(nbtDouble.value, value) == 0;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
 }

+ 26 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTFloat.java

@@ -1,23 +1,20 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTFloat implements NBTBase {
 
-    private String key;
     private float value;
 
+    public NBTFloat(float value) {
+        this.value = value;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.FLOAT;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public float getValue() {
         return value;
     }
@@ -25,4 +22,24 @@ public class NBTFloat implements NBTBase {
     public void setValue(float value) {
         this.value = value;
     }
+
+    @Override
+    public String toString() {
+        return "NBTFloat{" +
+                "value=" + value +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTFloat nbtFloat = (NBTFloat) o;
+        return Float.compare(nbtFloat.value, value) == 0;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
 }

+ 26 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTInt.java

@@ -1,23 +1,20 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTInt implements NBTBase {
 
-    private String key;
     private int value;
 
+    public NBTInt(int value) {
+        this.value = value;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.INT;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public int getValue() {
         return value;
     }
@@ -25,4 +22,24 @@ public class NBTInt implements NBTBase {
     public void setValue(int value) {
         this.value = value;
     }
+
+    @Override
+    public String toString() {
+        return "NBTInt{" +
+                "value=" + value +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTInt nbtInt = (NBTInt) o;
+        return value == nbtInt.value;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
 }

+ 28 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTIntArray.java

@@ -1,10 +1,17 @@
 package com.gmail.nossr50.core.nbt;
 
+import org.checkerframework.checker.nullness.qual.NonNull;
+
+import java.util.Arrays;
+
 public class NBTIntArray implements NBTBase {
 
-    private String key;
     private int[] values;
 
+    public NBTIntArray(int[] values) {
+        this.values = values;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.INT_ARRAY;
@@ -14,14 +21,6 @@ public class NBTIntArray implements NBTBase {
         return values.length;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public int[] getValues() {
         return values;
     }
@@ -29,4 +28,24 @@ public class NBTIntArray implements NBTBase {
     public void setValues(int[] values) {
         this.values = values;
     }
+
+    @Override
+    public String toString() {
+        return "NBTIntArray{" +
+                "values=" + Arrays.toString(values) +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTIntArray that = (NBTIntArray) o;
+        return Arrays.equals(values, that.values);
+    }
+
+    @Override
+    public int hashCode() {
+        return Arrays.hashCode(values);
+    }
 }

+ 28 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTList.java

@@ -1,12 +1,19 @@
 package com.gmail.nossr50.core.nbt;
 
+import org.checkerframework.checker.nullness.qual.NonNull;
+
 import java.util.List;
+import java.util.Objects;
 
 public class NBTList implements NBTBase {
 
-    private String key;
+    @NonNull
     private List<? extends NBTBase> values;
 
+    public NBTList(@NonNull List<? extends NBTBase> values) {
+        this.values = values;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.LIST;
@@ -16,19 +23,31 @@ public class NBTList implements NBTBase {
         return values.size();
     }
 
-    public String getKey() {
-        return key;
+    public List<? extends NBTBase> getValues() {
+        return values;
     }
 
-    public void setKey(String key) {
-        this.key = key;
+    public void setValues(@NonNull List<? extends NBTBase> values) {
+        this.values = values;
     }
 
-    public List<? extends NBTBase> getValues() {
-        return values;
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTList nbtList = (NBTList) o;
+        return values.equals(nbtList.values);
     }
 
-    public void setValues(List<? extends NBTBase> values) {
-        this.values = values;
+    @Override
+    public int hashCode() {
+        return Objects.hash(values);
+    }
+
+    @Override
+    public String toString() {
+        return "NBTList{" +
+                "values=" + values +
+                '}';
     }
 }

+ 24 - 7
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTLong.java

@@ -1,16 +1,13 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTLong implements NBTBase {
 
-    private String key;
     private long value;
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
+    public NBTLong(long value) {
+        this.value = value;
     }
 
     public long getValue() {
@@ -25,4 +22,24 @@ public class NBTLong implements NBTBase {
     public NBTType getNBTType() {
         return NBTType.LONG;
     }
+
+    @Override
+    public String toString() {
+        return "NBTLong{" +
+                "value=" + value +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTLong nbtLong = (NBTLong) o;
+        return value == nbtLong.value;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
 }

+ 26 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTLongArray.java

@@ -1,10 +1,15 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Arrays;
+
 public class NBTLongArray implements NBTBase {
 
-    private String key;
     private long[] values;
 
+    public NBTLongArray(long[] values) {
+        this.values = values;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.LONG_ARRAY;
@@ -14,14 +19,6 @@ public class NBTLongArray implements NBTBase {
         return values.length;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public long[] getValues() {
         return values;
     }
@@ -29,4 +26,24 @@ public class NBTLongArray implements NBTBase {
     public void setValues(long[] values) {
         this.values = values;
     }
+
+    @Override
+    public String toString() {
+        return "NBTLongArray{" +
+                "values=" + Arrays.toString(values) +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTLongArray that = (NBTLongArray) o;
+        return Arrays.equals(values, that.values);
+    }
+
+    @Override
+    public int hashCode() {
+        return Arrays.hashCode(values);
+    }
 }

+ 26 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTShort.java

@@ -1,23 +1,20 @@
 package com.gmail.nossr50.core.nbt;
 
+import java.util.Objects;
+
 public class NBTShort implements NBTBase {
 
-    private String key;
     private short value;
 
+    public NBTShort(short value) {
+        this.value = value;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.SHORT;
     }
 
-    public String getKey() {
-        return key;
-    }
-
-    public void setKey(String key) {
-        this.key = key;
-    }
-
     public short getValue() {
         return value;
     }
@@ -25,4 +22,24 @@ public class NBTShort implements NBTBase {
     public void setValue(short value) {
         this.value = value;
     }
+
+    @Override
+    public String toString() {
+        return "NBTShort{" +
+                "value=" + value +
+                '}';
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTShort nbtShort = (NBTShort) o;
+        return value == nbtShort.value;
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
+    }
 }

+ 31 - 9
mcmmo-core/src/main/java/com/gmail/nossr50/core/nbt/NBTString.java

@@ -1,28 +1,50 @@
 package com.gmail.nossr50.core.nbt;
 
+import org.checkerframework.checker.nullness.qual.NonNull;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.Objects;
+
 public class NBTString implements NBTBase {
 
-    private String key;
+    @NonNull
     private String value;
 
+    public NBTString(@NonNull String value) {
+        this.value = value;
+    }
+
     @Override
     public NBTType getNBTType() {
         return NBTType.STRING;
     }
 
-    public String getKey() {
-        return key;
+    @NotNull
+    public String getValue() {
+        return value;
+    }
+
+    public void setValue(@NotNull String value) {
+        this.value = value;
     }
 
-    public void setKey(String key) {
-        this.key = key;
+    @Override
+    public String toString() {
+        return "NBTString{" +
+                "value='" + value + '\'' +
+                '}';
     }
 
-    public String getValue() {
-        return value;
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        NBTString nbtString = (NBTString) o;
+        return value.equals(nbtString.value);
     }
 
-    public void setValue(String value) {
-        this.value = value;
+    @Override
+    public int hashCode() {
+        return Objects.hash(value);
     }
 }