Jump to content

Most effective way to remove vanilla mob drops, without editing anything?


Recommended Posts

Posted

The title basically says it. I'm aware of ways where you'd just replace the vanilla mob with a custom one, and then let this custom mob drop the things you want it to drop. But 1. this is ensured to create bugs with mods like Mo Creatures and 2. creates miriads of unnecessary files filled with walls of code. Isn't there something more elegant like this for blocks?

 

Block.blocksList[block.oreCoal.blockID] = Block.blocksList[MetallurgyRealismModBase.BlockSlate.blockID];

 

Something like, for example:

 

Item.itemsList[item.leather.itemID] = Item.itemsList[MetallurgyRealismModBase.MaterialFur.itemID];

Posted

vague, figure-it-out-yourself answer:

 

events

 

spoon-feed answer:

 

 

 

livingdropsevent

 

 

Look, if you know something, don't give me tension torture. If you'd happen to know something just speak it out loud, without acting all superior. I wouldn't come here and ask if I haven't already tried my butt off. Obviously I'm already using event code:

 

 

package MetallurgyRealism;

import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.passive.EntitySheep;
import net.minecraft.entity.passive.EntityWolf;
import net.minecraft.item.Item;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.entity.living.LivingDropsEvent;

public class MetallurgyRealismLivingDrops {
public static double rand;

@ForgeSubscribe
public void onEntityDrop(LivingDropsEvent event) {
	if (event.source.getDamageType().equals("player")) {
		rand = Math.random();
		System.out.println("Killed something.");
		if (event.entityLiving instanceof EntityCow || event.entityLiving instanceof EntitySheep || event.entityLiving instanceof EntityChicken || event.entityLiving instanceof EntityPig || event.entityLiving instanceof EntityWolf) {
			System.out.println("Killed a sheep.");
			if (rand < 0.1D) {
				event.entityLiving.dropItem(Item.bone.itemID, 2);
			}
		}
	}
}
}

 

 

But adding new drops isn't the same as removing the vanilla ones.

Posted

If you'd happen to know something just speak it out loud, without acting all superior.

 

i tend to be this way when i'm sleepy. so... get over it. at least i gave the answer (but apparently not enough)

 

I wouldn't come here and ask if I haven't already tried my butt off. Obviously I'm already using event code:

 

no, you never once mentioned you were using the events already. so no, not "obviously".

 

But adding new drops isn't the same as removing the vanilla ones.

 

obviously.

 

anyway, to answer your question completely and properly:

 

you can do what gotolink said, but that would stop all the entity's drops from spawning. if you want it that way, then go ahead. if you want to remove just a specific item, iterate through the list of drops and check if it's the item you want to replace, then replace it, if it is.

Posted

Cancel the event.

 

This would have an effect on the new items added or on any single item to be spawned by dead entitys, but does absolutely nothing to singled out vanilla drops. Except you want me to edit base files...:D

 

you can do what gotolink said, but that would stop all the entity's drops from spawning. if you want it that way, then go ahead. if you want to remove just a specific item, iterate through the list of drops and check if it's the item you want to replace, then replace it, if it is.

 

The iteration did not seem to work on items dropped by mobs. I got it working on blocks, but there's no equivalent code...or at least I found none. Also tried to modifie this code, to no avail:

 

    		Iterator<IRecipe> iterator = CraftingManager.getInstance().getRecipeList().iterator();

    			while (iterator.hasNext()){
    				IRecipe recipe = iterator.next();
    				if (recipe == null)
    				continue;
    					ItemStack output = recipe.getRecipeOutput();
    				if (output != null && output.getItem() != null && removeSet.contains(output.getItem()))
    					iterator.remove();}

Posted

This would have an effect on the new items added or on any single item to be spawned by dead entitys, but does absolutely nothing to singled out vanilla drops. Except you want me to edit base files...:D

The iteration did not seem to work on items dropped by mobs.

 

