|
8 | 8 | import com.viaversion.viaversion.api.minecraft.Vector; |
9 | 9 | import com.viaversion.viaversion.api.minecraft.entitydata.EntityData; |
10 | 10 | import com.viaversion.viaversion.api.minecraft.entitydata.types.EntityDataTypes1_8; |
| 11 | +import com.viaversion.viaversion.api.minecraft.item.Item; |
11 | 12 | import com.viaversion.viaversion.api.protocol.packet.PacketWrapper; |
12 | 13 | import com.viaversion.viaversion.api.type.Types; |
13 | 14 | import com.viaversion.viaversion.protocols.v1_8to1_9.Protocol1_8To1_9; |
@@ -175,14 +176,19 @@ public static void register(final Protocol15w31a_To1_8 protocol) { |
175 | 176 | wrapper.cancel(); |
176 | 177 |
|
177 | 178 | // NOTE: Possibly bannable/noticeable by anti-cheats? |
178 | | - final PacketWrapper useItemOn = PacketWrapper.create(ServerboundPackets1_8.USE_ITEM_ON, wrapper.user()); |
179 | | - useItemOn.write(Types.BLOCK_POSITION1_8, new BlockPosition(-1, -1, -1)); // Block Position |
180 | | - useItemOn.write(Types.UNSIGNED_BYTE, (short) 255); // Direction |
181 | | - useItemOn.write(Types.ITEM1_8, Via.getManager().getProviders().get(HandItemProvider.class).getHandItem(wrapper.user())); // Item |
182 | | - useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // X |
183 | | - useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // Y |
184 | | - useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // Z |
185 | | - useItemOn.sendToServer(Protocol15w31a_To1_8.class); |
| 179 | + final Item item = Via.getManager().getProviders().get(HandItemProvider.class).getHandItem(wrapper.user()); |
| 180 | + if (item != null && !item.isEmpty()) { |
| 181 | + final PacketWrapper useItemOn = PacketWrapper.create(ServerboundPackets1_8.USE_ITEM_ON, wrapper.user()); |
| 182 | + useItemOn.write(Types.BLOCK_POSITION1_8, new BlockPosition(-1, -1, -1)); // Block Position |
| 183 | + useItemOn.write(Types.UNSIGNED_BYTE, (short) 255); // Direction |
| 184 | + useItemOn.write(Types.ITEM1_8, item); // Item |
| 185 | + useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // X |
| 186 | + useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // Y |
| 187 | + useItemOn.write(Types.UNSIGNED_BYTE, (short) 0); // Z |
| 188 | + useItemOn.sendToServer(Protocol15w31a_To1_8.class); |
| 189 | + } else { |
| 190 | + System.out.printf("Item was null! %s%n", item == null ? "null" : item); |
| 191 | + } |
186 | 192 | }); |
187 | 193 |
|
188 | 194 | protocol.registerServerbound(ServerboundPackets15w31a.USE_ITEM_ON, wrapper -> { |
|
0 commit comments