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