Posted November 2, 201411 yr I have an item that's being refilled when right clicking a block. However on the client it doesn't update until I use the item. How do I update the item on the client? I looked around about TickHandlers, but I doubt that's what I'm looking for. Can anyone help me with this? The block in question: package com.richarda.minesouls.block; import com.richarda.minesouls.common.BonfireContainer; import com.richarda.minesouls.item.ItemEstusFlask; import com.richarda.minesouls.reference.Names; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.ChatComponentText; import net.minecraft.world.World; public class BlockBonfire extends BlockMineSouls { public BlockBonfire() { super(); this.setBlockName(Names.Blocks.BONFIRE); this.setHarvestLevel("pickaxe", 3); this.blockHardness = 50; } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int face, float par7, float par8, float par9) { if(!world.isRemote) { player.addChatMessage(new ChatComponentText("You have rested at this bonfire.")); // Fully heal the player and reset hunger player.heal(player.getMaxHealth()); player.getFoodStats().setFoodLevel(20); BonfireContainer props = BonfireContainer.get(player); props.setBonfireLocation(x, y, z); // Refill estus flask(s) ItemStack[] playerInventory = player.inventory.mainInventory; for(ItemStack itemStack : playerInventory) { if(itemStack != null && itemStack.getItem() instanceof ItemEstusFlask) { ((ItemEstusFlask)itemStack.getItem()).refillEstusFlask(itemStack); } } return true; } return false; } } The item class has this method to refill it: public void refillEstusFlask(ItemStack itemStack) { itemStack.setItemDamage(0); }
November 2, 201411 yr Author You don't need "if(!world.isRemote)" piece. I do, otherwise it'll be fired twice. Once on the client and once on the server. Playing with that, I fixed the issue. The only thing that had to be checked for isRemote was the following block: if(!world.isRemote) { player.addChatMessage(new ChatComponentText("You have rested at this bonfire.")); } Thanks Alexiy
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.