Topic category: Help with Minecraft modding (Java Edition)
Heyo!
So, for a little while now, I have been working on a mod that creates an alternative enchanting system to the Minecraft enchanting system, and moreover, adds a variety of new enchants. However, I have encountered an issue.
I am using the "random integer between "x" min and "y" max included" to generate a number that will correspond with a given enchant from a list. However, because I need the procedure to reroll and choose a different number multiple times, I need to know how to exclude a number when rerolling so that the same enchant isn't chosen more than once. For example, if the list was between numbers 1-16, and it chooses 4, the next time it rolls a number, I need the procedure to exclude 4, and thus, have it between 1-3,5-16. And when it rerolls again, and for example, chooses a 5, I need it to now exclude that number too, ie. have the next roll between 1-3,6-16.
An alternative solution could be the following, yet I still need help. Let's say that the Sharpness enchant corresponds to the number 4. If the generator chooses the number 4, then it adds the enchant of Sharpness and sets a variable to true. For the next roll, I could have it check to see if the variable is true, and if so, then have it cancel the procedure and reroll until a different number is found.
What could I do?
Have a blessed day!
Set local variable to random number, then check if that random number is the one you don't want and then set to another value, or alternatively, re-roll in loop until the number is not the one excluded
Another solution I found is to just set the range of a random number to different ranges based on which numbers you want to exclude. I was making a custom GUI system, for example, where I want a randomized crafting result that excludes an item if it's in the ingredient slot. To do this I essentially made an RNG table that selects 5-25 if that item is an ingredient, and 1-25 if it isn't, with options 1-4 being said item.