From d0a23a1a5906cd49cff7b8b6a7d61e268dc2f012 Mon Sep 17 00:00:00 2001 From: Kevin Taylor Date: Sat, 16 May 2020 22:44:30 +0100 Subject: [PATCH] Iterate save using pairs instaid of ipairs, remove erronus require, add save fuction --- config/expcore/roles.lua | 3 ++- modules/commands/quickbar.lua | 25 ++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/config/expcore/roles.lua b/config/expcore/roles.lua index 2e5a1d7d..7d1fd4e1 100644 --- a/config/expcore/roles.lua +++ b/config/expcore/roles.lua @@ -141,7 +141,8 @@ Roles.new_role('Sponsor','Spon') 'command/home-get', 'command/return', 'fast-tree-decon', - 'command/load-quickbar' + 'command/load-quickbar', + 'command/save-quickbar' } Roles.new_role('Supporter','Sup') diff --git a/modules/commands/quickbar.lua b/modules/commands/quickbar.lua index dae64e24..8c64f3aa 100644 --- a/modules/commands/quickbar.lua +++ b/modules/commands/quickbar.lua @@ -1,13 +1,13 @@ --[[-- Commands Module - Quickbar - Adds a command that allows players to load Quickbar presets @commands LoadQuickbar + @commands SaveQuickbar ]] local Commands = require 'expcore.commands' --- @dep expcore.commands local Roles = require 'expcore.roles' --- @dep expcore.roles local Game = require 'utils.game' --- @dep utils.game local config = require 'config.preset_player_quickbar' --- @dep config.preset_player_quickbar -require 'config.expcore.command_general_parse' --- Loads your quickbar preset @@ -16,10 +16,29 @@ Commands.new_command('load-quickbar','Loads your preset Quickbar items') :register(function(player) if config[player.name] then local custom_quickbar = config[player.name] - for i, item_name in ipairs(custom_quickbar) do - player.set_quick_bar_slot(i, item_name) + for i, item_name in pairs(custom_quickbar) do + if item_name ~= nil and item_name ~= '' then + player.set_quick_bar_slot(i, item_name) + end end else Commands.error('Quickbar preset not found') end end) + +--- Saves your quickbar preset to the script-output folder +-- @command save-quickbar +Commands.new_command('save-quickbar','Saves your Quickbar preset items to file') +:register(function(player) + local quickbar_names = {} + for i=1, 100 do + local slot = player.get_quick_bar_slot(i) + if slot ~= nil then + table.insert(quickbar_names, slot.name) + else + table.insert(quickbar_names, "") + end + end + game.write_file("quickbar_preset.txt", game.table_to_json(quickbar_names), false) + Commands.print("Quickbar saved to local script-output folder") +end)