If you want it to be forced to stay equipped you would have to use the PlayerTickEvent and iterate through there inventory and upon finding one move it to the armor slot, but only if there already isn't one. And watch out for concurrent modification exceptions.
Are they your own Items override addInformation in your Item or Block class. If they are not subscribe to the ItemToolTipEvent, you can read more about events on the forge docs.
Are you sending the data to the client or to the server?
If changing the IItemHandlers stack on the client doesnt update the container/gui have your packet also update the container.
Ok, did you solve all of the problems we told you about?
Attempting to call client only code here and here. Why are you not using the events to register models, Items, and Blocks? Read the forge docs on them you should not be doing
ForgeRegistries.REGISTRYNAME.register(obj);
This would still be too much. This would be 15 veins of approximately 3 blocks between y values 60-64.
This would still be too much. This would be 12 veins of approximately 3 blocks between y values 56-60.
All per chunk.
I'm not sure why this isn't working for you, and you may want to change.
To have your modid
I have this which should be similar to your code and it works
This line of code will run the code inside of the {} until i >= to chance. And i++ while add one to i every time it is ran. So this will call
chance amount of times.
For loop
Did you write the code for runGenerator? Did you read it? Because if you did you need to learn java or read it again. Your actually telling it to generate a batch of 3 or 100 times per chunk. Between y 69 and 64.
Use an IItemHandler that has one slot and access to the TEs amount field and override insertItem and extractItem as well as getStack or getStacks(whatever that method is called in IItemHandler) and return the appropriate values and update the stack inside the IItemHandler based on the amount filed. No need for a fancy slot.