Jump to content

Recommended Posts

Posted

 

 

2 mods loaded

Minecraft Forge 3.3.8.152

FML v2.2.78.153

Forge Mod Loader version 2.2.78.153 for Minecraft 1.2.5

mod_MinecraftForge : Pre-initialized (minecraft.jar)

mod_Hybrid : Loaded (minecraft.jar)

 

 

      Minecraft has crashed!     

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

 

Minecraft has stopped running because it encountered a problem.

 

 

 

 

--- BEGIN ERROR REPORT cbdb86a8 --------

Generated 7/17/12 9:26 PM

 

Minecraft: Minecraft 1.2.5

OS: Windows XP (x86) version 5.1

Java: 1.7.0_05, Oracle Corporation

VM: Java HotSpot Client VM (mixed mode), Oracle Corporation

LWJGL: 2.4.2

OpenGL: Intel 945GM version 1.4.0 - Build 7.14.10.4926, Intel

 

cpw.mods.fml.common.LoaderException: java.lang.IllegalArgumentException: Illegal object for naming null

at cpw.mods.fml.common.modloader.ModLoaderModContainer.preInit(ModLoaderModContainer.java:114)

at cpw.mods.fml.common.Loader.preModInit(Loader.java:235)

at cpw.mods.fml.common.Loader.loadMods(Loader.java:593)

at cpw.mods.fml.client.FMLClientHandler.onPreLoad(FMLClientHandler.java:193)

at net.minecraft.client.Minecraft.a(Minecraft.java:383)

at net.minecraft.client.Minecraft.run(Minecraft.java:735)

at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.IllegalArgumentException: Illegal object for naming null

at cpw.mods.fml.client.FMLClientHandler.getObjectName(FMLClientHandler.java:783)

at cpw.mods.fml.common.FMLCommonHandler.addNameForObject(FMLCommonHandler.java:396)

at ModLoader.addName(ModLoader.java:142)

at ModLoader.addName(ModLoader.java:130)

at mod_Hybrid.addNames(mod_Hybrid.java:51)

at mod_Hybrid.<init>(mod_Hybrid.java:11)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at java.lang.Class.newInstance0(Unknown Source)

at java.lang.Class.newInstance(Unknown Source)

at cpw.mods.fml.common.modloader.ModLoaderModContainer.preInit(ModLoaderModContainer.java:107)

... 6 more

--- END ERROR REPORT f6d5e085 ----------

 

 

 

 

Ok, Today I added my first official block to My Mod. :D Yay, but everytime i recompile, reobfuscate, and put into my minecraft.jar i get the above error. May someone please help? All help is appreciated.

Posted
at mod_Hybrid.addNames(mod_Hybrid.java:51)

Seems there is something

In your mod_Hybrid.java file

In the function addNames

On line 51

What is null

Figure it out.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Ok, So i found what was supposedly null:

 

ModLoader.addName(DarkStone, "Darkstone");

 

Now what is so null about it???

 

Other Parts of my code that have to do with this

 

Block register

 

 

public void registerBlocks()
 {
	 ModLoader.registerBlock(DarkStone);
 }

 

 

 

Add Recipe

 

 

ModLoader.addRecipe(new ItemStack(DarkStone, 1), new Object[]{
		"OOO", "OGO", "OOO", Character.valueOf('O'), Block.obsidian, Character.valueOf('G'), Block.glowStone, 
	 });
 }

 

 

 

I think making the block???

 

 

public Block DarkStone;


 static Configuration config = new Configuration(new File(ModLoader.getMinecraftInstance() + "/config/Hybrid.cfg"));
 static int DarkStoneID;



 

 

 

Config & InitItems

 

 

public void load() {

	 MinecraftForgeClient.preloadTexture("/HybridCraft/terrain/block.png");

	 config();	
	 initItems();

 }
public static int config() {
	config.load();
	DarkStoneID = Integer.parseInt(config.getOrCreateBlockIdProperty("Dark Stone ID", 5027).value);
	config.save();
	return DarkStoneID;
}
private void initItems() {
	DarkStone = new BlockDarkStone(234, 0, Material.glass).setBlockName("DarkStone").setLightValue(0.3182F);

}
}

 

 

 

BlockDarkStone.java

 

 

package net.minecraft.src;

import net.minecraft.src.forge.ITextureProvider;

public class BlockDarkStone extends Block implements ITextureProvider {

protected BlockDarkStone(int par1, int par2, Material par3Material) {
	super(par1, par2, par3Material);
}

@Override
public String getTextureFile(){
	return "HybridCraft/terrain/blocks.png";
}

}

 

 

 

Can someone please explain why this is null???

 

 

 

Posted

I see no where in there where you assign it a value.

Also thats a horrible name for a variable, it makes it look like a class.

And dont post code snipits, post full code so we can see the project flow.

Somehow, its null, there really is no if ands or buts about it.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

 

 

package net.minecraft.src;
import java.io.File;
import java.util.Random;

