AutoSaveWorld
AutoSaveWorld - multifunctional plugin that can save, backup, purge, restart the minecraft server, reload plugins and much more.
AutoSaveWorld will work on any bukkit/spigot/mcpc+/cauldron build starting from version 1.2.5-R5.0
Version: 4.14.2
Features:
Note: all feautures except autosave are disabled by default.
- Performs a world and players data saves (similar to save-all in console)
- Performs a world backups({server folder}/backups/)
- Performs some plugins data purge
- Performs autorestart at a defined time
- Performs restart at server crash
- Executes console commands defined in config automatically
- Warning messages
- Multi-World Support
- Configurable messages
- Option to disable broadcast message
Documentation:
Note: Configuration can only be reloaded by built-in commands
AutoSaveWorld have many features:
1)AutoSave - saves your worlds and player inventory.
AutoSave documentation page
2)AutoBackup - backups your worlds
AutoBackup documentation page
3)AutoPurge - purges some plugins data
AutoPurge documentation page
4)AutoRestart - restarts server at a defined time
AutoRestart documentation page
5)CrashRestart - restarts server if it crashes
CrashRestart documentation page
6)AutoConsoleCommand - automatically executes console commands
AutoConsoleCommand documentation page
7)WorldRegen - starts server with a fresh map but preserves some plugins territory claims
WorldRegen documentation page
8)PluginManager - load, unload, reload plugins using commands
PluginManager documentation page
Messages config explanation:
Messages configuration
Additional commands:
/asw help #displays help for all comands Permission:autosaveworld.help
/asw reload #reloads config.yml and configmsg.ymlPermission:autosaveworld.reload
/asw reloadconfig #reloads config.yml Permission:autosaveworld.reloadconfig
/asw reloadmsg #reloads configmsg.yml Permission:autosaveworld.reloadmsg
/asw version #displays AutoSaveWorld version Permission:autosaveworld.version
/asw info #displays AutoSaveWorld info Permission:autosaveworld.info
Note:All commands work if you are OP, console or have permission.
Note:Config can only be reloaded using config reload commands.
Dev builds and Source code
Develompent builds: jenkins
Source code: GitHub
In reply to FreakSound:
Hi ! I wanna save these things on dropbox or in google drive but when i enable them and i make a backup it says "dropbox failed" or "google drive failed" can someone explain to me how to make it work ? Bcs that will be so helpful
In reply to Forge_User_80730482:
Hello, I am currently experiencing an issue with the latest version of ASW.... During all backups, I get error messages such as...
[14:22:44 WARN]: [AutoSaveWorld] Failed to backup file: E:\home\anonymous\Desktop\NewServer\MC Server\plugins\Multiverse-Portals\d
ebug.log.lck, reason: exception when reading first byte: The process cannot access the file because another process has locked a p
ortion of the file
[14:22:44 WARN]: [AutoSaveWorld] Failed to backup file: E:\home\anonymous\Desktop\NewServer\MC Server\plugins\Multiverse-NetherPor
tals\debug.log.lck, reason: exception when reading first byte: The process cannot access the file because another process has lock
ed a portion of the file
I get a lot more of these, but it doesn't seem to be limited to any particular plugin. It does not complete the backup after sending these error messages. I am running this on Spigot
1.12.1-R0.1 but the issue was present in 1.11.2 as well. Also running in Win7 Pro with JDK jdk1.8.0_144.
Is there anything I may have configured wrong?
In reply to thefear800:
In reply to Shevchikden:
In reply to thefear800:
In reply to Shevchikden:
var:
debug: false
commandsonlyfromconsole: false
save:
interval: 900
broadcast: true
disablestructuresaving: false
forceregioncachedump: true
onplugindisable: true
backup:
enabled: true
interval: 21600
broadcast: true
savebefore: true
rateLimit: -1
localfs:
enabled: true
destinationfolders:
- E:\home\anonymous\Desktop\NewServer\MC Server\
worlds:
- '*'
MaxNumberOfWorldsBackups: 15
pluginsfolder: true
MaxNumberOfPluginsBackups: 5
otherfolders: []
MaxNumberOfOtherFoldersBackups: 5
excludefolders:
- plugins/Essentials
- plugins/dynmap/database
zip: true
ftp:
enabled: false
hostname: 127.0.0.1
port: 21
login: user
password: password
passive: false
path: /asw/
worlds:
- '*'
pluginsfolder: false
otherfolders: []
excludefolders: []
maxNumberOfBackups: 4
zip: false
sftp:
enabled: false
hostname: 127.0.0.1
port: 21
login: user
password: password
path: /asw/
worlds:
- '*'
pluginsfolder: false
otherfolders: []
excludefolders: []
maxNumberOfBackups: 4
zip: false
script:
enabled: false
scriptpaths: []
dropbox:
enabled: false
token: ''
path: asw
worlds:
- '*'
pluginsfolder: false
otherfolders: []
excludefolders: []
maxNumberOfBackups: 4
zip: false
googledrive:
enabled: false
authfilepath: ''
rootfolderid: ''
path: asw
worlds:
- '*'
pluginsfolder: false
otherfolders: []
excludefolders: []
maxNumberOfBackups: 4
zip: false
purge:
enabled: false
interval: 86400
awaytime: 2592000
ignorednicks: []
ignoreduuids: []
broadcast: true
wg:
enabled: true
regenpurgedregion: false
noregenoverlapregion: true
lwc:
enabled: true
deletepurgedblocks: false
permissions:
enabled: true
savecmd: mansave force
mywarp:
enabled: true
essentials:
enabled: true
dat:
enabled: true
restart:
juststop: false
oncrash:
enabled: false
scriptpath: ''
timeout: 60
checkerstartdelay: 20
runonnonpluginstop: false
auto:
enabled: false
broadcast: true
scriptpath: ''
time: []
countdown:
enabled: true
broadcastonsecond:
- 60
- 30
- 10
- 9
- 8
- 7
- 6
- 5
- 4
- 3
- 2
- 1
commands: []
consolecommand:
timemode:
enabled: false
times: {}
intervalmode:
enabled: false
intervals: {}
worldregen:
newseed: false
preserveradius: 0
savewg: true
savefactions: true
savegp: true
savetowny: true
savepstones: true
networkwatcher:
mainthreadnetaccess:
warn: true
interrupt: false
Here is what I managed to recover of the latest crash log... this is of running the Stop command.
[12:48:41] [Server thread/INFO]: Saving players[12:48:41] [Server thread/INFO]: Saving players[12:48:41] [Server thread/INFO]: Saving worlds[12:48:41] [Server thread/INFO]: Saving chunks for level 'world'/overworld[12:51:44] [AutoSaveWorld AutoSaveThread/INFO]: [0;34;1mAutoSaving[m[12:51:44] [AutoSaveWorld AutoSaveThread/ERROR]: [AutoSaveWorld] Exception while performing interval taskorg.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(CraftScheduler.java:403) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:126) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:122) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:105) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:88) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at autosaveworld.utils.SchedulerUtils.scheduleSyncTaskAndWaitInternal(SchedulerUtils.java:42) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.SchedulerUtils.callSyncTaskAndWait(SchedulerUtils.java:33) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.performSave(AutoSaveThread.java:109) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.doTask(AutoSaveThread.java:70) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.Threads$IntervalTaskThread.run(Threads.java:103) [AutoSaveWorld.jar:?][13:06:45] [AutoSaveWorld AutoSaveThread/INFO]: [0;34;1mAutoSaving[m[13:06:45] [AutoSaveWorld AutoSaveThread/ERROR]: [AutoSaveWorld] Exception while performing interval taskorg.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(CraftScheduler.java:403) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:126) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:122) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:105) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:88) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at autosaveworld.utils.SchedulerUtils.scheduleSyncTaskAndWaitInternal(SchedulerUtils.java:42) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.SchedulerUtils.callSyncTaskAndWait(SchedulerUtils.java:33) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.performSave(AutoSaveThread.java:109) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.doTask(AutoSaveThread.java:70) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.Threads$IntervalTaskThread.run(Threads.java:103) [AutoSaveWorld.jar:?][13:21:46] [AutoSaveWorld AutoSaveThread/INFO]: [0;34;1mAutoSaving[m[13:21:46] [AutoSaveWorld AutoSaveThread/ERROR]: [AutoSaveWorld] Exception while performing interval taskorg.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(CraftScheduler.java:403) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:126) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:122) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:105) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:88) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at autosaveworld.utils.SchedulerUtils.scheduleSyncTaskAndWaitInternal(SchedulerUtils.java:42) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.SchedulerUtils.callSyncTaskAndWait(SchedulerUtils.java:33) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.performSave(AutoSaveThread.java:109) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.doTask(AutoSaveThread.java:70) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.Threads$IntervalTaskThread.run(Threads.java:103) [AutoSaveWorld.jar:?][13:36:47] [AutoSaveWorld AutoSaveThread/INFO]: [0;34;1mAutoSaving[m[13:36:47] [AutoSaveWorld AutoSaveThread/ERROR]: [AutoSaveWorld] Exception while performing interval taskorg.bukkit.plugin.IllegalPluginAccessException: Plugin attempted to register task while disabled at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.validate(CraftScheduler.java:403) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:126) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncRepeatingTask(CraftScheduler.java:122) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:105) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at org.bukkit.craftbukkit.v1_12_R1.scheduler.CraftScheduler.scheduleSyncDelayedTask(CraftScheduler.java:88) ~[spigot.jar:git-Spigot-65e8124-bde2a93] at autosaveworld.utils.SchedulerUtils.scheduleSyncTaskAndWaitInternal(SchedulerUtils.java:42) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.SchedulerUtils.callSyncTaskAndWait(SchedulerUtils.java:33) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.performSave(AutoSaveThread.java:109) ~[AutoSaveWorld.jar:?] at autosaveworld.features.save.AutoSaveThread.doTask(AutoSaveThread.java:70) ~[AutoSaveWorld.jar:?] at autosaveworld.utils.Threads$IntervalTaskThread.run(Threads.java:103) [AutoSaveWorld.jar:?]
In reply to thefear800:
Maybe you are out of free memory. Try finding out at which file the backup process stops. Enable debug and check what it prints when backuping.
Hi, the plugin is fantastic but I have a question: can I backup files? Like server.proprietis or banned-players.yml. How could I do it? Is there another way to perform a complete backup of all the server? Thanks
Pls help, how i can do backup before server restart, here is my config.yml: https://satont.xyz/s/f/config.yml
But its not work..
console messages option in config :)
Hi I dont know if im doing something wrong, but everytime I edit the configmsg.yml to be more custom it resets after every restart??? Can you help me out, thanks ^-^
Hello,
I run a server that restarts every 4 hours using this plugin.
but because you have to put an interval at the backup means that my backups have to have an interval between 0 - 4 hours. but that is too short for me.
I want to backup every 12 hours and restart every 4 hours.
I can do this if you change it from interval: to a time: (just like you do at auto-restart)
or is there a way to do this like for say: does the interval timer keep running when a restart occurs?
many thanks
In reply to Forge_User_40141903:
Currently plugin is being rewritten to split everything to tasks which can be scheduled separately, but don't expect it soon.
Does it support 1.12?
Is option
disablestructuresaving: true
the same as
save-structure-info: true
in spigot.yml?
Do I need it on 1.11.2 server?
"map structures will stop working when worldgen will change"
Does this mean that any changes in worldgen in never minecraft versions will lead to map structures stop working?
In reply to Skeletino:
In reply to Shevchikden: