Jump to content

Egietje

Forge Modder
  • Posts

    388
  • Joined

  • Last visited

Everything posted by Egietje

  1. I'm trying to make a compliment machine that if you are holding cheese and right-click it it gives you a compliment and takes 1 cheese, but now it takes 3 cheese package com.Egietje.degeweldigemod.init; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.ILockableContainer; import net.minecraft.world.World; public class ComplimentsMachine extends Block { public Random random = new Random(); public ComplimentsMachine(Material materialIn) { super(materialIn); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { int compliment = random.nextInt(2); Item holdingItem = playerIn.getHeldItemMainhand() != null ? playerIn.getHeldItemMainhand().getItem() : null; if (worldIn.isRemote) { return true; } else { if (compliment == 0 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§e" + playerIn.getDisplayNameString() + "§r§6 is AWESOME.§r")); removeItem(playerIn, heldItem); } else { if (compliment == 1 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§6I love§r §e" + playerIn.getDisplayNameString() + "§r§6.§r")); removeItem(playerIn, heldItem); } else { return true; } } return true; } } public void removeItem(EntityPlayer playerIn, ItemStack removeitem) { IInventory inv = playerIn.inventory; if (!playerIn.isCreative()) { for(int i = 0; i < inv.getSizeInventory(); i++) { if(inv.getStackInSlot(i) != null) { ItemStack j = inv.getStackInSlot(i); if(j.getItem() != null && j.getItem() == removeitem.getItem()) { inv.decrStackSize(playerIn.inventory.currentItem, 1); } } } } } }
  2. I want to only take 1 cheese from 1 stack, but it takes 1 cheese from every stack of cheese, here's my code: package com.Egietje.degeweldigemod.init; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.ILockableContainer; import net.minecraft.world.World; public class ComplimentsMachine extends Block { public Random random = new Random(); public ComplimentsMachine(Material materialIn) { super(materialIn); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { int compliment = random.nextInt(2); Item holdingItem = playerIn.getHeldItemMainhand() != null ? playerIn.getHeldItemMainhand().getItem() : null; if (worldIn.isRemote) { return true; } else { if (compliment == 0 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§e" + playerIn.getDisplayNameString() + "§r§6 is AWESOME.§r")); removeItem(playerIn, heldItem); } else { if (compliment == 1 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§6I love§r §e" + playerIn.getDisplayNameString() + "§r§6.§r")); removeItem(playerIn, heldItem); } else { return true; } } return true; } } public void removeItem(EntityPlayer playerIn, ItemStack removeitem) { IInventory inv = playerIn.inventory; for(int i = 0; i < inv.getSizeInventory(); i++) { if(inv.getStackInSlot(i) != null) { ItemStack j = inv.getStackInSlot(i); if(j.getItem() != null && j.getItem() == removeitem.getItem()) { inv.decrStackSize(i, 1); } } } } }
  3. Fixed it by doing: Item holdingItem = playerIn.getHeldItemMainhand() != null ? playerIn.getHeldItemMainhand().getItem() : null; Thanks!
  4. When I right-click without a item my game crashes, I'm trying to make a compliment machine that if you right-click on it with cheese it will take 1 cheese and say a compliment in chat, here's my code: package com.Egietje.degeweldigemod.init; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.ILockableContainer; import net.minecraft.world.World; public class ComplimentsMachine extends Block { public Random random = new Random(); public ComplimentsMachine(Material materialIn) { super(materialIn); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { int compliment = random.nextInt(2); //chooses a random compliment out of 2(for now) Item holdingItem = playerIn.getHeldItemMainhand().getItem(); //detects holding item if (worldIn.isRemote) { return true; } else { if (compliment == 0 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§e" + playerIn.getDisplayNameString() + "§r§6 is AWESOME.§r")); } else { if (compliment == 1 && holdingItem == CheeseItems.cheese) { playerIn.addChatMessage(new TextComponentString("§6I love§r §e" + playerIn.getDisplayNameString() + "§r§6.§r")); } else { return true; } } return true; } } } EDIT: I'm a bit new to coding, but I can understand most things you throw at me
  5. I've found the wrong thing, at the if (compliment == 0) part i have player.addChatMessage and not playerIn.addChatMessage
  6. Oh and btw, that welcome PLAYERNAME, have fun was as a test
  7. package com.Egietje.degeweldigemod.init; import java.util.Random; import javax.annotation.Nullable; import net.minecraft.block.Block; import net.minecraft.block.BlockChest; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.stats.StatList; import net.minecraft.util.EnumFacing; import net.minecraft.util.EnumHand; import net.minecraft.util.math.BlockPos; import net.minecraft.util.text.TextComponentString; import net.minecraft.world.ILockableContainer; import net.minecraft.world.World; public class ComplimentsMachine extends Block { public Random random = new Random(); public EntityPlayer player; public int compliment = random.nextInt(2); public ComplimentsMachine(Material materialIn) { super(materialIn); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { Item equipped = playerIn.getHeldItemMainhand() != null ? playerIn.getHeldItemMainhand().getItem() : null; if (worldIn.isRemote) { return true; } else { if (compliment == 0) { player.addChatMessage(new TextComponentString("§6Welcome§r §e" + player.getDisplayNameString() + "§r§6, have fun!§r")); } return true; } } }
  8. When i right-click on the machine it doesn't do anything
  9. Those where from another thing i tried, forgot to remove them
  10. Hello, I am working on a mod and i want to make a machine that if you click on it with a specific item takes the item and "says" something in chat and I've tried using the onBlockActivated but it doesn't work, here's my code: public class ComplimentsMachine extends Block { public Random random = new Random(); public EntityPlayer player; public int compliment = random.nextInt(2); boolean c0, c1; public ComplimentsMachine(Material materialIn) { super(materialIn); } public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumHand hand, @Nullable ItemStack heldItem, EnumFacing side, float hitX, float hitY, float hitZ) { Item equipped = playerIn.getHeldItemMainhand() != null ? playerIn.getHeldItemMainhand().getItem() : null; if (worldIn.isRemote) { return true; } else { if (compliment == 0) { player.addChatMessage(new TextComponentString("§6Welcome§r §e" + player.getDisplayNameString() + "§r§6, have fun!§r")); } return true; } } } Please help!
  11. If someone knows a tutorial on how to add tools and armor in 1.9 please tell me
×
×
  • Create New...

Important Information

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