mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 00:47:26 -04:00
nbt: final ability
This commit is contained in:
parent
b759512800
commit
53e5dce736
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class ByteArrayTag implements NBTTag {
|
||||
public class ByteArrayTag extends NBTTag {
|
||||
final byte[] value;
|
||||
|
||||
public ByteArrayTag(byte[] value) {
|
||||
@ -57,4 +57,4 @@ public class ByteArrayTag implements NBTTag {
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
}
|
||||
}
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class ByteTag implements NBTTag {
|
||||
public class ByteTag extends NBTTag {
|
||||
final byte value;
|
||||
|
||||
public ByteTag(byte value) {
|
||||
|
@ -21,7 +21,7 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class CompoundTag implements NBTTag {
|
||||
public class CompoundTag extends NBTTag {
|
||||
final String name;
|
||||
final HashMap<String, NBTTag> data;
|
||||
|
||||
@ -135,6 +135,9 @@ public class CompoundTag implements NBTTag {
|
||||
}
|
||||
|
||||
public void writeTag(String name, NBTTag tag) {
|
||||
if (isFinal) {
|
||||
throw new IllegalArgumentException("This tag is marked as final!");
|
||||
}
|
||||
data.put(name, tag);
|
||||
}
|
||||
|
||||
@ -145,6 +148,9 @@ public class CompoundTag implements NBTTag {
|
||||
// abstract functions
|
||||
|
||||
public void writeBlockPosition(BlockPosition position) {
|
||||
if (isFinal) {
|
||||
throw new IllegalArgumentException("This tag is marked as final!");
|
||||
}
|
||||
data.put("x", new IntTag(position.getX()));
|
||||
data.put("y", new IntTag(position.getY()));
|
||||
data.put("z", new IntTag(position.getZ()));
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class DoubleTag implements NBTTag {
|
||||
public class DoubleTag extends NBTTag {
|
||||
final double value;
|
||||
|
||||
public DoubleTag(double value) {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class FloatTag implements NBTTag {
|
||||
public class FloatTag extends NBTTag {
|
||||
final float value;
|
||||
|
||||
public FloatTag(float value) {
|
||||
|
@ -18,7 +18,7 @@ import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
public class IntArrayTag implements NBTTag {
|
||||
public class IntArrayTag extends NBTTag {
|
||||
final int[] value;
|
||||
|
||||
public IntArrayTag(int[] value) {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class IntTag implements NBTTag {
|
||||
public class IntTag extends NBTTag {
|
||||
final int value;
|
||||
|
||||
public IntTag(int value) {
|
||||
|
@ -19,7 +19,7 @@ import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class ListTag implements NBTTag {
|
||||
public class ListTag extends NBTTag {
|
||||
final TagTypes type;
|
||||
final ArrayList<NBTTag> list;
|
||||
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class LongArrayTag implements NBTTag {
|
||||
public class LongArrayTag extends NBTTag {
|
||||
final long[] value;
|
||||
|
||||
public LongArrayTag(long[] value) {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class LongTag implements NBTTag {
|
||||
public class LongTag extends NBTTag {
|
||||
final long value;
|
||||
|
||||
public LongTag(long value) {
|
||||
|
@ -15,10 +15,18 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public interface NBTTag {
|
||||
TagTypes getType();
|
||||
public abstract class NBTTag {
|
||||
boolean isFinal = false;
|
||||
|
||||
void writeBytes(OutByteBuffer buffer);
|
||||
abstract TagTypes getType();
|
||||
|
||||
String toString();
|
||||
abstract void writeBytes(OutByteBuffer buffer);
|
||||
|
||||
public boolean isFinal() {
|
||||
return isFinal;
|
||||
}
|
||||
|
||||
public void setFinal() {
|
||||
this.isFinal = true;
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class ShortTag implements NBTTag {
|
||||
public class ShortTag extends NBTTag {
|
||||
final short value;
|
||||
|
||||
public ShortTag(short value) {
|
||||
|
@ -16,7 +16,7 @@ package de.bixilon.minosoft.util.nbt.tag;
|
||||
import de.bixilon.minosoft.protocol.protocol.InByteBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||
|
||||
public class StringTag implements NBTTag {
|
||||
public class StringTag extends NBTTag {
|
||||
final String value;
|
||||
|
||||
public StringTag(String value) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user