I hope this is not too big of a request but I really really want this. Everytime I type /reload, I would like it to say what is different in the plugins folder. Example Chat: Reload Complete Removed "Buycraft" Fixed Permissions I would like it to say it in public chat. I would appreciate if someone could possibly make this plugin. If anyone has any questions, comment below. Thank you.
where do you get this idea that bukkit has a feature that causes memory leaks MrEsplugas3 it shouldn't be too difficult for whoever does it
If /reload causes memory leaks and lag why would it be implemented in Bukkit? Ask yourself that question next time..
I use reload all the time with no visible memory leaks. I have 20+ plugins but they are all programmed by me so I know that they will work properly with server reloading. I restart when I can but if someone is online I will reload instead. I would be interested in this plugin. Perhaps it could also compare plugin versions to see which have changed.
A lot of you guys aren't really responding to my post. You are talking about memory leaks with /reload
Not really that difficult of a plugin. I can make this. Mostly just MD5s and such. I would probably make it async so it won't stop the server from starting, so there will be some delay between the reload finishing and the "ChangeLog" appearing.
To understand why the reload command is terrible, you have to understand how it works. /reload disables all active plugins, and then, creates a new instance of every plugin in the plugins folder. It does not reactivate the old, disabled plugins. It creates a new copy. Due to the way Java works, and how Bukkit implements it's classloaders, this causes a memory leak. This is easy to confirm with most java profilers. The memory leak is not super significant (I'd guess at most, 5mb per /reload), but it does exist. Unfortunately, Java's eccentricities make it pretty much impossible to fix this memory leak.
Ok, created most of it. I'm done with this for the night, right now it can check for changes in any file in /plugins/ but you have to manually add either the file or the directory via a list in config.yml. The path would be relative to the plugins directory, like Code: accepted-directories: - essentials accepted-files: - bPermissions/users.yml Source for anyone to learn / take / add to / etc: https://github.com/psycowithespn/ChangeLogger Binary: https://dl.dropbox.com/u/59767756/ChangeLogger-1.0-SNAPSHOT.jar