mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 08:58:02 -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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class ByteArrayTag implements NBTTag {
|
public class ByteArrayTag extends NBTTag {
|
||||||
final byte[] value;
|
final byte[] value;
|
||||||
|
|
||||||
public ByteArrayTag(byte[] value) {
|
public ByteArrayTag(byte[] 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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class ByteTag implements NBTTag {
|
public class ByteTag extends NBTTag {
|
||||||
final byte value;
|
final byte value;
|
||||||
|
|
||||||
public ByteTag(byte value) {
|
public ByteTag(byte value) {
|
||||||
|
@ -21,7 +21,7 @@ import java.util.HashMap;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
|
||||||
public class CompoundTag implements NBTTag {
|
public class CompoundTag extends NBTTag {
|
||||||
final String name;
|
final String name;
|
||||||
final HashMap<String, NBTTag> data;
|
final HashMap<String, NBTTag> data;
|
||||||
|
|
||||||
@ -135,6 +135,9 @@ public class CompoundTag implements NBTTag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void writeTag(String name, NBTTag tag) {
|
public void writeTag(String name, NBTTag tag) {
|
||||||
|
if (isFinal) {
|
||||||
|
throw new IllegalArgumentException("This tag is marked as final!");
|
||||||
|
}
|
||||||
data.put(name, tag);
|
data.put(name, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,6 +148,9 @@ public class CompoundTag implements NBTTag {
|
|||||||
// abstract functions
|
// abstract functions
|
||||||
|
|
||||||
public void writeBlockPosition(BlockPosition position) {
|
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("x", new IntTag(position.getX()));
|
||||||
data.put("y", new IntTag(position.getY()));
|
data.put("y", new IntTag(position.getY()));
|
||||||
data.put("z", new IntTag(position.getZ()));
|
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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class DoubleTag implements NBTTag {
|
public class DoubleTag extends NBTTag {
|
||||||
final double value;
|
final double value;
|
||||||
|
|
||||||
public DoubleTag(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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class FloatTag implements NBTTag {
|
public class FloatTag extends NBTTag {
|
||||||
final float value;
|
final float value;
|
||||||
|
|
||||||
public FloatTag(float value) {
|
public FloatTag(float value) {
|
||||||
|
@ -18,7 +18,7 @@ import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
|||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class IntArrayTag implements NBTTag {
|
public class IntArrayTag extends NBTTag {
|
||||||
final int[] value;
|
final int[] value;
|
||||||
|
|
||||||
public IntArrayTag(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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class IntTag implements NBTTag {
|
public class IntTag extends NBTTag {
|
||||||
final int value;
|
final int value;
|
||||||
|
|
||||||
public IntTag(int value) {
|
public IntTag(int value) {
|
||||||
|
@ -19,7 +19,7 @@ import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class ListTag implements NBTTag {
|
public class ListTag extends NBTTag {
|
||||||
final TagTypes type;
|
final TagTypes type;
|
||||||
final ArrayList<NBTTag> list;
|
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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class LongArrayTag implements NBTTag {
|
public class LongArrayTag extends NBTTag {
|
||||||
final long[] value;
|
final long[] value;
|
||||||
|
|
||||||
public LongArrayTag(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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class LongTag implements NBTTag {
|
public class LongTag extends NBTTag {
|
||||||
final long value;
|
final long value;
|
||||||
|
|
||||||
public LongTag(long value) {
|
public LongTag(long value) {
|
||||||
|
@ -15,10 +15,18 @@ package de.bixilon.minosoft.util.nbt.tag;
|
|||||||
|
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public interface NBTTag {
|
public abstract class NBTTag {
|
||||||
TagTypes getType();
|
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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class ShortTag implements NBTTag {
|
public class ShortTag extends NBTTag {
|
||||||
final short value;
|
final short value;
|
||||||
|
|
||||||
public ShortTag(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.InByteBuffer;
|
||||||
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
import de.bixilon.minosoft.protocol.protocol.OutByteBuffer;
|
||||||
|
|
||||||
public class StringTag implements NBTTag {
|
public class StringTag extends NBTTag {
|
||||||
final String value;
|
final String value;
|
||||||
|
|
||||||
public StringTag(String value) {
|
public StringTag(String value) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user