Skip to content

Commit

Permalink
Improve network security (#2152)
Browse files Browse the repository at this point in the history
Add missing cheat guard to item deletion
  • Loading branch information
pau101 committed Nov 9, 2020
1 parent 7aa00ea commit e214425
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 15 deletions.
2 changes: 1 addition & 1 deletion src/main/java/mezz/jei/network/PacketHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public void onPacket(NetworkEvent.ClientCustomPayloadEvent event) {
PacketIdServer packetId = PacketIdServer.VALUES[packetIdOrdinal];
IPacketJeiHandler packetHandler = serverHandlers.get(packetId);
packetHandler.readPacketData(packetBuffer, player);
} catch (RuntimeException e) {
} catch (Throwable e) {
LOGGER.error("Packet error for event: {}", event, e);
}
event.getSource().get().setPacketHandled(true);
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/mezz/jei/network/PacketHandlerClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void onPacket(NetworkEvent.ServerCustomPayloadEvent event) {
if (player != null) {
packetHandler.readPacketData(packetBuffer, player);
}
} catch (Exception e) {
} catch (Throwable e) {
LOGGER.error("Packet error", e);
}
event.getSource().get().setPacketHandled(true);
Expand Down
21 changes: 11 additions & 10 deletions src/main/java/mezz/jei/network/packets/PacketDeletePlayerItem.java
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package mezz.jei.network.packets;

import mezz.jei.network.IPacketId;
import mezz.jei.network.PacketIdServer;
import mezz.jei.util.CommandUtilServer;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.network.PacketBuffer;

import mezz.jei.network.IPacketId;
import mezz.jei.network.PacketIdServer;
import net.minecraftforge.registries.ForgeRegistries;

public class PacketDeletePlayerItem extends PacketJei {
private final ItemStack itemStack;
Expand All @@ -22,16 +23,16 @@ public IPacketId getPacketId() {

@Override
public void writePacketData(PacketBuffer buf) {
int itemId = Item.getIdFromItem(itemStack.getItem());
buf.writeShort(itemId);
buf.writeRegistryIdUnsafe(ForgeRegistries.ITEMS, itemStack.getItem());
}

public static void readPacketData(PacketBuffer buf, PlayerEntity player) {
int itemId = buf.readShort();
Item item = Item.getItemById(itemId);
ItemStack playerItem = player.inventory.getItemStack();
if (!playerItem.isEmpty() && playerItem.getItem() == item) {
player.inventory.setItemStack(ItemStack.EMPTY);
Item item = buf.readRegistryIdUnsafe(ForgeRegistries.ITEMS);
if (CommandUtilServer.hasPermission(player)) {
ItemStack playerItem = player.inventory.getItemStack();
if (playerItem.getItem() == item) {
player.inventory.setItemStack(ItemStack.EMPTY);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,22 +56,22 @@ public void writePacketData(PacketBuffer buf) {

public static void readPacketData(PacketBuffer buf, PlayerEntity player) {
int recipeMapSize = buf.readVarInt();
Map<Integer, Integer> recipeMap = new HashMap<>(recipeMapSize);
Map<Integer, Integer> recipeMap = new HashMap<>();
for (int i = 0; i < recipeMapSize; i++) {
int slotIndex = buf.readVarInt();
int recipeItem = buf.readVarInt();
recipeMap.put(slotIndex, recipeItem);
}

int craftingSlotsSize = buf.readVarInt();
List<Integer> craftingSlots = new ArrayList<>(craftingSlotsSize);
List<Integer> craftingSlots = new ArrayList<>();
for (int i = 0; i < craftingSlotsSize; i++) {
int slotIndex = buf.readVarInt();
craftingSlots.add(slotIndex);
}

int inventorySlotsSize = buf.readVarInt();
List<Integer> inventorySlots = new ArrayList<>(inventorySlotsSize);
List<Integer> inventorySlots = new ArrayList<>();
for (int i = 0; i < inventorySlotsSize; i++) {
int slotIndex = buf.readVarInt();
inventorySlots.add(slotIndex);
Expand Down

0 comments on commit e214425

Please sign in to comment.