Hello Guys,
I want to do when a player right click to certain item do something.
But When I do PlayerInteractEvent.LeftClickEmpty it works.
Can anyone help me ? (FORGE 1.15.2)
public static void itemUpgrade(PlayerInteractEvent.RightClickEmpty event) {
PlayerEntity player = event.getPlayer();
String msg = TextFormatting.RED + "Success!";
String msg2 = TextFormatting.RED + "Failed!";
if (player.getHeldItemMainhand().getItem() == RegistryHandler.DRAGON_STEEL_SWORD.get() && player.getHeldItemOffhand().getItem() == RegistryHandler.DRAGON_STEEL.get()) {
gblnDiablo.LOGGER.info("Player tried upgrade");
if (Math.random() < 0.7D) {
ItemStack giveItem = new ItemStack(RegistryHandler.DRAGON_STEEL_SWORD_1.get(), 1);
player.sendMessage(new StringTextComponent(msg));
giveItem.setCount(1);
ItemHandlerHelper.giveItemToPlayer(player, giveItem);
} else {
((PlayerEntity) player).inventory.clearMatchingItems(p -> new ItemStack(RegistryHandler.DRAGON_STEEL_SWORD.get(), (int) (1)).getItem() == p.getItem(),
(int) 1);
((PlayerEntity) player).inventory.clearMatchingItems(p -> new ItemStack(RegistryHandler.DRAGON_STEEL.get(), (int) (1)).getItem() == p.getItem(),
(int) 1);
/* player.inventory.clearMatchingItems((p) -> {
return (new ItemStack(player.getHeldItemMainhand().getItem(), 1)).getItem() == p.getItem();
}, 1); */
/* player.inventory.clearMatchingItems((p) -> {
return (new ItemStack(player.getHeldItemOffhand().getItem(), 1)).getItem() == p.getItem();
}, 1); */
player.sendMessage(new StringTextComponent(msg2));
}
}
}