# AUTHOR: Szymonjjay (Zurek1337) DLA: forum skript.pl # # CONFIG # options: Permission: inventorysaver.execute PermissionMessage: &cNie posiadasz uprawnien! CreateBackups: true BackupInterval: 30 minutes # # Funkcje i komenda glowna # Function SaveInventory(p: player): set yaml value "LastSave" from file "/inventories/database/%{_p}%.yml" to "%now%" save itemstack {_p}'s helmet at section "Armour.Helmet" in file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" save itemstack {_p}'s chestplate at section "Armour.Chestplate" in file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" save itemstack {_p}'s leggings at section "Armour.Leggings" in file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" save itemstack {_p}'s boots at section "Armour.Boots" in file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" loop 36 times: set {_slot} to slot -1+loop-number of {_p} save itemstack {_slot} at section "InventorySlot.%loop-number%" in file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" Function LoadInventory(p: player): set {using.inventory.saver::%{_p}%} to true set yaml value "LastRestore" from file "/inventories/database/%{_p}%.yml" to "%now%" set {_LastSave} to yaml value "LastSave" from file "/inventories/database/%{_p}%.yml" if {_LastSave} is not set: set yaml value "LastSave" from file "/inventories/database/%{_p}%.yml" to "null" else: set {_p}'s helmet to get itemstack from yml file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" at section "Armour.Helmet" set {_p}'s chestplate to get itemstack from yml file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" at section "Armour.Chestplate" set {_p}'s leggings to get itemstack from yml file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" at section "Armour.Leggings" set {_p}'s boots to get itemstack from yml file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" at section "Armour.Boots" loop 36 times: set {_slot} to -1+loop-number set slot {_slot} of {_p} to get itemstack from yml file "plugins/Skript/scripts/inventories/database/%{_p}%.yml" at section "InventorySlot.%Loop-number%" send "&2Twoj ekwipunek zostal zaladowany z bazy danych." to {_p} command /inventorysaver []: permission: {@Permission} permission message: {@PermissionMessage} trigger: if "%arg-1%" is "backup": loop all players: SaveInventory(loop-player) delete {lastbackup} set {lastbackup} to now set {_date} to "%now%" replace all "," with "" in {_date} replace all "." and ":" and "/" and " " with "_" in {_date} set {_backup.created} to 0 copy directory "plugins/Skript/scripts/inventories/database" to "plugins/Skript/scripts/inventories/backups/" wait 5 ticks rename dir "plugins/Skript/scripts/inventories/backups/database" to "backup_%{_date}%" send "&2&l[InventorySaver]&a Zapisalem wlasnie %{_backup.created}% ekwipunkow do folderu z back'upem, data: %{_date}%" to all ops send "InventorySaver zapisal wlasnie %{_backup.created}% ekwipunkow do folderu z back'upem, data: %{_date}%" to console # # OTHER # on script load: set {LastBackup} to now on script unload: loop all players: SaveInventory(loop-player) every 1 second: if "{@CreateBackups}" is "true": difference between {LastBackup} and now is bigger than {@BackupInterval}: make console execute command "inventorysaver backup" on join: # Mozesz uzyc tej funkcji jezeli chcesz wczytac ekwipunek LoadInventory(player) on quit: # Mozesz uzyc tej funkcji jezeli chcesz zapisac ekwipunek. SaveInventory(player)