erm.. cancelling an event doesn't require base class edits. and i just tried what i said earlier and it works. you're just not doing it right. also, that code you tried to modify is for recipes so i have no idea what you tried to do with it. i'd post code, but you clearly don't know what you're doing, so you're going to either have to try harder and figure it out yourself (which i recommend so you won't have to rely on the forums) or wait til someone's nice enough to post code. also, everything you need is already in your "public void onEntityDrop(LivingDropsEvent event)" method, so it shouldn't be too hard to figure out. you just need to change some stuff in there (and i already said what to do earlier). goodluck, ima head to bed

Posted
erm.. cancelling an event doesn't require base class edits. and i just tried what i said earlier and it works. you're just not doing it right. also, that code you tried to modify is for recipes so i have no idea what you tried to do with it. i'd post code, but you clearly don't know what you're doing, so you're going to either have to try harder and figure it out yourself (which i recommend so you won't have to rely on the forums) or wait til someone's nice enough to post code. also, everything you need is already in your "public void onEntityDrop(LivingDropsEvent event)" method, so it shouldn't be too hard to figure out. you just need to change some stuff in there (and i already said what to do earlier). goodluck, ima head to bed

 

I'd say I have to go with something like...

 

event.entityLiving.removeItem(Item.leather.itemID)

 

...but it didn't work

 

So I was right when thinking you're the little smarty by reading all the miriads of your posts on this forums, telling people to learn something, instead of just helping them. Look, it gains you nothing in life to know so much about Java code. But it gains you a lot of envy by acting like a dick. And obviously I can't know as much about Java as you do, because clearly I have a life. It's not lag of skills or commitment, it's simply a lag of time.

 

Modding communitys are supposed to share and help each other, at least that's what we're doing over at Skyrim Community...seems like attitude over here is far more reserved and superior. Feel pleased about your skills, because that's probably all you got.

 

Wait, so you want to remove mob drop that are craftable ?

Do they even exist ?

 

Exceptionally I want to remove leather drops from cows and make them drop fur instead, so I'm capable of processing it.

Posted
ItemStack stack;
Iterator drop = event.drops.iterator();
while(drop.hasNext())
{
stack = ((EntityItem)drop.next()).getEntityItem();
if(stack!=null && stack.getItem().itemID == Item.leather.itemID)
{
iterator.remove();
event.drops.add(new EntityItem(world,x,y,z, new ItemStack(furID));
} 
}

Posted

I'd say I have to go with something like...

 

event.entityLiving.removeItem(Item.leather.itemID)

 

...but it didn't work

 

soooo close... try looking up arraylists if you don't know how to use them.

 

So I was right when thinking you're the little smarty by reading all the miriads of your posts on this forums, telling people to learn something, instead of just helping them.

 

and which posts did you read exactly? because as far as i remember i only answer like a dick when the answer to the question is annoyingly simple and can be figured out with just a bit of research (in your case, it shouldn't even take 10 minutes). or if i know the op to be a dick. but i still give answers which should be enough to help them

 

Look, it gains you nothing in life to know so much about Java code. But it gains you a lot of envy by acting like a dick. And obviously I can't know as much about Java as you do, because clearly I have a life. It's not lag of skills or commitment, it's simply a lag of time.

 

who says i know a lot about java? i learn java on my own and as a hobby. and i'm an architecture student (meaning my workload is ridiculous and i spend most of my time working that i barely get any sleep), but even then i still have a life outside of school and coding. and even then i don't need someone to spoon feed code for me to figure something out.

 

Modding communitys are supposed to share and help each other, at least that's what we're doing over at Skyrim Community...seems like attitude over here is far more reserved and superior. Feel pleased about your skills, because that's probably all you got.

 

help others by posting code for them to copy and paste without them understanding what it does? that's not helping at all. i post code when i see that the op knows what he's talking about. if he doesn't, i point them in the right direction so he can figure things out. a buttload of posts here are related to copied code that the ops don't understand and don't bother to... which is annoying.

 

i pointed you to the answer, but if you're looking for code, i'm not posting any for this. think of me as a dick if you want to, but not everyone here is. i was about to say some guy named hydroflame is usually patient enough to help out a lot, so wait for him. but he already replied here and wadaya know? he said basically the same thing i did.. aaaannd gotolink just posted code.

 

god damn this is a long post

Posted
So I was right when thinking you're the little smarty by reading all the miriads of your posts on this forums, telling people to learn something, instead of just helping them. Look, it gains you nothing in life to know so much about Java code. But it gains you a lot of envy by acting like a dick. And obviously I can't know as much about Java as you do, because clearly I have a life. It's not lag of skills or commitment, it's simply a lag of time.

 

Modding communitys are supposed to share and help each other, at least that's what we're doing over at Skyrim Community...seems like attitude over here is far more reserved and superior. Feel pleased about your skills, because that's probably all you got.

 

what the even fuck ? i dont even...

 

So I was right when thinking you're the little smarty by reading all the miriads of your posts on this forums,

theres a search bar top left of this screen and YES even pro/good modders use it .. they dont ask question unless they know no one else asked them before

 

telling people to learn something, instead of just helping them

telling people to learn java before modding IS helping them, without basic java knowledge you CANNOT do a mod (even the most simple ones)

 

copy pasting code is NOT learning btw

 

Look, it gains you nothing in life to know so much about Java code.

i make 75 000 a year (canada) "knowing about java code".

if 75000 a year is nothing can you give me 75000 per year ?

 

And obviously I can't know as much about Java as you do, because clearly I have a life.

this argument is so invalid im getting cancer from reading it

you will learn stuff in EVERY profession you can think of (dont try a counterargument where working at mcdonald doesnt require learning anything because that would be pathetic). do you think that literally every developper in the world are in front of their computer 24/7 ?!?!?!?!

 

nope, most of us have a wife and children and we will do stuff in our daily lives

 

 

at least that's what we're doing over at Skyrim Community

please, skyrim modding is a freacking joke

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

Man, the time it took you to write all thoose walls of text could have been used to just post the damn code. Now get of your throne, you don't even remotely listen to what I'm telling you Java-Nerd. If your job is Java Coding then you probably kicked yourself a penalty in all your weirdo arguments, right? Wait, I'll tell myself so you don't need to upset yourself...GO LEARN JAVA!!! I'M TALKNG TO ME, DO ME HEARD ME??? GO LEARN JAVA!!!  8)

 

Also, why do I slightly get the feeling no one every achieved that? There should have been a tutorial around already.

 

At least GoToLink has mercy, but unfortunately I'm obviously to dumb to get further then this, and it still doesn't work:

 

package MetallurgyRealism;

import java.util.Iterator;

import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.passive.EntitySheep;
import net.minecraft.entity.passive.EntityWolf;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.entity.living.LivingDropsEvent;

public class MetallurgyRealismLivingDrops {
public static double rand;

@ForgeSubscribe
public void onEntityDrop(LivingDropsEvent event) {
	if (event.source.getDamageType().equals("player")) {
		rand = Math.random();
		if (event.entityLiving instanceof EntityCow || event.entityLiving instanceof EntitySheep || event.entityLiving instanceof EntityChicken || event.entityLiving instanceof EntityPig || event.entityLiving instanceof EntityWolf) {
			if (rand < 0.1D) {
				event.entityLiving.dropItem(Item.bone.itemID, 2);
			}
		}
	}
}
public void onEntityDrop1(LivingDropsEvent event, World world, double x, double y, double z, Iterator iterator) {
ItemStack stack;
Iterator drop = event.drops.iterator();{

	while(drop.hasNext()){
		stack = ((EntityItem)drop.next()).getEntityItem();
		if(stack!=null && stack.getItem().itemID == Item.leather.itemID){
			iterator.remove();
			event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(MetallurgyRealismModBase.armorBootsBone)));
		}
	}
}	
}
}

 

 

Posted

Modding communitys are supposed to share and help each other, at least that's what we're doing over at Skyrim Community...seems like attitude over here is far more reserved and superior. Feel pleased about your skills, because that's probably all you got.

 

It is not that people aren't helping. It is that noone can help you if you don't ask the correct question.

In your case, from the very beginning it should have been something like:

I want to remove leather drops from cows and make them drop fur instead.

I began working with LivingDropsEvent, but had no luck, here is my code.

Illustrative code here.

 

Edit: Man, what are you doing with this onEntityDrop1 method ?

Just place the code into a

if(event.entityLiving instanceof EntityCow)
{
//code here
}

in your first method

Posted

MC is crashing as soon as I kill a cow. I can't get the red underline removed from the iterator.remove(); section. If I try fixing with Eclipse it's also crashing.

 

Code so far:

 

 

package MetallurgyRealism;

import java.util.Iterator;

import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.passive.EntityChicken;
import net.minecraft.entity.passive.EntityCow;
import net.minecraft.entity.passive.EntityPig;
import net.minecraft.entity.passive.EntitySheep;
import net.minecraft.entity.passive.EntityWolf;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.event.ForgeSubscribe;
import net.minecraftforge.event.entity.living.LivingDropsEvent;

public class MetallurgyRealismLivingDrops {
public static double rand;

@ForgeSubscribe
public void onEntityDrop(LivingDropsEvent event) {
	if (event.source.getDamageType().equals("player")) {
		rand = Math.random();
		System.out.println("Killed something.");
		if (event.entityLiving instanceof EntityCow || event.entityLiving instanceof EntitySheep || event.entityLiving instanceof EntityChicken || event.entityLiving instanceof EntityPig || event.entityLiving instanceof EntityWolf) {
			System.out.println("Killed a sheep.");
			if (rand < 0.1D) {
				event.entityLiving.dropItem(Item.bone.itemID, 2);
			}				
		}
		if(event.entityLiving instanceof EntityCow)
		{
			ItemStack stack;
			Iterator drop = event.drops.iterator();
			while(drop.hasNext())
			{
			stack = ((EntityItem)drop.next()).getEntityItem();
			if(stack!=null && stack.getItem().itemID == Item.leather.itemID)
			{
			[u]iterator.remove();[/u]
			event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(MetallurgyRealismModBase.FoodEggBoiled)));
			} 
			}
		}
	}
}
}

 

 

Error Log:

 

 

Minecraft has crashed!     

      ----------------------     

 

Minecraft has stopped running because it encountered a problem; Exception in server tick loop

 

A full error report has been saved to C:\Users\MarcelsPC\Desktop\Forge\mcp\jars\.\crash-reports\crash-2013-07-27_22.07.07-server.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash :(

 

 

 

--- BEGIN ERROR REPORT dae3ac1c --------

Full report at:

C:\Users\MarcelsPC\Desktop\Forge\mcp\jars\.\crash-reports\crash-2013-07-27_22.07.07-server.txt

Please show that file to Mojang, NOT just this screen!

 

Generated 27.07.13 22:07

 

-- System Details --

Details:

Minecraft Version: 1.5.2

Operating System: Windows 7 (amd64) version 6.1

Java Version: 1.7.0_21, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 773841080 bytes (737 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 6195 (346920 bytes; 0 MB) allocated, 5584 (312704 bytes; 0 MB) used

Suspicious classes: FML and Forge are installed

IntCache: cache: 0, tcache: 0, allocated: 1, tallocated: 63

FML: MCP v7.51 FML v5.2.21.729 Minecraft Forge 7.8.0.729 4 mods loaded, 4 mods active

mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{5.2.21.729} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{7.8.0.729} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

MetallurgyRealism{0.0.7} [Metallurgy Realism] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Profiler Position: N/A (disabled)

Vec3 Pool Size: 1340 (75040 bytes; 0 MB) allocated, 1253 (70168 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player641'/503, l='New World', x=-253,63, y=66,00, z=239,03]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

java.lang.Error: Unresolved compilation problem:

iterator cannot be resolved

 

at MetallurgyRealism.MetallurgyRealismLivingDrops.onEntityDrop(MetallurgyRealismLivingDrops.java:39)

at net.minecraftforge.event.ASMEventHandler_4_MetallurgyRealismLivingDrops_onEntityDrop_LivingDropsEvent.invoke(.dynamic)

at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)

at net.minecraftforge.event.EventBus.post(EventBus.java:108)

at net.minecraftforge.common.ForgeHooks.onLivingDrops(ForgeHooks.java:338)

at net.minecraft.entity.EntityLiving.onDeath(EntityLiving.java:1372)

at net.minecraft.entity.EntityLiving.attackEntityFrom(EntityLiving.java:1126)

at net.minecraft.entity.passive.EntityAnimal.attackEntityFrom(EntityAnimal.java:191)

at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1347)

at net.minecraft.network.NetServerHandler.handleUseEntity(NetServerHandler.java:832)

at net.minecraft.network.packet.Packet7UseEntity.processPacket(Packet7UseEntity.java:57)

at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)

