Jump to content

DerT0bey

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by DerT0bey

  1. Damn it. But thanks for your help and fast reply!
  2. Hey everyone, i found out that there is a CraftingManger#getRecipe methode but i couldn't figure out how its working. Or should i use CraftingHelper#getIngredient/recipe? And how would i do that?
  3. Ups, sorry for that! Thank you. Working fine now
  4. Hey, The following code is fired twice, although I'm using !isRemote at the beginning. Did I miss anything? Why is it fired twice? public void weather(PlayerTickEvent e) { if(!e.player.worldObj.isRemote) { ... } }
  5. Is there any special event for when the player places a block? Or can I handle this with the PlayerInteractEvent, too?
  6. Solved! e.world.getBlockState(e.pos).getBlock(); works good
  7. Hey, as far as I know the PlayerInteractEvent is fired when the player left-/right-clicks a block. But how do I get the Block? I read something about e.getClickedBlock(), but this doesnt seem to work(in 1.8.9).
  8. So easy! Thanks a lot. You saved me from doing a complex workaround
  9. Hi, is it possible that there don't spawn any xp orbs when the player dies in survival? He still should lose all items but there should not spawn any EntityXPOrb's.
  10. Found out it's working fine with the detectAndSendChanges() methode in my container class public void detectAndSendChanges() { super.detectAndSendChanges(); ItemStack stack = tableInventory.getStackInSlot(0); if(stack != null) { System.out.println("In"); } else System.out.println("Null"); }
  11. I implemented ISidedInventory but it's still Null Is there anything i forgot? Here's my code: public class TileEntityXpBlock extends TileEntity implements ISidedInventory, IUpdatePlayerListBox { public ItemStack[] stack = new ItemStack[7]; private String name; @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList tagList = new NBTTagList(); for (int i = 0; i < this.stack.length; ++i) { if (this.stack[i] != null) { NBTTagCompound tagCompound1 = new NBTTagCompound(); tagCompound1.setByte("Slot", (byte) i); this.stack[i].writeToNBT(tagCompound1); tagList.appendTag(tagCompound1); } } compound.setTag("Items", tagList); if (this.hasCustomName()) { compound.setString("CustomName", this.name); } } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList tagList = compound.getTagList("Items", 10); this.stack = new ItemStack[7]; for (int i = 0; i < tagList.tagCount(); ++i) { NBTTagCompound tabCompound1 = tagList.getCompoundTagAt(i); byte byte0 = tabCompound1.getByte("Slot"); if (byte0 >= 0 && byte0 < this.stack.length) { this.stack[byte0] = ItemStack.loadItemStackFromNBT(tabCompound1); } } if (compound.hasKey("CustomName", ) { this.name = compound.getString("CustomName"); } } @Override public boolean hasCustomName() { return name != null && name.length() > 0; } @Override public String getName() { return this.hasCustomName() ? this.name : ""; } @Override public IChatComponent getDisplayName() { return new ChatComponentText(getName()); } @Override public int getSizeInventory() { return this.stack.length; } @Override public ItemStack getStackInSlot(int index) { return this.stack[index]; } @Override public ItemStack decrStackSize(int index, int count) { if (this.stack[index] != null) { ItemStack itemstack; if (this.stack[index].stackSize <= count) { itemstack = this.stack[index]; this.stack[index] = null; return itemstack; } else { itemstack = this.stack[index].splitStack(count); if (this.stack[index].stackSize == 0) { this.stack[index] = null; } return itemstack; } } else { return null; } } @Override public ItemStack getStackInSlotOnClosing(int index) { if (this.stack[index] != null) { ItemStack itemstack = this.stack[index]; this.stack[index] = null; return itemstack; } else { return null; } } @Override public void setInventorySlotContents(int index, ItemStack stack) { this.stack[index] = stack; if (stack != null && stack.stackSize > this.getInventoryStackLimit()) { stack.stackSize = this.getInventoryStackLimit(); } } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return this.worldObj.getTileEntity(this.getPos()) != this ? false : player.getDistanceSq((double) this.pos.getX() + 0.5D, (double) this.pos.getY() + 0.5D, (double) this.pos.getZ() + 0.5D) <= 64.0D; } @Override public void openInventory(EntityPlayer player) {} @Override public void closeInventory(EntityPlayer player) {} @Override public boolean isItemValidForSlot(int index, ItemStack stack) { return index == 6 ? false : true; } @Override public int getField(int id) { return 0; } @Override public void setField(int id, int value) { } @Override public int getFieldCount() { return 0; } @Override public void clear() { for (int i = 0; i < stack.length; ++i) { stack[i] = null; } } @Override public int[] getSlotsForFace(EnumFacing side) { return null; } @Override public boolean canInsertItem(int index, ItemStack itemStackIn, EnumFacing direction) { return this.isItemValidForSlot(index, itemStackIn); } @Override public boolean canExtractItem(int index, ItemStack stack, EnumFacing direction) { return index != 0 || index != 1 || stack.getItem() == Items.bucket; } @Override public void update() { if(!this.worldObj.isRemote) { ItemStack itemstack = this.stack[2]; if(itemstack != null) { System.out.println("INPUT"); } else { System.out.println("NULL"); } } }
  12. Thats why i was looking at the TileEntityEnchantment and thought its not necessarily. So i try it with IInventory now
  13. Thanks for your replies. I changed it to !isRemote but it still returns null. Do i really need a PacketHandler? In a earlier Forge version i created a TileEntity without and it worked fine
  14. Hi, I try to get the item from my slots in my TileEntity. I'm using the update() methode, but it always returns null, doesnt matter if an item is in that slot or not. Can someone help me? Here's the code of my TileEntity: public class TileEntityXpBlock extends TileEntity implements /*ISidedInventory,*/ IUpdatePlayerListBox, IInteractionObject { public ItemStack[] stack = new ItemStack[7]; private String name; @Override public void writeToNBT(NBTTagCompound compound) { super.writeToNBT(compound); NBTTagList tagList = new NBTTagList(); for (int i = 0; i < this.stack.length; ++i) { if (this.stack[i] != null) { NBTTagCompound tagCompound1 = new NBTTagCompound(); tagCompound1.setByte("Slot", (byte) i); this.stack[i].writeToNBT(tagCompound1); tagList.appendTag(tagCompound1); } } compound.setTag("Items", tagList); if (this.hasCustomName()) { compound.setString("CustomName", this.name); } } @Override public void readFromNBT(NBTTagCompound compound) { super.readFromNBT(compound); NBTTagList tagList = compound.getTagList("Items", 10); this.stack = new ItemStack[7]; for (int i = 0; i < tagList.tagCount(); ++i) { NBTTagCompound tabCompound1 = tagList.getCompoundTagAt(i); byte byte0 = tabCompound1.getByte("Slot"); if (byte0 >= 0 && byte0 < this.stack.length) { this.stack[byte0] = ItemStack.loadItemStackFromNBT(tabCompound1); } } if (compound.hasKey("CustomName", ) { this.name = compound.getString("CustomName"); } } public boolean hasCustomName() { return name != null && name.length() > 0; } @Override public String getName() { // TODO Auto-generated method stub return null; } @Override public IChatComponent getDisplayName() { // TODO Auto-generated method stub return null; } @Override public Container createContainer(InventoryPlayer playerInventory, EntityPlayer playerIn) { return new XpBlockContainer(playerInventory, this.pos, this.worldObj); } @Override public String getGuiID() { // TODO Auto-generated method stub return null; } @Override public void update() { if(this.worldObj.isRemote) { ItemStack itemstack = this.stack[2]; if(itemstack != null) { System.out.println("INPUT"); } else { System.out.println("NULL"); } } } }
  15. Hey, i tested my mod with a server and got following error after the player died. [17:37:29] [server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.entity.living.LivingDeathEvent@6d74c79b: java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft at de.toby.tobymodxp.handler.ForgeEventHandler.playerDied(ForgeEventHandler.java:29) ~[ForgeEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_9_ForgeEventHandler_playerDied_LivingDeathEvent.invoke(.dynamic) ~[?:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55) ~[ASMEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:138) [EventBus.class:?] at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:352) [ForgeHooks.class:?] at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:486) [EntityPlayerMP.class:?] at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:947) [EntityLivingBase.class:?] at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1180) [EntityPlayer.class:?] at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:594) [EntityPlayerMP.class:?] at net.minecraft.entity.EntityLivingBase.onKillCommand(EntityLivingBase.java:155) [EntityLivingBase.class:?] at net.minecraft.command.CommandKill.execute(CommandKill.java:39) [CommandKill.class:?] at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:110) [CommandHandler.class:?] at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:87) [CommandHandler.class:?] at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:853) [NetHandlerPlayServer.class:?] at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:829) [NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:44) [C01PacketChatMessage.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:57) [C01PacketChatMessage.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) [PacketThreadUtil$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_60] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_60] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:714) [FMLCommonHandler.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:727) [MinecraftServer.class:?] at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:385) [DedicatedServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.8.0_60] Caused by: java.lang.ClassNotFoundException: net.minecraft.client.Minecraft at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@659a969b from coremod FMLCorePlugin at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:234) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid side SERVER at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:49) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:230) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more [17:37:29] [server thread/ERROR] [FML]: Index: 1 Listeners: [17:37:29] [server thread/ERROR] [FML]: 0: NORMAL [17:37:29] [server thread/ERROR] [FML]: 1: ASM: de.toby.tobymodxp.handler.ForgeEventHandler@312debab playerDied(Lnet/minecraftforge/event/entity/living/LivingDeathEvent;)V [17:37:29] [server thread/ERROR]: Couldn't process command: 'kill' java.lang.NoClassDefFoundError: net/minecraft/client/Minecraft at de.toby.tobymodxp.handler.ForgeEventHandler.playerDied(ForgeEventHandler.java:29) ~[ForgeEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_9_ForgeEventHandler_playerDied_LivingDeathEvent.invoke(.dynamic) ~[?:?] at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55) ~[ASMEventHandler.class:?] at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:138) ~[EventBus.class:?] at net.minecraftforge.common.ForgeHooks.onLivingDeath(ForgeHooks.java:352) ~[ForgeHooks.class:?] at net.minecraft.entity.player.EntityPlayerMP.onDeath(EntityPlayerMP.java:486) ~[EntityPlayerMP.class:?] at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:947) ~[EntityLivingBase.class:?] at net.minecraft.entity.player.EntityPlayer.attackEntityFrom(EntityPlayer.java:1180) ~[EntityPlayer.class:?] at net.minecraft.entity.player.EntityPlayerMP.attackEntityFrom(EntityPlayerMP.java:594) ~[EntityPlayerMP.class:?] at net.minecraft.entity.EntityLivingBase.onKillCommand(EntityLivingBase.java:155) ~[EntityLivingBase.class:?] at net.minecraft.command.CommandKill.execute(CommandKill.java:39) ~[CommandKill.class:?] at net.minecraft.command.CommandHandler.tryExecute(CommandHandler.java:110) [CommandHandler.class:?] at net.minecraft.command.CommandHandler.executeCommand(CommandHandler.java:87) [CommandHandler.class:?] at net.minecraft.network.NetHandlerPlayServer.handleSlashCommand(NetHandlerPlayServer.java:853) [NetHandlerPlayServer.class:?] at net.minecraft.network.NetHandlerPlayServer.processChatMessage(NetHandlerPlayServer.java:829) [NetHandlerPlayServer.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:44) [C01PacketChatMessage.class:?] at net.minecraft.network.play.client.C01PacketChatMessage.processPacket(C01PacketChatMessage.java:57) [C01PacketChatMessage.class:?] at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) [PacketThreadUtil$1.class:?] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_60] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_60] at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:714) [FMLCommonHandler.class:?] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:727) [MinecraftServer.class:?] at net.minecraft.server.dedicated.DedicatedServer.updateTimeLightAndEntities(DedicatedServer.java:385) [DedicatedServer.class:?] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?] at java.lang.Thread.run(Unknown Source) [?:1.8.0_60] Caused by: java.lang.ClassNotFoundException: net.minecraft.client.Minecraft at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more Caused by: net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerException: Exception in class transformer net.minecraftforge.fml.common.asm.transformers.SideTransformer@659a969b from coremod FMLCorePlugin at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:234) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more Caused by: java.lang.RuntimeException: Attempted to load class net/minecraft/client/Minecraft for invalid side SERVER at net.minecraftforge.fml.common.asm.transformers.SideTransformer.transform(SideTransformer.java:49) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraftforge.fml.common.asm.ASMTransformerWrapper$TransformerWrapper.transform(ASMTransformerWrapper.java:230) ~[forgeSrc-1.8-11.14.3.1450.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279) ~[launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176) ~[launchwrapper-1.11.jar:?] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_60] ... 26 more Neiter the server nor the client crashed. In singleplayer it works fine. Here's the problem code: @SubscribeEvent public void playerDied(LivingDeathEvent e) { if(TobyModXP.keepXp) { if(e.entity instanceof EntityPlayer){ total = Minecraft.getMinecraft().thePlayer.experienceTotal; [b]<- Line 29[/b] lvl = Minecraft.getMinecraft().thePlayer.experienceLevel; bar = Minecraft.getMinecraft().thePlayer.experience; } } } Thx for helping
  16. I get the position but how do i get the block below? Code:
  17. Hi, i'm using the PlayerTickEvent and want to get the block on which the player stands. Does anyone know how to get the block?
  18. Thats what I am looking for So, is that the right way?
  19. Hi, i like to generate my own tree in Minecraft when a sapling grows. I know there's this "SaplingGrowTreeEvent" but i'm not sure how to use it correctly. Any ideas?
  20. Thats right. I just tried a random texture name here - no error Here is my assets list, but i'm sure its all right (was checking this several times) Never had a Block Item Renderer for my cake. I have a Renderer for my Campfire Block (which has the same and more problems btw; but thats a other story^^)
  21. Hey everyone, I'm updating my mod at the moment and have several issues. But lets start with this one: My custom ore block gets rendered perfectly in the inventory and world - no problems here. But my custom cake gets only renderd when i place it. In the inventory its just this beautiful pink-black box. Here are my .json files (they are identically to the vanilla cake; just with different paths) blockstates models.block models.item I guarantee that all textures are available. There is also no Error code in the console. Thats how I register it: As I sad, the "normal" blocks (eg my ore block) is working fine, but this is not rendered in the inventory but in the world. Hope someone can help me
  22. Another question: How can i do it, that my furnace now accept only one block to smelt (eg. iron_ore) but no other Blocks. I can't use furnaceItemStacks[0].getItem() instanceof BlockXYZ because I can't compare items with blocks. Any ideas?
×
×
  • Create New...

Important Information

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