Everything posted by DiabolusNeil
-
RESOLVED [1.7.10-10.13.0.1180] Damaging crafting item bug?
Okay. I've tried everything, and I cannot figure out what I'm doing wrong. This seems like the only help there is on this subject: http://pastebin.com/SnPaAvUd, and it doesn't work. Instead of the item being damaged, it gets used up. This is my code that I'm working with: // My item class. public class ItemKnifeBase extends Item { public ItemKnifeBase(ToolMaterial material) { this.setCreativeTab(ToolForgeryMod.tabToolForgery); this.setUnlocalizedName(ToolForgeryMod.MOD_ID + ":knife_" + material.toString().toLowerCase()); this.setTextureName(ToolForgeryMod.RESOURCES_PREFIX + "knife_" + material.toString().toLowerCase()); this.setMaxDamage(material.getMaxUses()); } @Override public ItemStack getContainerItem(ItemStack itemStack) { ItemStack result = itemStack.copy(); result.setItemDamage(result.getItemDamage() + 1); result.stackSize = 1; return result; } @Override public boolean doesContainerItemLeaveCraftingGrid(ItemStack p_77630_1_) { return false; } } // Registering the crafting recipe in the preInit() method. GameRegistry.addShapelessRecipe(new ItemStack(Blocks.planks, 4, 0), new ItemStack(Blocks.log, 1, 0), new ItemStack(TFItems.knife_stone, 1, OreDictionary.WILDCARD_VALUE)); To clarify, the recipe shows up, and I can use it, but instead of damaging the knife, the knife gets used up. And I'm registering the item before the recipe. SOLUTION: You need to add @Override public boolean hasContainerItem() { return true; } to the item's class.
-
[1.7.2] [ForgeGradle] setupDecompWorkspace, and idea not giving access to MC src
I also have the same problem. Should we submit it as a bug?
-
Is there a better way? [Solved]
I presume you're trying to do a lot of specific comparisons. You could do this: return (testEntity instanceof EntityZombie || testEntity instanceof EntitySkeleton || testEntity instanceof EntityCreeper); To make the code easier to read, but no, there isn't an easier way to do what you're already doing.
-
[SOLVED][1.7.2] Bearded Octo Nemesis or any other tools for mod deobfuscation
If the mod's not open source, then the mod author(s) don't want you to deobfuscate it.
-
Help starting a jetpack mod...
I suggest you learn more about Java and modding before you tackle something so complex as this.
-
[1.7.2] Mods in Eclipse possible ?(specific Damage Indicator)
You need an updated version of Damage Indicators or a downgraded Forge workspace.
-
proper packet handling?
Pahimar's open source mod, Equivalent Exchange 3, shows the proper way to to packet handling: https://github.com/pahimar/Equivalent-Exchange-3/tree/master/src/main/java/com/pahimar/ee3/network
-
[1.7.2] Mods in Eclipse possible ?(specific Damage Indicator)
Figure out where you have the Minecraft directory used by your Eclipse workspace, and put your wanted mods in the "mods" folder.
-
my mod cant have items?!
Reading the error message would help you. It tells you exactly what the exception is.
-
[1.7.2] - this.getBlockName(); - I'm probably missing a comer or something haha
Java and JavaScript are two different programming languages. JavaScript is a scripting language used for websites.
-
[1.7.2-1085] [SOLVED] block.breakBlock() not working properly
This is the code I'm working with: http://pastebin.com/aEAswtBR and I've come across a big problem. Trying to break the block from the block object gathered from world.getBlock() doesn't do anything. Even doing world.getBlockToAir() doesn't do anything. I even tried using a packet handler because I thought the event was only being called client-side only (which it wasn't). Is it a Forge bug? EDIT: It seems that Block.breakBlock() is only for special purposes (i.e. dumping out the contents of an inventory, removing a tile entity, etc) and is not meant for actually breaking a block. What wesserboy said, you need to do something like this: private void breakBlock(World world, int x, int y, int z){ if(world.getBlock(x, y, z) != Blocks.bedrock){ world.getBlock(x, y, z).dropBlockAsItem(world, x, y, z, world.getBlockMetadata(x, y, z), 0); world.setBlockToAir(x, y, z); } }
-
[1.7.2][SOLVED]Using packets?
If you want to do packet handling yourself, check out the source code of Pahimar's EE3: https://github.com/pahimar/Equivalent-Exchange-3/tree/master/src/main/java/com/pahimar/ee3/network
-
[1.7.2] - this.getBlockName(); - I'm probably missing a comer or something haha
As I'm sure it can be quite annoying to be pestered with small problems such as this, but what's the point in just writing that? Dude, as this may seem like I'm not putting any "effort" I've done my best effort to learn as I go along. May you please reply with a little bit more help - I'm not asking for someone to write this for me, only to point me in a direction of which I can learn. Small problem? If you don't know Java, then modding is going to be much much harder. Knowing Java is not an option, it is a REQUIREMENT. Learn from Vswe's tutorials:
-
[1.7.2]Toggle 1.7.2 shaders.
Look at the Minecraft source code (possibly under the net.minecraft.client.gui package) and see how they do it.
-
[1.7.2] How to code a forge mod in scala
Minalien made a great tutorial for using Scala and the IntelliJ IDEA IDE: http://minalien.com/tutorial-setting-up-forgegradle-for-intellij-idea-scala/
-
FileNotFound Expectation
Like what the others said, you need to have sufficient permissions to do the building process. Also, "FileNotFound EXPECTATION"?
-
Custom Modelled block
Umm... there's no @Mod() annotation. You skipped step 1 of coding a Minecraft mod. @Mod(modid = "MyMod", name = "My Mod", version = "1.0.0") public class MyMod { // Code }
-
[1.7.2] [Unsolved] Item Modes Not Working On Server
public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { if( par1ItemStack.stackTagCompound == null ) par1ItemStack.setTagCompound( new NBTTagCompound( ) ); if(par3EntityPlayer.isSneaking()) { // Here's your problem. Check to see if the world is NOT remote. if (!world.isRemote) { code } if(par2World.isRemote) { ...
-
[1.7.2] [Unsolved] Item Modes Not Working On Server
I can give you a starting tutorial with item NBT data. All ItemStacks in a world can contain additional data called NBT data. You can write NBT data to an ItemStack like so: public void storeIntegerInItemStackNBT(ItemStack itemStack, String tagKey, int number) { // If an ItemStack doesn't have NBT data associated with it, then the stackTagCompound (returns an NBTTagCompound object) field will be null. if (itemStack.stackTagCompound == null) { // NBTTagCompound is the object that stores an ItemStack's NBT data itemStack.setTagCompound(new NBTTagCompound()); } // NBTTagCompound has many methods to store many data types, including bytes, byte arrays, shorts, integers, Strings, etc. // When storing values using NBTTagCompound, you will also need a key (String) to associate with the value. This is for calling the value later when you want to extract information from an NBTTagCompound object. itemStack.stackTagCompound.setInteger("Key", number); } You can read NBT data from an ItemStack like so: public int readIntegerFromItemStackNBT(ItemStack itemStack, String tagKey) { if (itemStack.stackTagCompound == null) { itemStack.setTagTagCompound(new NBTTagCompound()); } return itemStack.stackTagCompound.getInteger(tagKey); } That's the basics of ItemStack NBT data. You can also check out this: http://www.minecraftforum.net/topic/982336- tutorial for more information.
-
Error Registering tools
First, please PLEASE organize your code. It looks horrid. Second, don't use the same name as an object when assigning an object's value. Java (and you) will get confused. Do something like this: public static Item potatoPickaxe; public static void init() { potatoPickaxe = new PotatoPickaxe(); // You don't seem to register your item anywhere. You will need to do something like this, otherwise, your item will not load. GameRegistry.addItem(potatoPickaxe, "item.potatoPickaxe"); } You can also pre-assign objects like so: public static Item potatoPickaxe = new PotatoPickaxe(); public static void init() { // You still need to register the item, though. GameRegistry.registerItem(potatoPickaxe, "item.potatoPickaxe"); } Less code to write, and generally looks nicer.
-
Please help [JavaDoc Problem]
It doesn't mean that any Javadoc information comes with it. What method in particular are you talking about?
-
RESOLVED [1.7.2] Multiple projects in IntelliJ IDEA
Thanks! I was trying to do the opposite before.
-
[SOLVED][1.7.2]Game Crashes when crafting a Block
When you're registering the crafting recipes, the items are not registered. Register the items in a preInit() method, then the crafting recipes. Something like this: public void preInit(FMLPreInitializationEvent event) { GameRegistry.registerBlock(BLOCK, "block.testBlock"); // Other items GameRegisrey.addShapelessRecipe(OUTPUT, INPUTS...); // Other recipes } You can register the recipes in the init() method, if you like.
-
RESOLVED [1.7.2] Multiple projects in IntelliJ IDEA
There seems to be no good tutorials for this. I want to have what LexManos explains how to do here: https://www.youtube.com/watch?v=xp2jmt47yTQ, but with IntelliJ instead of Eclipse. Fair warning, I am very new to IntelliJ, and am still getting used to it.
-
[1.7.2] Textures not showing
You need to do something like this: this.blockIcon = iIconRegister.registerIcon("MOD_ID:TEXTURE"); If you're defining the block texture, you don't have to add "textures/blocks" to the path. Same for items.
IPS spam blocked by CleanTalk.