at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)

at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)

at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:676)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:572)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:470)

at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

--- END ERROR REPORT 308c65a0 ----------

 

 

 

Posted

see this is why we say learning java is important because this error shoudl NEVER get to us

 

 

in eclispe do ctrl+shift+o  (the letter O not zero)

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

see this is why we say learning java is important because this error shoudl NEVER get to us

 

 

in eclispe do ctrl+shift+o  (the letter O not zero)

 

Ohh, so you're saying I was to dumb to organize my imports. Well then thank you very much for pointing out my complete lag of understanding Java AND Eclipse. I'll do instantly what you tought me...*hastes pressing ctrl+shift and o (not the zero but the o, like oooohhhh) and anxiously licking his lips for expected success*.

 

Oh crap, it didn't work... :o

 

I'm just curious, if there is any difference in Iterator (which you want to import) and iterator (which is a container reference)?

Posted

how do you know about "organising imports" but not what an iterator is ??  this is contradictory ish

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

MC is crashing as soon as I kill a cow. I can't get the red underline removed from the iterator.remove(); section. If I try fixing with Eclipse it's also crashing.

So, what does Eclipse say of this underlined error ?

Your import is good.

 

I am trying to teach you how to read and learn code, and not copy/paste all over.

 

[spoiler=The fix you should have found]

drop.remove();

 

 

Posted

Man, the time it took you to write all thoose walls of text could have been used to just post the damn code. Now get of your throne, you don't even remotely listen to what I'm telling you Java-Nerd.

 

"Java-Nerd"? real mature. i suggest you listen to yourself and go learn basic java. i mean f*ck, i already told you how to do it, hydroflame confirmed it, and gotolink basically did it for you. and you still complain?? are you that much of a baby that can't be bothered to figure out the rest yourself? you need absolutely everything done for you? get over yourself

Posted

how do you know about "organising imports" but not what an iterator is ??  this is contradictory ish

 

Probably because I'm not a simple copy paster, yet not a skilled coder. I'm somewhere in between, loosely base my understanding of code on trial and fail...;)

 

I said I'm in lag of time to learn every single portion of Java code. I do know from Phython code that a iterator is something that's used to traverse between objects or containers. At least that's what the Java and the Phython Tutorial said.

 

So, what does Eclipse say of this underlined error ?

 

All possible fixes, but drop.remove was none of them. I thought since the "Iterator iterator" was nowhere defined, I had to define it. However, changing it to drop.remove fires out this error log...

 

 

 

      Minecraft has crashed!     

      ----------------------     

 

Minecraft has stopped running because it encountered a problem; Ticking memory connection

 

A full error report has been saved to C:\Users\MarcelsPC\Desktop\Forge\mcp\jars\.\crash-reports\crash-2013-07-28_08.15.01-server.txt - Please include a copy of that file (Not this screen!) if you report this crash to anyone; without it, they will not be able to help fix the crash :(

 

 

 

--- BEGIN ERROR REPORT 763a51d2 --------

Full report at:

C:\Users\MarcelsPC\Desktop\Forge\mcp\jars\.\crash-reports\crash-2013-07-28_08.15.01-server.txt

Please show that file to Mojang, NOT just this screen!

 

Generated 28.07.13 08:15

 

-- System Details --

Details:

Minecraft Version: 1.5.2

Operating System: Windows 7 (amd64) version 6.1

Java Version: 1.7.0_21, Oracle Corporation

Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation

Memory: 659224968 bytes (628 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)

JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M

AABB Pool Size: 5825 (326200 bytes; 0 MB) allocated, 5204 (291424 bytes; 0 MB) used

Suspicious classes: FML and Forge are installed

IntCache: cache: 0, tcache: 0, allocated: 3, tallocated: 63

FML: MCP v7.51 FML v5.2.21.729 Minecraft Forge 7.8.0.729 4 mods loaded, 4 mods active

mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

FML{5.2.21.729} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Forge{7.8.0.729} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

MetallurgyRealism{0.0.7} [Metallurgy Realism] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available

Profiler Position: N/A (disabled)

Vec3 Pool Size: 1303 (72968 bytes; 0 MB) allocated, 1159 (64904 bytes; 0 MB) used

Player Count: 1 / 8; [EntityPlayerMP['Player758'/455, l='New World', x=-249,01, y=66,00, z=238,83]]

Type: Integrated Server (map_client.txt)

Is Modded: Definitely; Client brand changed to 'fml,forge'

 

java.util.ConcurrentModificationException

at java.util.ArrayList$Itr.checkForComodification(Unknown Source)

at java.util.ArrayList$Itr.next(Unknown Source)

at MetallurgyRealism.MetallurgyRealismLivingDrops.onEntityDrop(MetallurgyRealismLivingDrops.java:36)

at net.minecraftforge.event.ASMEventHandler_4_MetallurgyRealismLivingDrops_onEntityDrop_LivingDropsEvent.invoke(.dynamic)

at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)

at net.minecraftforge.event.EventBus.post(EventBus.java:108)

at net.minecraftforge.common.ForgeHooks.onLivingDrops(ForgeHooks.java:338)

at net.minecraft.entity.EntityLiving.onDeath(EntityLiving.java:1372)

at net.minecraft.entity.EntityLiving.attackEntityFrom(EntityLiving.java:1126)

at net.minecraft.entity.passive.EntityAnimal.attackEntityFrom(EntityAnimal.java:191)

at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1347)

at net.minecraft.network.NetServerHandler.handleUseEntity(NetServerHandler.java:832)

at net.minecraft.network.packet.Packet7UseEntity.processPacket(Packet7UseEntity.java:57)

at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)

at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)

at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)

at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:676)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:572)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:470)

at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

--- END ERROR REPORT 41e8ba5d ----------

 

 

...and Eclipse says...

 

 

2013-07-28 08:14:54 [iNFO] [sTDOUT] loading single player

2013-07-28 08:14:54 [iNFO] [Minecraft-Server] Player758[/127.0.0.1:0] logged in with entity id 455 at (-253.99618045364738, 66.0, 239.30070436888)

2013-07-28 08:15:01 [iNFO] [sTDOUT] Killed something.

2013-07-28 08:15:01 [iNFO] [sTDOUT] Killed a sheep.

2013-07-28 08:15:01 [iNFO] [sTDERR] net.minecraft.util.ReportedException: Ticking memory connection

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:676)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:572)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:470)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

2013-07-28 08:15:01 [iNFO] [sTDERR] Caused by: java.util.ConcurrentModificationException

2013-07-28 08:15:01 [iNFO] [sTDERR] at java.util.ArrayList$Itr.checkForComodification(Unknown Source)

2013-07-28 08:15:01 [iNFO] [sTDERR] at java.util.ArrayList$Itr.next(Unknown Source)

