Mirror von
https://github.com/ViaVersion/ViaBackwards.git
synchronisiert 2024-12-27 00:22:53 +01:00
remove debug messages and fix enchantment rewrite
Dieser Commit ist enthalten in:
Ursprung
b15c55fb28
Commit
2d53b812ea
@ -38,9 +38,12 @@ import us.myles.ViaVersion.protocols.protocol1_9_3to1_9_1_2.storage.ClientWorld;
|
|||||||
import us.myles.viaversion.libs.opennbt.conversion.ConverterRegistry;
|
import us.myles.viaversion.libs.opennbt.conversion.ConverterRegistry;
|
||||||
import us.myles.viaversion.libs.opennbt.tag.builtin.*;
|
import us.myles.viaversion.libs.opennbt.tag.builtin.*;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13> {
|
public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13> {
|
||||||
|
|
||||||
private static String NBT_TAG_NAME;
|
private static String NBT_TAG_NAME;
|
||||||
|
private static Map<String, String> enchantmentMappings = new HashMap<>();
|
||||||
|
|
||||||
public static int toOldId(int oldId) {
|
public static int toOldId(int oldId) {
|
||||||
if (oldId < 0) {
|
if (oldId < 0) {
|
||||||
@ -57,7 +60,7 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void registerPackets(Protocol1_12_2To1_13 protocol) {
|
protected void registerPackets(Protocol1_12_2To1_13 protocol) {
|
||||||
NBT_TAG_NAME = "ViaVersion|" + protocol.getClass().getSimpleName();
|
NBT_TAG_NAME = "ViaBackwards|" + protocol.getClass().getSimpleName();
|
||||||
// Block Action
|
// Block Action
|
||||||
protocol.out(State.PLAY, 0x0A, 0x0A, new PacketRemapper() {
|
protocol.out(State.PLAY, 0x0A, 0x0A, new PacketRemapper() {
|
||||||
@Override
|
@Override
|
||||||
@ -509,6 +512,11 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
rewrite(466).repItem(new Item((short) 582, (byte) 1, (short) -1, getNamedTag("1.13 Scute")));
|
rewrite(466).repItem(new Item((short) 582, (byte) 1, (short) -1, getNamedTag("1.13 Scute")));
|
||||||
|
|
||||||
rewrite(781).repItem(new Item((short) 488, (byte) 1, (short) -1, getNamedTag("1.13 Trident")));
|
rewrite(781).repItem(new Item((short) 488, (byte) 1, (short) -1, getNamedTag("1.13 Trident")));
|
||||||
|
|
||||||
|
enchantmentMappings.put("minecraft:loyalty", "§r§7Loyalty");
|
||||||
|
enchantmentMappings.put("minecraft:impaling", "§r§7Impaling");
|
||||||
|
enchantmentMappings.put("minecraft:riptide", "§r§7Riptide");
|
||||||
|
enchantmentMappings.put("minecraft:channeling", "§r§7Channeling");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -522,9 +530,7 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
@Override
|
@Override
|
||||||
protected Item handleItemToClient(Item item) {
|
protected Item handleItemToClient(Item item) {
|
||||||
if (item == null) return null;
|
if (item == null) return null;
|
||||||
System.out.println("Input ID: " + item.getId());
|
|
||||||
item = super.handleItemToClient(item);
|
item = super.handleItemToClient(item);
|
||||||
System.out.println("Backwards ID: " + item.getId());
|
|
||||||
|
|
||||||
Integer rawId = null;
|
Integer rawId = null;
|
||||||
boolean gotRawIdFromTag = false;
|
boolean gotRawIdFromTag = false;
|
||||||
@ -625,51 +631,111 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
// ench is now Enchantments and now uses identifiers
|
// ench is now Enchantments and now uses identifiers
|
||||||
if (tag.get("Enchantments") instanceof ListTag) {
|
if (tag.get("Enchantments") instanceof ListTag) {
|
||||||
ListTag enchantments = tag.get("Enchantments");
|
ListTag enchantments = tag.get("Enchantments");
|
||||||
|
ListTag noMapped = new ListTag(NBT_TAG_NAME + "|Enchantments", CompoundTag.class);
|
||||||
ListTag ench = new ListTag("ench", CompoundTag.class);
|
ListTag ench = new ListTag("ench", CompoundTag.class);
|
||||||
|
List<Tag> lore = new ArrayList<>();
|
||||||
for (Tag enchantmentEntry : enchantments) {
|
for (Tag enchantmentEntry : enchantments) {
|
||||||
if (enchantmentEntry instanceof CompoundTag) {
|
if (enchantmentEntry instanceof CompoundTag) {
|
||||||
CompoundTag enchEntry = new CompoundTag("");
|
CompoundTag enchEntry = new CompoundTag("");
|
||||||
String newId = (String) ((CompoundTag) enchantmentEntry).get("id").getValue();
|
String newId = (String) ((CompoundTag) enchantmentEntry).get("id").getValue();
|
||||||
Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId);
|
if(enchantmentMappings.containsKey(newId)){
|
||||||
if (oldId == null && newId.startsWith("viaversion:legacy/")) {
|
lore.add(new StringTag("", enchantmentMappings.get(newId)));
|
||||||
oldId = Short.valueOf(newId.substring(18));
|
noMapped.add(enchantmentEntry);
|
||||||
|
}else{
|
||||||
|
Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId);
|
||||||
|
if (oldId == null && newId.startsWith("viaversion:legacy/")) {
|
||||||
|
oldId = Short.valueOf(newId.substring(18));
|
||||||
|
}
|
||||||
|
enchEntry.put(
|
||||||
|
new ShortTag(
|
||||||
|
"id",
|
||||||
|
oldId
|
||||||
|
)
|
||||||
|
);
|
||||||
|
enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));
|
||||||
|
enchantments.add(enchEntry);
|
||||||
}
|
}
|
||||||
enchEntry.put(
|
|
||||||
new ShortTag(
|
|
||||||
"id",
|
|
||||||
oldId
|
|
||||||
)
|
|
||||||
);
|
|
||||||
enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));
|
|
||||||
ench.add(enchEntry);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tag.remove("Enchantment");
|
tag.remove("Enchantment");
|
||||||
|
tag.put(noMapped);
|
||||||
tag.put(ench);
|
tag.put(ench);
|
||||||
|
|
||||||
|
if(!lore.isEmpty()){
|
||||||
|
CompoundTag display = tag.get("display");
|
||||||
|
if (display==null) {
|
||||||
|
tag.put(display = new CompoundTag("display"));
|
||||||
|
tag.put(new ByteTag(NBT_TAG_NAME + "|noDisplay"));
|
||||||
|
}
|
||||||
|
ListTag loreTag = display.get("Lore");
|
||||||
|
if (loreTag==null){
|
||||||
|
display.put(loreTag = new ListTag("Lore", StringTag.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
ListTag oldLore = new ListTag(NBT_TAG_NAME + "|OldLore", StringTag.class);
|
||||||
|
Iterator<Tag> iterator = lore.iterator();
|
||||||
|
while(iterator.hasNext()){
|
||||||
|
oldLore.add(iterator.next().clone());
|
||||||
|
}
|
||||||
|
display.put(oldLore);
|
||||||
|
|
||||||
|
lore.addAll(loreTag.getValue());
|
||||||
|
loreTag.setValue(lore);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (tag.get("StoredEnchantments") instanceof ListTag) {
|
if (tag.get("StoredEnchantments") instanceof ListTag) {
|
||||||
ListTag storedEnch = tag.get("StoredEnchantments");
|
ListTag storedEnch = tag.get("StoredEnchantments");
|
||||||
|
ListTag noMapped = new ListTag(NBT_TAG_NAME + "|StoredEnchantments", CompoundTag.class);
|
||||||
ListTag newStoredEnch = new ListTag("StoredEnchantments", CompoundTag.class);
|
ListTag newStoredEnch = new ListTag("StoredEnchantments", CompoundTag.class);
|
||||||
|
List<Tag> lore = new ArrayList<>();
|
||||||
for (Tag enchantmentEntry : storedEnch) {
|
for (Tag enchantmentEntry : storedEnch) {
|
||||||
if (enchantmentEntry instanceof CompoundTag) {
|
if (enchantmentEntry instanceof CompoundTag) {
|
||||||
CompoundTag enchEntry = new CompoundTag("");
|
CompoundTag enchEntry = new CompoundTag("");
|
||||||
String newId = (String) ((CompoundTag) enchantmentEntry).get("id").getValue();
|
String newId = (String) ((CompoundTag) enchantmentEntry).get("id").getValue();
|
||||||
Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId);
|
if(enchantmentMappings.containsKey(newId)){
|
||||||
if (oldId == null && newId.startsWith("viaversion:legacy/")) {
|
lore.add(new StringTag("", enchantmentMappings.get(newId)));
|
||||||
oldId = Short.valueOf(newId.substring(18));
|
noMapped.add(enchantmentEntry);
|
||||||
|
}else{
|
||||||
|
Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId);
|
||||||
|
if (oldId == null && newId.startsWith("viaversion:legacy/")) {
|
||||||
|
oldId = Short.valueOf(newId.substring(18));
|
||||||
|
}
|
||||||
|
enchEntry.put(
|
||||||
|
new ShortTag(
|
||||||
|
"id",
|
||||||
|
oldId
|
||||||
|
)
|
||||||
|
);
|
||||||
|
enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));
|
||||||
|
newStoredEnch.add(enchEntry);
|
||||||
}
|
}
|
||||||
enchEntry.put(
|
|
||||||
new ShortTag(
|
|
||||||
"id",
|
|
||||||
oldId
|
|
||||||
)
|
|
||||||
);
|
|
||||||
enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));
|
|
||||||
newStoredEnch.add(enchEntry);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tag.remove("StoredEnchantments");
|
tag.remove("StoredEnchantments");
|
||||||
|
tag.put(noMapped);
|
||||||
tag.put(newStoredEnch);
|
tag.put(newStoredEnch);
|
||||||
|
|
||||||
|
if(!lore.isEmpty()){
|
||||||
|
CompoundTag display = tag.get("display");
|
||||||
|
if (display==null) {
|
||||||
|
tag.put(display = new CompoundTag("display"));
|
||||||
|
tag.put(new ByteTag(NBT_TAG_NAME + "|noDisplay"));
|
||||||
|
}
|
||||||
|
ListTag loreTag = display.get("Lore");
|
||||||
|
if (loreTag==null){
|
||||||
|
display.put(loreTag = new ListTag("Lore", StringTag.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
ListTag oldLore = new ListTag(NBT_TAG_NAME + "|OldLore", StringTag.class);
|
||||||
|
Iterator<Tag> iterator = lore.iterator();
|
||||||
|
while(iterator.hasNext()){
|
||||||
|
oldLore.add(iterator.next().clone());
|
||||||
|
}
|
||||||
|
display.put(oldLore);
|
||||||
|
|
||||||
|
lore.addAll(loreTag.getValue());
|
||||||
|
loreTag.setValue(lore);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (tag.get(NBT_TAG_NAME + "|CanPlaceOn") instanceof ListTag) {
|
if (tag.get(NBT_TAG_NAME + "|CanPlaceOn") instanceof ListTag) {
|
||||||
tag.put(ConverterRegistry.convertToTag(
|
tag.put(ConverterRegistry.convertToTag(
|
||||||
@ -720,7 +786,6 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
tag.put(newCanDestroy);
|
tag.put(newCanDestroy);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("ViaVer Id: " + item.getId());
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -768,14 +833,31 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
// Display Name now uses JSON
|
// Display Name now uses JSON
|
||||||
if (tag.get("display") instanceof CompoundTag) {
|
if (tag.get("display") instanceof CompoundTag) {
|
||||||
CompoundTag display = tag.get("display");
|
CompoundTag display = tag.get("display");
|
||||||
if (display.get("Name") instanceof StringTag) {
|
if(tag.get(NBT_TAG_NAME + "|noDisplay") instanceof ByteTag){
|
||||||
StringTag name = display.get("Name");
|
tag.remove("display");
|
||||||
display.put(new StringTag(NBT_TAG_NAME + "|Name", name.getValue()));
|
tag.remove(NBT_TAG_NAME + "|noDisplay");
|
||||||
name.setValue(
|
}else{
|
||||||
ChatRewriter.legacyTextToJson(
|
if (display.get("Name") instanceof StringTag) {
|
||||||
name.getValue()
|
StringTag name = display.get("Name");
|
||||||
)
|
display.put(new StringTag(NBT_TAG_NAME + "|Name", name.getValue()));
|
||||||
);
|
name.setValue(
|
||||||
|
ChatRewriter.legacyTextToJson(
|
||||||
|
name.getValue()
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if(display.get(NBT_TAG_NAME + "|OldLore") instanceof ListTag){
|
||||||
|
ListTag loreTag = new ListTag("Lore", StringTag.class);
|
||||||
|
ListTag oldLore = display.get(NBT_TAG_NAME + "|OldLore");
|
||||||
|
Iterator<Tag> iterator = oldLore.iterator();
|
||||||
|
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
loreTag.add(iterator.next());
|
||||||
|
}
|
||||||
|
display.remove("Lore");
|
||||||
|
display.put(loreTag);
|
||||||
|
display.remove(NBT_TAG_NAME + "|OldLore");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ench is now Enchantments and now uses identifiers
|
// ench is now Enchantments and now uses identifiers
|
||||||
@ -795,6 +877,13 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
enchantments.add(enchantmentEntry);
|
enchantments.add(enchantmentEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(tag.get(NBT_TAG_NAME + "|Enchantments") instanceof ListTag){
|
||||||
|
ListTag noMapped = tag.get(NBT_TAG_NAME + "|Enchantments");
|
||||||
|
Iterator<Tag> iterator = noMapped.iterator();
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
enchantments.add(iterator.next());
|
||||||
|
}
|
||||||
|
}
|
||||||
tag.remove("ench");
|
tag.remove("ench");
|
||||||
tag.put(enchantments);
|
tag.put(enchantments);
|
||||||
}
|
}
|
||||||
@ -816,6 +905,13 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
newStoredEnch.add(enchantmentEntry);
|
newStoredEnch.add(enchantmentEntry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(tag.get(NBT_TAG_NAME + "|Enchantments") instanceof ListTag){
|
||||||
|
ListTag noMapped = tag.get(NBT_TAG_NAME + "|StoredEnchantments");
|
||||||
|
Iterator<Tag> iterator = noMapped.iterator();
|
||||||
|
while (iterator.hasNext()){
|
||||||
|
newStoredEnch.add(iterator.next());
|
||||||
|
}
|
||||||
|
}
|
||||||
tag.remove("StoredEnchantments");
|
tag.remove("StoredEnchantments");
|
||||||
tag.put(newStoredEnch);
|
tag.put(newStoredEnch);
|
||||||
}
|
}
|
||||||
@ -920,4 +1016,9 @@ public class BlockItemPackets1_13 extends BlockItemRewriter<Protocol1_12_2To1_13
|
|||||||
|| id == 442 // shield
|
|| id == 442 // shield
|
||||||
|| id == 443; // elytra
|
|| id == 443; // elytra
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void handleEnchantmentClient(Item item){
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren