From b15b783c2fe02293793510c9cb19dfe0314e4340 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 31 Dec 2023 15:26:59 +0100 Subject: [PATCH] Make Tag an interface, move packages --- LICENSE.txt | 2 +- README.md | 7 +- pom.xml | 13 ++-- .../steveice10/opennbt/tag/builtin/Tag.java | 67 ------------------- .../nbt}/conversion/ConversionException.java | 2 +- .../nbt}/conversion/ConverterRegistry.java | 54 +++++++-------- .../nbt}/conversion/TagConverter.java | 4 +- .../converter/ByteArrayTagConverter.java | 6 +- .../converter/ByteTagConverter.java | 6 +- .../converter/CompoundTagConverter.java | 10 +-- .../converter/DoubleTagConverter.java | 6 +- .../converter/FloatTagConverter.java | 6 +- .../converter/IntArrayTagConverter.java | 6 +- .../conversion/converter/IntTagConverter.java | 6 +- .../converter/ListTagConverter.java | 10 +-- .../converter/LongArrayTagConverter.java | 6 +- .../converter/LongTagConverter.java | 6 +- .../converter/ShortTagConverter.java | 6 +- .../converter/StringTagConverter.java | 6 +- .../tag => viaversion/nbt}/io/NBTIO.java | 7 +- .../tag => viaversion/nbt}/io/TagReader.java | 6 +- .../nbt/io}/TagRegistry.java | 30 ++++----- .../tag => viaversion/nbt}/io/TagWriter.java | 4 +- .../nbt}/limiter/NoopTagLimiter.java | 5 +- .../nbt}/limiter/TagLimiter.java | 2 +- .../nbt}/limiter/TagLimiterImpl.java | 2 +- .../nbt}/stringified/CharBuffer.java | 2 +- .../nbt}/stringified/SNBT.java | 6 +- .../StringifiedTagParseException.java | 2 +- .../nbt}/stringified/TagStringReader.java | 30 ++++----- .../nbt}/stringified/TagStringWriter.java | 30 ++++----- .../nbt}/stringified/Tokens.java | 2 +- .../nbt/tag}/ByteArrayTag.java | 16 +++-- .../nbt/tag}/ByteTag.java | 38 +++-------- .../nbt/tag}/CompoundTag.java | 29 ++++---- .../nbt/tag}/DoubleTag.java | 38 +++-------- .../nbt/tag}/FloatTag.java | 38 +++-------- .../nbt/tag}/IntArrayTag.java | 18 +++-- .../nbt/tag}/IntTag.java | 30 +++------ .../nbt/tag}/ListTag.java | 14 ++-- .../nbt/tag}/LongArrayTag.java | 16 +++-- .../nbt/tag}/LongTag.java | 38 +++-------- .../nbt/tag}/NumberArrayTag.java | 11 +-- .../nbt/tag}/NumberTag.java | 26 ++++--- .../nbt/tag}/ShortTag.java | 38 +++-------- .../nbt/tag}/StringTag.java | 12 +++- src/main/java/com/viaversion/nbt/tag/Tag.java | 45 +++++++++++++ 47 files changed, 348 insertions(+), 416 deletions(-) delete mode 100644 src/main/java/com/github/steveice10/opennbt/tag/builtin/Tag.java rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/ConversionException.java (91%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/ConverterRegistry.java (74%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/TagConverter.java (84%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/ByteArrayTagConverter.java (66%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/ByteTagConverter.java (64%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/CompoundTagConverter.java (73%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/DoubleTagConverter.java (65%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/FloatTagConverter.java (64%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/IntArrayTagConverter.java (65%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/IntTagConverter.java (64%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/ListTagConverter.java (70%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/LongArrayTagConverter.java (66%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/LongTagConverter.java (64%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/ShortTagConverter.java (64%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/conversion/converter/StringTagConverter.java (65%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/io/NBTIO.java (92%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/io/TagReader.java (94%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt/io}/TagRegistry.java (84%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/io/TagWriter.java (95%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/limiter/NoopTagLimiter.java (87%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/limiter/TagLimiter.java (97%) rename src/main/java/com/{github/steveice10/opennbt/tag => viaversion/nbt}/limiter/TagLimiterImpl.java (95%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/CharBuffer.java (98%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/SNBT.java (90%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/StringifiedTagParseException.java (97%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/TagStringReader.java (94%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/TagStringWriter.java (90%) rename src/main/java/com/{github/steveice10/opennbt => viaversion/nbt}/stringified/Tokens.java (98%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/ByteArrayTag.java (88%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/ByteTag.java (75%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/CompoundTag.java (95%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/DoubleTag.java (74%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/FloatTag.java (74%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/IntArrayTag.java (87%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/IntTag.java (78%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/ListTag.java (95%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/LongArrayTag.java (89%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/LongTag.java (74%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/NumberArrayTag.java (50%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/NumberTag.java (74%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/ShortTag.java (74%) rename src/main/java/com/{github/steveice10/opennbt/tag/builtin => viaversion/nbt/tag}/StringTag.java (87%) create mode 100644 src/main/java/com/viaversion/nbt/tag/Tag.java diff --git a/LICENSE.txt b/LICENSE.txt index 7df4b4c..79f1e1b 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,5 +1,5 @@ Copyright (C) 2013-2017 Steveice10 -Copyright (C) 2021-2023 ViaVersion and contributors +Copyright (C) 2021-2024 ViaVersion and contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/README.md b/README.md index d7acfc5..9227e7f 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,12 @@ This project is derived from an earlier version of [OpenNBT](https://github.com/ * `SNBT` for string serialization * Add primitive getter methods to number types * Don't wrap values given in Tag#setValue / Tag constructors -* Abstract NumberTag class for easier number handling +* NumberTag and NumberArrayTag interfaces for easier number handling * Don't use reflection when creating tag instances * Directly use value in copy(), also replacing clone() * Implement tag specific equals() methods * Update to Java 8 +* A bunch of other small improvements and fixes This project also includes code from [adventure](https://github.com/KyoriPowered/adventure) used for SNBT serialization. @@ -31,7 +32,7 @@ This project also includes code from [adventure](https://github.com/KyoriPowered com.viaversion nbt - 4.0.0 + 5.0.0 ``` @@ -43,7 +44,7 @@ repositories { } dependencies { - implementation("com.viaversion:nbt:4.0.0") + implementation("com.viaversion:nbt:5.0.0") } ``` diff --git a/pom.xml b/pom.xml index a25d951..50a5c86 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ com.viaversion nbt - 4.4.5 + 5.0.0-SNAPSHOT jar ViaNBT @@ -48,21 +48,20 @@ GitHub - https://github.com/ViaVersion/OpenNBT/issues + https://github.com/ViaVersion/ViaNBT/issues - it.unimi.dsi fastutil 8.5.2 - provided + compile org.jetbrains annotations - 24.0.1 + 24.1.0 provided @@ -73,7 +72,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.6.0 + 3.6.3 attach-javadocs @@ -91,7 +90,7 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.1 attach-sources diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/Tag.java b/src/main/java/com/github/steveice10/opennbt/tag/builtin/Tag.java deleted file mode 100644 index 80c9ecb..0000000 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/Tag.java +++ /dev/null @@ -1,67 +0,0 @@ -package com.github.steveice10.opennbt.tag.builtin; - -import com.github.steveice10.opennbt.stringified.SNBT; -import java.io.DataOutput; -import java.io.IOException; - -/** - * Represents an NBT tag. - *

- * Tags should also have setter methods specific to their value types. - */ -public abstract class Tag { - - /** - * Returns the value of this tag. - * - * @return value of this tag - */ - public abstract Object getValue(); - - /** - * Returns the raw string representation of the value of this tag. - * For SNBT, use {@link SNBT#serialize(Tag)}. - * - * @return raw string representation of the value of this tag - */ - public abstract String asRawString(); - - /** - * Returns the unchecked value of this tag. - *

- * The generic of this method might be removed in a later version - * - * @param expected type - * @return unchecked value of this tag - */ - public T value() { - return (T) getValue(); - } - - /** - * Writes this tag to an output stream. - * - * @param out data output to write to - * @throws IOException if an I/O error occurs - */ - public abstract void write(DataOutput out) throws IOException; - - /** - * Returns the NBT tag id of this tag type, used in I/O. - * - * @return ID of the tag this class represents - */ - public abstract int getTagId(); - - /** - * Returns a copy of this tag. - * - * @return a copy of this tag - */ - public abstract Tag copy(); - - @Override - public String toString() { - return SNBT.serialize(this); - } -} diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/ConversionException.java b/src/main/java/com/viaversion/nbt/conversion/ConversionException.java similarity index 91% rename from src/main/java/com/github/steveice10/opennbt/conversion/ConversionException.java rename to src/main/java/com/viaversion/nbt/conversion/ConversionException.java index 12423d9..5a86af3 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/ConversionException.java +++ b/src/main/java/com/viaversion/nbt/conversion/ConversionException.java @@ -1,4 +1,4 @@ -package com.github.steveice10.opennbt.conversion; +package com.viaversion.nbt.conversion; /** * An exception thrown when an error occurs while converting something. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/ConverterRegistry.java b/src/main/java/com/viaversion/nbt/conversion/ConverterRegistry.java similarity index 74% rename from src/main/java/com/github/steveice10/opennbt/conversion/ConverterRegistry.java rename to src/main/java/com/viaversion/nbt/conversion/ConverterRegistry.java index 5b40544..34d83d6 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/ConverterRegistry.java +++ b/src/main/java/com/viaversion/nbt/conversion/ConverterRegistry.java @@ -1,31 +1,31 @@ -package com.github.steveice10.opennbt.conversion; +package com.viaversion.nbt.conversion; -import com.github.steveice10.opennbt.conversion.converter.ByteArrayTagConverter; -import com.github.steveice10.opennbt.conversion.converter.ByteTagConverter; -import com.github.steveice10.opennbt.conversion.converter.CompoundTagConverter; -import com.github.steveice10.opennbt.conversion.converter.DoubleTagConverter; -import com.github.steveice10.opennbt.conversion.converter.FloatTagConverter; -import com.github.steveice10.opennbt.conversion.converter.IntArrayTagConverter; -import com.github.steveice10.opennbt.conversion.converter.IntTagConverter; -import com.github.steveice10.opennbt.conversion.converter.ListTagConverter; -import com.github.steveice10.opennbt.conversion.converter.LongArrayTagConverter; -import com.github.steveice10.opennbt.conversion.converter.LongTagConverter; -import com.github.steveice10.opennbt.conversion.converter.ShortTagConverter; -import com.github.steveice10.opennbt.conversion.converter.StringTagConverter; -import com.github.steveice10.opennbt.tag.TagRegistry; -import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; -import com.github.steveice10.opennbt.tag.builtin.ByteTag; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.DoubleTag; -import com.github.steveice10.opennbt.tag.builtin.FloatTag; -import com.github.steveice10.opennbt.tag.builtin.IntArrayTag; -import com.github.steveice10.opennbt.tag.builtin.IntTag; -import com.github.steveice10.opennbt.tag.builtin.ListTag; -import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; -import com.github.steveice10.opennbt.tag.builtin.LongTag; -import com.github.steveice10.opennbt.tag.builtin.ShortTag; -import com.github.steveice10.opennbt.tag.builtin.StringTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.conversion.converter.ByteArrayTagConverter; +import com.viaversion.nbt.conversion.converter.ByteTagConverter; +import com.viaversion.nbt.conversion.converter.CompoundTagConverter; +import com.viaversion.nbt.conversion.converter.DoubleTagConverter; +import com.viaversion.nbt.conversion.converter.FloatTagConverter; +import com.viaversion.nbt.conversion.converter.IntArrayTagConverter; +import com.viaversion.nbt.conversion.converter.IntTagConverter; +import com.viaversion.nbt.conversion.converter.ListTagConverter; +import com.viaversion.nbt.conversion.converter.LongArrayTagConverter; +import com.viaversion.nbt.conversion.converter.LongTagConverter; +import com.viaversion.nbt.conversion.converter.ShortTagConverter; +import com.viaversion.nbt.conversion.converter.StringTagConverter; +import com.viaversion.nbt.io.TagRegistry; +import com.viaversion.nbt.tag.ByteArrayTag; +import com.viaversion.nbt.tag.ByteTag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.DoubleTag; +import com.viaversion.nbt.tag.FloatTag; +import com.viaversion.nbt.tag.IntArrayTag; +import com.viaversion.nbt.tag.IntTag; +import com.viaversion.nbt.tag.ListTag; +import com.viaversion.nbt.tag.LongArrayTag; +import com.viaversion.nbt.tag.LongTag; +import com.viaversion.nbt.tag.ShortTag; +import com.viaversion.nbt.tag.StringTag; +import com.viaversion.nbt.tag.Tag; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import java.util.HashMap; diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/TagConverter.java b/src/main/java/com/viaversion/nbt/conversion/TagConverter.java similarity index 84% rename from src/main/java/com/github/steveice10/opennbt/conversion/TagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/TagConverter.java index 80f147e..f634a4e 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/TagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/TagConverter.java @@ -1,6 +1,6 @@ -package com.github.steveice10.opennbt.conversion; +package com.viaversion.nbt.conversion; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.tag.Tag; /** * A converter that converts between a tag type and a value type. A converted tag will have its value and all children converted to raw types and vice versa. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteArrayTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/ByteArrayTagConverter.java similarity index 66% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteArrayTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/ByteArrayTagConverter.java index 48f47ed..e3ab161 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteArrayTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/ByteArrayTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.ByteArrayTag; /** * A converter that converts between ByteArrayTag and byte[]. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/ByteTagConverter.java similarity index 64% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/ByteTagConverter.java index eebe0f9..89833c0 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ByteTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/ByteTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.ByteTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.ByteTag; /** * A converter that converts between ByteTag and byte. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/CompoundTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/CompoundTagConverter.java similarity index 73% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/CompoundTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/CompoundTagConverter.java index 1c834f4..eaa1ef0 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/CompoundTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/CompoundTagConverter.java @@ -1,9 +1,9 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.ConverterRegistry; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.conversion.ConverterRegistry; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.Tag; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/DoubleTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/DoubleTagConverter.java similarity index 65% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/DoubleTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/DoubleTagConverter.java index 0d2a87b..88671dd 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/DoubleTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/DoubleTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.DoubleTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.DoubleTag; /** * A converter that converts between DoubleTag and double. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/FloatTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/FloatTagConverter.java similarity index 64% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/FloatTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/FloatTagConverter.java index b81746d..ca761db 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/FloatTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/FloatTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.FloatTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.FloatTag; /** * A converter that converts between FloatTag and float. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/IntArrayTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/IntArrayTagConverter.java similarity index 65% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/IntArrayTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/IntArrayTagConverter.java index 0d3f708..9db16d1 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/IntArrayTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/IntArrayTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.IntArrayTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.IntArrayTag; /** * A converter that converts between IntArrayTag and int[]. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/IntTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/IntTagConverter.java similarity index 64% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/IntTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/IntTagConverter.java index 51a65e0..f85fdd4 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/IntTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/IntTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.IntTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.IntTag; /** * A converter that converts between IntTag and int. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ListTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/ListTagConverter.java similarity index 70% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/ListTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/ListTagConverter.java index bd1c010..34aa4a7 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ListTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/ListTagConverter.java @@ -1,9 +1,9 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.ConverterRegistry; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.ListTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.conversion.ConverterRegistry; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.ListTag; +import com.viaversion.nbt.tag.Tag; import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/LongArrayTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/LongArrayTagConverter.java similarity index 66% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/LongArrayTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/LongArrayTagConverter.java index 519e832..e3b5fda 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/LongArrayTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/LongArrayTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.LongArrayTag; /** * A converter that converts between LongArrayTag and long[]. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/LongTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/LongTagConverter.java similarity index 64% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/LongTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/LongTagConverter.java index 6c33a71..ae83551 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/LongTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/LongTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.LongTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.LongTag; /** * A converter that converts between LongTag and long. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ShortTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/ShortTagConverter.java similarity index 64% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/ShortTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/ShortTagConverter.java index 7edb9af..9713d10 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/ShortTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/ShortTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.ShortTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.ShortTag; /** * A converter that converts between ShortTag and short. diff --git a/src/main/java/com/github/steveice10/opennbt/conversion/converter/StringTagConverter.java b/src/main/java/com/viaversion/nbt/conversion/converter/StringTagConverter.java similarity index 65% rename from src/main/java/com/github/steveice10/opennbt/conversion/converter/StringTagConverter.java rename to src/main/java/com/viaversion/nbt/conversion/converter/StringTagConverter.java index 8e6859b..281ec29 100644 --- a/src/main/java/com/github/steveice10/opennbt/conversion/converter/StringTagConverter.java +++ b/src/main/java/com/viaversion/nbt/conversion/converter/StringTagConverter.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.conversion.converter; +package com.viaversion.nbt.conversion.converter; -import com.github.steveice10.opennbt.conversion.TagConverter; -import com.github.steveice10.opennbt.tag.builtin.StringTag; +import com.viaversion.nbt.conversion.TagConverter; +import com.viaversion.nbt.tag.StringTag; /** * A converter that converts between StringTag and String. diff --git a/src/main/java/com/github/steveice10/opennbt/tag/io/NBTIO.java b/src/main/java/com/viaversion/nbt/io/NBTIO.java similarity index 92% rename from src/main/java/com/github/steveice10/opennbt/tag/io/NBTIO.java rename to src/main/java/com/viaversion/nbt/io/NBTIO.java index 1e717a4..b8e51ff 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/io/NBTIO.java +++ b/src/main/java/com/viaversion/nbt/io/NBTIO.java @@ -1,8 +1,7 @@ -package com.github.steveice10.opennbt.tag.io; +package com.viaversion.nbt.io; -import com.github.steveice10.opennbt.tag.TagRegistry; -import com.github.steveice10.opennbt.tag.builtin.Tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.tag.Tag; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; diff --git a/src/main/java/com/github/steveice10/opennbt/tag/io/TagReader.java b/src/main/java/com/viaversion/nbt/io/TagReader.java similarity index 94% rename from src/main/java/com/github/steveice10/opennbt/tag/io/TagReader.java rename to src/main/java/com/viaversion/nbt/io/TagReader.java index 59ea84e..f74cf16 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/io/TagReader.java +++ b/src/main/java/com/viaversion/nbt/io/TagReader.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.tag.io; +package com.viaversion.nbt.io; -import com.github.steveice10.opennbt.tag.builtin.Tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.tag.Tag; +import com.viaversion.nbt.limiter.TagLimiter; import it.unimi.dsi.fastutil.io.FastBufferedInputStream; import java.io.DataInput; import java.io.DataInputStream; diff --git a/src/main/java/com/github/steveice10/opennbt/tag/TagRegistry.java b/src/main/java/com/viaversion/nbt/io/TagRegistry.java similarity index 84% rename from src/main/java/com/github/steveice10/opennbt/tag/TagRegistry.java rename to src/main/java/com/viaversion/nbt/io/TagRegistry.java index 4919afd..7b004e9 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/TagRegistry.java +++ b/src/main/java/com/viaversion/nbt/io/TagRegistry.java @@ -1,19 +1,19 @@ -package com.github.steveice10.opennbt.tag; +package com.viaversion.nbt.io; -import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; -import com.github.steveice10.opennbt.tag.builtin.ByteTag; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.DoubleTag; -import com.github.steveice10.opennbt.tag.builtin.FloatTag; -import com.github.steveice10.opennbt.tag.builtin.IntArrayTag; -import com.github.steveice10.opennbt.tag.builtin.IntTag; -import com.github.steveice10.opennbt.tag.builtin.ListTag; -import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; -import com.github.steveice10.opennbt.tag.builtin.LongTag; -import com.github.steveice10.opennbt.tag.builtin.ShortTag; -import com.github.steveice10.opennbt.tag.builtin.StringTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.limiter.TagLimiter; +import com.viaversion.nbt.tag.ByteArrayTag; +import com.viaversion.nbt.tag.ByteTag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.DoubleTag; +import com.viaversion.nbt.tag.FloatTag; +import com.viaversion.nbt.tag.IntArrayTag; +import com.viaversion.nbt.tag.IntTag; +import com.viaversion.nbt.tag.ListTag; +import com.viaversion.nbt.tag.LongArrayTag; +import com.viaversion.nbt.tag.LongTag; +import com.viaversion.nbt.tag.ShortTag; +import com.viaversion.nbt.tag.StringTag; +import com.viaversion.nbt.tag.Tag; import it.unimi.dsi.fastutil.objects.Object2IntMap; import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap; import java.io.DataInput; diff --git a/src/main/java/com/github/steveice10/opennbt/tag/io/TagWriter.java b/src/main/java/com/viaversion/nbt/io/TagWriter.java similarity index 95% rename from src/main/java/com/github/steveice10/opennbt/tag/io/TagWriter.java rename to src/main/java/com/viaversion/nbt/io/TagWriter.java index 71cafc1..311837f 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/io/TagWriter.java +++ b/src/main/java/com/viaversion/nbt/io/TagWriter.java @@ -1,6 +1,6 @@ -package com.github.steveice10.opennbt.tag.io; +package com.viaversion.nbt.io; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.tag.Tag; import it.unimi.dsi.fastutil.io.FastBufferedOutputStream; import java.io.DataOutput; import java.io.DataOutputStream; diff --git a/src/main/java/com/github/steveice10/opennbt/tag/limiter/NoopTagLimiter.java b/src/main/java/com/viaversion/nbt/limiter/NoopTagLimiter.java similarity index 87% rename from src/main/java/com/github/steveice10/opennbt/tag/limiter/NoopTagLimiter.java rename to src/main/java/com/viaversion/nbt/limiter/NoopTagLimiter.java index d96feae..3c4a190 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/limiter/NoopTagLimiter.java +++ b/src/main/java/com/viaversion/nbt/limiter/NoopTagLimiter.java @@ -1,9 +1,12 @@ -package com.github.steveice10.opennbt.tag.limiter; +package com.viaversion.nbt.limiter; final class NoopTagLimiter implements TagLimiter { static final TagLimiter INSTANCE = new NoopTagLimiter(); + private NoopTagLimiter() { + } + @Override public void countBytes(int bytes) { } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiter.java b/src/main/java/com/viaversion/nbt/limiter/TagLimiter.java similarity index 97% rename from src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiter.java rename to src/main/java/com/viaversion/nbt/limiter/TagLimiter.java index 79f32b6..848cd75 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiter.java +++ b/src/main/java/com/viaversion/nbt/limiter/TagLimiter.java @@ -1,4 +1,4 @@ -package com.github.steveice10.opennbt.tag.limiter; +package com.viaversion.nbt.limiter; public interface TagLimiter { diff --git a/src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiterImpl.java b/src/main/java/com/viaversion/nbt/limiter/TagLimiterImpl.java similarity index 95% rename from src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiterImpl.java rename to src/main/java/com/viaversion/nbt/limiter/TagLimiterImpl.java index 48f6130..0c67d1c 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/limiter/TagLimiterImpl.java +++ b/src/main/java/com/viaversion/nbt/limiter/TagLimiterImpl.java @@ -1,4 +1,4 @@ -package com.github.steveice10.opennbt.tag.limiter; +package com.viaversion.nbt.limiter; final class TagLimiterImpl implements TagLimiter { diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/CharBuffer.java b/src/main/java/com/viaversion/nbt/stringified/CharBuffer.java similarity index 98% rename from src/main/java/com/github/steveice10/opennbt/stringified/CharBuffer.java rename to src/main/java/com/viaversion/nbt/stringified/CharBuffer.java index 083325e..ea2b65d 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/CharBuffer.java +++ b/src/main/java/com/viaversion/nbt/stringified/CharBuffer.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; /** * A character buffer designed to be inspected by a parser. diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/SNBT.java b/src/main/java/com/viaversion/nbt/stringified/SNBT.java similarity index 90% rename from src/main/java/com/github/steveice10/opennbt/stringified/SNBT.java rename to src/main/java/com/viaversion/nbt/stringified/SNBT.java index 58ad0c6..990b1e9 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/SNBT.java +++ b/src/main/java/com/viaversion/nbt/stringified/SNBT.java @@ -1,7 +1,7 @@ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.Tag; /** * Serialization of stringifies tags. diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/StringifiedTagParseException.java b/src/main/java/com/viaversion/nbt/stringified/StringifiedTagParseException.java similarity index 97% rename from src/main/java/com/github/steveice10/opennbt/stringified/StringifiedTagParseException.java rename to src/main/java/com/viaversion/nbt/stringified/StringifiedTagParseException.java index b66a2e6..54e0de6 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/StringifiedTagParseException.java +++ b/src/main/java/com/viaversion/nbt/stringified/StringifiedTagParseException.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; // Specific Via changes: // - Remove buffer field diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/TagStringReader.java b/src/main/java/com/viaversion/nbt/stringified/TagStringReader.java similarity index 94% rename from src/main/java/com/github/steveice10/opennbt/stringified/TagStringReader.java rename to src/main/java/com/viaversion/nbt/stringified/TagStringReader.java index 6d54449..b01dd18 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/TagStringReader.java +++ b/src/main/java/com/viaversion/nbt/stringified/TagStringReader.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; -import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; -import com.github.steveice10.opennbt.tag.builtin.ByteTag; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.DoubleTag; -import com.github.steveice10.opennbt.tag.builtin.FloatTag; -import com.github.steveice10.opennbt.tag.builtin.IntArrayTag; -import com.github.steveice10.opennbt.tag.builtin.IntTag; -import com.github.steveice10.opennbt.tag.builtin.ListTag; -import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; -import com.github.steveice10.opennbt.tag.builtin.LongTag; -import com.github.steveice10.opennbt.tag.builtin.NumberTag; -import com.github.steveice10.opennbt.tag.builtin.ShortTag; -import com.github.steveice10.opennbt.tag.builtin.StringTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.tag.ByteArrayTag; +import com.viaversion.nbt.tag.ByteTag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.DoubleTag; +import com.viaversion.nbt.tag.FloatTag; +import com.viaversion.nbt.tag.IntArrayTag; +import com.viaversion.nbt.tag.IntTag; +import com.viaversion.nbt.tag.ListTag; +import com.viaversion.nbt.tag.LongArrayTag; +import com.viaversion.nbt.tag.LongTag; +import com.viaversion.nbt.tag.NumberTag; +import com.viaversion.nbt.tag.ShortTag; +import com.viaversion.nbt.tag.StringTag; +import com.viaversion.nbt.tag.Tag; import it.unimi.dsi.fastutil.ints.IntArrayList; import it.unimi.dsi.fastutil.ints.IntList; import java.util.stream.IntStream; diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/TagStringWriter.java b/src/main/java/com/viaversion/nbt/stringified/TagStringWriter.java similarity index 90% rename from src/main/java/com/github/steveice10/opennbt/stringified/TagStringWriter.java rename to src/main/java/com/viaversion/nbt/stringified/TagStringWriter.java index cd4a88d..84cefcd 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/TagStringWriter.java +++ b/src/main/java/com/viaversion/nbt/stringified/TagStringWriter.java @@ -21,22 +21,22 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; -import com.github.steveice10.opennbt.tag.builtin.ByteArrayTag; -import com.github.steveice10.opennbt.tag.builtin.ByteTag; -import com.github.steveice10.opennbt.tag.builtin.CompoundTag; -import com.github.steveice10.opennbt.tag.builtin.DoubleTag; -import com.github.steveice10.opennbt.tag.builtin.FloatTag; -import com.github.steveice10.opennbt.tag.builtin.IntArrayTag; -import com.github.steveice10.opennbt.tag.builtin.IntTag; -import com.github.steveice10.opennbt.tag.builtin.ListTag; -import com.github.steveice10.opennbt.tag.builtin.LongArrayTag; -import com.github.steveice10.opennbt.tag.builtin.LongTag; -import com.github.steveice10.opennbt.tag.builtin.NumberTag; -import com.github.steveice10.opennbt.tag.builtin.ShortTag; -import com.github.steveice10.opennbt.tag.builtin.StringTag; -import com.github.steveice10.opennbt.tag.builtin.Tag; +import com.viaversion.nbt.tag.ByteArrayTag; +import com.viaversion.nbt.tag.ByteTag; +import com.viaversion.nbt.tag.CompoundTag; +import com.viaversion.nbt.tag.DoubleTag; +import com.viaversion.nbt.tag.FloatTag; +import com.viaversion.nbt.tag.IntArrayTag; +import com.viaversion.nbt.tag.IntTag; +import com.viaversion.nbt.tag.ListTag; +import com.viaversion.nbt.tag.LongArrayTag; +import com.viaversion.nbt.tag.LongTag; +import com.viaversion.nbt.tag.NumberTag; +import com.viaversion.nbt.tag.ShortTag; +import com.viaversion.nbt.tag.StringTag; +import com.viaversion.nbt.tag.Tag; import java.util.Map; // Specific Via changes: diff --git a/src/main/java/com/github/steveice10/opennbt/stringified/Tokens.java b/src/main/java/com/viaversion/nbt/stringified/Tokens.java similarity index 98% rename from src/main/java/com/github/steveice10/opennbt/stringified/Tokens.java rename to src/main/java/com/viaversion/nbt/stringified/Tokens.java index 6575c43..d2293aa 100644 --- a/src/main/java/com/github/steveice10/opennbt/stringified/Tokens.java +++ b/src/main/java/com/viaversion/nbt/stringified/Tokens.java @@ -21,7 +21,7 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -package com.github.steveice10.opennbt.stringified; +package com.viaversion.nbt.stringified; final class Tokens { // Compounds diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteArrayTag.java b/src/main/java/com/viaversion/nbt/tag/ByteArrayTag.java similarity index 88% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteArrayTag.java rename to src/main/java/com/viaversion/nbt/tag/ByteArrayTag.java index 279b852..d882595 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteArrayTag.java +++ b/src/main/java/com/viaversion/nbt/tag/ByteArrayTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -9,7 +10,7 @@ import java.util.Arrays; /** * A tag containing a byte array. */ -public final class ByteArrayTag extends NumberArrayTag { +public final class ByteArrayTag implements NumberArrayTag { public static final int ID = 7; private static final byte[] EMPTY_ARRAY = new byte[0]; private byte[] value; @@ -70,7 +71,7 @@ public final class ByteArrayTag extends NumberArrayTag { * @param index Index of the value. * @return The value at the given index. */ - public byte getValue(int index) { + public byte get(int index) { return this.value[index]; } @@ -80,7 +81,7 @@ public final class ByteArrayTag extends NumberArrayTag { * @param index Index of the value. * @param value Value to set. */ - public void setValue(int index, byte value) { + public void set(int index, byte value) { this.value[index] = value; } @@ -126,4 +127,9 @@ public final class ByteArrayTag extends NumberArrayTag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteTag.java b/src/main/java/com/viaversion/nbt/tag/ByteTag.java similarity index 75% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteTag.java rename to src/main/java/com/viaversion/nbt/tag/ByteTag.java index f221d9f..5c4eb39 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ByteTag.java +++ b/src/main/java/com/viaversion/nbt/tag/ByteTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -8,16 +9,10 @@ import java.io.IOException; /** * A tag containing a byte. */ -public final class ByteTag extends NumberTag { +public final class ByteTag implements NumberTag { public static final int ID = 1; - private byte value; - - /** - * Creates a tag. - */ - public ByteTag() { - this((byte) 0); - } + public static final ByteTag ZERO = new ByteTag((byte) 0); + private final byte value; /** * Creates a tag. @@ -56,17 +51,6 @@ public final class ByteTag extends NumberTag { return Byte.toString(this.value); } - /** - * Sets the value of this tag. - * - * @param value New value of this tag. - * @deprecated number tags will be immutable in the future - */ - @Deprecated - public void setValue(byte value) { - this.value = value; - } - @Override public void write(DataOutput out) throws IOException { out.writeByte(this.value); @@ -85,11 +69,6 @@ public final class ByteTag extends NumberTag { return value; } - @Override - public ByteTag copy() { - return new ByteTag(this.value); - } - @Override public byte asByte() { return this.value; @@ -124,4 +103,9 @@ public final class ByteTag extends NumberTag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/CompoundTag.java b/src/main/java/com/viaversion/nbt/tag/CompoundTag.java similarity index 95% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/CompoundTag.java rename to src/main/java/com/viaversion/nbt/tag/CompoundTag.java index a149874..3c2f982 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/CompoundTag.java +++ b/src/main/java/com/viaversion/nbt/tag/CompoundTag.java @@ -1,7 +1,8 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.TagRegistry; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.io.TagRegistry; +import com.viaversion.nbt.stringified.SNBT; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -16,7 +17,7 @@ import org.jetbrains.annotations.Nullable; /** * A compound tag containing other tags. */ -public final class CompoundTag extends Tag implements Iterable> { +public final class CompoundTag implements Tag, Iterable> { public static final int ID = 10; private Map value; @@ -133,14 +134,13 @@ public final class CompoundTag extends Tag implements Iterable * This will have its generic removed and instead return a raw tag in the future. * - * @param type of the tag * @param tagName key of the tag * @return tag if present, else null * @see #getUnchecked(String) */ @Nullable - public T get(String tagName) { - return (T) this.value.get(tagName); + public Tag get(String tagName) { + return this.value.get(tagName); } /** @@ -323,17 +323,16 @@ public final class CompoundTag extends Tag implements Iterable * This will have its generic removed and instead return a raw tag in the future. * - * @param Type of tag to put. * @param tagName Name of the tag. * @param tag Tag to put into this compound tag. * @return The previous tag associated with its name, or null if there wasn't one. */ @Nullable - public T put(String tagName, T tag) { + public Tag put(String tagName, Tag tag) { if (tag == this) { throw new IllegalArgumentException("Cannot add a tag to itself"); } - return (T) this.value.put(tagName, tag); + return this.value.put(tagName, tag); } public void putString(String tagName, String value) { @@ -377,14 +376,13 @@ public final class CompoundTag extends Tag implements Iterable * This will have its generic removed and instead return a raw tag in the future. * - * @param Type of tag to remove. * @param tagName Name of the tag to remove. * @return The removed tag. * @see #removeUnchecked(String) */ @Nullable - public T remove(String tagName) { - return (T) this.value.remove(tagName); + public Tag remove(String tagName) { + return this.value.remove(tagName); } /** @@ -487,4 +485,9 @@ public final class CompoundTag extends Tag implements Iterable extends Tag implements Iterable { +public final class ListTag implements Tag, Iterable { public static final int ID = 9; private Class type; private List value; @@ -259,4 +260,9 @@ public final class ListTag extends Tag implements Iterable { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/LongArrayTag.java b/src/main/java/com/viaversion/nbt/tag/LongArrayTag.java similarity index 89% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/LongArrayTag.java rename to src/main/java/com/viaversion/nbt/tag/LongArrayTag.java index 53dc23a..979a9e9 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/LongArrayTag.java +++ b/src/main/java/com/viaversion/nbt/tag/LongArrayTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -9,7 +10,7 @@ import java.util.Arrays; /** * A tag containing a long array. */ -public final class LongArrayTag extends NumberArrayTag { +public final class LongArrayTag implements NumberArrayTag { public static final int ID = 12; private static final long[] EMPTY_ARRAY = new long[0]; private long[] value; @@ -71,7 +72,7 @@ public final class LongArrayTag extends NumberArrayTag { * @param index Index of the value. * @return The value at the given index. */ - public long getValue(int index) { + public long get(int index) { return this.value[index]; } @@ -81,7 +82,7 @@ public final class LongArrayTag extends NumberArrayTag { * @param index Index of the value. * @param value Value to set. */ - public void setValue(int index, long value) { + public void set(int index, long value) { this.value[index] = value; } @@ -129,4 +130,9 @@ public final class LongArrayTag extends NumberArrayTag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/LongTag.java b/src/main/java/com/viaversion/nbt/tag/LongTag.java similarity index 74% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/LongTag.java rename to src/main/java/com/viaversion/nbt/tag/LongTag.java index bc972c3..bcb63d4 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/LongTag.java +++ b/src/main/java/com/viaversion/nbt/tag/LongTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -8,16 +9,10 @@ import java.io.IOException; /** * A tag containing a long. */ -public final class LongTag extends NumberTag { +public final class LongTag implements NumberTag { public static final int ID = 4; - private long value; - - /** - * Creates a tag. - */ - public LongTag() { - this(0); - } + public static final LongTag ZERO = new LongTag(0); + private final long value; /** * Creates a tag. @@ -47,17 +42,6 @@ public final class LongTag extends NumberTag { return Long.toString(this.value); } - /** - * Sets the value of this tag. - * - * @param value New value of this tag. - * @deprecated number tags will be immutable in the future - */ - @Deprecated - public void setValue(long value) { - this.value = value; - } - @Override public void write(DataOutput out) throws IOException { out.writeLong(this.value); @@ -76,11 +60,6 @@ public final class LongTag extends NumberTag { return Long.hashCode(this.value); } - @Override - public LongTag copy() { - return new LongTag(this.value); - } - @Override public byte asByte() { return (byte) this.value; @@ -115,4 +94,9 @@ public final class LongTag extends NumberTag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberArrayTag.java b/src/main/java/com/viaversion/nbt/tag/NumberArrayTag.java similarity index 50% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberArrayTag.java rename to src/main/java/com/viaversion/nbt/tag/NumberArrayTag.java index de837f7..edb7481 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberArrayTag.java +++ b/src/main/java/com/viaversion/nbt/tag/NumberArrayTag.java @@ -1,18 +1,21 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -public abstract class NumberArrayTag extends Tag { +public interface NumberArrayTag extends Tag { /** * Gets the length of this tag's array. * * @return array length */ - public abstract int length(); + int length(); /** * Creates a new list tag from this tag. * * @return a new list tag */ - public abstract ListTag toListTag(); + ListTag toListTag(); + + @Override + NumberArrayTag copy(); } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberTag.java b/src/main/java/com/viaversion/nbt/tag/NumberTag.java similarity index 74% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberTag.java rename to src/main/java/com/viaversion/nbt/tag/NumberTag.java index 22dbe84..c53dc28 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/NumberTag.java +++ b/src/main/java/com/viaversion/nbt/tag/NumberTag.java @@ -1,9 +1,9 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; /** * Abstract class representing a number tag, containing methods to return primitive number types. */ -public abstract class NumberTag extends Tag { +public interface NumberTag extends Tag { /** * Gets the number value of this tag. @@ -11,49 +11,49 @@ public abstract class NumberTag extends Tag { * @return Number value of this tag. */ @Override - public abstract Number getValue(); + Number getValue(); /** * Gets the byte value of this tag. * * @return Byte value of this tag. */ - public abstract byte asByte(); + byte asByte(); /** * Gets the short value of this tag. * * @return Short value of this tag. */ - public abstract short asShort(); + short asShort(); /** * Gets the int value of this tag. * * @return Int value of this tag. */ - public abstract int asInt(); + int asInt(); /** * Gets the long value of this tag. * * @return Long value of this tag. */ - public abstract long asLong(); + long asLong(); /** * Gets the float value of this tag. * * @return Float value of this tag. */ - public abstract float asFloat(); + float asFloat(); /** * Gets the double value of this tag. * * @return Double value of this tag. */ - public abstract double asDouble(); + double asDouble(); /** * Gets the boolean value of this tag. @@ -63,7 +63,13 @@ public abstract class NumberTag extends Tag { * * @return Boolean value of this tag. */ - public boolean asBoolean() { + default boolean asBoolean() { return this.asByte() != 0; } + + @Override + default NumberTag copy() { + // Immutable, so return this + return this; + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ShortTag.java b/src/main/java/com/viaversion/nbt/tag/ShortTag.java similarity index 74% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/ShortTag.java rename to src/main/java/com/viaversion/nbt/tag/ShortTag.java index b5090f1..1eb7374 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/ShortTag.java +++ b/src/main/java/com/viaversion/nbt/tag/ShortTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -8,16 +9,10 @@ import java.io.IOException; /** * A tag containing a short. */ -public final class ShortTag extends NumberTag { +public final class ShortTag implements NumberTag { public static final int ID = 2; - private short value; - - /** - * Creates a tag. - */ - public ShortTag() { - this((short) 0); - } + public static final ShortTag ZERO = new ShortTag((short) 0); + private final short value; /** * Creates a tag. @@ -47,17 +42,6 @@ public final class ShortTag extends NumberTag { return Short.toString(this.value); } - /** - * Sets the value of this tag. - * - * @param value New value of this tag. - * @deprecated number tags will be immutable in the future - */ - @Deprecated - public void setValue(short value) { - this.value = value; - } - @Override public void write(DataOutput out) throws IOException { out.writeShort(this.value); @@ -76,11 +60,6 @@ public final class ShortTag extends NumberTag { return this.value; } - @Override - public ShortTag copy() { - return new ShortTag(this.value); - } - @Override public byte asByte() { return (byte) this.value; @@ -115,4 +94,9 @@ public final class ShortTag extends NumberTag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/github/steveice10/opennbt/tag/builtin/StringTag.java b/src/main/java/com/viaversion/nbt/tag/StringTag.java similarity index 87% rename from src/main/java/com/github/steveice10/opennbt/tag/builtin/StringTag.java rename to src/main/java/com/viaversion/nbt/tag/StringTag.java index 99d9932..f54df2e 100644 --- a/src/main/java/com/github/steveice10/opennbt/tag/builtin/StringTag.java +++ b/src/main/java/com/viaversion/nbt/tag/StringTag.java @@ -1,6 +1,7 @@ -package com.github.steveice10.opennbt.tag.builtin; +package com.viaversion.nbt.tag; -import com.github.steveice10.opennbt.tag.limiter.TagLimiter; +import com.viaversion.nbt.stringified.SNBT; +import com.viaversion.nbt.limiter.TagLimiter; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; @@ -8,7 +9,7 @@ import java.io.IOException; /** * A tag containing a string. */ -public final class StringTag extends Tag { +public final class StringTag implements Tag { public static final int ID = 8; private String value; @@ -86,4 +87,9 @@ public final class StringTag extends Tag { public int getTagId() { return ID; } + + @Override + public String toString() { + return SNBT.serialize(this); + } } diff --git a/src/main/java/com/viaversion/nbt/tag/Tag.java b/src/main/java/com/viaversion/nbt/tag/Tag.java new file mode 100644 index 0000000..16834dc --- /dev/null +++ b/src/main/java/com/viaversion/nbt/tag/Tag.java @@ -0,0 +1,45 @@ +package com.viaversion.nbt.tag; + +import com.viaversion.nbt.stringified.SNBT; +import java.io.DataOutput; +import java.io.IOException; + +public interface Tag { + + /** + * Returns the value of this tag. + * + * @return value of this tag + */ + Object getValue(); + + /** + * Returns the raw string representation of the value of this tag. + * For SNBT, use {@link SNBT#serialize(Tag)}. + * + * @return raw string representation of the value of this tag + */ + String asRawString(); + + /** + * Writes this tag to an output stream. + * + * @param out data output to write to + * @throws IOException if an I/O error occurs + */ + void write(DataOutput out) throws IOException; + + /** + * Returns the NBT tag id of this tag type, used in I/O. + * + * @return ID of the tag this class represents + */ + int getTagId(); + + /** + * Returns a copy of this tag. + * + * @return a copy of this tag + */ + Tag copy(); +}