2013-07-28 08:15:01 [iNFO] [sTDERR] at MetallurgyRealism.MetallurgyRealismLivingDrops.onEntityDrop(MetallurgyRealismLivingDrops.java:36)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraftforge.event.ASMEventHandler_4_MetallurgyRealismLivingDrops_onEntityDrop_LivingDropsEvent.invoke(.dynamic)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraftforge.event.EventBus.post(EventBus.java:108)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraftforge.common.ForgeHooks.onLivingDrops(ForgeHooks.java:338)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.entity.EntityLiving.onDeath(EntityLiving.java:1372)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.entity.EntityLiving.attackEntityFrom(EntityLiving.java:1126)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.entity.passive.EntityAnimal.attackEntityFrom(EntityAnimal.java:191)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1347)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.handleUseEntity(NetServerHandler.java:832)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.packet.Packet7UseEntity.processPacket(Packet7UseEntity.java:57)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)

2013-07-28 08:15:01 [iNFO] [sTDERR] at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)

2013-07-28 08:15:01 [iNFO] [sTDERR] ... 6 more

2013-07-28 08:15:01 [sEVERE] [Minecraft-Server] Encountered an unexpected exception ReportedException

net.minecraft.util.ReportedException: Ticking memory connection

at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:60)

at net.minecraft.server.integrated.IntegratedServerListenThread.networkTick(IntegratedServerListenThread.java:109)

at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:676)

at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:572)

at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:127)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:470)

at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

Caused by: java.util.ConcurrentModificationException

at java.util.ArrayList$Itr.checkForComodification(Unknown Source)

at java.util.ArrayList$Itr.next(Unknown Source)

at MetallurgyRealism.MetallurgyRealismLivingDrops.onEntityDrop(MetallurgyRealismLivingDrops.java:36)

at net.minecraftforge.event.ASMEventHandler_4_MetallurgyRealismLivingDrops_onEntityDrop_LivingDropsEvent.invoke(.dynamic)

at net.minecraftforge.event.ASMEventHandler.invoke(ASMEventHandler.java:39)

at net.minecraftforge.event.EventBus.post(EventBus.java:108)

at net.minecraftforge.common.ForgeHooks.onLivingDrops(ForgeHooks.java:338)

at net.minecraft.entity.EntityLiving.onDeath(EntityLiving.java:1372)

at net.minecraft.entity.EntityLiving.attackEntityFrom(EntityLiving.java:1126)

at net.minecraft.entity.passive.EntityAnimal.attackEntityFrom(EntityAnimal.java:191)

at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1347)

at net.minecraft.network.NetServerHandler.handleUseEntity(NetServerHandler.java:832)

at net.minecraft.network.packet.Packet7UseEntity.processPacket(Packet7UseEntity.java:57)

at net.minecraft.network.MemoryConnection.processReadPackets(MemoryConnection.java:89)

at net.minecraft.network.NetServerHandler.networkTick(NetServerHandler.java:134)

at net.minecraft.network.NetworkListenThread.networkTick(NetworkListenThread.java:53)

... 6 more

2013-07-28 08:15:01 [sEVERE] [Minecraft-Server] This crash report has been saved to: C:\Users\MarcelsPC\Desktop\Forge\mcp\jars\.\crash-reports\crash-2013-07-28_08.15.01-server.txt

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Stopping server

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Saving players

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Saving worlds

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Saving chunks for level 'New World'/Overworld

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Saving chunks for level 'New World'/Nether

2013-07-28 08:15:01 [iNFO] [Minecraft-Server] Saving chunks for level 'New World'/The End

2013-07-28 08:15:02 [iNFO] [ForgeModLoader] Unloading dimension 0

2013-07-28 08:15:02 [iNFO] [ForgeModLoader] Unloading dimension -1

2013-07-28 08:15:02 [iNFO] [ForgeModLoader] Unloading dimension 1

2013-07-28 08:15:02 [sEVERE] [ForgeModLoader] Fatal errors were detected during the transition from SERVER_STARTED to SERVER_STOPPED. Loading cannot continue

2013-07-28 08:15:02 [sEVERE] [ForgeModLoader]

mcp{7.44} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available

FML{5.2.21.729} [Forge Mod Loader] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available

Forge{7.8.0.729} [Minecraft Forge] (coremods) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available

MetallurgyRealism{0.0.7} [Metallurgy Realism] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available->Available

