Mirror von
https://github.com/ViaVersion/ViaBackwards.git
synchronisiert 2024-12-26 16:12:43 +01:00
Update VV usage
Dieser Commit ist enthalten in:
Ursprung
f7dad9b5d7
Commit
9f652ad24a
@ -76,7 +76,7 @@ public abstract class BackwardsItemRewriterBase<C extends ClientboundPacketType,
|
|||||||
|
|
||||||
protected void saveGenericTagList(CompoundTag tag, List<Tag> original, String name) {
|
protected void saveGenericTagList(CompoundTag tag, List<Tag> original, String name) {
|
||||||
// List tags cannot contain tags of different types, so we have to store them a bit more awkwardly as an indexed compound tag
|
// List tags cannot contain tags of different types, so we have to store them a bit more awkwardly as an indexed compound tag
|
||||||
String backupName = getNbtTagName() + "|" + name;
|
String backupName = nbtTagName(name);
|
||||||
if (!tag.contains(backupName)) {
|
if (!tag.contains(backupName)) {
|
||||||
CompoundTag output = new CompoundTag();
|
CompoundTag output = new CompoundTag();
|
||||||
for (int i = 0; i < original.size(); i++) {
|
for (int i = 0; i < original.size(); i++) {
|
||||||
@ -87,7 +87,7 @@ public abstract class BackwardsItemRewriterBase<C extends ClientboundPacketType,
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected List<Tag> removeGenericTagList(CompoundTag tag, String name) {
|
protected List<Tag> removeGenericTagList(CompoundTag tag, String name) {
|
||||||
String backupName = getNbtTagName() + "|" + name;
|
String backupName = nbtTagName(name);
|
||||||
CompoundTag data = tag.getCompoundTag(backupName);
|
CompoundTag data = tag.getCompoundTag(backupName);
|
||||||
if (data == null) {
|
if (data == null) {
|
||||||
return null;
|
return null;
|
||||||
|
@ -101,7 +101,7 @@ public class BackwardsStructuredItemRewriter<C extends ClientboundPacketType, S
|
|||||||
// Set custom name - only done if there is no original one
|
// Set custom name - only done if there is no original one
|
||||||
if (!data.contains(StructuredDataKey.CUSTOM_NAME)) {
|
if (!data.contains(StructuredDataKey.CUSTOM_NAME)) {
|
||||||
data.set(StructuredDataKey.CUSTOM_NAME, mappedItem.tagName());
|
data.set(StructuredDataKey.CUSTOM_NAME, mappedItem.tagName());
|
||||||
tag.putBoolean(getNbtTagName() + "|customName", true);
|
tag.putBoolean(nbtTagName("customName"), true);
|
||||||
}
|
}
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
@ -162,7 +162,7 @@ public class BackwardsStructuredItemRewriter<C extends ClientboundPacketType, S
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove custom name
|
// Remove custom name
|
||||||
if (customData.value().remove(getNbtTagName() + "|customName") != null) {
|
if (customData.value().remove(nbtTagName("customName")) != null) {
|
||||||
data.remove(StructuredDataKey.CUSTOM_NAME);
|
data.remove(StructuredDataKey.CUSTOM_NAME);
|
||||||
} else {
|
} else {
|
||||||
final Tag name = removeBackupTag(customData.value(), "Name");
|
final Tag name = removeBackupTag(customData.value(), "Name");
|
||||||
@ -173,13 +173,13 @@ public class BackwardsStructuredItemRewriter<C extends ClientboundPacketType, S
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void saveTag(CompoundTag customData, Tag tag, String name) {
|
protected void saveTag(CompoundTag customData, Tag tag, String name) {
|
||||||
String backupName = getNbtTagName() + "|o" + name;
|
String backupName = nbtTagName(name);
|
||||||
if (!customData.contains(backupName)) {
|
if (!customData.contains(backupName)) {
|
||||||
customData.put(backupName, tag);
|
customData.put(backupName, tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected @Nullable Tag removeBackupTag(CompoundTag customData, String tagName) {
|
protected @Nullable Tag removeBackupTag(CompoundTag customData, String tagName) {
|
||||||
return customData.remove(getNbtTagName() + "|o" + tagName);
|
return customData.remove(nbtTagName(tagName));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -60,10 +60,10 @@ public class StructuredEnchantmentRewriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
final CompoundTag tag = customData.value();
|
final CompoundTag tag = customData.value();
|
||||||
if (tag.contains(itemRewriter.getNbtTagName() + "|enchantments")) {
|
if (tag.contains(itemRewriter.nbtTagName("enchantments"))) {
|
||||||
rewriteEnchantmentsToServer(data, tag, StructuredDataKey.ENCHANTMENTS, false);
|
rewriteEnchantmentsToServer(data, tag, StructuredDataKey.ENCHANTMENTS, false);
|
||||||
}
|
}
|
||||||
if (tag.contains(itemRewriter.getNbtTagName() + "|stored_enchantments")) {
|
if (tag.contains(itemRewriter.nbtTagName("stored_enchantments"))) {
|
||||||
rewriteEnchantmentsToServer(data, tag, StructuredDataKey.STORED_ENCHANTMENTS, true);
|
rewriteEnchantmentsToServer(data, tag, StructuredDataKey.STORED_ENCHANTMENTS, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -121,9 +121,9 @@ public class StructuredEnchantmentRewriter {
|
|||||||
if (!storedEnchant && enchantments.size() == 0) {
|
if (!storedEnchant && enchantments.size() == 0) {
|
||||||
final StructuredData<Boolean> glintOverride = data.getNonEmpty(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE);
|
final StructuredData<Boolean> glintOverride = data.getNonEmpty(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE);
|
||||||
if (glintOverride != null) {
|
if (glintOverride != null) {
|
||||||
tag.putBoolean(itemRewriter.getNbtTagName() + "|glint", glintOverride.value());
|
tag.putBoolean(itemRewriter.nbtTagName("glint"), glintOverride.value());
|
||||||
} else {
|
} else {
|
||||||
tag.putBoolean(itemRewriter.getNbtTagName() + "|noglint", true);
|
tag.putBoolean(itemRewriter.nbtTagName("noglint"), true);
|
||||||
}
|
}
|
||||||
data.set(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE, true);
|
data.set(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE, true);
|
||||||
}
|
}
|
||||||
@ -135,11 +135,11 @@ public class StructuredEnchantmentRewriter {
|
|||||||
itemRewriter.saveGenericTagList(tag, loreList, "lore");
|
itemRewriter.saveGenericTagList(tag, loreList, "lore");
|
||||||
loreToAdd.addAll(loreList);
|
loreToAdd.addAll(loreList);
|
||||||
} else {
|
} else {
|
||||||
tag.putBoolean(itemRewriter.getNbtTagName() + "|nolore", true);
|
tag.putBoolean(itemRewriter.nbtTagName("nolore"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enchantments.showInTooltip()) {
|
if (enchantments.showInTooltip()) {
|
||||||
tag.putBoolean(itemRewriter.getNbtTagName() + "|show_" + key.identifier(), true);
|
tag.putBoolean(itemRewriter.nbtTagName("show_" + key.identifier()), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
data.set(StructuredDataKey.LORE, loreToAdd.toArray(new Tag[0]));
|
data.set(StructuredDataKey.LORE, loreToAdd.toArray(new Tag[0]));
|
||||||
@ -162,21 +162,21 @@ public class StructuredEnchantmentRewriter {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Tag glintTag = tag.remove(itemRewriter.getNbtTagName() + "|glint");
|
final Tag glintTag = tag.remove(itemRewriter.nbtTagName("glint"));
|
||||||
if (glintTag instanceof ByteTag) {
|
if (glintTag instanceof ByteTag) {
|
||||||
data.set(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE, ((NumberTag) glintTag).asBoolean());
|
data.set(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE, ((NumberTag) glintTag).asBoolean());
|
||||||
} else if (tag.remove(itemRewriter.getNbtTagName() + "|noglint") != null) {
|
} else if (tag.remove(itemRewriter.nbtTagName("noglint")) != null) {
|
||||||
data.remove(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE);
|
data.remove(StructuredDataKey.ENCHANTMENT_GLINT_OVERRIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Tag> lore = itemRewriter.removeGenericTagList(tag, "lore");
|
final List<Tag> lore = itemRewriter.removeGenericTagList(tag, "lore");
|
||||||
if (lore != null) {
|
if (lore != null) {
|
||||||
data.set(StructuredDataKey.LORE, lore.toArray(new Tag[0]));
|
data.set(StructuredDataKey.LORE, lore.toArray(new Tag[0]));
|
||||||
} else if (tag.remove(itemRewriter.getNbtTagName() + "|nolore") != null) {
|
} else if (tag.remove(itemRewriter.nbtTagName("nolore")) != null) {
|
||||||
data.remove(StructuredDataKey.LORE);
|
data.remove(StructuredDataKey.LORE);
|
||||||
}
|
}
|
||||||
|
|
||||||
final Enchantments enchantments = new Enchantments(tag.remove(itemRewriter.getNbtTagName() + "|show_" + key.identifier()) != null);
|
final Enchantments enchantments = new Enchantments(tag.remove(itemRewriter.nbtTagName("show_" + key.identifier())) != null);
|
||||||
for (final CompoundTag enchantment : enchantmentsTag) {
|
for (final CompoundTag enchantment : enchantmentsTag) {
|
||||||
enchantments.add(enchantment.getInt("id"), enchantment.getInt("lvl"));
|
enchantments.add(enchantment.getInt("id"), enchantment.getInt("lvl"));
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,6 @@ public final class Protocol1_20_3To1_20_5 extends BackwardsProtocol<ClientboundP
|
|||||||
protected void registerPackets() {
|
protected void registerPackets() {
|
||||||
// TODO Trim storage in registry sending
|
// TODO Trim storage in registry sending
|
||||||
// TODO also for banners?
|
// TODO also for banners?
|
||||||
// TODO Update translation mappings once before release
|
|
||||||
super.registerPackets();
|
super.registerPackets();
|
||||||
|
|
||||||
final TagRewriter<ClientboundPacket1_20_5> tagRewriter = new TagRewriter<>(this);
|
final TagRewriter<ClientboundPacket1_20_5> tagRewriter = new TagRewriter<>(this);
|
||||||
|
@ -18,8 +18,6 @@
|
|||||||
package com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.rewriter;
|
package com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.rewriter;
|
||||||
|
|
||||||
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
|
import com.viaversion.viabackwards.api.rewriters.BackwardsStructuredItemRewriter;
|
||||||
import com.viaversion.viabackwards.api.rewriters.EnchantmentRewriter;
|
|
||||||
import com.viaversion.viabackwards.api.rewriters.StructuredEnchantmentRewriter;
|
|
||||||
import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.Protocol1_20_3To1_20_5;
|
import com.viaversion.viabackwards.protocol.protocol1_20_3to1_20_5.Protocol1_20_3To1_20_5;
|
||||||
import com.viaversion.viaversion.api.Via;
|
import com.viaversion.viaversion.api.Via;
|
||||||
import com.viaversion.viaversion.api.minecraft.Particle;
|
import com.viaversion.viaversion.api.minecraft.Particle;
|
||||||
@ -34,12 +32,14 @@ import com.viaversion.viaversion.protocols.protocol1_20_3to1_20_2.rewriter.Recip
|
|||||||
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.Protocol1_20_5To1_20_3;
|
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.Protocol1_20_5To1_20_3;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPacket1_20_5;
|
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPacket1_20_5;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPackets1_20_5;
|
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.packet.ClientboundPackets1_20_5;
|
||||||
|
import com.viaversion.viaversion.protocols.protocol1_20_5to1_20_3.rewriter.StructuredDataConverter;
|
||||||
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
||||||
import com.viaversion.viaversion.util.Key;
|
import com.viaversion.viaversion.util.Key;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
import org.checkerframework.checker.nullness.qual.Nullable;
|
||||||
|
|
||||||
public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItemRewriter<ClientboundPacket1_20_5, ServerboundPacket1_20_3, Protocol1_20_3To1_20_5> {
|
public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItemRewriter<ClientboundPacket1_20_5, ServerboundPacket1_20_3, Protocol1_20_3To1_20_5> {
|
||||||
|
|
||||||
|
private static final StructuredDataConverter DATA_CONVERTER = new StructuredDataConverter(true);
|
||||||
private final Protocol1_20_5To1_20_3 vvProtocol = Via.getManager().getProtocolManager().getProtocol(Protocol1_20_5To1_20_3.class);
|
private final Protocol1_20_5To1_20_3 vvProtocol = Via.getManager().getProtocolManager().getProtocol(Protocol1_20_5To1_20_3.class);
|
||||||
|
|
||||||
public BlockItemPacketRewriter1_20_5(final Protocol1_20_3To1_20_5 protocol) {
|
public BlockItemPacketRewriter1_20_5(final Protocol1_20_3To1_20_5 protocol) {
|
||||||
@ -161,7 +161,7 @@ public final class BlockItemPacketRewriter1_20_5 extends BackwardsStructuredItem
|
|||||||
if (item == null) return null;
|
if (item == null) return null;
|
||||||
|
|
||||||
super.handleItemToClient(item);
|
super.handleItemToClient(item);
|
||||||
return vvProtocol.getItemRewriter().toOldItem(item);
|
return vvProtocol.getItemRewriter().toOldItem(item, DATA_CONVERTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -40,7 +40,7 @@ import com.viaversion.viaversion.protocols.protocol1_19_4to1_19_3.ServerboundPac
|
|||||||
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundPackets1_20_2;
|
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ClientboundPackets1_20_2;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundPackets1_20_2;
|
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.packet.ServerboundPackets1_20_2;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.rewriter.RecipeRewriter1_20_2;
|
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.rewriter.RecipeRewriter1_20_2;
|
||||||
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.util.PotionEffects;
|
import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.util.PotionEffects1_20_2;
|
||||||
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
import com.viaversion.viaversion.rewriter.BlockRewriter;
|
||||||
import com.viaversion.viaversion.util.Key;
|
import com.viaversion.viaversion.util.Key;
|
||||||
import com.viaversion.viaversion.util.MathUtil;
|
import com.viaversion.viaversion.util.MathUtil;
|
||||||
@ -402,13 +402,13 @@ public final class BlockItemPacketRewriter1_20_2 extends BackwardsItemRewriter<C
|
|||||||
final Tag primaryEffect = tag.remove("primary_effect");
|
final Tag primaryEffect = tag.remove("primary_effect");
|
||||||
if (primaryEffect instanceof StringTag) {
|
if (primaryEffect instanceof StringTag) {
|
||||||
final String effectKey = Key.stripMinecraftNamespace(((StringTag) primaryEffect).getValue());
|
final String effectKey = Key.stripMinecraftNamespace(((StringTag) primaryEffect).getValue());
|
||||||
tag.putInt("Primary", PotionEffects.keyToId(effectKey));
|
tag.putInt("Primary", PotionEffects1_20_2.keyToId(effectKey) + 1); // Empty effect at 0
|
||||||
}
|
}
|
||||||
|
|
||||||
final Tag secondaryEffect = tag.remove("secondary_effect");
|
final Tag secondaryEffect = tag.remove("secondary_effect");
|
||||||
if (secondaryEffect instanceof StringTag) {
|
if (secondaryEffect instanceof StringTag) {
|
||||||
final String effectKey = Key.stripMinecraftNamespace(((StringTag) secondaryEffect).getValue());
|
final String effectKey = Key.stripMinecraftNamespace(((StringTag) secondaryEffect).getValue());
|
||||||
tag.putInt("Secondary", PotionEffects.keyToId(effectKey));
|
tag.putInt("Secondary", PotionEffects1_20_2.keyToId(effectKey) + 1); // Empty effect at 0
|
||||||
}
|
}
|
||||||
return tag;
|
return tag;
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren