Jump to content

A Soulspark

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by A Soulspark

  1. I have a Cup block in my mod (1.16), and the player should be able to right-click it to "pick it up" in item form. I currently do this by getting the block's drops, with the following code: if (!worldIn.isRemote) { MinecraftServer server = worldIn.getServer(); List<ItemStack> drops = getDrops(state, server.getWorld(worldIn.getDimensionKey()), pos, tileEntity); if (!drops.isEmpty()) { ItemStack drop = drops.get(0); // if the cup is the same as the cup you're holding, increase the stack by 1 // if it isn't, try adding the cup to the inventory if there's room for it if (stack.isEmpty() || stack.getItem() == drop.getItem()) { drop.grow(stack.getCount()); player.setHeldItem(handIn, drop); } else if (!player.addItemStackToInventory(drop)) return ActionResultType.FAIL; // send the update to clients and remove the block ((ServerPlayerEntity) player).sendContainerToPlayer(player.container); worldIn.removeBlock(pos, false); } } else player.playSound(SoundEvents.ITEM_ARMOR_EQUIP_GENERIC, 1, 1); It seems to work perfectly, but IDEA keeps giving me not one, but two warnings that this code can cause NullPointerExceptions. Would this actually cause a crash? And is there a better way to go about this? This is my first "successful" attempt at mod making, so I'm not sure what would be best practice here. [full code for reference].java
  2. I've been thinking about it, would it be a bad idea to use Mixins or similar to add my logic every time an item loses durability?
  3. Is it possible to detect when a player has used any item with its normal functionality (e.g. right-clicking with a Carrot on a stick, or right-clicking with an axe on logs to strip them)? I tried PlayerInteractEvent.RightClickItem, PlayerInteractEvent.RightClickBlock, as well as LivingEntityUseItemEvent, to no avail. They either don't fire (like LivingEntityUseItem) or don't behave as I intended (the PlayerInteract ones) [+] If it helps, the reason why I want this functionality is to implement a kind of extra enchantment, similar to Unbreaking, which prevents durability loss for a set amount of uses. So every time you use the item, it makes sure it's unbreakable until the enchantment runs off. By the way, if you have a better idea about how to prevent an item's durability loss, without using the Unbreakable tag, please let me know.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.