Eroc33
Members-
Posts
2 -
Joined
-
Last visited
Converted
-
Gender
Undisclosed
-
Personal Text
I am new!
Eroc33's Achievements
Tree Puncher (2/8)
0
Reputation
-
Is this a bug or is there some reason that writing NBT data changes how right mouse up is handled, or am I doing something different wrong? Also by adding some simple logging and using @SubscribeEvent that the PlayerUseItemEvent.Stop event isn't always triggered when the use button is released if NBT data is written. Example code snippet: public class ItemRFBlaster { //some methods ommited for brevity @Override public void onPlayerStoppedUsing(ItemStack itemstack, World world, EntityPlayer entityPlayer, int itemInUseCount) { super.onPlayerStoppedUsing(itemstack,world,entityPlayer,itemInUseCount); logger.info("Stopped using"); if(getFiremode(itemstack) == Firemode.Single) { tryFire(itemstack, world, entityPlayer, itemInUseCount); } setCoolingdown(itemstack); setPartialTicks(itemstack, 0); } @Override public void onUsingTick(ItemStack stack, EntityPlayer player, int count) { super.onUsingTick(stack, player, count); logger.info("count: {}",count); if(player.getEntityWorld().isRemote) return; assert(player.isUsingItem()); if(!canFire(stack)) { setCoolingdown(stack); return; } if(getFiremode(stack) == Firemode.Auto){ tryFire(stack,player.getEntityWorld(),player,count); }else if(getFiremode(stack) == Firemode.Burst){ if(tryFire(stack,player.getEntityWorld(),player,count)) { incrBurst(stack); } } } @Override public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityPlayer) { if(entityPlayer.isSneaking()) { if(!world.isRemote) { cycleFiremode(itemstack, entityPlayer); } } else if (entityPlayer.capabilities.isCreativeMode || getEnergyStored(itemstack) >= 5) { entityPlayer.setItemInUse(itemstack, this.getMaxItemUseDuration(itemstack)); } return itemstack; } } Where tryFire, incrBurst, and canFire read and write NBT data. If the NBT data writing is commented out then onPlayerStoppedUsing is always called when I expect it.