Posted June 27, 20205 yr public class Packets { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel INSTANCE = NetworkRegistry.newSimpleChannel( new ResourceLocation(CrudeTechMod.MOD_ID, "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); public static int i=0; } This is the handler of the packet sent public static void handle(key msg, Supplier<NetworkEvent.Context> ctx) { ctx.get().enqueueWork(() -> { ServerPlayerEntity sender = ctx.get().getSender(); ItemStack feet = ctx.get().getSender().getItemStackFromSlot(EquipmentSlotType.FEET); feet.damageItem(1, sender, player -> {}); }); ctx.get().setPacketHandled(true); } This is where the packet is sent @SubscribeEvent public static void onInput(InputEvent.KeyInputEvent event) { Packets.INSTANCE.sendToServer(new key(0)); } I've removed some stuff to make it easier to read. Also, the handle is being run because I put a logger in it and it logged stuff
June 27, 20205 yr Since you're using a key to damage the item, I assume you're in creative. If so, the first line of ItemStack#damageItem should answer your question. if (!entityIn.world.isRemote && (!(entityIn instanceof PlayerEntity) || !((PlayerEntity)entityIn).abilities.isCreativeMode))
June 28, 20205 yr Author But yes you are correct, I entered creative to test it, but didn't realize that ItemStack#damageItem doesn't damage in creative! Thanks!
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.