Jump to content

Recommended Posts

Posted

Hello everybody!

 

I created an Item which gets damage from a handler, which works. But if the Item gets the last bit of Damage which should destroy it, it doesn't and another Item appears there instead which has zero Damage.

Have i missed anything in my Item class? It looks very short, I think..

 

package mod.classes.items;

import java.util.List;

import mod.Main;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;

public class ItemTool extends ModItem {

public ItemTool(int ID) {
	super(ID);
	this.setMaxStackSize(1);
        this.setMaxDamage(128);
        this.setCreativeTab(Main.modBasic);
}	
}

 

The Damage is dealt with this Method:

player.inventory.getStackInSlot(InventoryController.getSlot(Element.get(elementID))).damageItem(1, player);

 

Hope anybody sees my Mistake..

 

  • 2 weeks later...
Posted

Hi

 

Look in ItemStack.damageItem()

--->EntityPlayer.destroyCurrentEquippedItem

-->

 

        this.inventory.setInventorySlotContents(this.inventory.currentItem, (ItemStack)null);

 

I think this might be what you are after?

 

-TGG

 

Posted

@Override

public void onUpdate(ItemStack stack, World world, Entity entity, int n, boolean b)

{

if (stack.getItemDamage() >= stack.getMaxDamage())

stack.stackSize -= 1; //if this is reduced to 0, it is automatically "destroyed"

}

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted

Even this doesn't work.

I think the problem is, that the Item I want to damage is not the currently selected Item. It can be any Item in the Inventory... I don't understand, why it doesn't break..

 

Note: The Item, which you get instead of the old one can't be throwed out of the Inventory. If you press Q the game crashes with the following crash report:

