Inactive [ADMN] AutoSave v2.0.1 - Automatic World Saves [935]

Discussion in 'Inactive/Unsupported Plugins' started by cereal, Feb 13, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    cereal

    AutoSave is now on Bukkit Dev! Plenty of information and it is overall much better documented there than it has been here. Wiki pages really help organize all the information that is needed.

    Discuss AutoSave on Bukkit Dev and get information, files, and more from there!




    AutoSave - Automatic World Saves:
    Version: 2.0.1

    AutoSave is meant to provide a simple method to automatically save your world at a defined interval! This plugin ONLY saves to the proper world directories within the Minecraft server. It is not a backup plugin, it is meant to increase persistence and reduce the affects of a server crash.

    Features:
    • Performs a world saves (same as save-all on console)
    • Repeats the above at user defined interval!
    • Warning messages
    • Multi-World Support
    • Configurable messages
    • Option to disable broadcast message
    Download The Plugin
    Source Code

    Changelog:
    Version 2.0.1
    • Small library changes
    Version 2.0.0
    • Color Messages support!
    • Support for Multiple Permissions Plugins (natively)
    • No more version nagging
    • ASync Tasks instead of Sync Tasks (possible performance increase)
    Version 1.3.0
    • Perform save after last player leaves (quits/kicked).
    Full Changelog

    Future Release To-do List:
    • Calculate and create variable for time elapsed during save
    • Make bacon
    • Get more feature suggestions
    Configuration:

    You can configure the plugin via an XML file located at "plugins/AutoSave/config.properties".
    • message.broadcastpre: Message broadcast to all players prior to save
    • message.broadcastprost: Message broadcast to all players after save completed
    • message.insufficentpermissions: Customizable generic insufficient permissions message
    • message.saveplayers: Customizable players save message
    • message.saveworlds: Customizable worlds save message
    • message.warning: Customizable warning message
    • value.off: Customizable value of "off"
    • value.on: Customizable value of "on"
    • var.broadcast: True or False value specifying if broadcasts should be used
    • var.debug: True or False value specifying for additional console output
    • var.interval: Number of seconds between saves
    • var.permissions: Bypass permissions entirely
    • var.report: Toggles reporting thread
    • var.uuid: Anonymous identification
    • var.warntime: n time before the save happens when a warning is broadcast to players, multiple values can be passed by separating by commas
    • var.worlds: Comma seperated list of loaded worlds to be saved. * indicates ALL worlds will be saved.
    Colors:
    If you want to user colors, its simple. Just use one of the following in the appropriate location (config file):
    • Aqua: %AQUA%
    • Black: %BLACK%
    • Dark Aqua: %DARK_AQUA%
    • Dark Blue: %DARK_BLUE%
    • Dark Gray: %DARK_GRAY%
    • Dark Green: %DARK_GREEN%
    • Dark Purple: %DARK_PURPLE%
    • Dark Red: %DARK_RED%
    • Gold: %GOLD%
    • Gray: %GRAY%
    • Green: %GREEN%
    • Light Purple: %LIGHT_PURPLE%
    • Red: %RED%
    • White: %WHITE%
    • Yellow: %YELLOW%
    License:
    Copyright 2011 MilkBowl (https://github.com/MilkBowl)

    This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.


    Commands:

    Note: ALL of the below commands can start with autosave instead of save if another plugin is using the save command such as WorldEdit. This will always allow access to the in game configuration of the plugin.

    /save
    Saves the world outside of the interval.​
    Requires Permission: autosave.save​
    /save help
    Displays help dialogue​
    /save toggle
    Toggles the automatic saves (turns off or on depending on current setting)​
    Requires Permission: autosave.toggle​
    /save status
    Prints status message about the current state of automatic saves​
    Requires Permission: autosave.status​
    /save interval {seconds}
    Sets or gets the interval setting in seconds​
    Requires Permission: autosave.interval​
    /save addworld [value]
    Adds world to the World Save List​
    Requires Permission: autosave.world.add​
    /save remworld [value]
    Removes world from the World Save List​
    Requires Permission: autosave.world.rem​
    /save world
    Displays the World Save List​
    Requires Permission: autosave.world​
    /save broadcast {on|off}
    Sets or gets the broadcast setting​
    Requires Permission: autosave.broadcast​
    /save debug {on|off}
    Sets or gets the debug setting​
    Requires Permission: autosave.debug​
    /save warn {seconds[,seconds]...}
    Sets or gets the warning time setting in seconds (warns users of an upcoming save n seconds before it happens)​
    Requires Permission: autosave.warn​
    /save version
    Prints AutoSave version​
    Requires Permission: autosave.version​

    Reporting:

    AutoSave reports minimal anonymous data to provide general usage tracking. No personal or server information is ever transmitted. The following data is provided:
    • Plugin Name (this will always be AutoSave)
    • Plugin Version
    • Bukkit Version (the full Bukkit version string)
    • Operating System
      • Name
      • Version
      • Architecture
    • Java Version
    This data helps me understand the environments in which AutoSave is used within, however you are more than welcome to disable it, either via "var.report" in the configuration file, or "save report [off|on]" from console.

    Known Issues:
    • During upgrade messages no longer are colored
      • Solution: Delete config file or add colors manually
    Permissions:

    Permissions can be disabled by manually editing the config file and setting "permissions" to false. That will completely disable Permissions. Running AutoSave without Permissions with the value to true (default) will cause the plugin to unload itself.

    Here are the permission settings, either do 'autosave.*' or use the granular permissions below:
    autosave.save: Allows the ability to save at any time​
    autosave.toggle: Allows the ability to stop and start AutoSave​
    autosave.status: Allows the ability to see status of AutoSave​
    autosave.interval: Allows the ability to see and change interval setting​
    autosave.broadcast: Allows the ability to see and change broadcast setting​
    autosave.version: Allows the ability to see the version of AutoSave​
    autosave.debug: Allows the ability to change the debug setting​
    autosave.warn: Allows the ability to see and change the warning time setting​
    autosave.world: Allows the ability to view the world save list​
    autosave.world.add: Allows the ability to add to the world save list​
    autosave.world.rem: Allows the ability to remove from the world save list​
     
    bobacadodl, iKeirNez, Joe12o and 12 others like this.
  2. Offline

    Phaedrus

    Thanks for the updated version!
     
  3. Offline

    Kainzo

    From what I saw on 1.03 - the actual "saves" on this plugin do nothing if the server unexpectedly shuts down - this is WRONG, the whole purpose of a save timer is to stop this rollback from happening - I've tested this for several hours yesterday and in all cases - it points to that the saves do absolutely nothing unless you force save and then shutdown.

    On numerous occasions I would /stop the server and it would not let the plugin save the server and since the plugin thinks its saves were good - the shut down wouldnt save chunks and just exit.

    We had 3 rollbacks because of this - with the only variable removed is this plugin and we havent had any rollbacks. Is there any way to address these issues?
     
  4. Offline

    TJ8

    I still don't understand the use for this? If it saves your world how do you restore it if a griefer comes???
     
  5. Offline

    ratty

    There at least used to be a bug where save-all does nothing if the server is in save-off mode. If this plugin is doing save-off, then that might be the reason.
    The fix would be save-on, save-all then save-off again in a sequence like that at each interval.
    --- merged: Feb 27, 2011 7:17 AM ---
    If the server crashes, you can lose a bunch of data, this forces your server to save everything to disk every 5 minutes or whatever so at least you wont lose more than 5 minutes no matter what.
     
  6. Offline

    TJ8

    Yea my server just crashed o.0 what a coincidence, like it says end of stream and its not working and heaps of the files are gone in the world file, how do I recover it and where does it save to? Like what disk?
     
  7. Offline

    brord

    uhh i want to restore the map from 2 hours earlyer, how?! xD
     
  8. Offline

    imaxorz

    This saves user inventories, correct?
     
  9. Offline

    Daveyo

    the last 3 comments are about the funniest stuff ive seen on this site
     
  10. Offline

    imaxorz

    Or you can just say yes or no. I know it saves the level and it isn't used to restore maps, I just want to make sure that it saves user inventories too (I assume it does) in case of a abrupt server crash.
     
  11. Offline

    Daveyo

  12. Offline

    cereal

    I've tested this quite a bit with unexpected saves. I test by issuing "pkill -9 java" and haven't seen the issue. Since at this time the plugin does nothing more than running the "save-all" command as if someone physically typed it into the server's console I'm confused how you could see a rollback.

    Pending Pull Request 162 I will be able to directly call these functions instead of issuing the "save-all" command and I have also tested this using the same methodology and haven't seen the rollback your discussing.
    --- merged: Mar 2, 2011 3:50 PM ---
    Use a plugin meant for security purposes. This has nothing to do with griefing, there are some great options for that alone.
     
  13. Offline

    Kainzo

    I had disabled the plugins ability to save on interval, I believe that may have been the cause - in either way... it sure felt like the plugin wasnt kicking saves at all on crashing - ending the process would roll it back to when the server first launched rather than the last '5 min' save. I've yet to test this further.
     
  14. Offline

    cereal

    If you have time to further test I would appreciate it. Also my pull request was just added to Bukkit so that will also help, however fundamentally its just doing the exact same thing anyhow. The current version 1.0.3 doesn't save players nor does it save anything beyond the default world (the Bukkit pull request allows me to do all of these).

    I unfortunately had some work related stuff I need to address but I'll likely have an updated version utilizing the latest builds soon.
     
  15. Offline

    Austine

    if you can add a feature that restarts the server and has a countdown that would be awesome!!!!!!!!!!!!
     
  16. Offline

    Kane

    Don't think this is possible without it being a wrapper?
     
  17. Offline

    QQCucumber

    Hope to see an update soon, the main reason I actually used this plugin was for player saves. [​IMG]
     
  18. Offline

    Efflixi

    Thanks!!
     
  19. Offline

    cereal

    As Kane said, AutoSave would then need to become a wrapper which just simply isn't the purpose of AutoSave. I'm sure there are other developers who may have done this or may be interested.

    Expect an update tomorrow, however it will be for development builds only and NOT for the recommended build as it doesn't have my commitments that are needed.

    What to expect in the new version?
    • Less annoying messages
    • Multi-World Support
    • Player Saving
    What to MAYBE expect?
    • Configurable worlds, and player values
      • ex: only some worlds, and toggle for saving or not of players
    • Warning message for imminent saves with defined intervals
    Also, just a reminder, at this point I have not had the chance to add chunk or region specific saves so this will attempt to write the entire world to disk when requested so on large servers with a large number of loaded chunks performance may be an issue so wise timings may be important. Fixing this to allow a slow trickled saving effect is on my agenda, but that involves more commitments and diving into notch code so we'll see where that takes me!

    I'm going to catch some much needed sleep for now!
     
  20. Offline

    QQCucumber

    Are you sure? 493 was made the new recommended build.
     
  21. Offline

    cereal

    Awesome! Didnt notice that. You made my night!
    --- merged: Mar 4, 2011 4:34 PM ---
    Released version 1.1.0 of AutoSave! See the details in the first post above.
     
  22. Offline

    QQCucumber

    Got this error, using CB 493

    Code:
    >
     11:34:32 [SEVERE] null loading AutoSave v1.1.0 (Is it up to date?)
    java.lang.NullPointerException
    	at sh.cereal.bukkit.plugin.AutoSave.Generic.combine(Unknown Source)
    	at sh.cereal.bukkit.plugin.AutoSave.AutoSave.writeConfigFile(Unknown Source)
    	at sh.cereal.bukkit.plugin.AutoSave.AutoSave.loadConfigFile(Unknown Source)
    	at sh.cereal.bukkit.plugin.AutoSave.AutoSave.onEnable(Unknown Source)
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:414)
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
    	at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    	at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    	at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    	at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    	at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    	at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
     
  23. Offline

    Cvisser

    • Requires at least Recommended Build 493
    What u mean build 493? 493 what??? and where what i check what build i have??
     
  24. Offline

    QQCucumber

  25. Offline

    Cvisser

    Got the same error
     
  26. Offline

    cereal

    Released Version 1.1.1, sorry about that! Forgot to provide an additional needed check when a config file does not exist.
     
  27. Offline

    Cvisser

    Can I have the link to Version 1.0.3
    --- merged: Mar 4, 2011 5:06 PM ---
    Nvm it works with the older build than 493
    --- merged: Mar 4, 2011 5:16 PM ---
    Acually i cud use the Version 1.03 if u don't mind linkin it. Please:cool:
    --- merged: Mar 4, 2011 5:36 PM ---
    or theres some reason u can't?
     
  28. Offline

    Maddin

    i do not understand this plugin.... xD
     
  29. Offline

    cereal

    I didn't keep a copy laying around, suppose I could pull down specific commits if you absolutely need it. Send me a Private Message if needed.

    This is simply a plugin to enhance persistence just in case of server crashes where saves simply don't happen. Its an enhancement to the saving process to reduce loss of players work on crashes and what not.
    --- merged: Mar 4, 2011 7:58 PM ---
    Also other uses have been to write changes to disk more frequently for the following reason:
    • Persistence (protect against server crashes)
    • Backups (more frequent full saves, however this plugin does not create backups itself)
    • Mapping (provide more up to date data for servers who use maps)
     
  30. Offline

    RioS

    Got the following error on /save help.

    21:48:07 [GRAVE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'save' in plugin AutoSave v1.1.1
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
    at net.minecraft.server.NetServerHandler.c(NetServerHandler.java:619)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:582)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:576)
    at net.minecraft.server.Packet3Chat.a(SourceFile:24)
    at net.minecraft.server.NetworkManager.a(SourceFile:230)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:75)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:357)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.NoClassDefFoundError: com/nijiko/permissions/PermissionHandler
    at sh.cereal.bukkit.plugin.AutoSave.AutoSave.onCommand(Unknown Source)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
    ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.nijiko.permissions.PermissionHandler
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:30)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    ... 14 more
    >
     
  31. Offline

    Maddin

    Yes but how can i set this up?
     
Thread Status:
Not open for further replies.

Share This Page