import net.minecraft.src.forge.Configuration;
import net.minecraft.src.forge.MinecraftForgeClient;
public class mod_Hybrid extends BaseMod{
 public mod_Hybrid()
 {
	 //TODO List
	 addNames();
	 setTextures();
	 addFuel();
	 registerBlocks();
	 addRecipes();
	 addSmelting();
 }
 public String Version()
 {
	 return "DirtCraft v.1";
 }
 public void addNames()
 {
	 ModLoader.addName(DirtPickaxe, "Dirt Pickaxe");
	 ModLoader.addName(DirtAxe, "Dirt Axe");
	 ModLoader.addName(DirtShovel, "Dirt Shovel");
	 ModLoader.addName(DirtHoe, "Dirt Hoe");
	 ModLoader.addName(DirtSword, "Dirt Sword");
	 ModLoader.addName(DirtIngot, "Dirt Ingot");
	 ModLoader.addName(DirtHelmet, "Dirt Helmet");
	 ModLoader.addName(DirtChest, "Dirt Chestpate");
	 ModLoader.addName(DirtLegs, "Dirt Pants");
	 ModLoader.addName(DirtShoes, "Dirt Boots");
	 ModLoader.addName(StoneIngot, "Stone Ingot");
	 ModLoader.addName(RStone, "Reinforced Stone");
	 ModLoader.addName(StoneHelmet, "Stone Helmet");
	 ModLoader.addName(StoneChest, "Stone Chestplate");
	 ModLoader.addName(StoneLegs, "Stone Pants");
	 ModLoader.addName(StoneShoes, "Stone Shoes");
	 ModLoader.addName(RSPick, "Reinforced Stone Pickaxe");
	 ModLoader.addName(RSAxe, "Reinforced Stone Axe");
	 ModLoader.addName(RSHoe, "Reinforced Stone Hoe");
	 ModLoader.addName(RSShovel, "Reinforced Stone Shovel");
	 ModLoader.addName(RSSword, "Reinforced Stone Sword");
	 ModLoader.addName(Box, "Card Board Box");
	 ModLoader.addName(CardBoardPiece, "Piece of Cardboard");
	 ModLoader.addName(BoardHat, "Cardboard Hat");
	 ModLoader.addName(BoardChest, "Chestplate of Cardboard");
	 ModLoader.addName(BoardLegs, "Pants of Cardboard");
	 ModLoader.addName(BoardShoes, "Shoes of Cardboard");
	 ModLoader.addName(DarkStone, "Darkstone");
	 ModLoader.addName(HybridDS, "Dirt/Stone Hybrid");
	 ModLoader.addName(HybridDSI, "Dirt/Stone Ingot");
	 ModLoader.addName(HybridFuel, "Mixed Fuel");
 }
 public void setTextures()
 {
	 DirtPickaxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtPickaxe.png");
	 DirtAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtAxe.png");
	 DirtShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtShovel.png");
	 DirtHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtHoe.png");
	 DirtSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtSword.png");
	 DirtIngot.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtIngot.png");
	 DirtHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtHelmet.png");
	 DirtChest.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtChest.png");
	 DirtLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtLegs.png");
	 DirtShoes.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Dirt/DirtShoes.png");
	 StoneIngot.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/StoneIngot.png");
	 RStone.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/HardStone.png");
	 StoneHelmet.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Helmet.png");
	 StoneChest.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Chest.png");
	 StoneLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Legs.png");
	 StoneShoes.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Shoes.png");
	 RSPick.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Pickaxe.png");
	 RSAxe.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Axe.png");
	 RSHoe.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Hoe.png");
	 RSShovel.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Shovel.png");
	 RSSword.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Stone/Sword.png");
	 BoardHat.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Wood/Helmet.png");
	 BoardChest.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Wood/Chest.png");
	 BoardLegs.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Wood/Legs.png");
	 BoardShoes.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Wood/Shoes.png");
	 HybridDS.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Hybrid/DS.png");
	 HybridDSI.iconIndex = ModLoader.addOverride("/gui/items.png", "/HybridCraft/Hybrid/DSI.png");
	 HybridFuel.iconIndex = ModLoader.addOverride("/gui/Items.png", "/HybridCraft/Hybrid/Fuel.png");
 }
 public void addFuel()
 {

 }
 public void registerBlocks()
 {
	 ModLoader.registerBlock(DarkStone);
 }
 public void addRecipes()
 {
	 ModLoader.addRecipe(new ItemStack(DirtPickaxe, 1), new Object[] {
		 "DDD", " S ", " S ", Character.valueOf('D'), DirtIngot, Character.valueOf('S'), Item.stick
	 });
	 ModLoader.addRecipe(new ItemStack(DirtAxe, 1), new Object[] {
		 "DD ", "DS ", " S ", Character.valueOf('D'), DirtIngot, Character.valueOf('S'), Item.stick
	 });
	 ModLoader.addRecipe(new ItemStack(DirtShovel, 1), new Object[] {
		 " D ", " S ", " S ", Character.valueOf('D'), DirtIngot, Character.valueOf('S'), Item.stick
	 });
	 ModLoader.addRecipe(new ItemStack(DirtHoe, 1), new Object[] {
		 "DD ", " S ", " S ", Character.valueOf('D'), DirtIngot, Character.valueOf('S'), Item.stick
	 });
	 ModLoader.addRecipe(new ItemStack(DirtSword, 1), new Object[] {
		 " D ", " D ", " S ", Character.valueOf('D'), DirtIngot, Character.valueOf('S'), Item.stick
	 });
	 ModLoader.addRecipe(new ItemStack(DirtHelmet, 1), new Object[]{
		 "DDD", "D D", " ", Character.valueOf('D'), DirtIngot
	 });
	 ModLoader.addRecipe(new ItemStack(DirtChest, 1), new Object[]{
		 "D D", "DDD", "DDD", Character.valueOf('D'), DirtIngot
	 });
	 ModLoader.addRecipe(new ItemStack(DirtLegs, 1), new Object[]{
		 "DDD", "D D", "D D", Character.valueOf('D'), DirtIngot
	 });
	 ModLoader.addRecipe(new ItemStack(DirtShoes, 1), new Object[]{
		 " ", "D D", "D D", Character.valueOf('D'), DirtIngot
	 });
	 ModLoader.addRecipe(new ItemStack(RStone, 4), new Object[]{
		 "SSS", "SSS", "SSS", Character.valueOf('S'), Block.stone
	 });
	 ModLoader.addRecipe(new ItemStack(StoneHelmet, 1), new Object[]{
		"RRR", "R R", "   ", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(StoneHelmet, 1), new Object[]{
		"   ", "RRR", "R R", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(StoneChest, 1), new Object[]{
		"R R", "RRR", "RRR", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(StoneLegs, 1), new Object[]{
		"RRR", "R R", "R R", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(StoneShoes, 1), new Object[]{
		"   ", "R R", "R R", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(StoneShoes, 1), new Object[]{
		"R R", "R R", "   ", Character.valueOf('R'), RStone,
	 });
	 ModLoader.addRecipe(new ItemStack(RSPick, 1), new Object[]{
		"RRR", " P ", " S ", Character.valueOf('R'), RStone, Character.valueOf('P'), Item.pickaxeStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSAxe, 1), new Object[]{
		"RR ", "RA ", " S ", Character.valueOf('R'), RStone, Character.valueOf('A'), Item.axeStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSAxe, 1), new Object[]{
		" RR", " AR", " S ", Character.valueOf('R'), RStone, Character.valueOf('A'), Item.axeStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSHoe, 1), new Object[]{
		"RR ", " H ", " S ", Character.valueOf('R'), RStone, Character.valueOf('H'), Item.hoeStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSHoe, 1), new Object[]{
		" RR", " H ", " S ", Character.valueOf('R'), RStone, Character.valueOf('H'), Item.hoeStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSShovel, 1), new Object[]{
		"R  ", "H  ", "S  ", Character.valueOf('R'), RStone, Character.valueOf('H'), Item.shovelStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSShovel, 1), new Object[]{
		" R ", " H ", " S ", Character.valueOf('R'), RStone, Character.valueOf('H'), Item.shovelStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSShovel, 1), new Object[]{
		"  R", "  H", "  S", Character.valueOf('R'), RStone, Character.valueOf('H'), Item.shovelStone, Character.valueOf('S'), Item.stick,
	 });
	 ModLoader.addRecipe(new ItemStack(RSSword, 1), new Object[]{
		"R  ", "R  ", "S  ", Character.valueOf('R'), RStone, Character.valueOf('S'), Item.swordStone,
	 });
	 ModLoader.addRecipe(new ItemStack(RSSword, 1), new Object[]{
		" R ", " R ", " S ", Character.valueOf('R'), RStone, Character.valueOf('S'), Item.swordStone,
	 });
	 ModLoader.addRecipe(new ItemStack(RSSword, 1), new Object[]{
		"  R", "  R", "  S", Character.valueOf('R'), RStone, Character.valueOf('S'), Item.swordStone,
	 });
	 ModLoader.addRecipe(new ItemStack(Box, 2), new Object[]{
		" W ", "W W", " W ", Character.valueOf('W'), Block.planks, 
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"B  ", "   ", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		" B ", "   ", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"  B", "   ", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", "B   ", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", " B ", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", "  B", "   ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", "   ", "B  ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", "   ", " B ", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(CardBoardPiece, 4), new Object[]{
		"   ", "   ", "  B", Character.valueOf('B'), Box,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardHat, 1), new Object[]{
		"BBB", "B B", "   ", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardHat, 1), new Object[]{
		"   ", "BBB", "B B", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardChest, 1), new Object[]{
		"B B", "BBB", "BBB", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardLegs, 1), new Object[]{
		"BBB", "B B", "B B", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardShoes, 1), new Object[]{
		"B B", "B B", "   ", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(BoardShoes, 1), new Object[]{
		"   ", "B B", "B B", Character.valueOf('B'), CardBoardPiece,
	 });
	 ModLoader.addRecipe(new ItemStack(DarkStone, 1), new Object[]{
		"OOO", "OGO", "OOO", Character.valueOf('O'), Block.obsidian, Character.valueOf('G'), Block.glowStone, 
	 });
	 ModLoader.addRecipe(new ItemStack(HybridDS, 2), new Object[]{
		"DSD", "SDS", "DSD", Character.valueOf('D'), Block.dirt, Character.valueOf('D'), Block.stone,
	 });
	 ModLoader.addShapelessRecipe(new ItemStack(HybridFuel, 3), new Object[]{
		"CR ", "   ", "   ", Character.valueOf('C'), Item.coal, Character.valueOf('R'), Block.wood,
	 });
 }
 public void addSmelting()
 {
	 ModLoader.addSmelting(Block.dirt.blockID, new ItemStack(DirtIngot, 1));
	 ModLoader.addSmelting(RStone.shiftedIndex, new ItemStack(StoneIngot, 1));
	 ModLoader.addSmelting(HybridDS.shiftedIndex, new ItemStack(HybridDSI, 1));
 }
 public static Item DirtPickaxe;
 public static Item DirtShovel;
 public static Item DirtAxe;
 public static Item DirtHoe;
 public static Item DirtSword;
 public static Item DirtIngot;
 public static int DirtIndex;
 public static Item DirtHelmet;
 public static Item DirtChest;
 public static Item DirtLegs;
 public static Item DirtShoes;
 public static Item StoneIngot;
 public static int StoneIndex;
 public static Item StoneHelmet;
 public static Item StoneChest;
 public static Item StoneLegs;
 public static Item StoneShoes;
 public static Item RStone;
 public static Item RSPick;
 public static Item RSAxe;
 public static Item RSHoe;
 public static Item RSShovel;
 public static Item RSSword;
 public static int WoodIndex;
 public static Item Box;
 public static Item CardBoardPiece;
 public static Item BoardHat;
 public static Item BoardChest;
 public static Item BoardLegs;
 public static Item BoardShoes;
 public Block DarkStone;
 public static Item HybridFuel;
 public static Item HybridDS;
 public static Item HybridDSI;


 static Configuration config = new Configuration(new File(ModLoader.getMinecraftInstance() + "/config/Hybrid.cfg"));
 static int DarkStoneID;



 static
 {
	 DirtPickaxe = new ItemPickaxe(5000, EnumToolMaterial.Dirt).setItemName("DirtPickaxe");
	 DirtAxe = new ItemAxe(5001, EnumToolMaterial.Dirt).setItemName("DirtAxe");
	 DirtShovel = new ItemSpade(5002, EnumToolMaterial.Dirt).setItemName("DirtShovel");
	 DirtHoe = new ItemHoe(5003, EnumToolMaterial.Dirt).setItemName("DirtHoe");
	 DirtSword = new ItemSword(5004, EnumToolMaterial.Dirt).setItemName("DirtSword");
	 DirtIngot = new Item(5005).setMaxStackSize(64).setItemName("DirtIngot");
	 DirtIndex = ModLoader.addArmor("Dirt");
	 DirtHelmet = new ItemArmor(5006, EnumArmorMaterial.Dirt, DirtIndex, 0).setItemName("DirtHelmet");
	 DirtChest = new ItemArmor(5007, EnumArmorMaterial.Dirt, DirtIndex, 1).setItemName("DirtChest");
	 DirtLegs = new ItemArmor(5008, EnumArmorMaterial.Dirt, DirtIndex, 2).setItemName("DirtLegs");
	 DirtShoes = new ItemArmor(5009, EnumArmorMaterial.Dirt, DirtIndex, 3).setItemName("DirtShoes");
	 StoneIngot = new Item(5010).setMaxStackSize(64).setItemName("StoneIngot");
	 StoneIndex = ModLoader.addArmor("Stone");
	 StoneHelmet = new ItemArmor(5011, EnumArmorMaterial.Stone, StoneIndex, 0).setItemName("StoneHelmet");
	 StoneChest = new ItemArmor(5012, EnumArmorMaterial.Stone, StoneIndex, 1).setItemName("StoneChest");
	 StoneLegs = new ItemArmor(5013, EnumArmorMaterial.Stone, StoneIndex, 2).setItemName("StoneLegs");
	 StoneShoes = new ItemArmor(5014, EnumArmorMaterial.Stone, StoneIndex, 3).setItemName("StoneShoes");
	 RStone = new Item(5015).setMaxStackSize(64).setItemName("RStone");
	 RSPick = new ItemPickaxe(5016, EnumToolMaterial.RStone).setItemName("RSPick");
	 RSAxe = new ItemAxe(5017, EnumToolMaterial.RStone).setItemName("RSAxe");
	 RSHoe = new ItemHoe(5018, EnumToolMaterial.RStone).setItemName("RSHoe");
	 RSShovel = new ItemSpade(5019, EnumToolMaterial.RStone).setItemName("RSShovel");
	 RSSword = new ItemSword(5020, EnumToolMaterial.RStone).setItemName("RSSword");
	 WoodIndex = ModLoader.addArmor("Wood");
	 Box = new Item(5021).setMaxStackSize(64).setItemName("CardBoard");
	 CardBoardPiece = new Item(5022).setMaxStackSize(64).setItemName("CardBoardPiece");
	 BoardHat = new Item(5023).setMaxStackSize(64).setItemName("BoardHat");
	 BoardChest = new Item(5024).setMaxStackSize(64).setItemName("BoardChest");
	 BoardLegs = new Item(5025).setMaxStackSize(64).setItemName("BoardLegs");
	 BoardShoes = new Item(5026).setMaxStackSize(64).setItemName("BoardShoes");
	 HybridDS = new Item(5028).setMaxStackSize(64).setItemName("Dirt/Stone Hybrid");
	 HybridDSI = new Item(5029).setMaxStackSize(64).setItemName("Dirt/Stone Ingot");
	 HybridFuel = new Item(5030).setMaxStackSize(64).setItemName("Hybrid Fuel");
 }

 @Override
 public String getVersion() {
	 return "0.1a";
 }



 @Override
 public void load() {

	 MinecraftForgeClient.preloadTexture("/HybridCraft/terrain/block.png");

	 config();	
	 initItems();

 }
public static int config() {
	config.load();
	DarkStoneID = Integer.parseInt(config.getOrCreateBlockIdProperty("Dark Stone ID", 5027).value);
	config.save();
	return DarkStoneID;
}
private void initItems() {
	DarkStone = new BlockDarkStone(234, 0, Material.glass).setBlockName("DarkStone").setLightValue(0.3182F);

}
}

 

 

 

there's entire code. :D

 

And also what do you mean by i didnt assign a value?? I assigned everything correctly... Or else there would be error's wouldnt there?

 

And I name things to where i know what they are...

  • Sad 1
Posted

Wow there are SOOO many things wrong with that code I don't know where to start

Character.valueOf fuck that shit

you're statically initializing everything

ALL of your variables have capitol, like you're declaring a fucking class.

You're doing all your shit in the constructor

You're using texture overrides for everything

 

 

Want to know why you're nulling debug your god damn code.

Its obvious, it will NEVER work in MCP

 

For the love of god, just.. do.. better....

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

It works in mcp. :D it worked fine up till i added a block. :D

 

Well heck it still works it just crashes because of stupid null object.

 

And also if there are SOOO many things wrong with it. WOuld you like to teach me how to code????

 

Or at least how to fix all my supposed screw ups?

Posted

I already listed the bulk of the things you're doing wrong.

What more do you want?

Also, try running it in eclipse, step through take a look at when things are running.

You'll see why your block is null.

 

However, I advise you go look into some lower level java tutorials before you work on modding.

I'm sure the minecraft community can last another few days without your ever so unique dirt items.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Character.valueOf fuck that shit

 

Ok, How the hell am i supposed to define the letter for the fucking recipe?

 

you're statically initializing everything

 

How else am i supposed to initialize the god damn items?

 

ALL of your variables have capitol, like you're declaring a fucking class.

 

Ok, My mod! I can NAME anything HOWEVER THE FUCK I WANT TO!

 

You're doing all your shit in the constructor

 

Where else am i supposed to do my shit?

 

You're using texture overrides for everything

 

Ok, Maybe i dont want to use the ugly ass textures that minecraft gives???

 

Want to know why you're nulling debug your god damn code.

Its obvious, it will NEVER work in MCP

 

AND MY GOD DAMN CODE DOES WORK IN MCP!

 

I already listed the bulk of the things you're doing wrong.

What more do you want?

 

I WANT YOU TO EXPLAIN YOUR SELF WHEN YOU SAY SOMETHING I DID IS WRONG, CAUSE YOUR NOT HELPING ANYONE BUT YOURSELF BECAUSE ALL YOU DOING IS PISSING PEOPLE OFF WHEN YOU JUST SAY WHAT IS WRONG, AND NOT HOW TO FIX THE GOD DAMN THING!

 

Posted
Ok, How the hell am i supposed to define the letter for the fucking recipe?

Character literals

How else am i supposed to initialize the god damn items?
Non-statically, obviously, your mod gets instantiated, and then there are events that fire at certain times, take advantage of them.

Ok, My mod! I can NAME anything HOWEVER THE FUCK I WANT TO!
Not if you want any fucking help what so ever or if you want anyone who knows 2 shits about programming to even take a second glance. They are universal standards for a reason. Its like trying to ask someone for help and only typing in 1337-speak. It shows you to be a fucking moron not worth anyones time.

Where else am i supposed to do my shit?
In the two other major events that BaseMod exposes.

Ok, Maybe i dont want to use the ugly ass textures that minecraft gives???

What does that have to do with what I said? You're using addOverride when making a forge mod, taking up precious sprite indicies and making your code ugly as shit. Use your own texture sheets like a good boy.

AND MY GOD DAMN CODE DOES WORK IN MCP!
NO, No it doesnt, there is NO way your code as posted will NOT throw that NPE. MCP or not.

 

I WANT YOU TO EXPLAIN YOUR SELF WHEN YOU SAY SOMETHING I DID IS WRONG, CAUSE YOUR NOT HELPING ANYONE BUT YOURSELF BECAUSE ALL YOU DOING IS PISSING PEOPLE OFF WHEN YOU JUST SAY WHAT IS WRONG, AND NOT HOW TO FIX THE GOD DAMN THING!
I expect5 a modicum of intelligence from people and a willingness to learn/descover for themselves. I do not hand hold. I am not here to teach every 12 year old how to program. Its your job as someone who wants to make a mod to actually KNOW how to program well enough to understand the basics.

 

And yes, these things are the BASICS of programming.

 

Also, banned for not following directions, and for being a whinny little bastard.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

He really should take a few Java tutorials first though.  Before starting modding here we do expect people to know Java mostly well first.  Not necessarily the JVM, but at least java.

Posted

Hi, I am new to the forums as anyone could possibly tell, and I am just reading through to see if there are any unsolved problems, to which I doubt there are. But, I happened to come across this one to which _SparkMaster_ got banned for being a whinny little bastard (as lex stated), but I read the terms of agreement, and the sticky that says: Read this or you may get banned, and no where does it say he can be banned for being a whinny little bastard... I have one question is that the real reason why he got banned? I understand that he doesn't seem to have any knowledge of Java, but give him a break. I have tested out his mod, it is pretty great for a beginner. Main point being, Is he banned for being a whinny little bastard, not knowing java, or just because you feel like he doesn't need to waste your time?

Posted

That is just Lex's rules.  That page is not all inclusive, just the most common things.  :)

As for Lex, he would have to say why.

I also saw that spark tried to re-register, but he put the domain for his email address as yaoo.com, I am guessing he meant to put yahoo.com, he should fix that.

 

EDIT:  My 'guess' of why Lex did is because he was being argumentative.  Lex is harsh, he says things straight out, but what he says should be heeded.  Arguing with him just bugs him considering that he gave very useful information (if not kindly, but it was very useful), and the person tried to argue about it and attack.  As an example, the response "Ok, Maybe i dont want to use the ugly ass textures that minecraft gives???" makes no sense as it is quite obvious then just about every forge mod (if not every one) uses custom textures, and considering that adding an override is a modloader method that only has about 50 or so overrides available, then it is obvious then the forge mods must not be using it then.  Rather the mods use new texture sheets, which is actually both easier to use, more powerful, and has no such limitations.  By him using the overrides then he was reducing the ability for non-forge mods to be able to work with forge and his mod.  That is just one example, and instead of attacking then he should have asked 'why' and what he should be using instead.  We can be quite helpful here if people ask.  :)

Posted

Well, any idea on when I could possibly ask Lex about this???

 

Ok, now I agree and actually am starting to agree with Lex now, but still. If you think about it:

1) Dude was a noob at java

2) He is probably some kid that doesn't know what he was doing.

3) Ever heard of 2nd chances? I mean i am not siding with him, i am just asking, because if you think about it, when you ban someone, you lose a forge downloader... because they can't access forge through here. they have to find someone that has reuploaded forge.

 

And also regarding your last piece of last post:

 

Ask instead of Attacking, well Lex did sort of start critizing his work. Maybe Spark is some self concious kid that thought what he was doing was going to cover his mod.

 

Posted

I edited above post, but by posting that you basically did, Lex might respond when he is next on (anywhere from few hours to few days).  Or you can ask on the #minecraftforge irc channel on esper.  Just do not type out Lex's full name, he hates pings, it is in the IRC chat rules in the topic.  ;)

Posted

Eh, I'll just wait, considering that Spark did sort of attack, but it is also probably none of my buisness, I was just really curious.

 

Thanks. ;) Hey btw I have one question for you...

 

Could you possibly check out his mod? If i have to say it does give dirt a good use, and it is pretty set forward for planning. future wise. :) And with this post

 

Good Night People. I will check back tomorrow...

Posted

Eh, I'll just wait, considering that Spark did sort of attack, but it is also probably none of my buisness, I was just really curious.

 

Thanks. ;) Hey btw I have one question for you...

 

Could you possibly check out his mod? If i have to say it does give dirt a good use, and it is pretty set forward for planning. future wise. :) And with this post

 

Good Night People. I will check back tomorrow...

Always looking for fascinating ideas!  Link?  :)

Posted

Adding dirt tools does not a good mod make.

And I can ban anyone I please if they piss me off.

Being banned does NOT stop them from downloading forge because there are several official places aside from this forum to get the download links from.

I will not put up with arrogant twats who try to bitch at me when I do nothing but help.

If you don't like the way I provide help, don't post here.

 

I am a dick, I know it.

But i've earned the right to be a dick.

I am also correct when I am a dick, and provide proper help. If you don't like it, shut up or go away, if you don't you'll be banned.

It's a waist of my time to argue with immature people who do not know how to take statements of fact and help.

 

Forge is NOT a java school.

We will NOT help people who are just copy/pasting from tutorials.

I will NOT tolerate people who argue with there superiors. (When there superiors are correct)

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Ok 1st: you used wrong form of waist. It supposed to be waste my time. :P

 

2nd: I see what your getting at, but really, noob at java, needs help, doesnt understand the help, then he will probably get pissed off because he was probably thinking, Why is "Lex" know forge modder not helping.

 

3rd: In my opinion your help was very vague... My opinion, but he probably thought WTH I dont understand, so therefore he isn't helping me...

 

And what do you mean by other places to download forge???

 

But thanks I was just really curious..

 

P.S. I do believe he was errogant in attacking instead of asking, but still, could possibly let some child piss you off so much as to ban him??? I mean really..

Definition of this Kid: Errogant little bastard that doesn't have a clue on WTF he is doing.

 

Also if you even looked at the mod thread, it shows a list of future updates, not only dirt tools. He is thinking of making hybrids of each of the tools. And then even possibly going from there idk. :P but it is a good build so far...

Everytime i google it, i get brought here... Then link through to the jenkins build...

 

 

Posted

1) Correct my spelling or grammar one more time and I will ban you

2) I dont care why he gets pissed, this is not a java school and we will not be teaching the basics of java.

3) Your opinion is invalid because I gave rather specific criticisems that anyone who knows anything about programing would understand.

4) Mediafire, Jenkins, Directly through the links, the 500 some odd mirriors I can find while googleing.

 

As for his mod, I have seen it, nothing he is ding in unique, or new, or innovative, or anything that would spark any sense of interest from me.

 

 

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Guest
This topic is now closed to further replies.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Version 1.19 - Forge 41.0.63 I want to create a wolf entity that I can ride, so far it seems to be working, but the problem is that when I get on the wolf, I can’t control it. I then discovered that the issue is that the server doesn’t detect that I’m riding the wolf, so I’m struggling with synchronization. However, it seems to not be working properly. As I understand it, the server receives the packet but doesn’t register it correctly. I’m a bit new to Java, and I’ll try to provide all the relevant code and prints *The comments and prints are translated by chatgpt since they were originally in Spanish* Thank you very much in advance No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. No player is mounted, or the passenger is not a player. MountableWolfEntity package com.vals.valscraft.entity; import com.vals.valscraft.network.MountSyncPacket; import com.vals.valscraft.network.NetworkHandler; import net.minecraft.client.Minecraft; import net.minecraft.network.syncher.EntityDataAccessor; import net.minecraft.network.syncher.EntityDataSerializers; import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.server.MinecraftServer; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.animal.Wolf; import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.Entity; import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionResult; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; import net.minecraft.world.level.Level; import net.minecraft.world.phys.Vec3; import net.minecraftforge.event.TickEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.network.PacketDistributor; public class MountableWolfEntity extends Wolf { private boolean hasSaddle; private static final EntityDataAccessor<Byte> DATA_ID_FLAGS = SynchedEntityData.defineId(MountableWolfEntity.class, EntityDataSerializers.BYTE); public MountableWolfEntity(EntityType<? extends Wolf> type, Level level) { super(type, level); this.hasSaddle = false; } @Override protected void defineSynchedData() { super.defineSynchedData(); this.entityData.define(DATA_ID_FLAGS, (byte)0); } public static AttributeSupplier.Builder createAttributes() { return Wolf.createAttributes() .add(Attributes.MAX_HEALTH, 20.0) .add(Attributes.MOVEMENT_SPEED, 0.3); } @Override public InteractionResult mobInteract(Player player, InteractionHand hand) { ItemStack itemstack = player.getItemInHand(hand); if (itemstack.getItem() == Items.SADDLE && !this.hasSaddle()) { if (!player.isCreative()) { itemstack.shrink(1); } this.setSaddle(true); return InteractionResult.SUCCESS; } else if (!level.isClientSide && this.hasSaddle()) { player.startRiding(this); MountSyncPacket packet = new MountSyncPacket(true); // 'true' means the player is mounted NetworkHandler.CHANNEL.sendToServer(packet); // Ensure the server handles the packet return InteractionResult.SUCCESS; } return InteractionResult.PASS; } @Override public void travel(Vec3 travelVector) { if (this.isVehicle() && this.getControllingPassenger() instanceof Player) { System.out.println("The wolf has a passenger."); System.out.println("The passenger is a player."); Player player = (Player) this.getControllingPassenger(); // Ensure the player is the controller this.setYRot(player.getYRot()); this.yRotO = this.getYRot(); this.setXRot(player.getXRot() * 0.5F); this.setRot(this.getYRot(), this.getXRot()); this.yBodyRot = this.getYRot(); this.yHeadRot = this.yBodyRot; float forward = player.zza; float strafe = player.xxa; if (forward <= 0.0F) { forward *= 0.25F; } this.flyingSpeed = this.getSpeed() * 0.1F; this.setSpeed((float) this.getAttributeValue(Attributes.MOVEMENT_SPEED) * 1.5F); this.setDeltaMovement(new Vec3(strafe, travelVector.y, forward).scale(this.getSpeed())); this.calculateEntityAnimation(this, false); } else { // The wolf does not have a passenger or the passenger is not a player System.out.println("No player is mounted, or the passenger is not a player."); super.travel(travelVector); } } public boolean hasSaddle() { return this.hasSaddle; } public void setSaddle(boolean hasSaddle) { this.hasSaddle = hasSaddle; } @Override protected void dropEquipment() { super.dropEquipment(); if (this.hasSaddle()) { this.spawnAtLocation(Items.SADDLE); this.setSaddle(false); } } @SubscribeEvent public static void onServerTick(TickEvent.ServerTickEvent event) { if (event.phase == TickEvent.Phase.START) { MinecraftServer server = net.minecraftforge.server.ServerLifecycleHooks.getCurrentServer(); if (server != null) { for (ServerPlayer player : server.getPlayerList().getPlayers()) { if (player.isPassenger() && player.getVehicle() instanceof MountableWolfEntity) { MountableWolfEntity wolf = (MountableWolfEntity) player.getVehicle(); System.out.println("Tick: " + player.getName().getString() + " is correctly mounted on " + wolf); } } } } } private boolean lastMountedState = false; @Override public void tick() { super.tick(); if (!this.level.isClientSide) { // Only on the server boolean isMounted = this.isVehicle() && this.getControllingPassenger() instanceof Player; // Only print if the state changed if (isMounted != lastMountedState) { if (isMounted) { Player player = (Player) this.getControllingPassenger(); // Verify the passenger is a player System.out.println("Server: Player " + player.getName().getString() + " is now mounted."); } else { System.out.println("Server: The wolf no longer has a passenger."); } lastMountedState = isMounted; } } } @Override public void addPassenger(Entity passenger) { super.addPassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(true)); } } } @Override public void removePassenger(Entity passenger) { super.removePassenger(passenger); if (passenger instanceof Player) { Player player = (Player) passenger; if (!this.level.isClientSide && player instanceof ServerPlayer) { // Send the packet to the server to indicate the player is no longer mounted NetworkHandler.CHANNEL.send(PacketDistributor.PLAYER.with(() -> (ServerPlayer) player), new MountSyncPacket(false)); } } } @Override public boolean isControlledByLocalInstance() { Entity entity = this.getControllingPassenger(); return entity instanceof Player; } @Override public void positionRider(Entity passenger) { if (this.hasPassenger(passenger)) { double xOffset = Math.cos(Math.toRadians(this.getYRot() + 90)) * 0.4; double zOffset = Math.sin(Math.toRadians(this.getYRot() + 90)) * 0.4; passenger.setPos(this.getX() + xOffset, this.getY() + this.getPassengersRidingOffset() + passenger.getMyRidingOffset(), this.getZ() + zOffset); } } } MountSyncPacket package com.vals.valscraft.network; import com.vals.valscraft.entity.MountableWolfEntity; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class MountSyncPacket { private final boolean isMounted; public MountSyncPacket(boolean isMounted) { this.isMounted = isMounted; } public void encode(FriendlyByteBuf buffer) { buffer.writeBoolean(isMounted); } public static MountSyncPacket decode(FriendlyByteBuf buffer) { return new MountSyncPacket(buffer.readBoolean()); } public void handle(NetworkEvent.Context context) { context.enqueueWork(() -> { ServerPlayer player = context.getSender(); // Get the player from the context if (player != null) { // Verifies if the player has dismounted if (!isMounted) { Entity vehicle = player.getVehicle(); if (vehicle instanceof MountableWolfEntity wolf) { // Logic to remove the player as a passenger wolf.removePassenger(player); System.out.println("Server: Player " + player.getName().getString() + " is no longer mounted."); } } } }); context.setPacketHandled(true); // Marks the packet as handled } } networkHandler package com.vals.valscraft.network; import com.vals.valscraft.valscraft; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.network.NetworkRegistry; import net.minecraftforge.network.simple.SimpleChannel; import net.minecraftforge.network.NetworkEvent; import java.util.function.Supplier; public class NetworkHandler { private static final String PROTOCOL_VERSION = "1"; public static final SimpleChannel CHANNEL = NetworkRegistry.newSimpleChannel( new ResourceLocation(valscraft.MODID, "main"), () -> PROTOCOL_VERSION, PROTOCOL_VERSION::equals, PROTOCOL_VERSION::equals ); public static void init() { int packetId = 0; // Register the mount synchronization packet CHANNEL.registerMessage( packetId++, MountSyncPacket.class, MountSyncPacket::encode, MountSyncPacket::decode, (msg, context) -> msg.handle(context.get()) // Get the context with context.get() ); } }  
    • Do you use features of inventory profiles next (ipnext) or is there a change without it?
    • Remove rubidium - you are already using embeddium, which is a fork of rubidium
  • Topics

×
×
  • Create New...

Important Information

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