Posted June 22, 201510 yr Hey I am working on a better glass drop mod and I need help with the colored glass. I can get it to work with the white glass block because it is the first stained_glass block so if in my code I have stained_glass it will go for the white one but I also need it to drop the other colors to but I don't know how to add the damage value of the glass block or the color of the glass block so that when you mine a a glass block that is not white it will drop itself. package net.glassDrops.mod; import net.minecraft.block.BlockGlass; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; public class colorDrop0 { @net.minecraftforge.fml.common.eventhandler.SubscribeEvent public void blockBreak(BreakEvent evt){ if (evt.state.getBlock() == Blocks.stained_glass){ EntityItem item = new EntityItem(evt.world, evt.pos.getX(), evt.pos.getY(), evt.pos.getZ(), new ItemStack(Item.getItemFromBlock(Blocks.stained_glass))); EntityPlayer player = evt.getPlayer(); if(!player.capabilities.isCreativeMode) evt.world.spawnEntityInWorld(item); } }}
June 22, 201510 yr The break event gives you all the parameters you need to get the block metadata, new ItemStack(evt.block, 1, evt.blockMetadata)
June 22, 201510 yr There is a special event for setting The drops of a block, you should take a look at HarvestDropsEvent (I think that was its Name)
June 23, 201510 yr You have to set the damage (metadata) of the colored glass in the ItemStack. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
June 24, 201510 yr Author Yes, but how do I do that? If I try to add anything after the .stained_glass it will not accept it.
June 24, 201510 yr Yes, because you have to pass it as a parameter. The first one is the Item/Block, the second the amount to be dropped (defaults to 1), and the third the damage/metadata. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
June 25, 201510 yr Author But how do I do that? It wont let me add any thing before or after the Blocks.stained_glass.
June 25, 201510 yr But how do I do that? It wont let me add any thing before or after the Blocks.stained_glass. Show the code please... Check out my mods: BTAM Armor sets Avoid Exploding Creepers Tools compressor Anti Id Conflict Key bindings overhaul Colourfull blocks Invisi Zones
June 25, 201510 yr Don't add it as a parameter in the getItemFromBlock() method, but as an parameter of the ItemStack constructor. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
June 26, 201510 yr Author Alright now I can make it drop other colors then the white but that is only part of it I now I need to make to get what color of the glass you just mined so it knows what color to drop. package net.glassDrops.mod; import net.minecraft.block.BlockGlass; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; public class colorDrop0 { @net.minecraftforge.fml.common.eventhandler.SubscribeEvent public void blockBreak(BreakEvent evt){ if (evt.state.getBlock() == Blocks.stained_glass){ EntityItem item = new EntityItem(evt.world, evt.pos.getX(), evt.pos.getY(), evt.pos.getZ(), new ItemStack(Item.getItemFromBlock(Blocks.stained_glass),1, 1)); EntityPlayer player = evt.getPlayer(); if(!player.capabilities.isCreativeMode) evt.world.spawnEntityInWorld(item); } }}
June 26, 201510 yr + You dont need to spawn item you can just do event.drops.add(youritemstack) EDIT : this code works fine for me @SubscribeEvent public void harvestDrops (HarvestDropsEvent event) { if(event.block.equals(Blocks.stained_glass)) { event.drops.add(new ItemStack(Blocks.stained_glass,1,event.blockMetadata)); } } I'm beginner in java and in minecraft modding. Please be specific. Any code examples are appreciated. Sorry for my english i'm from Czech republic. Please hit that thank you button if i helped
June 27, 201510 yr Author KakesRevenge I tried your code and it didn't work for me. diesieben07, how do I add what you gave me to my code? What I meant is my plan was just to create a new event for every color glass block but like say the event for the orange one would see that you mined an orange one then drop an orange glass block and it would do that in all the events for all the glass blocks. Not saying I can't do it your way I just don't know how to add that in then drop the block with the Metadata of the one you mined.
June 30, 201510 yr Author Am I doing this right? package net.glassDrops.mod; import net.minecraft.block.BlockGlass; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; public class colorDrop0 { @net.minecraftforge.fml.common.eventhandler.SubscribeEvent public void blockBreak(BreakEvent evt){ if (evt.state.getBlock() == Blocks.stained_glass){ EntityItem item = new EntityItem(evt.world, evt.pos.getX(), evt.pos.getY(), evt.pos.getZ(), new ItemStack(Item.getItemFromBlock(Blocks.stained_glass((EnumDyeColor) evt.state.getProperty(BlockGlass.COLOR)).getMetadata))); EntityPlayer player = evt.getPlayer(); if(!player.capabilities.isCreativeMode) evt.world.spawnEntityInWorld(item); } }}
June 30, 201510 yr Don't add it as a parameter in the getItemFromBlock() method, but as an parameter of the ItemStack constructor. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
July 1, 201510 yr Author Don't add it as a parameter in the getItemFromBlock() method, but as an parameter of the ItemStack constructor. I have tried that. It is not working, someone just show me how to add it to my code please.
July 1, 201510 yr Show what you have tried. Also, without payment, nobody is gonna write code for you because you can't code it yourself. And from this topic alone I can tell you that you do not know enough Java to mod Minecraft. So learn Java, and then come back to modding. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
July 2, 201510 yr Author After some playing around I got this. package net.glassDrops.mod; import net.minecraft.block.BlockGlass; import net.minecraft.block.material.Material; import net.minecraft.block.state.IBlockState; import net.minecraft.entity.Entity; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.EnumDyeColor; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; public class colorDrop0 { @net.minecraftforge.fml.common.eventhandler.SubscribeEvent public void blockBreak(BreakEvent evt){ if (evt.state.getBlock() == Blocks.stained_glass){ EntityItem item = new EntityItem(evt.world, evt.pos.getX(), evt.pos.getY(), evt.pos.getZ(), new ItemStack(((EnumDyeColor) evt.state.getProperty(BlockGlass.COLOR)).getMetadata)); EntityPlayer player = evt.getPlayer(); if(!player.capabilities.isCreativeMode) evt.world.spawnEntityInWorld(item); } But it keeps underlining COLOR and getMetadata every time. That is why I asked someone to show me how to add it to my code I am not a complete idiot. Also about learning java then come back to modding even someone who is a master in java can not be able to make a mod because one they need to know how the game they want to mod works and two if you need to use an API like forge to make your mod you need to know how everything with the API works as well and if you have no idea how forge handles everything even a master of java will have to have a lot of help with making a mod for minecraft. P.S I am mostly making this(and other mods that I have made)for fun it is not like I am going to use it to make millions of dollars off it, and I do want to learn java but for now I am unable to do so but when I do get the ability to trust me I will.
July 3, 201510 yr Author Hey, look at that. I got it to work by doing this. EntityItem item = new EntityItem(evt.world, evt.pos.getX(), evt.pos.getY(), evt.pos.getZ(), new ItemStack(Item.getItemFromBlock(Blocks.stained_glass),1,((EnumDyeColor) evt.state.getValue(BlockStainedGlass.COLOR)).getMetadata())); First I changed it back to ItemStack(Item.getItemFromBlock(Blocks.stained_glass),1,1)) then added the other part where that last one was. Then, I added an () to the end of getMetadata changed BlockGlass to BlockStaindGlass then if finally took COLOR Then, the .getProperty needed to be changed to .getValue and guess what, it worked. So thanks for semi helping me.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.