mirror of
https://github.com/ViaVersion/ViaLegacy.git
synced 2024-12-31 18:08:06 +01:00
Added 1.6 and 1.7 non-existent item remapping
This commit is contained in:
parent
15aa16e513
commit
13688f446d
@ -25,8 +25,6 @@ import com.viaversion.viaversion.api.protocol.remapper.PacketRemapper;
|
||||
import com.viaversion.viaversion.api.rewriter.ItemRewriter;
|
||||
import com.viaversion.viaversion.api.rewriter.RewriterBase;
|
||||
import com.viaversion.viaversion.api.type.Type;
|
||||
import com.viaversion.viaversion.libs.fastutil.ints.IntArrayList;
|
||||
import com.viaversion.viaversion.libs.fastutil.ints.IntList;
|
||||
import com.viaversion.viaversion.libs.fastutil.objects.ObjectArrayList;
|
||||
import com.viaversion.viaversion.libs.fastutil.objects.ObjectList;
|
||||
import com.viaversion.viaversion.libs.opennbt.tag.builtin.*;
|
||||
@ -36,7 +34,7 @@ import java.util.List;
|
||||
public abstract class LegacyItemRewriter<P extends Protocol> extends RewriterBase<P> implements ItemRewriter<P> {
|
||||
|
||||
private final ObjectList<RewriteEntry> rewriteEntries = new ObjectArrayList<>();
|
||||
private final IntList nonExistentItems = new IntArrayList();
|
||||
private final ObjectList<NonExistentEntry> nonExistentItems = new ObjectArrayList<>();
|
||||
protected final String tagName;
|
||||
protected final String protocolName;
|
||||
|
||||
@ -58,15 +56,25 @@ public abstract class LegacyItemRewriter<P extends Protocol> extends RewriterBas
|
||||
this.rewriteEntries.add(new RewriteEntry(oldItemId, (short) oldItemMeta, newItemId, (short) newItemMeta, newItemName));
|
||||
}
|
||||
|
||||
protected void addNonExistentItem(final int itemId, final int itemMeta) {
|
||||
this.nonExistentItems.add(new NonExistentEntry(itemId, (short) itemMeta));
|
||||
}
|
||||
|
||||
protected void addNonExistentItem(final int itemId, final int startItemMeta, final int endItemMeta) {
|
||||
for (int i = startItemMeta; i <= endItemMeta; i++) {
|
||||
this.nonExistentItems.add(new NonExistentEntry(itemId, (short) i));
|
||||
}
|
||||
}
|
||||
|
||||
protected void addNonExistentItems(final int... itemIds) {
|
||||
for (int itemId : itemIds) {
|
||||
this.nonExistentItems.add(itemId);
|
||||
this.nonExistentItems.add(new NonExistentEntry(itemId, (short) -1));
|
||||
}
|
||||
}
|
||||
|
||||
protected void addNonExistentItemRange(final int startItemId, final int endItemId) {
|
||||
for (int i = startItemId; i <= endItemId; i++) {
|
||||
this.nonExistentItems.add(i);
|
||||
this.nonExistentItems.add(new NonExistentEntry(i, (short) -1));
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,10 +111,12 @@ public abstract class LegacyItemRewriter<P extends Protocol> extends RewriterBas
|
||||
public Item handleItemToServer(final Item item) {
|
||||
if (item == null) return null;
|
||||
|
||||
if (this.nonExistentItems.contains(item.identifier())) {
|
||||
item.setIdentifier(1);
|
||||
item.setData((short) 0);
|
||||
return item;
|
||||
for (NonExistentEntry nonExistentEntry : this.nonExistentItems) {
|
||||
if (nonExistentEntry.rewrites(item)) {
|
||||
item.setIdentifier(1);
|
||||
item.setData((short) 0);
|
||||
return item;
|
||||
}
|
||||
}
|
||||
|
||||
this.setRemappedTagWrite(item);
|
||||
@ -193,7 +203,7 @@ public abstract class LegacyItemRewriter<P extends Protocol> extends RewriterBas
|
||||
}
|
||||
|
||||
|
||||
public static class RewriteEntry {
|
||||
private static class RewriteEntry {
|
||||
|
||||
private final int oldItemID;
|
||||
private final short oldItemMeta;
|
||||
@ -223,4 +233,20 @@ public abstract class LegacyItemRewriter<P extends Protocol> extends RewriterBas
|
||||
|
||||
}
|
||||
|
||||
private static class NonExistentEntry {
|
||||
|
||||
private final int itemId;
|
||||
private final short itemMeta;
|
||||
|
||||
public NonExistentEntry(final int itemId, final short itemMeta) {
|
||||
this.itemId = itemId;
|
||||
this.itemMeta = itemMeta;
|
||||
}
|
||||
|
||||
public boolean rewrites(final Item item) {
|
||||
return item.identifier() == this.itemId && (this.itemMeta == -1 || this.itemMeta == item.data());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,33 +26,47 @@ public class ItemRewriter extends LegacyItemRewriter<Protocol1_7_2_5to1_6_4> {
|
||||
|
||||
public ItemRewriter(final Protocol1_7_2_5to1_6_4 protocol) {
|
||||
super(protocol, "1.6.4");
|
||||
addRemappedItem(26, 355, "Bed Block");
|
||||
addRemappedItem(34, 33, "Piston Head");
|
||||
addRemappedItem(36, 33, "Piston Moving");
|
||||
addRemappedItem(55, 331, "Redstone Wire");
|
||||
addRemappedItem(59, 295, "Wheat Crops");
|
||||
addRemappedItem(63, 323, "Standing Sign");
|
||||
addRemappedItem(64, 324, "Oak Door Block");
|
||||
addRemappedItem(68, 323, "Wall Sign");
|
||||
addRemappedItem(71, 330, "Iron Door Block");
|
||||
addRemappedItem(74, 73, "Lit Redstone Ore");
|
||||
addRemappedItem(75, 76, "Unlit Redstone Torch");
|
||||
addRemappedItem(83, 338, "Sugar Cane Block");
|
||||
addRemappedItem(92, 354, "Cake Block");
|
||||
addRemappedItem(93, 356, "Unlit Redstone Repeater");
|
||||
addRemappedItem(94, 356, "Lit Redstone Repeater");
|
||||
addRemappedItem(95, 146, "Locked Chest");
|
||||
addRemappedItem(104, 361, "Pumpkin Stem");
|
||||
addRemappedItem(105, 362, "Melon Stem");
|
||||
addRemappedItem(115, 372, "Nether Wart Block");
|
||||
addRemappedItem(117, 379, "Brewing Stand Block");
|
||||
addRemappedItem(118, 380, "Cauldron Block");
|
||||
addRemappedItem(124, 123, "Lit Redstone Lamp");
|
||||
addRemappedItem(132, 287, "Tripwire");
|
||||
addRemappedItem(140, 390, "Flower Pot");
|
||||
addRemappedItem(144, 397, "Undefined Mob Head");
|
||||
addRemappedItem(149, 404, "Unlit Redstone Comparator");
|
||||
addRemappedItem(150, 404, "Lit Redstone Comparator");
|
||||
|
||||
this.addRemappedItem(26, 355, "Bed Block");
|
||||
this.addRemappedItem(34, 33, "Piston Head");
|
||||
this.addRemappedItem(36, 33, "Piston Moving");
|
||||
this.addRemappedItem(55, 331, "Redstone Wire");
|
||||
this.addRemappedItem(59, 295, "Wheat Crops");
|
||||
this.addRemappedItem(63, 323, "Standing Sign");
|
||||
this.addRemappedItem(64, 324, "Oak Door Block");
|
||||
this.addRemappedItem(68, 323, "Wall Sign");
|
||||
this.addRemappedItem(71, 330, "Iron Door Block");
|
||||
this.addRemappedItem(74, 73, "Lit Redstone Ore");
|
||||
this.addRemappedItem(75, 76, "Unlit Redstone Torch");
|
||||
this.addRemappedItem(83, 338, "Sugar Cane Block");
|
||||
this.addRemappedItem(92, 354, "Cake Block");
|
||||
this.addRemappedItem(93, 356, "Unlit Redstone Repeater");
|
||||
this.addRemappedItem(94, 356, "Lit Redstone Repeater");
|
||||
this.addRemappedItem(95, 146, "Locked Chest");
|
||||
this.addRemappedItem(104, 361, "Pumpkin Stem");
|
||||
this.addRemappedItem(105, 362, "Melon Stem");
|
||||
this.addRemappedItem(115, 372, "Nether Wart Block");
|
||||
this.addRemappedItem(117, 379, "Brewing Stand Block");
|
||||
this.addRemappedItem(118, 380, "Cauldron Block");
|
||||
this.addRemappedItem(124, 123, "Lit Redstone Lamp");
|
||||
this.addRemappedItem(132, 287, "Tripwire");
|
||||
this.addRemappedItem(140, 390, "Flower Pot");
|
||||
this.addRemappedItem(144, 397, "Undefined Mob Head");
|
||||
this.addRemappedItem(149, 404, "Unlit Redstone Comparator");
|
||||
this.addRemappedItem(150, 404, "Lit Redstone Comparator");
|
||||
|
||||
this.addNonExistentItems(3, 2);
|
||||
this.addNonExistentItem(5, 4, 5);
|
||||
this.addNonExistentItem(6, 4, 5);
|
||||
this.addNonExistentItems(12, 1);
|
||||
this.addNonExistentItem(38, 1, 8);
|
||||
this.addNonExistentItems(95);
|
||||
this.addNonExistentItem(97, 3, 5);
|
||||
this.addNonExistentItem(126, 4, 5);
|
||||
this.addNonExistentItemRange(160, 164);
|
||||
this.addNonExistentItemRange(174, 175);
|
||||
this.addNonExistentItem(349, 1, 3);
|
||||
this.addNonExistentItemRange(350, 1);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -35,18 +35,31 @@ public class ItemRewriter extends LegacyItemRewriter<Protocol1_8to1_7_6_10> {
|
||||
|
||||
public ItemRewriter(final Protocol1_8to1_7_6_10 protocol) {
|
||||
super(protocol, "1.7");
|
||||
addRemappedItem(8, 326, "Water Block");
|
||||
addRemappedItem(9, 326, "Stationary Water Block");
|
||||
addRemappedItem(10, 327, "Lava Block");
|
||||
addRemappedItem(11, 327, "Stationary Lava Block");
|
||||
addRemappedItem(51, 385, "Fire");
|
||||
addRemappedItem(90, 399, "Nether portal");
|
||||
addRemappedItem(119, 381, "End portal");
|
||||
addRemappedItem(127, 351, 3, "Cocoa Block");
|
||||
addRemappedItem(141, 391, "Carrot Crops");
|
||||
addRemappedItem(142, 392, "Potato Crops");
|
||||
addRemappedItem(43, 44, "Double Stone Slab");
|
||||
addRemappedItem(125, 126, "Double Wood Slab");
|
||||
|
||||
this.addRemappedItem(8, 326, "Water Block");
|
||||
this.addRemappedItem(9, 326, "Stationary Water Block");
|
||||
this.addRemappedItem(10, 327, "Lava Block");
|
||||
this.addRemappedItem(11, 327, "Stationary Lava Block");
|
||||
this.addRemappedItem(51, 385, "Fire");
|
||||
this.addRemappedItem(90, 399, "Nether portal");
|
||||
this.addRemappedItem(119, 381, "End portal");
|
||||
this.addRemappedItem(127, 351, 3, "Cocoa Block");
|
||||
this.addRemappedItem(141, 391, "Carrot Crops");
|
||||
this.addRemappedItem(142, 392, "Potato Crops");
|
||||
this.addRemappedItem(43, 44, "Double Stone Slab");
|
||||
this.addRemappedItem(125, 126, "Double Wood Slab");
|
||||
|
||||
this.addNonExistentItem(1, 1, 6);
|
||||
this.addNonExistentItem(3, 1);
|
||||
this.addNonExistentItem(19, 1);
|
||||
this.addNonExistentItemRange(165, 169);
|
||||
this.addNonExistentItemRange(179, 192);
|
||||
this.addNonExistentItem(383, 67);
|
||||
this.addNonExistentItem(383, 68);
|
||||
this.addNonExistentItem(383, 101);
|
||||
this.addNonExistentItemRange(409, 416);
|
||||
this.addNonExistentItemRange(423, 425);
|
||||
this.addNonExistentItemRange(427, 431);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user