mirror of
https://github.com/ViaVersion/ViaBackwards.git
synced 2024-12-29 18:07:40 +01:00
Update ViaNBT
This commit is contained in:
parent
83fa0c613f
commit
651bf052fc
@ -21,9 +21,10 @@ import com.viaversion.viabackwards.ViaBackwards;
|
|||||||
import com.viaversion.viaversion.libs.gson.JsonIOException;
|
import com.viaversion.viaversion.libs.gson.JsonIOException;
|
||||||
import com.viaversion.viaversion.libs.gson.JsonObject;
|
import com.viaversion.viaversion.libs.gson.JsonObject;
|
||||||
import com.viaversion.viaversion.libs.gson.JsonSyntaxException;
|
import com.viaversion.viaversion.libs.gson.JsonSyntaxException;
|
||||||
import com.viaversion.viaversion.libs.opennbt.NBTIO;
|
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.Tag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.Tag;
|
||||||
|
import com.viaversion.viaversion.libs.opennbt.tag.io.NBTIO;
|
||||||
|
import com.viaversion.viaversion.libs.opennbt.tag.io.TagReader;
|
||||||
import com.viaversion.viaversion.util.GsonUtil;
|
import com.viaversion.viaversion.util.GsonUtil;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileReader;
|
import java.io.FileReader;
|
||||||
@ -35,6 +36,8 @@ import org.checkerframework.checker.nullness.qual.Nullable;
|
|||||||
|
|
||||||
public final class VBMappingDataLoader {
|
public final class VBMappingDataLoader {
|
||||||
|
|
||||||
|
private static final TagReader<CompoundTag> TAG_READER = NBTIO.reader(CompoundTag.class).named();
|
||||||
|
|
||||||
public static @Nullable CompoundTag loadNBT(final String name) {
|
public static @Nullable CompoundTag loadNBT(final String name) {
|
||||||
final InputStream resource = getResource(name);
|
final InputStream resource = getResource(name);
|
||||||
if (resource == null) {
|
if (resource == null) {
|
||||||
@ -42,7 +45,7 @@ public final class VBMappingDataLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try (final InputStream stream = resource) {
|
try (final InputStream stream = resource) {
|
||||||
return NBTIO.readTag(stream);
|
return TAG_READER.read(stream);
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
@ -65,7 +68,7 @@ public final class VBMappingDataLoader {
|
|||||||
|
|
||||||
ViaBackwards.getPlatform().getLogger().info("Loading " + name + " from plugin folder");
|
ViaBackwards.getPlatform().getLogger().info("Loading " + name + " from plugin folder");
|
||||||
try {
|
try {
|
||||||
final CompoundTag fileData = NBTIO.readFile(file, false, false);
|
final CompoundTag fileData = TAG_READER.read(file.toPath(), false);
|
||||||
return mergeTags(packedData, fileData);
|
return mergeTags(packedData, fileData);
|
||||||
} catch (final IOException e) {
|
} catch (final IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
|
@ -73,7 +73,7 @@ public abstract class ItemRewriterBase<C extends ClientboundPacketType, S extend
|
|||||||
// Clone all tag entries
|
// Clone all tag entries
|
||||||
ListTag listTag = new ListTag();
|
ListTag listTag = new ListTag();
|
||||||
for (Tag tag : original.getValue()) {
|
for (Tag tag : original.getValue()) {
|
||||||
listTag.add(tag.clone());
|
listTag.add(tag.copy());
|
||||||
}
|
}
|
||||||
|
|
||||||
displayTag.put(backupName, listTag);
|
displayTag.put(backupName, listTag);
|
||||||
|
@ -51,7 +51,7 @@ public class LegacyEnchantmentRewriter {
|
|||||||
ListTag enchantments = tag.get(key);
|
ListTag enchantments = tag.get(key);
|
||||||
ListTag remappedEnchantments = new ListTag(CompoundTag.class);
|
ListTag remappedEnchantments = new ListTag(CompoundTag.class);
|
||||||
List<Tag> lore = new ArrayList<>();
|
List<Tag> lore = new ArrayList<>();
|
||||||
for (Tag enchantmentEntry : enchantments.clone()) {
|
for (Tag enchantmentEntry : enchantments.copy()) {
|
||||||
Tag idTag = ((CompoundTag) enchantmentEntry).get("id");
|
Tag idTag = ((CompoundTag) enchantmentEntry).get("id");
|
||||||
if (idTag == null) continue;
|
if (idTag == null) continue;
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ public class LegacyEnchantmentRewriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!storedEnchant && tag.remove(nbtTagName + "|dummyEnchant") != null) {
|
if (!storedEnchant && tag.remove(nbtTagName + "|dummyEnchant") != null) {
|
||||||
for (Tag enchantment : enchantments.clone()) {
|
for (Tag enchantment : enchantments.copy()) {
|
||||||
short id = ((NumberTag) ((CompoundTag) enchantment).get("id")).asShort();
|
short id = ((NumberTag) ((CompoundTag) enchantment).get("id")).asShort();
|
||||||
short level = ((NumberTag) ((CompoundTag) enchantment).get("lvl")).asShort();
|
short level = ((NumberTag) ((CompoundTag) enchantment).get("lvl")).asShort();
|
||||||
if (id == 0 && level == 0) {
|
if (id == 0 && level == 0) {
|
||||||
@ -133,7 +133,7 @@ public class LegacyEnchantmentRewriter {
|
|||||||
CompoundTag display = tag.get("display");
|
CompoundTag display = tag.get("display");
|
||||||
// A few null checks just to be safe, though they shouldn't actually be
|
// A few null checks just to be safe, though they shouldn't actually be
|
||||||
ListTag lore = display != null ? display.get("Lore") : null;
|
ListTag lore = display != null ? display.get("Lore") : null;
|
||||||
for (Tag enchantment : remappedEnchantments.clone()) {
|
for (Tag enchantment : remappedEnchantments.copy()) {
|
||||||
enchantments.add(enchantment);
|
enchantments.add(enchantment);
|
||||||
if (lore != null && lore.size() != 0) {
|
if (lore != null && lore.size() != 0) {
|
||||||
lore.remove(lore.get(0));
|
lore.remove(lore.get(0));
|
||||||
|
@ -585,7 +585,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit
|
|||||||
if (blockTag == null) return;
|
if (blockTag == null) return;
|
||||||
|
|
||||||
ListTag newCanPlaceOn = new ListTag(StringTag.class);
|
ListTag newCanPlaceOn = new ListTag(StringTag.class);
|
||||||
tag.put(extraNbtTag + "|" + tagName, blockTag.clone());
|
tag.put(extraNbtTag + "|" + tagName, blockTag.copy());
|
||||||
for (Tag oldTag : blockTag) {
|
for (Tag oldTag : blockTag) {
|
||||||
Object value = oldTag.getValue();
|
Object value = oldTag.getValue();
|
||||||
String[] newValues = value instanceof String ?
|
String[] newValues = value instanceof String ?
|
||||||
@ -611,7 +611,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit
|
|||||||
ListTag newEnchantments = new ListTag(CompoundTag.class);
|
ListTag newEnchantments = new ListTag(CompoundTag.class);
|
||||||
List<Tag> lore = new ArrayList<>();
|
List<Tag> lore = new ArrayList<>();
|
||||||
boolean hasValidEnchants = false;
|
boolean hasValidEnchants = false;
|
||||||
for (Tag enchantmentEntryTag : enchantments.clone()) {
|
for (Tag enchantmentEntryTag : enchantments.copy()) {
|
||||||
CompoundTag enchantmentEntry = (CompoundTag) enchantmentEntryTag;
|
CompoundTag enchantmentEntry = (CompoundTag) enchantmentEntryTag;
|
||||||
Tag idTag = enchantmentEntry.get("id");
|
Tag idTag = enchantmentEntry.get("id");
|
||||||
if (!(idTag instanceof StringTag)) {
|
if (!(idTag instanceof StringTag)) {
|
||||||
@ -708,7 +708,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit
|
|||||||
} else if (loreTag.size() != 0) {
|
} else if (loreTag.size() != 0) {
|
||||||
ListTag oldLore = new ListTag(StringTag.class);
|
ListTag oldLore = new ListTag(StringTag.class);
|
||||||
for (Tag value : loreTag) {
|
for (Tag value : loreTag) {
|
||||||
oldLore.add(value.clone());
|
oldLore.add(value.copy());
|
||||||
}
|
}
|
||||||
tag.put(extraNbtTag + "|OldLore", oldLore);
|
tag.put(extraNbtTag + "|OldLore", oldLore);
|
||||||
|
|
||||||
@ -835,7 +835,7 @@ public class BlockItemPackets1_13 extends com.viaversion.viabackwards.api.rewrit
|
|||||||
if (!(tag.get(tagName) instanceof ListTag)) return;
|
if (!(tag.get(tagName) instanceof ListTag)) return;
|
||||||
ListTag blockTag = tag.remove(extraNbtTag + "|" + tagName);
|
ListTag blockTag = tag.remove(extraNbtTag + "|" + tagName);
|
||||||
if (blockTag != null) {
|
if (blockTag != null) {
|
||||||
tag.put(tagName, blockTag.clone());
|
tag.put(tagName, blockTag.copy());
|
||||||
} else if ((blockTag = tag.get(tagName)) != null) {
|
} else if ((blockTag = tag.get(tagName)) != null) {
|
||||||
ListTag newCanPlaceOn = new ListTag(StringTag.class);
|
ListTag newCanPlaceOn = new ListTag(StringTag.class);
|
||||||
for (Tag oldTag : blockTag) {
|
for (Tag oldTag : blockTag) {
|
||||||
|
@ -46,7 +46,7 @@ public class PlayerLastCursorItem implements StorableObject {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
Item copy = new DataItem(item);
|
Item copy = new DataItem(item);
|
||||||
copy.setTag(copy.tag() == null ? null : copy.tag().clone());
|
copy.setTag(copy.tag() == null ? null : copy.tag().copy());
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,13 +20,11 @@ package com.viaversion.viabackwards.protocol.protocol1_18_2to1_19.data;
|
|||||||
import com.viaversion.viabackwards.api.data.VBMappingDataLoader;
|
import com.viaversion.viabackwards.api.data.VBMappingDataLoader;
|
||||||
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectMap;
|
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectMap;
|
||||||
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap;
|
import com.viaversion.viaversion.libs.fastutil.ints.Int2ObjectOpenHashMap;
|
||||||
import com.viaversion.viaversion.libs.opennbt.NBTIO;
|
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.ListTag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.ListTag;
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.NumberTag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.NumberTag;
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.Tag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.Tag;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
import com.viaversion.viaversion.protocols.protocol1_19to1_18_2.Protocol1_19To1_18_2;
|
||||||
import java.io.IOException;
|
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
public final class BackwardsMappings extends com.viaversion.viabackwards.api.data.BackwardsMappings {
|
public final class BackwardsMappings extends com.viaversion.viabackwards.api.data.BackwardsMappings {
|
||||||
@ -41,16 +39,12 @@ public final class BackwardsMappings extends com.viaversion.viabackwards.api.dat
|
|||||||
protected void loadExtras(final CompoundTag data) {
|
protected void loadExtras(final CompoundTag data) {
|
||||||
super.loadExtras(data);
|
super.loadExtras(data);
|
||||||
|
|
||||||
try {
|
final ListTag chatTypes = VBMappingDataLoader.loadNBT("chat-types-1.19.1.nbt").get("values");
|
||||||
final ListTag chatTypes = NBTIO.readTag(VBMappingDataLoader.getResource("chat-types-1.19.1.nbt")).get("values");
|
|
||||||
for (final Tag chatType : chatTypes) {
|
for (final Tag chatType : chatTypes) {
|
||||||
final CompoundTag chatTypeCompound = (CompoundTag) chatType;
|
final CompoundTag chatTypeCompound = (CompoundTag) chatType;
|
||||||
final NumberTag idTag = chatTypeCompound.get("id");
|
final NumberTag idTag = chatTypeCompound.get("id");
|
||||||
defaultChatTypes.put(idTag.asInt(), chatTypeCompound);
|
defaultChatTypes.put(idTag.asInt(), chatTypeCompound);
|
||||||
}
|
}
|
||||||
} catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public @Nullable CompoundTag chatType(final int id) {
|
public @Nullable CompoundTag chatType(final int id) {
|
||||||
|
@ -133,7 +133,7 @@ public final class EntityPackets1_19 extends EntityRewriter<ClientboundPackets1_
|
|||||||
final CompoundTag dimensionCompound = (CompoundTag) dimension;
|
final CompoundTag dimensionCompound = (CompoundTag) dimension;
|
||||||
final StringTag nameTag = dimensionCompound.get("name");
|
final StringTag nameTag = dimensionCompound.get("name");
|
||||||
final CompoundTag dimensionData = dimensionCompound.get("element");
|
final CompoundTag dimensionData = dimensionCompound.get("element");
|
||||||
dimensionRegistryStorage.addDimension(nameTag.getValue(), dimensionData.clone());
|
dimensionRegistryStorage.addDimension(nameTag.getValue(), dimensionData.copy());
|
||||||
|
|
||||||
if (!found && nameTag.getValue().equals(dimensionKey)) {
|
if (!found && nameTag.getValue().equals(dimensionKey)) {
|
||||||
wrapper.write(Type.NAMED_COMPOUND_TAG, dimensionData);
|
wrapper.write(Type.NAMED_COMPOUND_TAG, dimensionData);
|
||||||
|
@ -33,7 +33,7 @@ public final class DimensionRegistryStorage implements StorableObject {
|
|||||||
|
|
||||||
public @Nullable CompoundTag dimension(final String dimensionKey) {
|
public @Nullable CompoundTag dimension(final String dimensionKey) {
|
||||||
final CompoundTag compoundTag = dimensions.get(dimensionKey);
|
final CompoundTag compoundTag = dimensions.get(dimensionKey);
|
||||||
return compoundTag != null ? compoundTag.clone() : null;
|
return compoundTag != null ? compoundTag.copy() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addDimension(final String dimensionKey, final CompoundTag dimension) {
|
public void addDimension(final String dimensionKey, final CompoundTag dimension) {
|
||||||
|
@ -18,10 +18,8 @@
|
|||||||
package com.viaversion.viabackwards.protocol.protocol1_19_4to1_20.data;
|
package com.viaversion.viabackwards.protocol.protocol1_19_4to1_20.data;
|
||||||
|
|
||||||
import com.viaversion.viabackwards.api.data.VBMappingDataLoader;
|
import com.viaversion.viabackwards.api.data.VBMappingDataLoader;
|
||||||
import com.viaversion.viaversion.libs.opennbt.NBTIO;
|
|
||||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
import com.viaversion.viaversion.libs.opennbt.tag.builtin.CompoundTag;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20to1_19_4.Protocol1_20To1_19_4;
|
import com.viaversion.viaversion.protocols.protocol1_20to1_19_4.Protocol1_20To1_19_4;
|
||||||
import java.io.IOException;
|
|
||||||
|
|
||||||
public class BackwardsMappings extends com.viaversion.viabackwards.api.data.BackwardsMappings {
|
public class BackwardsMappings extends com.viaversion.viabackwards.api.data.BackwardsMappings {
|
||||||
|
|
||||||
@ -35,14 +33,10 @@ public class BackwardsMappings extends com.viaversion.viabackwards.api.data.Back
|
|||||||
protected void loadExtras(CompoundTag data) {
|
protected void loadExtras(CompoundTag data) {
|
||||||
super.loadExtras(data);
|
super.loadExtras(data);
|
||||||
|
|
||||||
try {
|
trimPatternRegistry = VBMappingDataLoader.loadNBT("trim_pattern-1.19.4.nbt");
|
||||||
trimPatternRegistry = NBTIO.readTag(VBMappingDataLoader.getResource("trim_pattern-1.19.4.nbt"));
|
|
||||||
} catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public CompoundTag getTrimPatternRegistry() {
|
public CompoundTag getTrimPatternRegistry() {
|
||||||
return trimPatternRegistry;
|
return trimPatternRegistry.copy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ public final class EntityPackets1_20 extends EntityRewriter<ClientboundPackets1_
|
|||||||
if (registry.contains("minecraft:trim_pattern")) {
|
if (registry.contains("minecraft:trim_pattern")) {
|
||||||
values = ((CompoundTag) registry.get("minecraft:trim_pattern")).get("value");
|
values = ((CompoundTag) registry.get("minecraft:trim_pattern")).get("value");
|
||||||
} else {
|
} else {
|
||||||
final CompoundTag trimPatternRegistry = Protocol1_19_4To1_20.MAPPINGS.getTrimPatternRegistry().clone();
|
final CompoundTag trimPatternRegistry = Protocol1_19_4To1_20.MAPPINGS.getTrimPatternRegistry().copy();
|
||||||
registry.put("minecraft:trim_pattern", trimPatternRegistry);
|
registry.put("minecraft:trim_pattern", trimPatternRegistry);
|
||||||
values = trimPatternRegistry.get("value");
|
values = trimPatternRegistry.get("value");
|
||||||
}
|
}
|
||||||
|
@ -112,7 +112,7 @@ public final class Protocol1_19To1_19_1 extends BackwardsProtocol<ClientboundPac
|
|||||||
|
|
||||||
// Replace with 1.19 chat types
|
// Replace with 1.19 chat types
|
||||||
// Ensures that the client has a chat type for system message, with and without overlay
|
// Ensures that the client has a chat type for system message, with and without overlay
|
||||||
registry.put("minecraft:chat_type", EntityPackets.CHAT_REGISTRY.clone());
|
registry.put("minecraft:chat_type", EntityPackets.CHAT_REGISTRY.copy());
|
||||||
});
|
});
|
||||||
handler(entityRewriter.worldTrackerHandlerByKey());
|
handler(entityRewriter.worldTrackerHandlerByKey());
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,6 @@ rootProject.name = "viabackwards-parent"
|
|||||||
|
|
||||||
dependencyResolutionManagement {
|
dependencyResolutionManagement {
|
||||||
repositories {
|
repositories {
|
||||||
mavenLocal()
|
|
||||||
maven("https://repo.viaversion.com")
|
maven("https://repo.viaversion.com")
|
||||||
maven("https://repo.papermc.io/repository/maven-public/")
|
maven("https://repo.papermc.io/repository/maven-public/")
|
||||||
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
maven("https://oss.sonatype.org/content/repositories/snapshots/")
|
||||||
|
Loading…
Reference in New Issue
Block a user