Mirror von
https://github.com/ViaVersion/ViaBackwards.git
synchronisiert 2024-10-05 01:41:05 +02:00
Use trade list rewriter functions (#782)
Dieser Commit ist enthalten in:
Ursprung
bfbc086f44
Commit
094bfe34c6
@ -20,12 +20,10 @@ package com.viaversion.viabackwards.protocol.v1_10to1_9_3.rewriter;
|
|||||||
|
|
||||||
import com.viaversion.viabackwards.api.rewriters.LegacyBlockItemRewriter;
|
import com.viaversion.viabackwards.api.rewriters.LegacyBlockItemRewriter;
|
||||||
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.Protocol1_10To1_9_3;
|
import com.viaversion.viabackwards.protocol.v1_10to1_9_3.Protocol1_10To1_9_3;
|
||||||
import com.viaversion.viaversion.api.minecraft.BlockChangeRecord;
|
|
||||||
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
import com.viaversion.viaversion.api.minecraft.ClientWorld;
|
||||||
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
import com.viaversion.viaversion.api.minecraft.chunks.Chunk;
|
||||||
import com.viaversion.viaversion.api.minecraft.item.Item;
|
import com.viaversion.viaversion.api.minecraft.item.Item;
|
||||||
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
|
import com.viaversion.viaversion.api.protocol.remapper.PacketHandlers;
|
||||||
import com.viaversion.viaversion.api.type.Type;
|
|
||||||
import com.viaversion.viaversion.api.type.Types;
|
import com.viaversion.viaversion.api.type.Types;
|
||||||
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_9_3;
|
import com.viaversion.viaversion.api.type.types.chunk.ChunkType1_9_3;
|
||||||
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
import com.viaversion.viaversion.protocols.v1_9_1to1_9_3.packet.ClientboundPackets1_9_3;
|
||||||
@ -46,34 +44,7 @@ public class BlockItemPacketRewriter1_10 extends LegacyBlockItemRewriter<Clientb
|
|||||||
registerSetContent(ClientboundPackets1_9_3.CONTAINER_SET_CONTENT);
|
registerSetContent(ClientboundPackets1_9_3.CONTAINER_SET_CONTENT);
|
||||||
|
|
||||||
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
||||||
|
registerCustomPayloadTradeList(ClientboundPackets1_9_3.CUSTOM_PAYLOAD);
|
||||||
protocol.registerClientbound(ClientboundPackets1_9_3.CUSTOM_PAYLOAD, new PacketHandlers() {
|
|
||||||
@Override
|
|
||||||
public void register() {
|
|
||||||
map(Types.STRING); // 0 - Channel
|
|
||||||
|
|
||||||
handler(wrapper -> {
|
|
||||||
if (wrapper.get(Types.STRING, 0).equals("MC|TrList")) {
|
|
||||||
wrapper.passthrough(Types.INT); // Passthrough Window ID
|
|
||||||
|
|
||||||
int size = wrapper.passthrough(Types.UNSIGNED_BYTE);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Input Item
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Output Item
|
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Types.BOOLEAN); // Has second item
|
|
||||||
if (secondItem) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Second Item
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapper.passthrough(Types.BOOLEAN); // Trade disabled
|
|
||||||
wrapper.passthrough(Types.INT); // Number of tools uses
|
|
||||||
wrapper.passthrough(Types.INT); // Maximum number of trade uses
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
registerContainerClick(ServerboundPackets1_9_3.CONTAINER_CLICK);
|
registerContainerClick(ServerboundPackets1_9_3.CONTAINER_CLICK);
|
||||||
registerSetCreativeModeSlot(ServerboundPackets1_9_3.SET_CREATIVE_MODE_SLOT);
|
registerSetCreativeModeSlot(ServerboundPackets1_9_3.SET_CREATIVE_MODE_SLOT);
|
||||||
|
@ -42,35 +42,7 @@ public class ItemPacketRewriter1_11_1 extends LegacyBlockItemRewriter<Clientboun
|
|||||||
registerSetSlot(ClientboundPackets1_9_3.CONTAINER_SET_SLOT);
|
registerSetSlot(ClientboundPackets1_9_3.CONTAINER_SET_SLOT);
|
||||||
registerSetContent(ClientboundPackets1_9_3.CONTAINER_SET_CONTENT);
|
registerSetContent(ClientboundPackets1_9_3.CONTAINER_SET_CONTENT);
|
||||||
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
||||||
|
registerCustomPayloadTradeList(ClientboundPackets1_9_3.CUSTOM_PAYLOAD);
|
||||||
// Plugin message Packet -> Trading
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_9_3.CUSTOM_PAYLOAD, new PacketHandlers() {
|
|
||||||
@Override
|
|
||||||
public void register() {
|
|
||||||
map(Types.STRING); // 0 - Channel
|
|
||||||
|
|
||||||
handler(wrapper -> {
|
|
||||||
if (wrapper.get(Types.STRING, 0).equals("MC|TrList")) {
|
|
||||||
wrapper.passthrough(Types.INT); // Passthrough Window ID
|
|
||||||
|
|
||||||
int size = wrapper.passthrough(Types.UNSIGNED_BYTE);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Input Item
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Output Item
|
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Types.BOOLEAN); // Has second item
|
|
||||||
if (secondItem) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Second Item
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapper.passthrough(Types.BOOLEAN); // Trade disabled
|
|
||||||
wrapper.passthrough(Types.INT); // Number of tools uses
|
|
||||||
wrapper.passthrough(Types.INT); // Maximum number of trade uses
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
registerContainerClick(ServerboundPackets1_9_3.CONTAINER_CLICK);
|
registerContainerClick(ServerboundPackets1_9_3.CONTAINER_CLICK);
|
||||||
registerSetCreativeModeSlot(ServerboundPackets1_9_3.SET_CREATIVE_MODE_SLOT);
|
registerSetCreativeModeSlot(ServerboundPackets1_9_3.SET_CREATIVE_MODE_SLOT);
|
||||||
|
@ -113,35 +113,7 @@ public class BlockItemPacketRewriter1_11 extends LegacyBlockItemRewriter<Clientb
|
|||||||
});
|
});
|
||||||
|
|
||||||
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
registerSetEquippedItem(ClientboundPackets1_9_3.SET_EQUIPPED_ITEM);
|
||||||
|
registerCustomPayloadTradeList(ClientboundPackets1_9_3.CUSTOM_PAYLOAD);
|
||||||
// Plugin message -> Trading
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_9_3.CUSTOM_PAYLOAD, new PacketHandlers() {
|
|
||||||
@Override
|
|
||||||
public void register() {
|
|
||||||
map(Types.STRING); // 0 - Channel
|
|
||||||
|
|
||||||
handler(wrapper -> {
|
|
||||||
if (wrapper.get(Types.STRING, 0).equals("MC|TrList")) {
|
|
||||||
wrapper.passthrough(Types.INT); // Passthrough Window ID
|
|
||||||
|
|
||||||
int size = wrapper.passthrough(Types.UNSIGNED_BYTE);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Input Item
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Output Item
|
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Types.BOOLEAN); // Has second item
|
|
||||||
if (secondItem) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Second Item
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapper.passthrough(Types.BOOLEAN); // Trade disabled
|
|
||||||
wrapper.passthrough(Types.INT); // Number of tools uses
|
|
||||||
wrapper.passthrough(Types.INT); // Maximum number of trade uses
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
protocol.registerServerbound(ServerboundPackets1_9_3.CONTAINER_CLICK, new PacketHandlers() {
|
protocol.registerServerbound(ServerboundPackets1_9_3.CONTAINER_CLICK, new PacketHandlers() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -86,34 +86,7 @@ public class BlockItemPacketRewriter1_12 extends LegacyBlockItemRewriter<Clientb
|
|||||||
registerSetSlot(ClientboundPackets1_12.CONTAINER_SET_SLOT);
|
registerSetSlot(ClientboundPackets1_12.CONTAINER_SET_SLOT);
|
||||||
registerSetContent(ClientboundPackets1_12.CONTAINER_SET_CONTENT);
|
registerSetContent(ClientboundPackets1_12.CONTAINER_SET_CONTENT);
|
||||||
registerSetEquippedItem(ClientboundPackets1_12.SET_EQUIPPED_ITEM);
|
registerSetEquippedItem(ClientboundPackets1_12.SET_EQUIPPED_ITEM);
|
||||||
|
registerCustomPayloadTradeList(ClientboundPackets1_12.CUSTOM_PAYLOAD);
|
||||||
// Plugin message Packet -> Trading
|
|
||||||
protocol.registerClientbound(ClientboundPackets1_12.CUSTOM_PAYLOAD, new PacketHandlers() {
|
|
||||||
@Override
|
|
||||||
public void register() {
|
|
||||||
map(Types.STRING); // 0 - Channel
|
|
||||||
|
|
||||||
handler(wrapper -> {
|
|
||||||
if (wrapper.get(Types.STRING, 0).equals("MC|TrList")) {
|
|
||||||
wrapper.passthrough(Types.INT); // Passthrough Window ID
|
|
||||||
|
|
||||||
int size = wrapper.passthrough(Types.UNSIGNED_BYTE);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Input Item
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Output Item
|
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Types.BOOLEAN); // Has second item
|
|
||||||
if (secondItem)
|
|
||||||
wrapper.write(Types.ITEM1_8, handleItemToClient(wrapper.user(), wrapper.read(Types.ITEM1_8))); // Second Item
|
|
||||||
|
|
||||||
wrapper.passthrough(Types.BOOLEAN); // Trade disabled
|
|
||||||
wrapper.passthrough(Types.INT); // Number of tools uses
|
|
||||||
wrapper.passthrough(Types.INT); // Maximum number of trade uses
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
protocol.registerServerbound(ServerboundPackets1_9_3.CONTAINER_CLICK, new PacketHandlers() {
|
protocol.registerServerbound(ServerboundPackets1_9_3.CONTAINER_CLICK, new PacketHandlers() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -72,7 +72,7 @@ public class BlockItemPacketRewriter1_13 extends BackwardsItemRewriter<Clientbou
|
|||||||
private final String extraNbtTag;
|
private final String extraNbtTag;
|
||||||
|
|
||||||
public BlockItemPacketRewriter1_13(Protocol1_13To1_12_2 protocol) {
|
public BlockItemPacketRewriter1_13(Protocol1_13To1_12_2 protocol) {
|
||||||
super(protocol, null, null);
|
super(protocol, Types.ITEM1_13, null, Types.ITEM1_8, null);
|
||||||
extraNbtTag = nbtTagName("2");
|
extraNbtTag = nbtTagName("2");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,28 +77,7 @@ public class PlayerPacketRewriter1_13 extends RewriterBase<Protocol1_13To1_12_2>
|
|||||||
String channel = wrapper.read(Types.STRING);
|
String channel = wrapper.read(Types.STRING);
|
||||||
if (channel.equals("minecraft:trader_list")) {
|
if (channel.equals("minecraft:trader_list")) {
|
||||||
wrapper.write(Types.STRING, "MC|TrList");
|
wrapper.write(Types.STRING, "MC|TrList");
|
||||||
wrapper.passthrough(Types.INT); //Passthrough Window ID
|
protocol.getItemRewriter().handleTradeList(wrapper);
|
||||||
|
|
||||||
int size = wrapper.passthrough(Types.UNSIGNED_BYTE);
|
|
||||||
for (int i = 0; i < size; i++) {
|
|
||||||
//Input Item
|
|
||||||
Item input = wrapper.read(Types.ITEM1_13);
|
|
||||||
wrapper.write(Types.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), input));
|
|
||||||
//Output Item
|
|
||||||
Item output = wrapper.read(Types.ITEM1_13);
|
|
||||||
wrapper.write(Types.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), output));
|
|
||||||
|
|
||||||
boolean secondItem = wrapper.passthrough(Types.BOOLEAN); //Has second item
|
|
||||||
if (secondItem) {
|
|
||||||
//Second Item
|
|
||||||
Item second = wrapper.read(Types.ITEM1_13);
|
|
||||||
wrapper.write(Types.ITEM1_8, protocol.getItemRewriter().handleItemToClient(wrapper.user(), second));
|
|
||||||
}
|
|
||||||
|
|
||||||
wrapper.passthrough(Types.BOOLEAN); //Trade disabled
|
|
||||||
wrapper.passthrough(Types.INT); //Number of tools uses
|
|
||||||
wrapper.passthrough(Types.INT); //Maximum number of trade uses
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
String oldChannel = ItemPacketRewriter1_13.getOldPluginChannelId(channel);
|
String oldChannel = ItemPacketRewriter1_13.getOldPluginChannelId(channel);
|
||||||
if (oldChannel == null) {
|
if (oldChannel == null) {
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren