Ronaldi2001 Posted July 12, 2017 Share Posted July 12, 2017 Hi, I want to have a crafting recipe have a container item, but I want it only to be a container item 10% of the time its used tot craft. If its possible how would I start this? Thank you! Quote ~ Ronaldi2001 Link to comment Share on other sites More sharing options...
larsgerrits Posted July 12, 2017 Share Posted July 12, 2017 (edited) You can override Item#getContainerItem(ItemStack) to return an ItemStack 10% of the time. Also, wrong section. This should be in Modder Support. Edited July 12, 2017 by larsgerrits Quote 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/ Link to comment Share on other sites More sharing options...
Ronaldi2001 Posted July 13, 2017 Author Share Posted July 13, 2017 20 hours ago, larsgerrits said: You can override Item#getContainerItem(ItemStack) to return an ItemStack 10% of the time. Also, wrong section. This should be in Modder Support. So I have this for the the percentage, how would I make it so that it makes a new number when the item is being crafted and not just on the world startup? I made it a string so that I could see the number that it was generating. int min = 1; int max = 10; Random r = new Random(); int i1 = r.nextInt(max - min + 1) + min; String SNumber = String.valueOf(i1); Quote ~ Ronaldi2001 Link to comment Share on other sites More sharing options...
Choonster Posted July 13, 2017 Share Posted July 13, 2017 (edited) 4 minutes ago, Ronaldi2001 said: So I have this for the the percentage, how would I make it so that it makes a new number when the item is being crafted and not just on the world startup? I made it a string so that I could see the number that it was generating. int min = 1; int max = 10; Random r = new Random(); int i1 = r.nextInt(max - min + 1) + min; String SNumber = String.valueOf(i1); Don't create a new Random every time, create one and store it. Item#itemRand already contains a Random instance that you can use. You need to generate the random number in your override of Item#getContainerItem(ItemStack). Edited July 13, 2017 by Choonster Quote Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future. Link to comment Share on other sites More sharing options...
Ronaldi2001 Posted July 14, 2017 Author Share Posted July 14, 2017 22 hours ago, Choonster said: Don't create a new Random every time, create one and store it. Item#itemRand already contains a Random instance that you can use. You need to generate the random number in your override of Item#getContainerItem(ItemStack). How do I create a random number without it saving and it keeps running? Quote ~ Ronaldi2001 Link to comment Share on other sites More sharing options...
Jay Avery Posted July 14, 2017 Share Posted July 14, 2017 Just generate the number locally inside the getContainerItem method. The local variable will be discared once the method returns, and a new one will be created each time the method is called. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.