Added afk/brb

Timer messages ("Timer XX has yyy left") now get resumed after a bot restart
Alliance relay is discord compatible now. [Orgbot]
This commit is contained in:
2021-10-26 22:35:31 +02:00
parent bd8055dac7
commit 2d7ecf4883
14 changed files with 119 additions and 48 deletions
+11 -4
View File
@@ -6,6 +6,7 @@ from core.chat_blob import ChatBlob
from core.command_param_types import Const, Character, Options, Any
from core.conn import Conn
from core.decorators import instance, command, setting
from core.dict_object import DictObject
from core.logger import Logger
from core.lookup.character_service import CharacterService
from core.setting_service import SettingService
@@ -44,8 +45,8 @@ class AllianceRelay:
100)
self.bot.register_packet_handler(server_packets.PrivateChannelMessage.id, self.handle_private_channel_message)
@command(command="mrelay", params=[], access_level="admin",
description="View the relay settings")
@command(command="mrelay", params=[], access_level="member",
description="View the relay settings", sub_command="info")
def mrelay(self, request):
def display_color(color, msg=None):
if not msg:
@@ -347,7 +348,8 @@ class AllianceRelay:
name = self.format_text(self.relay_color_sender().get_value().get(priv, self.relay_color_sender().get_value().get("default")), name)
text = self.format_text(self.relay_color_msg().get_value().get(priv, self.relay_color_msg().get_value().get("default")), text)
formatted = self.format_text(self.relay_color_base().get_value().get(priv, self.relay_color_base().get_value().get("default")), f"[{org}] {name}: {text}")
self.message_hub_service.send_message(self.MESSAGE_SOURCE, None, plain, formatted)
sender = DictObject({"char_id": packet.char_id, "name": self.character_service.get_char_name(packet.char_id)})
self.message_hub_service.send_message(self.MESSAGE_SOURCE, sender, plain, formatted)
def handle_relay_hub_message(self, ctx):
enabled = lambda x: self.relay_enabled().get_value().get(x, self.relay_enabled().get_value().get('default', False))
@@ -366,7 +368,12 @@ class AllianceRelay:
if len(message) < 1:
continue
sender = ctx.sender.name
abbrv = self.relay_guild_abbreviations().get_value().get(key, self.relay_guild_abbreviations().get_value().get("default"))
abbrv = self.relay_guild_abbreviations().get_value().get(key, self.setting_service.get_value("org_name"))
if ctx.source == "private_channel":
abbrv += " - Guest"
elif ctx.source == "public_relay":
abbrv += " - DC"
cmd = self.relay_command().get_value().get(key, self.relay_command().get_value().get("default"))
msg = f"{cmd} [{abbrv}] {sender}: {message}"
self.send_message_to_alliance(key, msg)
+4 -1
View File
@@ -88,7 +88,10 @@ class OrgChannelController:
self.bot.send_org_message(msg, fire_outgoing_event=False)
self.message_hub_service.send_message(self.MESSAGE_SOURCE, None, None, "[<cyan>Org</cyan>] " + msg)
od = OnlineDisplay(self.text, self.util, self.db)
afk_list = []
if self.online_controller:
afk_list = self.online_controller.afk_list
od = OnlineDisplay(self.text, self.util, self.db, afk_list)
params = [self.bot.name, self.bot.get_char_id()]
self.bot.send_mass_message(event_data.packet.char_id,
od.format_blob(od.format_by_channel_main("and channel_id IN (1, 2) ", params)))