Plugin category: Admin tools, Anti greif Suggested name: Inventory logger What I want: I would like a inventory logging/rollback plugin. I would love you if you could make it and extension for logblock as this is the rollback and logging plugin i currently use. commands and permissions don't have to be this. this is just what i would prefer. It would log the inventory on logins, logouts, and every minute. Ideas for commands: [brackets rare needed] (parenthesis are optional) /lb lookup inventory player [player] since (time ex 1d, 1m(minute is lowercase), 1M(month is uppercase)) /lb inventory rollback player (player) since (time) Ideas for permissions: Logblock.inventory When I'd like it by: im in no rush but would like it as soon as possible
Possible: Yes Already made: Not that I know of Why? This would require loads of logging, every item that gets crafted needs to be updated into the database ( would grow huge really quick ) Timed logging wouldn't be as accurate but it will increase server performance
Sounds reasonably simple- I'll whip up a prototype in a bit. Properly saving data and whatnot will take a little more dev time, however.
Just an update to confirm that I'm not just playing Minecraft all day: The plugin is mostly complete. It autosaves everyone's inventory every 60 seconds, then writes to a log file every 10 minutes (configurable). It also writes to a different directory every day (also configurable). It handles both inventory and armor and should be able to deal with empty slots properly. All that's left is to do some serious bugtesting and to implement a file-reader so that old saves can be examined and used.
15987632 Another update fpr ya'. The file loading procedure now works and can rollback a player's inventory by typing a command like this: /invlog rollback [playername] yyyy-MM-dd HH-mm-ss You can also leave the time unspecified. Either way, it picks the closest log file it can find to the specified date and time, then loads it and searches for the player's name. If the name is found, it then rolls the player's inventory back to the way it was at that time. I still need to account for enchantments, however- that may prove more difficult than merely getting item types and quantities.
Ok thank you if there some type of proto type or are you waiting to realise it all at once? But thank you for all your work Someguyfromcrowd if you could add a lookup feature so you can just look and not rollback that would be cool also. And another thing if you could add an undo command in case you mess up
Quite a bit, actually. I'm currently working on a way to check a player's inventory before rolling it back. I'm also planning out a way to clean up old log files and send a few to an archive directory for long-term storage. Item metadata is still going to be tricky, though. I'm looking into ways to deal with that. I should have a stable build up sometime tomorrow morning- I'll let you know when.
[quote uid=90878720 name="15987632" post=1993476]Someguyfromcrowd is that build coming along nicely?[/quote] Apologies for the delay- finals week is looming and I've been short on free time. You can check out a beta build <Edit by Moderator: Redacted mediafire url> /invlog check <name> <date> [optional time] will display the save file closest to the given date/time. If no time is given, it's assumed to be midnight. Note that dates and times must be formatted as yyyy-MM-dd hh-mm-ss /invlog rollback <name> <date> [optional time] is similar but sets the player's inventory to the saved inventory. I still have a lot of work to do: * Saving a text file for every single save is a bit unwieldy. It needs to either garbage-collect after a set time (saving some backups) or write to a single file. * Entering dates is difficult at best. I'd like to make it interpret things like "yesterday" and "december 4th". * Items don't keep their enchantments. This will be a bit tricky to deal with. * Damage values aren't saved yet, so tools will get repaired upon a rollback. * Loading files consumes a fair bit of time, which I'm afraid is blocking (freezes the server). It only takes ~1 second, but that's still noticeable. Consolidating the saves will mitigate this problem. * An undo feature would go a long way to preventing accidental loss of items. I'll keep working on this in my off hours. With some luck it should be done by next week.
Someguyfromcrowd That's going to rack up ridiculous amounts of files...you should switch to a database.
That's my longer-term plan. I'm currently researching how to implement such a thing, which'll take a little bit of time.
I'm picking up on it pretty well. I'll probably try it out in Java tomorrow and then integrate it into the plugin over the next few days.
Nice and sorry if I am annoying you with these posts I'm just trying to remind you about this request as I know you have a lot of projects. Just say the word and I won't ask about this anymore assuming you won't forget and will post updates here
Prism is a good logging plugin that can log pretty much anything it doesn't have inventory tracking per say but t does track item drops and pickups so you could use that for tracking. It also has an api so a plugin could be written that takes that data and uses it to keep a master record of inventories.