I was using the tool tutorial for modloader, And everything worked just as I wanted but when i try to mine obsidian is the same as if i tryed with my fist. What's wrong?
Obsidian.java
package net.minecraft.src;
public enum Obsidian
{
Obsidian(0, 59, 2.0F, 0, 15);
private final int harvestLevel;
private final int maxUses;
private final float efficiencyOnProperMaterial;
private final int damageVsEntity;
private final int enchantability;
private Obsidian(int par3, int par4, float par5, int par6, int par7)
{
harvestLevel = par3;
maxUses = par4;
efficiencyOnProperMaterial = par5;
damageVsEntity = par6;
enchantability = par7;
}
public int getMaxUses()
{
return 2000;
}
public float getEfficiencyOnProperMaterial()
{
return 25;
}
public int getDamageVsEntity()
{
return 5;
}
public int getHarvestLevel()
{
return 100;
}
public int getEnchantability()
{
return enchantability;
}
}
ObsidianTool.java
package net.minecraft.src;
public class ObsidianSword extends Item
{
private int weaponDamage;
private final Obsidian toolMaterial;
public ObsidianSword(int par1, Obsidian par2EnumToolMaterialNamehere)
{
super(par1);
toolMaterial = par2EnumToolMaterialNamehere;
maxStackSize = 1;
setMaxDamage(par2EnumToolMaterialNamehere.getMaxUses());
weaponDamage = 4 + par2EnumToolMaterialNamehere.getDamageVsEntity();
}
/**
* Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if
* sword
*/
public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
{
return par2Block.blockID != Block.web.blockID ? 1.5F : 15F;
}
/**
* Current implementations of this method in child classes do not use the entry argument beside ev. They just raise
* the damage on the stack.
*/
public boolean hitEntity(ItemStack par1ItemStack, EntityLiving par2EntityLiving, EntityLiving par3EntityLiving)
{
par1ItemStack.damageItem(1, par3EntityLiving);
return true;
}
public boolean onBlockDestroyed(ItemStack par1ItemStack, int par2, int par3, int par4, int par5, EntityLiving par6EntityLiving)
{
par1ItemStack.damageItem(2, par6EntityLiving);
return true;
}
/**
* Returns the damage against a given entity.
*/
public int getDamageVsEntity(Entity par1Entity)
{
return 10;
}
/**
* Returns True is the item is renderer in full 3D when hold.
*/
public boolean isFull3D()
{
return true;
}
/**
* returns the action that specifies what animation to play when the items is being used
*/
public EnumAction getItemUseAction(ItemStack par1ItemStack)
{
return EnumAction.block;
}
/**
* How long it takes to use or consume an item
*/
public int getMaxItemUseDuration(ItemStack par1ItemStack)
{
return 0x11940;
}
/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*/
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
{
par3EntityPlayer.setItemInUse(par1ItemStack, getMaxItemUseDuration(par1ItemStack));
return par1ItemStack;
}
/**
* Returns if the item (tool) can harvest results from the block type.
*/
public boolean canHarvestBlock(Block par1Block)
{
return par1Block.blockID == Block.web.blockID;
}
/**
* Return the enchantability factor of the item, most of the time is based on material.
*/
public int getItemEnchantability()
{
return toolMaterial.getEnchantability();
}
}
ObsidianPickaxe.java
package net.minecraft.src;
public class ObsidianPickaxe extends ObsidianTool
{
private static Block[] blocksEffectiveAgainst = new Block[] {Block.obsidian, Block.cobblestone, Block.stoneDoubleSlab, Block.stoneSingleSlab, Block.stone, Block.sandStone, Block.cobblestoneMossy, Block.oreIron, Block.blockSteel, Block.oreCoal, Block.blockGold, Block.oreGold, Block.oreDiamond, Block.blockDiamond, Block.ice, Block.netherrack, Block.oreLapis, Block.blockLapis, Block.oreRedstone, Block.oreRedstoneGlowing, Block.rail, Block.railDetector, Block.railPowered};
protected ObsidianPickaxe(int par1, Obsidian par2Obsidian)
{
super(par1, 2, par2Obsidian, blocksEffectiveAgainst);
}
/**
* Returns if the item (tool) can harvest results from the block type.
*/
public boolean canHarvestBlock(Block par1Block)
{
if (par1Block == Block.obsidian)
{
return toolMaterial.getHarvestLevel() == 1;
}
if (par1Block == Block.blockDiamond || par1Block == Block.oreDiamond)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if (par1Block == Block.blockGold || par1Block == Block.oreGold)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if (par1Block == Block.blockSteel || par1Block == Block.oreIron)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if (par1Block == Block.blockLapis || par1Block == Block.oreLapis)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if (par1Block == Block.oreRedstone || par1Block == Block.oreRedstoneGlowing)
{
return toolMaterial.getHarvestLevel() >= 1;
}
if (par1Block.blockMaterial == Material.rock)
{
return true;
}
return par1Block.blockMaterial == Material.iron;
}
/**
* Returns the strength of the stack against a given block. 1.0F base, (Quality+1)*2 if correct blocktype, 1.5F if
* sword
*/
public float getStrVsBlock(ItemStack par1ItemStack, Block par2Block)
{
if (par2Block != null && (par2Block.blockMaterial == Material.iron || par2Block.blockMaterial == Material.rock))
{
return 25;
}
else
{
return super.getStrVsBlock(par1ItemStack, par2Block);
}
}
}
why not try this...
now i know we are editing base classes but this is how I roll so add this code to EnumToolMaterial.JAVA...
package net.minecraft.src;
public enum EnumToolMaterial
{
WOOD(0, 59, 2.0F, 0, 15),
STONE(1, 131, 4.0F, 1, 5),
IRON(2, 250, 6.0F, 2, 14),
EMERALD(3, 1561, 8.0F, 3, 10),
GOLD(0, 32, 12.0F, 0, 22),
OBSIDIAN(5, 2000, 10.0F, 8, 20); //ADD THIS LINE OF CODE!
/**
* The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD)
*/
private final int harvestLevel;
/**
* The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32)
*/
private final int maxUses;
/**
* The strength of this tool material against blocks which it is effective against.
*/
private final float efficiencyOnProperMaterial;
/** Damage versus entities. */
private final int damageVsEntity;
/** Defines the natural enchantability factor of the material. */
private final int enchantability;
private EnumToolMaterial(int par3, int par4, float par5, int par6, int par7)
{
this.harvestLevel = par3;
this.maxUses = par4;
this.efficiencyOnProperMaterial = par5;
this.damageVsEntity = par6;
this.enchantability = par7;
}
/**
* The number of uses this material allows. (wood = 59, stone = 131, iron = 250, diamond = 1561, gold = 32)
*/
public int getMaxUses()
{
return this.maxUses;
}
/**
* The strength of this tool material against blocks which it is effective against.
*/
public float getEfficiencyOnProperMaterial()
{
return this.efficiencyOnProperMaterial;
}
/**
* Damage versus entities.
*/
public int getDamageVsEntity()
{
return this.damageVsEntity;
}
/**
* The level of material this tool can harvest (3 = DIAMOND, 2 = IRON, 1 = STONE, 0 = IRON/GOLD)
*/
public int getHarvestLevel()
{
return this.harvestLevel;
}
/**
* Return the natural enchantability factor of the material.
*/
public int getEnchantability()
{
return this.enchantability;
}
}
edit the obsidian enum to your specifications.
add this to your mod_yourMod
package net.minecraft.src;
public class mod_yourMod extends BaseMod
{
public static final Item yourPickaxe = (new ItemPickaxe(200, EnumToolMaterial.MATERIALNAME)).setItemName("yourPickaxe");
public static final Item yourAxe = (new ItemAxe(201, EnumToolMaterial.MATERIALNAME)).setItemName("yourAxe");
public static final Item yourShovel = (new ItemSpade(202, EnumToolMaterial.MATERIALNAME)).setItemName("yourShovel");
public static final Item yourSword = (new ItemSword(203, EnumToolMaterial.MATERIALNAME)).setItemName("yourSword");
public static final Item yourHoe = (new ItemHoe(204, EnumToolMaterial.MATERIALNAME)).setItemName("yourHoe");
public void load()
{
yourPickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/textures/yourPickaxe.png");
yourAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/textures/yourAxe.png");
yourShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/textures/yourShovel.png");
yourSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/textures/yourSword.png");
yourHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/textures/yourHoe.png");
ModLoader.addRecipe(new ItemStack(yourPickaxe, 1), new Object [] {"###", " X ", " X ", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourShovel, 1), new Object [] {"#", "X", "X", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourSword, 1), new Object [] {"#", "#", "X", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourAxe, 1), new Object [] {"##", "#X ", " X", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourAxe, 1), new Object [] {"##", "X#", "X ", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourHoe, 1), new Object [] {"##", " X", " X", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addRecipe(new ItemStack(yourHoe, 1), new Object [] {"##", "X ", "X ", Character.valueOf('#'), yourItem, Character.valueOf('X'), Item.stick});
ModLoader.addName(yourPickaxe, "Pickaxe Name");
ModLoader.addName(yourAxe, "Axe Pickaxe Name");
ModLoader.addName(yourShovel, "Shovel Pickaxe Name");
ModLoader.addName(yourSword, "Sword Pickaxe Name");
ModLoader.addName(yourHoe, "Hoe Pickaxe Name");
}
public String getVersion()
{
return "1.4.7";
}
}
now take these hints with a grain of salt and dont be afraid to edit this code.
Hey, I got a question about the forge modding tutorials. Where do I put my main class (that one that registers the iitems, blocks etc.)?
Edit: ghosrec35's got this.
\/ \/
Rollback Post to RevisionRollBack
When life gives you a potato, wonder why the heck life just gave you a potato. Why not something else? Like money? Or a combustable lemon? No, you get a potato. Nothing else.
Anywhere you want, but it is uniform to put it in the net.minecraft.src package.
That is the worst advice i've ever seen given for Forge. The entire idea behind forge is to place your files in your own packages so that you are not required to install your mod within the minecraft.jar, and can merely place a zipped version of your mod into the mods folder. Forge aims to move away from JarMods, except in the case of allowing for compatibilities with ModLoader mods.
That is the worst advice i've ever seen given for Forge. The entire idea behind forge is to place your files in your own packages so that you are not required to install your mod within the minecraft.jar, and can merely place a zipped version of your mod into the mods folder. Forge aims to move away from JarMods, except in the case of allowing for compatibilities with ModLoader mods.
You will create your own package to place all your files in. Some common package conventions are: Here
I'm not even sure why I said that myself. I use my own packages. Wow, for some reason a ModLoader mindset just popped up for some reason...
Rollback Post to RevisionRollBack
When life gives you a potato, wonder why the heck life just gave you a potato. Why not something else? Like money? Or a combustable lemon? No, you get a potato. Nothing else.
wtf????? No more modloader tuts?!?!?? THIS SUCKS. I WILL NO LONGER BE SUPPORTING THESE TUTORIALS!
Very well then. Feel free to stay in the past.
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
wtf????? No more modloader tuts?!?!?? THIS SUCKS. I WILL NO LONGER BE SUPPORTING THESE TUTORIALS!
And why not, exactly? Switching to Forge is beyond easy, and does not force much on you like ModLoader does. ModLoader is also completely stagnant, while Forge is getting new features very often. I may as well leave it at that.
I see, sort of having trouble with getting the code to work, how exactly do i set the string as null? .-.
in the EntityKtf.java:
public String getTexture;
{
this.texture = "/moditems/modskin.png";
public boolean interact(EntityPlayer par1EntityPlayer)
{
ItemStack var2 = par1EntityPlayer.inventory.getCurrentItem();
if (var2 != null && var2.itemID == mod_KtfMod.ItemMask.shiftedIndex)
{
if (--var2.stackSize <= 0)
{
par1EntityPlayer.inventory.setInventorySlotContents(par1EntityPlayer.inventory.currentItem, new ItemStack(Item.bucketMilk));
}
else if (!par1EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.bucketMilk)))
{
par1EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketMilk.shiftedIndex, 1, 0));
}
return true;
}
else
{
return super.interact(par1EntityPlayer);
}
}
}
m
*code is just the "snippet," if you will*
Which string? The mob texture? You could either remove it completely, set it to a blank one, or put 'null' where you'd put the directory.
Rollback Post to RevisionRollBack
When life gives you a potato, wonder why the heck life just gave you a potato. Why not something else? Like money? Or a combustable lemon? No, you get a potato. Nothing else.
Techguy. As someone who likes doing small mods, PLEASE, PLEASE!! port the modloader list to forge in order before doing dimension and GUI. You are the best tutorial maker and I want to keep using your tutorials. All the other 1.4 forge tutorials are too complicated or they don't have anything good.
Techguy. As someone who likes doing small mods, PLEASE, PLEASE!! port the modloader list to forge in order before doing dimension and GUI. You are the best tutorial maker and I want to keep using your tutorials. All the other 1.4 forge tutorials are too complicated or they don't have anything good.
It's actually really easy to port to forge. If you know how to make a basic forge class, it isn't too hard to make anything else. Try looking at a few forge tuts from other people to see how to make things like blocks, and then you will know how to make the more advanced things using techguys.
I hate of everybody is a fanboy of Forge. I find forge overcomplicates things, so much easier to use modloader.
It has nothing to do with being a "fanboy". Forge is better. Period. You're welcome to keep using the ModLoader tutorials already there but I won't waste my time with an API that is hardly supported by the developer. I respect your opinion but take your hate somewhere else. On second thought, don't bother. No one on this forum wants to hear it. Especially seeing as it isn't even constructive.
Rollback Post to RevisionRollBack
“Computers are incredibly fast, accurate and stupid; humans are incredibly slow, inaccurate and brilliant; together they are powerful beyond imagination."
I hate of everybody is a fanboy of Forge. I find forge overcomplicates things, so much easier to use modloader.
I'm getting flat out sick of this. Please refrain (read: STOP ENTIRELY) from posting for the sole purpose of criticizing something. As TechGuy put it, it's not even constructive, and no one wants to hear it.
Rollback Post to RevisionRollBack
When life gives you a potato, wonder why the heck life just gave you a potato. Why not something else? Like money? Or a combustable lemon? No, you get a potato. Nothing else.
I've asked this in another tute forum but had no luck. Hoping someone here will know...
How do I create an entity that looks and feels (i.e. collides with player, from the side, top and bottom) like a block?
I've attempted this, and I have a little wand item to test my code with that turns the block its clicked on to air, and then places a mod entity in the same place, but I can't figure out how to create and place a "block" entity (an entity that looks and feels like a block) instead.....
package Wand;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemTutorial extends Item {
public ItemTutorial(int par1) {
super(par1);
this.setCreativeTab(CreativeTabs.tabMaterials);
}
public String getTextureFile() {
return "/wand.png";
}
//when click on block with wand
public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) {
if( !par3World.isRemote && par3World.blockExists(par4, par5, par6) ) {//only place on the server side, not on client , and only if block exists
int blockID = par3World.getBlockId( par4, par5 , par6 ); //get block type
par3World.setBlock(par4, par5, par6, 0 ); //set to air
Entity e = new EntityTutorial( par3World ); //spawn entity where block was
e.setPosition( par4, par5, par6);
par3World.spawnEntityInWorld(e);
return true;
}
return false;
}//on use
}
Entity file
package Wand;
import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class EntityTutorial extends EntityMob {
public EntityTutorial(World par1World) {
super(par1World);
this.texture = "/Wand.png";
this.moveSpeed = 0.25F;
}
public int getMaxHealth() {
return 20;
}
public int getAttackStrength(Entity par1Entity) {
return 4;
}
protected boolean isAIEnabled() {
return false;
}
public int getTotalArmorValue() {
return 2;
}
protected int getDropItemId() {//normal drop in death
return Item.ingotGold.itemID;
}
}//class
I've asked this in another tute forum but had no luck. Hoping someone here will know...
How do I create an entity that looks and feels (i.e. collides with player, from the side, top and bottom) like a block?
I've attempted this, and I have a little wand item to test my code with that turns the block its clicked on to air, and then places a mod entity in the same place, but I can't figure out how to create and place a "block" entity (an entity that looks and feels like a block) instead.....
package Wand;
import net.minecraft.block.Block;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class ItemTutorial extends Item {
public ItemTutorial(int par1) {
super(par1);
this.setCreativeTab(CreativeTabs.tabMaterials);
}
public String getTextureFile() {
return "/wand.png";
}
//when click on block with wand
public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int par4, int par5, int par6, int par7, float par8, float par9, float par10) {
if( !par3World.isRemote && par3World.blockExists(par4, par5, par6) ) {//only place on the server side, not on client , and only if block exists
int blockID = par3World.getBlockId( par4, par5 , par6 ); //get block type
par3World.setBlock(par4, par5, par6, 0 ); //set to air
Entity e = new EntityTutorial( par3World ); //spawn entity where block was
e.setPosition( par4, par5, par6);
par3World.spawnEntityInWorld(e);
return true;
}
return false;
}//on use
}
Entity file
package Wand;
import net.minecraft.entity.Entity;
import net.minecraft.entity.monster.EntityMob;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.util.MathHelper;
import net.minecraft.world.World;
public class EntityTutorial extends EntityMob {
public EntityTutorial(World par1World) {
super(par1World);
this.texture = "/Wand.png";
this.moveSpeed = 0.25F;
}
public int getMaxHealth() {
return 20;
}
public int getAttackStrength(Entity par1Entity) {
return 4;
}
protected boolean isAIEnabled() {
return false;
}
public int getTotalArmorValue() {
return 2;
}
protected int getDropItemId() {//normal drop in death
return Item.ingotGold.itemID;
}
}//class
As entities are not my specialty, my best suggestion would be to take some pointers from the falling sand/gravel entities.
Rollback Post to RevisionRollBack
When life gives you a potato, wonder why the heck life just gave you a potato. Why not something else? Like money? Or a combustable lemon? No, you get a potato. Nothing else.
As entities are not my specialty, my best suggestion would be to take some pointers from the falling sand/gravel entities.
No worries, thanks for replying anyway. I've mostly figured it out since yesterday.
I now have a new problem (that I've also asked elsewhere, but the more the merrier...): I can place the entities by clicking on a block with my wand item, which removes the block and places an entity which looks and feels like a block, but I want them to look like the block they replaced, so I have this code:
My entity file looks like this:
public class BlockEntity extends Entity{
public int blockId;
public int meta;
public BlockEntity(World par1World) { // #1
super(par1World);
...
}
public BlockEntity(World par1World, int x, int y, int z , int blockId , int meta ) { // #2
super(par1World);
this.blockId = blockId;
...
}
...
}
My wand item uses constructor #2 to create the entity, and passes in the blockId of the block that was clicked on. (Works fine)
The plan is for the renderer to check the blockId stored here to select the correct block to render.
But what happens is that before rendering constructor #1 gets called (not by me) and so blockId gets reset to 0! (I know this is what's happening, I've checked)
My renderer has no way of getting the correct block ID...
Nowhere in the code is there a call to my constructor #1 (for example the code compiles fine even if I delete constructor #1).
The only solution I can think of atm is to create separate entities and renderers for each type of block, which is a TERRIBLE solution...
What is calling constructor #1?
I have to admit I'm totally stumped. How do I fix this?
EDIT: In case you were wondering, deleting constructor #1 causes MC to crash:
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:18:08 [INFO] [STDOUT] ###############5
2013-02-19 19:18:08 [INFO] [STDOUT] &&&&&&&&&&& new block entity has id 5
2013-02-19 19:18:08 [SEVERE] [ForgeModLoader] A severe problem occurred during the spawning of an entity
java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
at ayh.a(NetClientHandler.java:1483)
at di.a(SourceFile:59)
at cf.b(MemoryConnection.java:80)
at ayh.d(NetClientHandler.java:240)
at ayp.b(WorldClient.java:92)
at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
at net.minecraft.client.Minecraft.J(Minecraft.java:846)
at net.minecraft.client.Minecraft.run(Minecraft.java:771)
at java.lang.Thread.run(Thread.java:662)
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension 0
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension -1
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension 1
2013-02-19 19:18:10 [INFO] [STDERR] t: Exception in world tick
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1888)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.J(Minecraft.java:846)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:771)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
2013-02-19 19:18:10 [INFO] [STDERR] Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:18:10 [INFO] [STDERR] at com.google.common.base.Throwables.propagate(Throwables.java:160)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:394)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
2013-02-19 19:18:10 [INFO] [STDERR] at ayh.a(NetClientHandler.java:1483)
2013-02-19 19:18:10 [INFO] [STDERR] at di.a(SourceFile:59)
2013-02-19 19:18:10 [INFO] [STDERR] at cf.b(MemoryConnection.java:80)
2013-02-19 19:18:10 [INFO] [STDERR] at ayh.d(NetClientHandler.java:240)
2013-02-19 19:18:10 [INFO] [STDERR] at ayp.b(WorldClient.java:92)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
2013-02-19 19:18:10 [INFO] [STDERR] ... 3 more
2013-02-19 19:18:10 [INFO] [STDERR] Caused by: java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
2013-02-19 19:18:10 [INFO] [STDERR] ... 13 more
2013-02-19 19:18:20 [INFO] [STDOUT] Stopping!
2013-02-19 19:18:20 [INFO] [STDOUT] SoundSystem shutting down...
2013-02-19 19:18:20 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com
2013-02-19 19:18:20 [INFO] [STDERR] Exception in thread "Minecraft main thread" org.lwjgl.LWJGLException: X Error - disp: 0x7fbf3c060410 serial: 5446 error: BadWindow (invalid Window parameter) request_code: 2 minor_code: 0
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxDisplay.globalErrorHandler(LinuxDisplay.java:318)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.nSetDetectableKeyRepeat(Native Method)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.setDetectableKeyRepeat(LinuxKeyboard.java:152)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.destroy(LinuxKeyboard.java:163)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxDisplay.destroyKeyboard(LinuxDisplay.java:1203)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.input.Keyboard.destroy(Keyboard.java:349)
2013-02-19 19:18:20 [INFO] [STDERR] at net.minecraft.client.Minecraft.e(Minecraft.java:723)
2013-02-19 19:18:20 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:801)
2013-02-19 19:18:20 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
EDIT 2: Here is a stack trace for constructor #1:
java.lang.Exception
2013-02-19 20:04:53 [INFO] [STDERR] at SMPships.BlockEntity.<init>(BlockEntity.java:61)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
2013-02-19 20:04:53 [INFO] [STDERR] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
2013-02-19 20:04:53 [INFO] [STDERR] at ayh.a(NetClientHandler.java:1483)
2013-02-19 20:04:53 [INFO] [STDERR] at di.a(SourceFile:59)
2013-02-19 20:04:53 [INFO] [STDERR] at cf.b(MemoryConnection.java:80)
2013-02-19 20:04:53 [INFO] [STDERR] at ayh.d(NetClientHandler.java:240)
2013-02-19 20:04:53 [INFO] [STDERR] at ayp.b(WorldClient.java:92)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.J(Minecraft.java:846)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:771)
2013-02-19 20:04:53 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
Is this problem something to do with the entity being spawned in both client and server?
My client proxy has nothing but:
MinecraftForgeClient.preloadTexture("smpShipsBlocks.png");
RenderingRegistry.registerEntityRenderingHandler( BlockEntity.class, new BlockEntityRender() );
And my common proxy has nothing happening in it at all.
why not try this...
now i know we are editing base classes but this is how I roll so add this code to EnumToolMaterial.JAVA...
edit the obsidian enum to your specifications.
add this to your mod_yourMod
now take these hints with a grain of salt and dont be afraid to edit this code.
I've figured it out.
Edit: ghosrec35's got this.
\/ \/
That is the worst advice i've ever seen given for Forge. The entire idea behind forge is to place your files in your own packages so that you are not required to install your mod within the minecraft.jar, and can merely place a zipped version of your mod into the mods folder. Forge aims to move away from JarMods, except in the case of allowing for compatibilities with ModLoader mods.
Hey, I got a question about the forge modding tutorials. Where do I put my main class (that one that registers the iitems, blocks etc.)?
You will create your own package to place all your files in. Some common package conventions are: Here
I'm not even sure why I said that myself. I use my own packages. Wow, for some reason a ModLoader mindset just popped up for some reason...
Very well then. Feel free to stay in the past.
together they are powerful beyond imagination."
And why not, exactly? Switching to Forge is beyond easy, and does not force much on you like ModLoader does. ModLoader is also completely stagnant, while Forge is getting new features very often. I may as well leave it at that.
Which string? The mob texture? You could either remove it completely, set it to a blank one, or put 'null' where you'd put the directory.
It's actually really easy to port to forge. If you know how to make a basic forge class, it isn't too hard to make anything else. Try looking at a few forge tuts from other people to see how to make things like blocks, and then you will know how to make the more advanced things using techguys.
It has nothing to do with being a "fanboy". Forge is better. Period. You're welcome to keep using the ModLoader tutorials already there but I won't waste my time with an API that is hardly supported by the developer. I respect your opinion but take your hate somewhere else. On second thought, don't bother. No one on this forum wants to hear it. Especially seeing as it isn't even constructive.
together they are powerful beyond imagination."
I'm getting flat out sick of this. Please refrain (read: STOP ENTIRELY) from posting for the sole purpose of criticizing something. As TechGuy put it, it's not even constructive, and no one wants to hear it.
I've asked this in another tute forum but had no luck. Hoping someone here will know...
How do I create an entity that looks and feels (i.e. collides with player, from the side, top and bottom) like a block?
I've attempted this, and I have a little wand item to test my code with that turns the block its clicked on to air, and then places a mod entity in the same place, but I can't figure out how to create and place a "block" entity (an entity that looks and feels like a block) instead.....
Help please?
Here are the relevant files I have at the moment:
Mod file
Item file
Entity file
Render file
As entities are not my specialty, my best suggestion would be to take some pointers from the falling sand/gravel entities.
No worries, thanks for replying anyway. I've mostly figured it out since yesterday.
I now have a new problem (that I've also asked elsewhere, but the more the merrier...): I can place the entities by clicking on a block with my wand item, which removes the block and places an entity which looks and feels like a block, but I want them to look like the block they replaced, so I have this code:
My entity file looks like this:
My wand item uses constructor #2 to create the entity, and passes in the blockId of the block that was clicked on. (Works fine)
The plan is for the renderer to check the blockId stored here to select the correct block to render.
But what happens is that before rendering constructor #1 gets called (not by me) and so blockId gets reset to 0! (I know this is what's happening, I've checked)
My renderer has no way of getting the correct block ID...
Nowhere in the code is there a call to my constructor #1 (for example the code compiles fine even if I delete constructor #1).
The only solution I can think of atm is to create separate entities and renderers for each type of block, which is a TERRIBLE solution...
What is calling constructor #1?
I have to admit I'm totally stumped. How do I fix this?
EDIT: In case you were wondering, deleting constructor #1 causes MC to crash:
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:17:56 [INFO] [STDERR] java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:17:56 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:17:56 [INFO] [STDERR] at lv.a(EntityList.java:139)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:401)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:103)
2013-02-19 19:17:56 [INFO] [STDERR] at aam.a(AnvilChunkLoader.java:83)
2013-02-19 19:17:56 [INFO] [STDERR] at im.f(ChunkProviderServer.java:182)
2013-02-19 19:17:56 [INFO] [STDERR] at im.c(ChunkProviderServer.java:118)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:310)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.a(IntegratedServer.java:84)
2013-02-19 19:17:56 [INFO] [STDERR] at bdz.c(IntegratedServer.java:100)
2013-02-19 19:17:56 [INFO] [STDERR] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:458)
2013-02-19 19:17:56 [INFO] [STDERR] at fy.run(SourceFile:849)
2013-02-19 19:17:56 [INFO] [STDOUT] Skipping Entity with id Grumdot_SMPships.grumdot_myentityblock
2013-02-19 19:18:08 [INFO] [STDOUT] ###############5
2013-02-19 19:18:08 [INFO] [STDOUT] &&&&&&&&&&& new block entity has id 5
2013-02-19 19:18:08 [SEVERE] [ForgeModLoader] A severe problem occurred during the spawning of an entity
java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
at java.lang.Class.getConstructor0(Class.java:2706)
at java.lang.Class.getConstructor(Class.java:1657)
at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
at ayh.a(NetClientHandler.java:1483)
at di.a(SourceFile:59)
at cf.b(MemoryConnection.java:80)
at ayh.d(NetClientHandler.java:240)
at ayp.b(WorldClient.java:92)
at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
at net.minecraft.client.Minecraft.J(Minecraft.java:846)
at net.minecraft.client.Minecraft.run(Minecraft.java:771)
at java.lang.Thread.run(Thread.java:662)
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension 0
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension -1
2013-02-19 19:18:09 [INFO] [ForgeModLoader] Unloading dimension 1
2013-02-19 19:18:10 [INFO] [STDERR] t: Exception in world tick
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1888)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.J(Minecraft.java:846)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:771)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
2013-02-19 19:18:10 [INFO] [STDERR] Caused by: java.lang.RuntimeException: java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:18:10 [INFO] [STDERR] at com.google.common.base.Throwables.propagate(Throwables.java:160)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:394)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
2013-02-19 19:18:10 [INFO] [STDERR] at ayh.a(NetClientHandler.java:1483)
2013-02-19 19:18:10 [INFO] [STDERR] at di.a(SourceFile:59)
2013-02-19 19:18:10 [INFO] [STDERR] at cf.b(MemoryConnection.java:80)
2013-02-19 19:18:10 [INFO] [STDERR] at ayh.d(NetClientHandler.java:240)
2013-02-19 19:18:10 [INFO] [STDERR] at ayp.b(WorldClient.java:92)
2013-02-19 19:18:10 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
2013-02-19 19:18:10 [INFO] [STDERR] ... 3 more
2013-02-19 19:18:10 [INFO] [STDERR] Caused by: java.lang.NoSuchMethodException: SMPships.MyBlockEntity.<init>(yc)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Class.getConstructor0(Class.java:2706)
2013-02-19 19:18:10 [INFO] [STDERR] at java.lang.Class.getConstructor(Class.java:1657)
2013-02-19 19:18:10 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
2013-02-19 19:18:10 [INFO] [STDERR] ... 13 more
2013-02-19 19:18:20 [INFO] [STDOUT] Stopping!
2013-02-19 19:18:20 [INFO] [STDOUT] SoundSystem shutting down...
2013-02-19 19:18:20 [INFO] [STDOUT] Author: Paul Lamb, www.paulscode.com
2013-02-19 19:18:20 [INFO] [STDERR] Exception in thread "Minecraft main thread" org.lwjgl.LWJGLException: X Error - disp: 0x7fbf3c060410 serial: 5446 error: BadWindow (invalid Window parameter) request_code: 2 minor_code: 0
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxDisplay.globalErrorHandler(LinuxDisplay.java:318)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.nSetDetectableKeyRepeat(Native Method)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.setDetectableKeyRepeat(LinuxKeyboard.java:152)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxKeyboard.destroy(LinuxKeyboard.java:163)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.opengl.LinuxDisplay.destroyKeyboard(LinuxDisplay.java:1203)
2013-02-19 19:18:20 [INFO] [STDERR] at org.lwjgl.input.Keyboard.destroy(Keyboard.java:349)
2013-02-19 19:18:20 [INFO] [STDERR] at net.minecraft.client.Minecraft.e(Minecraft.java:723)
2013-02-19 19:18:20 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:801)
2013-02-19 19:18:20 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
EDIT 2: Here is a stack trace for constructor #1:
java.lang.Exception
2013-02-19 20:04:53 [INFO] [STDERR] at SMPships.BlockEntity.<init>(BlockEntity.java:61)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
2013-02-19 20:04:53 [INFO] [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
2013-02-19 20:04:53 [INFO] [STDERR] at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.client.FMLClientHandler.spawnEntityIntoClientWorld(FMLClientHandler.java:341)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.FMLCommonHandler.spawnEntityIntoClientWorld(FMLCommonHandler.java:334)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.EntitySpawnPacket.execute(EntitySpawnPacket.java:183)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handleFMLPacket(FMLNetworkHandler.java:102)
2013-02-19 20:04:53 [INFO] [STDERR] at cpw.mods.fml.common.network.FMLNetworkHandler.handlePacket250Packet(FMLNetworkHandler.java:67)
2013-02-19 20:04:53 [INFO] [STDERR] at ayh.a(NetClientHandler.java:1483)
2013-02-19 20:04:53 [INFO] [STDERR] at di.a(SourceFile:59)
2013-02-19 20:04:53 [INFO] [STDERR] at cf.b(MemoryConnection.java:80)
2013-02-19 20:04:53 [INFO] [STDERR] at ayh.d(NetClientHandler.java:240)
2013-02-19 20:04:53 [INFO] [STDERR] at ayp.b(WorldClient.java:92)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.l(Minecraft.java:1872)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.J(Minecraft.java:846)
2013-02-19 20:04:53 [INFO] [STDERR] at net.minecraft.client.Minecraft.run(Minecraft.java:771)
2013-02-19 20:04:53 [INFO] [STDERR] at java.lang.Thread.run(Thread.java:662)
My client proxy has nothing but:
And my common proxy has nothing happening in it at all.
My wand Item class spawns the new entity:
Is that all correct?