NBT tags
This commit is contained in:
43
src/main/java/mc/nbt/TypeTag.java
Normal file
43
src/main/java/mc/nbt/TypeTag.java
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
package mc.nbt;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import mc.nbt.tag.*;
|
||||||
|
|
||||||
|
@Slf4j
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Getter
|
||||||
|
public enum TypeTag {
|
||||||
|
END(0, TagEnd.class),
|
||||||
|
BYTE(1, TagByte.class),
|
||||||
|
SHORT(2,TagShort.class),
|
||||||
|
INT(3, TagInt.class),
|
||||||
|
LONG(4, TagLong.class),
|
||||||
|
FLOAT(5, TagFloat.class),
|
||||||
|
DOUBLE(6, TagDouble.class),
|
||||||
|
BYTE_ARRAY(7, TagByteArray.class),
|
||||||
|
STRING(8, TagString.class),
|
||||||
|
LIST(9, TagList.class),
|
||||||
|
COMPOUND(10, TagCompound.class),
|
||||||
|
INT_ARRAY(11, TagIntArray.class),
|
||||||
|
LONG_ARRAY(12, TagLongArray.class);
|
||||||
|
|
||||||
|
public static Tag getTagById(int id) {
|
||||||
|
for (TypeTag type : TypeTag.values()) {
|
||||||
|
if (type.id == id) {
|
||||||
|
try {
|
||||||
|
return type.classTag.newInstance();
|
||||||
|
} catch (InstantiationException | IllegalAccessException e) {
|
||||||
|
log.error("{}", e.getMessage(), e);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private final int id;
|
||||||
|
private final Class<? extends Tag> classTag;
|
||||||
|
}
|
||||||
15
src/main/java/mc/nbt/tag/Tag.java
Normal file
15
src/main/java/mc/nbt/tag/Tag.java
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public abstract class Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public abstract TypeTag getType();
|
||||||
|
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagByte.java
Normal file
17
src/main/java/mc/nbt/tag/TagByte.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagByte extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private byte value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.BYTE;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagByteArray.java
Normal file
17
src/main/java/mc/nbt/tag/TagByteArray.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagByteArray extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private byte[] value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.BYTE_ARRAY;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/main/java/mc/nbt/tag/TagCompound.java
Normal file
19
src/main/java/mc/nbt/tag/TagCompound.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class TagCompound extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private List<Tag> value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.COMPOUND;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagDouble.java
Normal file
17
src/main/java/mc/nbt/tag/TagDouble.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagDouble extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private double value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.DOUBLE;
|
||||||
|
}
|
||||||
|
}
|
||||||
21
src/main/java/mc/nbt/tag/TagEnd.java
Normal file
21
src/main/java/mc/nbt/tag/TagEnd.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagEnd extends Tag {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setName(String name) {
|
||||||
|
throw new UnsupportedOperationException();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.END;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagFloat.java
Normal file
17
src/main/java/mc/nbt/tag/TagFloat.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagFloat extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private float value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.FLOAT;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagInt.java
Normal file
17
src/main/java/mc/nbt/tag/TagInt.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagInt extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.INT;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagIntArray.java
Normal file
17
src/main/java/mc/nbt/tag/TagIntArray.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagIntArray extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private int[] value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.INT_ARRAY;
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/main/java/mc/nbt/tag/TagList.java
Normal file
19
src/main/java/mc/nbt/tag/TagList.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class TagList extends Tag {
|
||||||
|
|
||||||
|
private List<Tag> value; //FIXME
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.LIST;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagLong.java
Normal file
17
src/main/java/mc/nbt/tag/TagLong.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagLong extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private long value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.LONG;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagLongArray.java
Normal file
17
src/main/java/mc/nbt/tag/TagLongArray.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagLongArray extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private long[] value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.LONG_ARRAY;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagShort.java
Normal file
17
src/main/java/mc/nbt/tag/TagShort.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagShort extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private short value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.SHORT;
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/main/java/mc/nbt/tag/TagString.java
Normal file
17
src/main/java/mc/nbt/tag/TagString.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package mc.nbt.tag;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import mc.nbt.TypeTag;
|
||||||
|
|
||||||
|
public class TagString extends Tag {
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TypeTag getType() {
|
||||||
|
return TypeTag.STRING;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user