Fix custom enchantments

This commit is contained in:
creeper123123321 2018-07-20 15:47:05 -03:00
parent a2f5120069
commit 32161333dd
No known key found for this signature in database
GPG Key ID: 0AC57D54786721D1

View File

@ -315,11 +315,12 @@ public class InventoryPackets {
for (Tag enchEntry : ench) { for (Tag enchEntry : ench) {
if (enchEntry instanceof CompoundTag) { if (enchEntry instanceof CompoundTag) {
CompoundTag enchantmentEntry = new CompoundTag(""); CompoundTag enchantmentEntry = new CompoundTag("");
enchantmentEntry.put(new StringTag("id", short oldId = (short) ((CompoundTag) enchEntry).get("id").getValue();
MappingData.oldEnchantmentsIds.get( String newId = MappingData.oldEnchantmentsIds.get(oldId);
(short) ((CompoundTag) enchEntry).get("id").getValue() if (newId == null){
) newId = "viaversion:legacy/"+oldId;
)); }
enchantmentEntry.put(new StringTag("id", newId));
enchantmentEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchEntry).get("lvl").getValue())); enchantmentEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchEntry).get("lvl").getValue()));
enchantments.add(enchantmentEntry); enchantments.add(enchantmentEntry);
} }
@ -333,10 +334,13 @@ public class InventoryPackets {
for (Tag enchEntry : storedEnch) { for (Tag enchEntry : storedEnch) {
if (enchEntry instanceof CompoundTag) { if (enchEntry instanceof CompoundTag) {
CompoundTag enchantmentEntry = new CompoundTag(""); CompoundTag enchantmentEntry = new CompoundTag("");
short oldId = (short) ((CompoundTag) enchEntry).get("id").getValue();
String newId = MappingData.oldEnchantmentsIds.get(oldId);
if (newId == null) {
newId = "viaversion:legacy/"+oldId;
}
enchantmentEntry.put(new StringTag("id", enchantmentEntry.put(new StringTag("id",
MappingData.oldEnchantmentsIds.get( newId
(short) ((CompoundTag) enchEntry).get("id").getValue()
)
)); ));
enchantmentEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchEntry).get("lvl").getValue())); enchantmentEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchEntry).get("lvl").getValue()));
newStoredEnch.add(enchantmentEntry); newStoredEnch.add(enchantmentEntry);
@ -495,12 +499,15 @@ public class InventoryPackets {
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();
Short oldId = MappingData.oldEnchantmentsIds.inverse().get(newId);
if (oldId == null && newId.startsWith("viaversion:legacy/")){
oldId = Short.valueOf(newId.substring(18));
}
enchEntry.put( enchEntry.put(
new ShortTag( new ShortTag(
"id", "id",
MappingData.oldEnchantmentsIds.inverse().get( oldId
(String) ((CompoundTag) enchantmentEntry).get("id").getValue()
)
) )
); );
enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue())); enchEntry.put(new ShortTag("lvl", (Short) ((CompoundTag) enchantmentEntry).get("lvl").getValue()));