2013-07-28 08:15:02 [sEVERE] [ForgeModLoader] The ForgeModLoader state engine has become corrupted. Probably, a state was missed by and invalid modification to a base classForgeModLoader depends on. This is a critical error and not recoverable. Investigate any modifications to base classes outside ofForgeModLoader, especially Optifine, to see if there are fixes available.

2013-07-28 08:15:02 [iNFO] [sTDERR] Exception in thread "Server thread" java.lang.RuntimeException: The ForgeModLoader state engine is invalid

2013-07-28 08:15:02 [iNFO] [sTDERR] at cpw.mods.fml.common.LoadController.transition(LoadController.java:139)

2013-07-28 08:15:02 [iNFO] [sTDERR] at cpw.mods.fml.common.Loader.serverStopped(Loader.java:801)

2013-07-28 08:15:02 [iNFO] [sTDERR] at cpw.mods.fml.common.FMLCommonHandler.handleServerStopped(FMLCommonHandler.java:468)

2013-07-28 08:15:02 [iNFO] [sTDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:532)

2013-07-28 08:15:02 [iNFO] [sTDERR] at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

2013-07-28 08:15:11 [iNFO] [Minecraft-Client] Stopping!

2013-07-28 08:15:11 [iNFO] [sTDOUT]

2013-07-28 08:15:11 [iNFO] [sTDOUT] SoundSystem shutting down...

2013-07-28 08:15:12 [iNFO] [sTDOUT]    Author: Paul Lamb, www.paulscode.com

2013-07-28 08:15:12 [iNFO] [sTDOUT]

2013-07-28 08:15:47 [iNFO] [sTDERR] Someone is closing me!

2013-07-28 08:15:47 [iNFO] [Minecraft-Server] Stopping server

2013-07-28 08:15:47 [iNFO] [Minecraft-Server] Saving players

2013-07-28 08:15:47 [iNFO] [Minecraft-Server] Saving worlds

 

 

...I don't understand what Eclpise wants from me, but MC error log is itching about the array list, if I interpret this correctly. Ohh wait, fatal error due to a incompatible modification of a base file, which is rubbish, because I did not touched any base file at all. Do I maybe need to put the code into my proxy class?

 

"Java-Nerd"? real mature. i suggest you listen to yourself and go learn basic java. i mean f*ck, i already told you how to do it, hydroflame confirmed it, and gotolink basically did it for you. and you still complain?? are you that much of a baby that can't be bothered to figure out the rest yourself? you need absolutely everything done for you? get over yourself

 

You'd understand sarcasm or Irony not even if I smashed it in your face. And please, could you wipe my little tushi and chew my meat for me?

Posted

You'd understand sarcasm or Irony not even if I smashed it in your face.

 

Says the guy who can't even form a sentence right. and it's crashing because you're modifying the list while iterating through it. either replace only the entityitem's itemstack and not the entityitem itself or modify the list after you've iterated through it. and that's the last thing i'm saying. hydroflame and gotolink may be patient enough to deal with your immaturity and bs, but i'm certainly not. so byebye now

Posted

The root cause is this exception:

 

java.util.ConcurrentModificationException

at java.util.ArrayList$Itr.checkForComodification(Unknown Source)

at java.util.ArrayList$Itr.next(Unknown Source)

at MetallurgyRealism.MetallurgyRealismLivingDrops.onEntityDrop(MetallurgyRealismLivingDrops.java:36)

 

Googling for "java ConcurrentModificationException" turns up this explanation: http://docs.oracle.com/javase/6/docs/api/java/util/ConcurrentModificationException.html

 

In this case it's because you have this line inside the loop that's iterating over the drops:

 

    event.drops.add(new EntityItem(event.entityLiving.worldObj, event.entityLiving.posX, event.entityLiving.posY, event.entityLiving.posZ, new ItemStack(MetallurgyRealismModBase.FoodEggBoiled)));

 

One way to fix this would be to add the replacement items to a temporary list while you're iterating, and then add that to the drops afterwards.

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.