mirror of
https://github.com/ComfyFactory/ComfyFactorio.git
synced 2025-01-24 03:47:58 +02:00
Merge pull request #39 from Gerkiz/trust_untrust
added command /trust and /untrust
This commit is contained in:
commit
a14e85ee41
170
chatbot.lua
170
chatbot.lua
@ -2,91 +2,123 @@ local event = require 'utils.event'
|
||||
local message_color = {r = 0.5, g = 0.3, b = 1}
|
||||
|
||||
local brain = {
|
||||
[1] = {"Our Discord server is at https://getcomfy.eu/discord"},
|
||||
[2] = {"Need an admin? Type @Mods in game chat to notify moderators,", "or put a message in the discord help channel."}
|
||||
[1] = {"Our Discord server is at https://getcomfy.eu/discord"},
|
||||
[2] = {"Need an admin? Type @Mods in game chat to notify moderators,", "or put a message in the discord help channel."}
|
||||
}
|
||||
|
||||
local links = {
|
||||
["discord"] = brain[1],
|
||||
["admin"] = brain[2],
|
||||
["administrator"] = brain[2],
|
||||
["mod"] = brain[2],
|
||||
["moderator"] = brain[2],
|
||||
["grief"] = brain[2],
|
||||
["troll"] = brain[2],
|
||||
["trolling"] = brain[2],
|
||||
["stealing"] = brain[2],
|
||||
["stole"] = brain[2],
|
||||
["griefer"] = brain[2],
|
||||
["greifer"] = brain[2]
|
||||
["discord"] = brain[1],
|
||||
["admin"] = brain[2],
|
||||
["administrator"] = brain[2],
|
||||
["mod"] = brain[2],
|
||||
["moderator"] = brain[2],
|
||||
["grief"] = brain[2],
|
||||
["troll"] = brain[2],
|
||||
["trolling"] = brain[2],
|
||||
["stealing"] = brain[2],
|
||||
["stole"] = brain[2],
|
||||
["griefer"] = brain[2],
|
||||
["greifer"] = brain[2]
|
||||
}
|
||||
|
||||
local function on_player_created(event)
|
||||
local player = game.players[event.player_index]
|
||||
player.print("Join the comfy discord >> getcomfy.eu/discord", message_color)
|
||||
local player = game.players[event.player_index]
|
||||
player.print("Join the comfy discord >> getcomfy.eu/discord", message_color)
|
||||
end
|
||||
|
||||
local function process_custom_commands(event)
|
||||
local player = game.players[event.player_index]
|
||||
if player.admin == false then return end
|
||||
for word in string.gmatch(string.lower(event.message), "%g+") do
|
||||
if word == "trust" or word == "regular" then
|
||||
for word in string.gmatch(event.message, "%g+") do
|
||||
if game.players[word] then
|
||||
if game.players[word].name == word then
|
||||
global.trusted_players[word] = true
|
||||
game.print(word .. " is now a trusted player.", {r=0.22, g=0.99, b=0.99})
|
||||
end
|
||||
end
|
||||
end
|
||||
return
|
||||
end
|
||||
if word == "untrust" then
|
||||
for word in string.gmatch(event.message, "%g+") do
|
||||
if game.players[word] then
|
||||
if game.players[word].name == word then
|
||||
global.trusted_players[word] = false
|
||||
game.print(word .. " is no longer a trusted player.", {r=0.22, g=0.99, b=0.99})
|
||||
end
|
||||
end
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
commands.add_command(
|
||||
'trust',
|
||||
'Promotes a player to the global.trusted_players',
|
||||
function(cmd)
|
||||
local player = game.player
|
||||
local target_player = game.players[cmd.parameter]
|
||||
local p
|
||||
|
||||
if player then
|
||||
p = player.print
|
||||
if not player.admin then
|
||||
p("You're not admin!", {r = 1, g = 0.5, b = 0.1})
|
||||
return
|
||||
end
|
||||
else
|
||||
p = log
|
||||
end
|
||||
|
||||
if target_player ~= nil then
|
||||
if global.trusted_players[target_player.name] == true then game.print(target_player.name .. " is already trusted!") return end
|
||||
global.trusted_players[target_player.name] = true
|
||||
game.print(target_player.name .. " is now a trusted player.", {r=0.22, g=0.99, b=0.99})
|
||||
for _, a in pairs(game.connected_players) do
|
||||
if a.admin == true then
|
||||
a.print("[ADMIN]: " .. a.name .. " trusted " .. target_player.name, {r = 1, g = 0.5, b = 0.1})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
commands.add_command(
|
||||
'untrust',
|
||||
'Demotes a player to the global.trusted_players',
|
||||
function(cmd)
|
||||
local player = game.player
|
||||
local target_player = game.players[cmd.parameter]
|
||||
local p
|
||||
|
||||
if player then
|
||||
p = player.print
|
||||
if not player.admin then
|
||||
p("You're not admin!", {r = 1, g = 0.5, b = 0.1})
|
||||
return
|
||||
end
|
||||
else
|
||||
p = log
|
||||
end
|
||||
|
||||
if target_player ~= nil then
|
||||
if global.trusted_players[target_player.name] == false then game.print(target_player.name .. " is already untrusted!") return end
|
||||
global.trusted_players[target_player.name] = false
|
||||
game.print(target_player.name .. " is now untrusted.", {r=0.22, g=0.99, b=0.99})
|
||||
for _, a in pairs(game.connected_players) do
|
||||
if a.admin == true then
|
||||
a.print("[ADMIN]: " .. a.name .. " untrusted " .. target_player.name, {r = 1, g = 0.5, b = 0.1})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
)
|
||||
|
||||
local function process_bot_answers(event)
|
||||
local player = game.players[event.player_index]
|
||||
if player.admin == true then return end
|
||||
local message = event.message
|
||||
message = string.lower(message)
|
||||
for word in string.gmatch(message, "%g+") do
|
||||
if links[word] then
|
||||
local player = game.players[event.player_index]
|
||||
for _, bot_answer in pairs(links[word]) do
|
||||
player.print(bot_answer, message_color)
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
local player = game.players[event.player_index]
|
||||
if player.admin == true then return end
|
||||
local message = event.message
|
||||
message = string.lower(message)
|
||||
for word in string.gmatch(message, "%g+") do
|
||||
if links[word] then
|
||||
local player = game.players[event.player_index]
|
||||
for _, bot_answer in pairs(links[word]) do
|
||||
player.print(bot_answer, message_color)
|
||||
end
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function on_console_chat(event)
|
||||
if not event.player_index then return end
|
||||
process_custom_commands(event)
|
||||
process_bot_answers(event)
|
||||
if not event.player_index then return end
|
||||
process_bot_answers(event)
|
||||
end
|
||||
|
||||
--share vision of silent-commands with other admins
|
||||
local function on_console_command(event)
|
||||
if event.command ~= "silent-command" then return end
|
||||
if not event.player_index then return end
|
||||
local player = game.players[event.player_index]
|
||||
for _, p in pairs(game.connected_players) do
|
||||
if p.admin == true and p.name ~= player.name then
|
||||
p.print(player.name .. " did a silent-command: " .. event.parameters, {r=0.22, g=0.99, b=0.99})
|
||||
end
|
||||
end
|
||||
local function on_console_command(event)
|
||||
if event.command ~= "silent-command" then return end
|
||||
if not event.player_index then return end
|
||||
local player = game.players[event.player_index]
|
||||
for _, p in pairs(game.connected_players) do
|
||||
if p.admin == true and p.name ~= player.name then
|
||||
p.print(player.name .. " did a silent-command: " .. event.parameters, {r=0.22, g=0.99, b=0.99})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
event.add(defines.events.on_player_created, on_player_created)
|
||||
|
Loading…
x
Reference in New Issue
Block a user