local Event = require 'utils.event' --- @dep utils.event local Game = require 'utils.game' --- @dep utils.game local Roles = require 'expcore.roles' --- @dep expcore.roles local config = require 'config.chat_reply' --- @dep config.chat_reply Event.add(defines.events.on_console_chat,function(event) local player_index = event.player_index if not player_index or player_index < 1 then return end local player = Game.get_player_by_index(player_index) local message = event.message:lower():gsub("%s+", "") local allowed = true if config.command_admin_only and not player.admin then allowed = false end if config.command_permission and not Roles.player_allowed(player,config.command_permission) then allowed = false end local prefix = config.command_prefix for key_word,reply in pairs(config.messages) do if message:find(key_word) then if type(reply) == 'function' then reply = reply(player) end if message:find(prefix..key_word) then if allowed then game.print{'chat-bot.reply',reply} else player.print{'chat-bot.disallow'} end else player.print{'chat-bot.reply',reply} end end end if not allowed then return end for key_word,reply in pairs(config.commands) do if message:find(prefix..key_word) then if type(reply) == 'function' then reply = reply(player) if reply then game.print{'chat-bot.reply',reply} end else game.print{'chat-bot.reply',reply} end end end end)