Mirror von
https://github.com/ViaVersion/ViaVersion.git
synchronisiert 2024-12-26 00:00:28 +01:00
Correctly convert between ITEM -> FLAT_ITEM
Dieser Commit ist enthalten in:
Ursprung
bd9096ef6d
Commit
0a37031418
@ -17,10 +17,7 @@ public class FlatItemType extends BaseItemType {
|
|||||||
} else {
|
} else {
|
||||||
Item item = new Item();
|
Item item = new Item();
|
||||||
item.setId(id);
|
item.setId(id);
|
||||||
item.setAmount(buffer.readByte());
|
|
||||||
if (id != 0) {
|
|
||||||
item.setTag(Type.NBT.read(buffer));
|
item.setTag(Type.NBT.read(buffer));
|
||||||
}
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -32,9 +29,7 @@ public class FlatItemType extends BaseItemType {
|
|||||||
} else {
|
} else {
|
||||||
buffer.writeShort(object.getId());
|
buffer.writeShort(object.getId());
|
||||||
buffer.writeByte(object.getAmount());
|
buffer.writeByte(object.getAmount());
|
||||||
if (object.getId() != 0) {
|
|
||||||
Type.NBT.write(buffer, object.getTag());
|
Type.NBT.write(buffer, object.getTag());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
@ -27,7 +27,7 @@ public class InventoryPackets {
|
|||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.BYTE); // 0 - Window ID
|
map(Type.BYTE); // 0 - Window ID
|
||||||
map(Type.SHORT); // 1 - Slot ID
|
map(Type.SHORT); // 1 - Slot ID
|
||||||
map(Type.FLAT_ITEM); // 2 - Slot Value
|
map(Type.ITEM, Type.FLAT_ITEM); // 2 - Slot Value
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -44,7 +44,7 @@ public class InventoryPackets {
|
|||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.UNSIGNED_BYTE); // 0 - Window ID
|
map(Type.UNSIGNED_BYTE); // 0 - Window ID
|
||||||
map(Type.FLAT_ITEM_ARRAY); // 1 - Window Values
|
map(Type.ITEM_ARRAY, Type.FLAT_ITEM_ARRAY); // 1 - Window Values
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -73,12 +73,22 @@ public class InventoryPackets {
|
|||||||
|
|
||||||
int size = wrapper.passthrough(Type.UNSIGNED_BYTE);
|
int size = wrapper.passthrough(Type.UNSIGNED_BYTE);
|
||||||
for (int i = 0; i < size; i++) {
|
for (int i = 0; i < size; i++) {
|
||||||
toClient(wrapper.passthrough(Type.FLAT_ITEM)); // Input Item
|
// Input Item
|
||||||
toClient(wrapper.passthrough(Type.FLAT_ITEM)); // Output Item
|
Item input = wrapper.read(Type.ITEM);
|
||||||
|
toClient(input);
|
||||||
|
wrapper.write(Type.ITEM, input);
|
||||||
|
// Output Item
|
||||||
|
Item output = wrapper.read(Type.ITEM);
|
||||||
|
toClient(output);
|
||||||
|
wrapper.write(Type.ITEM, output);
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Type.BOOLEAN); // Has second item
|
boolean secondItem = wrapper.passthrough(Type.BOOLEAN); // Has second item
|
||||||
if (secondItem)
|
if (secondItem) {
|
||||||
toClient(wrapper.passthrough(Type.FLAT_ITEM)); // Second Item
|
// Second Item
|
||||||
|
Item second = wrapper.read(Type.ITEM);
|
||||||
|
toClient(second);
|
||||||
|
wrapper.write(Type.ITEM, second);
|
||||||
|
}
|
||||||
|
|
||||||
wrapper.passthrough(Type.BOOLEAN); // Trade disabled
|
wrapper.passthrough(Type.BOOLEAN); // Trade disabled
|
||||||
wrapper.passthrough(Type.INT); // Number of tools uses
|
wrapper.passthrough(Type.INT); // Number of tools uses
|
||||||
@ -96,7 +106,7 @@ public class InventoryPackets {
|
|||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.VAR_INT); // 0 - Entity ID
|
map(Type.VAR_INT); // 0 - Entity ID
|
||||||
map(Type.VAR_INT); // 1 - Slot ID
|
map(Type.VAR_INT); // 1 - Slot ID
|
||||||
map(Type.FLAT_ITEM); // 2 - Item
|
map(Type.ITEM, Type.FLAT_ITEM); // 2 - Item
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -122,7 +132,7 @@ public class InventoryPackets {
|
|||||||
map(Type.BYTE); // 2 - Button
|
map(Type.BYTE); // 2 - Button
|
||||||
map(Type.SHORT); // 3 - Action number
|
map(Type.SHORT); // 3 - Action number
|
||||||
map(Type.VAR_INT); // 4 - Mode
|
map(Type.VAR_INT); // 4 - Mode
|
||||||
map(Type.FLAT_ITEM); // 5 - Clicked Item
|
map(Type.FLAT_ITEM, Type.ITEM); // 5 - Clicked Item
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
@ -140,7 +150,7 @@ public class InventoryPackets {
|
|||||||
@Override
|
@Override
|
||||||
public void registerMap() {
|
public void registerMap() {
|
||||||
map(Type.SHORT); // 0 - Slot
|
map(Type.SHORT); // 0 - Slot
|
||||||
map(Type.FLAT_ITEM); // 1 - Clicked Item
|
map(Type.FLAT_ITEM, Type.ITEM); // 1 - Clicked Item
|
||||||
|
|
||||||
handler(new PacketHandler() {
|
handler(new PacketHandler() {
|
||||||
@Override
|
@Override
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren