Files
factorio-scenario-ExpCluster/exp_legacy/module/modules/data/greetings.lua
2024-11-19 22:32:46 +00:00

44 lines
1.6 KiB
Lua

--- Greets players on join
-- @data Greetings
local config = require("modules.exp_legacy.config.join_messages") --- @dep config.join_messages
local Commands = require("modules.exp_legacy.expcore.commands") --- @dep expcore.commands
require("modules.exp_legacy.config.expcore.command_general_parse")
--- Stores the join message that the player have
local PlayerData = require("modules.exp_legacy.expcore.player_data") --- @dep expcore.player_data
local CustomMessages = PlayerData.Settings:combine("JoinMessage")
CustomMessages:set_metadata{
permission = "command/join-message",
}
--- When a players data loads show their message
CustomMessages:on_load(function(player_name, player_message)
local player = game.players[player_name]
local custom_message = player_message or config[player_name]
if custom_message then
game.print(custom_message, { color = player.color })
else
player.print{ "join-message.greet", { "links.discord" } }
end
end)
--- Set your custom join message
-- @command join-message
-- @tparam string message The custom join message that will be used
Commands.new_command("join-message", "Sets your custom join message")
:add_param("message", false, "string-max-length", 255)
:enable_auto_concat()
:register(function(player, message)
if not player then return end
CustomMessages:set(player, message)
return { "join-message.message-set" }
end)
Commands.new_command("join-message-clear", "Clear your join message")
:register(function(player)
if not player then return end
CustomMessages:remove(player)
return { "join-message.message-cleared" }
end)