From 6a5d5f02d9a35c648ab2be59688faadea534f6ad Mon Sep 17 00:00:00 2001 From: Cooldude2606 Date: Thu, 28 May 2020 22:43:58 +0100 Subject: [PATCH] Added player tags --- modules/{commands => data}/tag.lua | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) rename modules/{commands => data}/tag.lua (72%) diff --git a/modules/commands/tag.lua b/modules/data/tag.lua similarity index 72% rename from modules/commands/tag.lua rename to modules/data/tag.lua index 7b256f9c..693d5346 100644 --- a/modules/commands/tag.lua +++ b/modules/data/tag.lua @@ -8,6 +8,20 @@ local Roles = require 'expcore.roles' --- @dep expcore.roles require 'config.expcore.command_general_parse' require 'config.expcore.command_role_parse' +--- Stores the tag for a player +local PlayerData = require 'expcore.player_data' --- @dep expcore.player_data +local PlayerTags = PlayerData.Settings:combine('Tag') + +--- When your tag is updated then apply the changes +PlayerTags:on_update(function(player_name, player_tag) + local player = game.players[player_name] + if player_tag == nil or player_tag == '' then + player_tag.tag = '' + else + player.tag = '- '..player_tag + end +end) + --- Sets your player tag. -- @command tag -- @tparam string tag the tag that will be after the name, there is a max length @@ -15,7 +29,7 @@ Commands.new_command('tag', 'Sets your player tag.') :add_param('tag', false, 'string-max-length', 20) :enable_auto_concat() :register(function(player, tag) - player.tag = '- '..tag + PlayerTags:set(player, tag) end) --- Clears your tag. Or another player if you are admin. @@ -29,10 +43,10 @@ end} :register(function(player, action_player) if action_player.index == player.index then -- no player given so removes your tag - action_player.tag = '' + PlayerTags:remove(action_player) elseif Roles.player_allowed(player, 'command/clear-tag/always') then -- player given and user is admin so clears that player's tag - action_player.tag = '' + PlayerTags:remove(action_player) else -- user is not admin and tried to clear another users tag return Commands.error{'expcore-commands.unauthorized'}