get rid of the MessageDistributor module... & update discord, to work with API v10
Added discord commands (issue: as they're running over the event hub, they're processed on the same track as other events. => activity ingame triggers the next run; otherwise there's some delay for responses) relay is a standard module now.
This commit is contained in:
+26
-16
@@ -66,6 +66,10 @@ class CommandService:
|
||||
self.register_command_channel("Private Message", self.PRIVATE_MESSAGE_CHANNEL)
|
||||
self.register_command_channel("Org Channel", self.ORG_CHANNEL)
|
||||
self.register_command_channel("Private Channel", self.PRIVATE_CHANNEL)
|
||||
self.relay_hub_service.register_message_source("tell_logger")
|
||||
self.relay_hub_service.register_message_source("system_logger")
|
||||
self.relay_hub_service.register_message_source("access_denied_logger")
|
||||
self.relay_hub_service.register_message_source("member_logger")
|
||||
|
||||
def start(self):
|
||||
access_levels = {}
|
||||
@@ -205,16 +209,10 @@ class CommandService:
|
||||
if not followup:
|
||||
if channel == "msg":
|
||||
if message.lower().startswith("mail"):
|
||||
self.relay_hub_service.send_message("tell_logger", char_id, "mail |usage hidden|",
|
||||
"mail |usage hidden|")
|
||||
self.relay_hub_service.send_message("tell_logger", DictObject({'char_id': char_id, 'name': self.character_service.resolve_char_to_name(char_id)}), f"[FROM] {self.character_service.resolve_char_to_name(char_id)}: mail |usage hidden|",
|
||||
f"[FROM] {self.character_service.resolve_char_to_name(char_id)}: mail |usage hidden|")
|
||||
else:
|
||||
self.relay_hub_service.send_message("tell_logger", char_id, message, message)
|
||||
else:
|
||||
if message.lower().startswith("mail"):
|
||||
self.relay_hub_service.send_message("dc_relay_log", char_id, "mail |usage hidden|",
|
||||
"mail |usage hidden|")
|
||||
else:
|
||||
self.relay_hub_service.send_message("dc_relay_log", char_id, message, message)
|
||||
self.relay_hub_service.send_message("tell_logger", DictObject({'char_id': char_id, 'name': self.character_service.resolve_char_to_name(char_id)}), f"[FROM] {self.character_service.resolve_char_to_name(char_id)}: {message}", f"[FROM] {self.character_service.resolve_char_to_name(char_id)}: {message}")
|
||||
# message = html.unescape(message)
|
||||
command_str, command_args = self.get_command_parts(message)
|
||||
|
||||
@@ -253,12 +251,15 @@ class CommandService:
|
||||
self.relay_hub_service.send_message("access_denied_logger", sender,
|
||||
f"[ERROR] {sender.name}: {message}",
|
||||
f"[ERROR] {sender.name}: {message}")
|
||||
self.bot.send_mass_message(char_id, self.getresp("global", "error_processing"))
|
||||
if channel == "discord":
|
||||
reply(self.getresp("global", "error_processing"))
|
||||
else:
|
||||
self.bot.send_mass_message(char_id, self.getresp("global", "error_processing"))
|
||||
|
||||
# record command usage
|
||||
self.usage_service.add_usage(command_str, handler["callback"].__qualname__, char_id, channel)
|
||||
else:
|
||||
self.access_denied_response(message, sender, cmd_config, reply)
|
||||
self.access_denied_response(message, sender, cmd_config, reply, channel)
|
||||
else:
|
||||
# handlers were found, but no handler regex matched
|
||||
help_text = self.get_help_text(char_id, command_str, channel)
|
||||
@@ -266,7 +267,7 @@ class CommandService:
|
||||
reply(self.format_help_text(command_str, help_text))
|
||||
else:
|
||||
# the command is known, but no help is returned, therefore user does not have access to command
|
||||
self.access_denied_response(message, sender, cmd_config, reply)
|
||||
self.access_denied_response(message, sender, cmd_config, reply, channel)
|
||||
# if access_level['label'] != "all":
|
||||
# self.relay_hub_service.send_message("access_denied_logger", sender,
|
||||
# f"[DENIED] {sender.name}: {message}",
|
||||
@@ -280,20 +281,29 @@ class CommandService:
|
||||
0)
|
||||
self.relay_hub_service.send_message("access_denied_logger", sender, f"[ERROR] {sender.name}: {message}",
|
||||
f"[ERROR] {sender.name}: {message}")
|
||||
self.bot.send_mass_message(char_id, self.getresp("global", "error_processing"))
|
||||
if channel == "discord":
|
||||
reply(self.getresp("global", "error_processing"))
|
||||
else:
|
||||
self.bot.send_mass_message(char_id, self.getresp("global", "error_processing"))
|
||||
|
||||
def handle_unknown_command(self, command_str, command_args, channel, sender, reply):
|
||||
self.relay_hub_service.send_message("access_denied_logger", sender,
|
||||
f"[UNKNOWN] {sender.name}: {command_str} {command_args}",
|
||||
f"[UNKNOWN] {sender.name}: {command_str} {command_args}")
|
||||
if sender.access_level["label"] != "all":
|
||||
self.bot.send_mass_message(sender.char_id, self.getresp("global", "unknown_command", {"cmd": command_str}))
|
||||
if channel == "discord":
|
||||
self.getresp("global", "unknown_command", {"cmd": command_str})
|
||||
else:
|
||||
self.bot.send_mass_message(sender.char_id, self.getresp("global", "unknown_command", {"cmd": command_str}))
|
||||
|
||||
def access_denied_response(self, message, sender, cmd_config, reply):
|
||||
def access_denied_response(self, message, sender, cmd_config, reply, channel):
|
||||
self.relay_hub_service.send_message("access_denied_logger", sender, f"[DENIED] {sender.name}: {message}",
|
||||
f"[DENIED] {sender.name}: {message}")
|
||||
if sender.access_level["label"] != "all":
|
||||
self.bot.send_mass_message(sender.char_id, self.getresp("global", "access_denied"))
|
||||
if channel == "discord":
|
||||
reply(self.getresp("global", "access_denied"))
|
||||
else:
|
||||
self.bot.send_mass_message(sender.char_id, self.getresp("global", "access_denied"))
|
||||
|
||||
def get_command_parts(self, message):
|
||||
parts = message.split(" ", 1)
|
||||
|
||||
Reference in New Issue
Block a user