3
0
Mirror von https://github.com/ViaVersion/ViaVersion.git synchronisiert 2024-12-27 00:22:51 +01:00

Fix block and item rewriting

Dieser Commit ist enthalten in:
creeper123123321 2018-03-20 13:46:26 -03:00
Ursprung f56971e5ac
Commit 9fe187c049
3 geänderte Dateien mit 15 neuen und 17 gelöschten Zeilen

Datei anzeigen

@ -198,7 +198,7 @@ public class InventoryPackets {
public static void toClient(Item item) { public static void toClient(Item item) {
if (item == null) return; if (item == null) return;
int rawId = (item.getId() << 4 | item.getData() & 0xF); int rawId = (item.getId() << 16 | item.getData() & 0xFFFF);
int originalId = rawId; int originalId = rawId;
if (!MappingData.oldToNewItems.containsKey(rawId)) { if (!MappingData.oldToNewItems.containsKey(rawId)) {
if (MappingData.oldToNewItems.containsKey(item.getId() << 4)) { if (MappingData.oldToNewItems.containsKey(item.getId() << 4)) {
@ -219,32 +219,29 @@ public class InventoryPackets {
public static void toServer(Item item) { public static void toServer(Item item) {
if (item == null) return; if (item == null) return;
int rawId = -1;
if (item.getTag() != null) { if (item.getTag() != null) {
CompoundTag tag = item.getTag(); CompoundTag tag = item.getTag();
// Check for valid tag // Check for valid tag
if (tag.contains(NBT_TAG_NAME)) { if (tag.contains(NBT_TAG_NAME)) {
if (tag.get(NBT_TAG_NAME) instanceof IntTag) { if (tag.get(NBT_TAG_NAME) instanceof IntTag) {
rawId = (int) tag.get(NBT_TAG_NAME).getValue(); int rawId = (int) tag.get(NBT_TAG_NAME).getValue();
// Remove the tag // Remove the tag
tag.remove(NBT_TAG_NAME); tag.remove(NBT_TAG_NAME);
item.setId((short) (rawId >> 16));
item.setData((short) (rawId & 0xFFFF));
return;
} }
} }
} }
if (rawId == -1){
int itemID = item.getId(); int itemID = item.getId();
for (Map.Entry<Integer,Integer> entry : MappingData.oldToNewItems.entrySet()){ for (Map.Entry<Integer,Integer> entry : MappingData.oldToNewItems.entrySet()){
if (entry.getValue() == itemID){ if (entry.getValue() == itemID){
rawId = entry.getKey(); int rawId = entry.getKey();
break;
}
}
}
if (rawId != -1) {
item.setId((short) (rawId >> 4)); item.setId((short) (rawId >> 4));
item.setData((short) (rawId & 0xF)); item.setData((short) (rawId & 0xF));
} else { return;
}
}
System.out.println("FAILED TO GET 1.12 ITEM FOR " + item.getId()); // TODO: Make this nicer etc, perhaps fix issues with mapping :T System.out.println("FAILED TO GET 1.12 ITEM FOR " + item.getId()); // TODO: Make this nicer etc, perhaps fix issues with mapping :T
} }
} }
}

Datei anzeigen

@ -179,7 +179,7 @@ public class WorldPackets {
if (storage.contains(position)) if (storage.contains(position))
storage.get(position).setReplacement(newId); storage.get(position).setReplacement(newId);
chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y, z & 0xF, newId); chunk.getSections()[y >> 4].setFlatBlock(x & 0xF, y & 0xF, z & 0xF, newId);
} }
} }
} }

Datei anzeigen

@ -27,6 +27,7 @@ public class SkullHandler implements BlockEntityProvider.BlockEntityHandler {
id += (byte) tag.get("SkullType").getValue() * 20 + (byte) tag.get("Rot").getValue(); id += (byte) tag.get("SkullType").getValue() * 20 + (byte) tag.get("Rot").getValue();
} else { } else {
System.out.println("Why does this block have the skull block entity? :(" + tag); System.out.println("Why does this block have the skull block entity? :(" + tag);
return -1;
} }
return id; return id;