Alternative to what I'm about to say, you could just allow unlimited fruits, disable certain abilities, and live a less stressful life. :) Sometimes wish I had done that... so, get a head start.
Mine Mine no Mi is a delicate mod, if you're using "One Fruit Per World" config, good luck. You'll need it.
Always assume that circulation is somewhat bugged. To check its current state, use NBTExplorer to check the ./world/data/mineminenomi.dat file.
How to use NBTExplorer? Just install it, open it, then drag your favourite .dat file into it, and explore.
Actually dealing with circulation is a different story. I want to make it clear that messing with circulation may in fact mess up circulation.
Anyway... if your server gets large enough, labouring through each entry of each section of this dat file might feel absolutely ridiculous to you. That's because it fucking is. That's why you should probably make a script (in Python or whatever) to fix this file automatically.
The following was the logic to my script, don't really know exactly how well it works or how much it breaks circulation even further. EXPERIMENT IN A PRIVATE SERVER.
For Python, use this library: https://pypi.org/project/NBT/ to access .dat files.
Seperately, you can check all fruits in loggedoffFruits and, if any fruit isn't in there, and it's not eaten by anyone in ateDevilFruits, then remove it from devilFruits as it's probably lost in a chunk.
For these scripts, you should have your own checks and safety nets in place. For example, saving backups of mineminenomi.dat before running your script over it, saving any to-be altered playerdata files, and so on. Do many tests and use your own instincts, understand what you're doing (easier said than done).
Scripts like these should only be used while the server is OFF. Always make backups!
Mine Mine no Mi is a delicate mod, if you're using "One Fruit Per World" config, good luck. You'll need it.
Always assume that circulation is somewhat bugged. To check its current state, use NBTExplorer to check the ./world/data/mineminenomi.dat file.
How to use NBTExplorer? Just install it, open it, then drag your favourite .dat file into it, and explore.
Actually dealing with circulation is a different story. I want to make it clear that messing with circulation may in fact mess up circulation.
Anyway... if your server gets large enough, labouring through each entry of each section of this dat file might feel absolutely ridiculous to you. That's because it fucking is. That's why you should probably make a script (in Python or whatever) to fix this file automatically.
The following was the logic to my script, don't really know exactly how well it works or how much it breaks circulation even further. EXPERIMENT IN A PRIVATE SERVER.
For Python, use this library: https://pypi.org/project/NBT/ to access .dat files.
- Go through each player in loggedoutFruits
- If they've been logged off more than X days, check if date = 0, if not, then set date = 0. (WARNING: at the time of writing this, the date attribute is in epoch time, including micro seconds). Only continue if date was not 0 before this step.
- Remove their fruits from ateDevilFruits and devilFruits
- Save new mineminenomi.dat
- Now access their PLAYERDATA dat file (./world/playerdata/PLAYERDATA.dat)
- Set their eaten devil fruit to "" (To see where this is located, use NBTExplorer, drag a playerdata file into it and go to: ForgeCaps/mineminenomi:devil_fruit/devilFruit)
- Save playerdata dat file
- ...
- Profit. Hopefully.
Seperately, you can check all fruits in loggedoffFruits and, if any fruit isn't in there, and it's not eaten by anyone in ateDevilFruits, then remove it from devilFruits as it's probably lost in a chunk.
For these scripts, you should have your own checks and safety nets in place. For example, saving backups of mineminenomi.dat before running your script over it, saving any to-be altered playerdata files, and so on. Do many tests and use your own instincts, understand what you're doing (easier said than done).
Scripts like these should only be used while the server is OFF. Always make backups!