2013-09-21 07:52:40 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Ticking memory connection
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:63)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-09-21 07:52:40 [iNFO] [sTDERR] Caused by: java.lang.NullPointerException
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.world.World.spawnEntityInWorld(World.java:1549)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.entity.player.EntityPlayer.joinEntityItemWithWorld(EntityPlayer.java:870)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraftforge.common.ForgeHooks.onPlayerTossEvent(ForgeHooks.java:377)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.entity.player.EntityPlayer.dropOneItem(EntityPlayer.java:797)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:434)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
2013-09-21 07:52:40 [iNFO] [sTDERR] 	... 6 more
2013-09-21 07:52:40 [sEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException
net.minecraft.util.ReportedException: Ticking memory connection
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:63)
at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
Caused by: java.lang.NullPointerException
at net.minecraft.world.World.spawnEntityInWorld(World.java:1549)
at net.minecraft.entity.player.EntityPlayer.joinEntityItemWithWorld(EntityPlayer.java:870)
at net.minecraftforge.common.ForgeHooks.onPlayerTossEvent(ForgeHooks.java:377)
at net.minecraft.entity.player.EntityPlayer.dropOneItem(EntityPlayer.java:797)
at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:434)
at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
... 6 more
2013-09-21 07:52:40 [sEVERE] [Minecraft-Server] This crash report has been saved to: C:\Users\Julian\Desktop\Minecraft- extras\Modding\Eclipse Workspaces\Minecraft_1.6.2 - Magicum\forge\mcp\jars\.\crash-reports\crash-2013-09-21_07.52.40-server.txt
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Stopping server
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving players
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] _Bedrock_Miner_ left the game
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving worlds
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving chunks for level 'Neue Welt'/Overworld
2013-09-21 07:52:40 [iNFO] [sTDOUT] ---- Minecraft Crash Report ----
2013-09-21 07:52:40 [iNFO] [sTDOUT] // You're mean.
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] Time: 21.09.13 07:52
2013-09-21 07:52:40 [iNFO] [sTDOUT] Description: Ticking memory connection
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] java.lang.NullPointerException
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.world.World.spawnEntityInWorld(World.java:1549)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.entity.player.EntityPlayer.joinEntityItemWithWorld(EntityPlayer.java:870)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraftforge.common.ForgeHooks.onPlayerTossEvent(ForgeHooks.java:377)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.entity.player.EntityPlayer.dropOneItem(EntityPlayer.java:797)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:434)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] A detailed walkthrough of the error, its code path and all known details is as follows:
2013-09-21 07:52:40 [iNFO] [sTDOUT] ---------------------------------------------------------------------------------------
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] -- Head --
2013-09-21 07:52:40 [iNFO] [sTDOUT] Stacktrace:
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.world.World.spawnEntityInWorld(World.java:1549)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.entity.player.EntityPlayer.joinEntityItemWithWorld(EntityPlayer.java:870)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraftforge.common.ForgeHooks.onPlayerTossEvent(ForgeHooks.java:377)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.entity.player.EntityPlayer.dropOneItem(EntityPlayer.java:797)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetServerHandler.handleBlockDig(NetServerHandler.java:434)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.packet.Packet14BlockDig.processPacket(Packet14BlockDig.java:67)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:141)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] -- Ticking connection --
2013-09-21 07:52:40 [iNFO] [sTDOUT] Details:
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Connection: net.minecraft.network.NetServerHandler@23d720a9
2013-09-21 07:52:40 [iNFO] [sTDOUT] Stacktrace:
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:54)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:689)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:585)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:129)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:482)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 
2013-09-21 07:52:40 [iNFO] [sTDOUT] -- System Details --
2013-09-21 07:52:40 [iNFO] [sTDOUT] Details:
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Minecraft Version: 1.6.2
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Operating System: Windows 7 (amd64) version 6.1
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Java Version: 1.7.0_21, Oracle Corporation
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Memory: 649858968 bytes (619 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	AABB Pool Size: 3803 (212968 bytes; 0 MB) allocated, 3393 (190008 bytes; 0 MB) used
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Suspicious classes: FML and Forge are installed
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	FML: MCP v8.04 FML v6.2.30.794 Minecraft Forge 9.10.0.794 4 mods loaded, 4 mods active
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	mcp{8.04} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	FML{6.2.30.794} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Forge{9.10.0.794} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	magicum{1.0.0} [Magicum Mod] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Profiler Position: N/A (disabled)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Vec3 Pool Size: 1236 (69216 bytes; 0 MB) allocated, 1097 (61432 bytes; 0 MB) used
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Player Count: 1 / 8; [EntityPlayerMP['_Bedrock_Miner_'/83, l='Neue Welt', x=-488,03, y=66,00, z=96,58]]
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Type: Integrated Server (map_client.txt)
2013-09-21 07:52:40 [iNFO] [sTDOUT] 	Is Modded: Definitely; Client brand changed to 'fml,forge'
2013-09-21 07:52:40 [iNFO] [sTDOUT] #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Julian\Desktop\Minecraft- extras\Modding\Eclipse Workspaces\Minecraft_1.6.2 - Magicum\forge\mcp\jars\.\crash-reports\crash-2013-09-21_07.52.40-server.txt
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Stopping server
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving players
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving worlds
2013-09-21 07:52:40 [iNFO] [Minecraft-Server] Saving chunks for level 'Neue Welt'/Overworld
AL lib: (EE) alc_cleanup: 1 device not closed

 

Posted

Now it works!

I changed my damage-method to the following:

player.inventory.getStackInSlot(InventoryController.getSlot(Element.get(elementID))).setItemDamage(player.inventory.getStackInSlot(InventoryController.getSlot(Element.get(elementID))).getItemDamage() + 1);
                    		if (player.inventory.getStackInSlot(InventoryController.getSlot(Element.get(elementID))).getItemDamage() >= player.inventory.getStackInSlot(InventoryController.getSlot(Element.get(elementID))).getMaxDamage())
                    			player.inventory.setInventorySlotContents(InventoryController.getSlot(Element.get(elementID)), null);

 

Thanks to all of you!

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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