some mappings and entity meta fixes for pre flattening versions

This commit is contained in:
Bixilon 2020-11-24 18:08:32 +01:00
parent 6759a149fc
commit ba62fe8316
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
3 changed files with 15 additions and 4 deletions

View File

@ -238,7 +238,11 @@ public class EntityMetaData {
}
public int getInt(EntityMetaDataFields field) {
return get(field);
Object value = get(field);
if (value instanceof Byte b) {
return b;
}
return (int) value;
}
public Short getShort(EntityMetaDataFields field) {

View File

@ -97,6 +97,13 @@ public class VersionMapping {
}
public Item getItemById(int versionId) {
if (!version.isFlattened()) {
return getItemByLegacy(versionId >>> 16, versionId & 0xFFFF);
}
return getItemByIdIgnoreFlattened(versionId);
}
private Item getItemByIdIgnoreFlattened(int versionId) {
if (parentMapping != null) {
Item item = parentMapping.getItemById(versionId);
if (item != null) {
@ -268,10 +275,10 @@ public class VersionMapping {
if (metaData > 0 && metaData < Short.MAX_VALUE) {
versionItemId |= metaData;
}
Item item = getItemById(versionItemId);
Item item = getItemByIdIgnoreFlattened(versionItemId);
if (item == null) {
// ignore meta data ?
return getItemById(itemId << 16);
return getItemByIdIgnoreFlattened(itemId << 16);
}
return item;
}

View File

@ -70,7 +70,7 @@ public class PacketEntityEquipment implements ClientboundPacket {
Log.protocol(String.format("[IN] Entity equipment changed (entityId=%d, slot=%s): AIR", entityId, set.getKey()));
return;
}
Log.protocol(String.format("[IN] Entity equipment changed (entityId=%d, slot=%s): %dx %s", entityId, set.getKey(), set.getValue().getItemCount(), set.getValue().getDisplayName()));
Log.protocol(String.format("[IN] Entity equipment changed (entityId=%d, slot=%s, item=%s): %dx %s", entityId, set.getKey(), set.getValue().getItem(), set.getValue().getItemCount(), set.getValue().getDisplayName()));
} else {
Log.protocol(String.format("[IN] Entity equipment changed (entityId=%d, slotCount=%d)", entityId, slots.size()));
}