From 9f1da9a00d04a76295092d2a3f36a19be677e343 Mon Sep 17 00:00:00 2001 From: Minidodo Date: Sun, 29 Aug 2021 17:54:18 +0200 Subject: [PATCH] Fixed warnings caused by non-existing messagehub channels. Changed the setting registration, removed the warnings. Loot roll messages are more obvious now. Superadmins are meant to stay mostily hidden, but are being exposed in !system again. --- core/igncore.py | 2 +- core/public_channel_service.py | 8 ++-- core/setting_service.py | 13 ++---- core/translation_service.py | 4 +- .../accounting/services/account_service.py | 12 +++--- modules/core/colors/color_controller.py | 24 +++++------ modules/core/discord/discord_controller.py | 4 +- modules/core/riadmin/riadmin_controller.py | 10 ++--- modules/core/system/message_hub_controller.py | 17 +++----- modules/core/system/system_controller.py | 34 +++++++-------- modules/core/system/util_controller.py | 11 ++--- .../onlinebot/Darknet/darknet_controller.py | 16 +++---- .../alliance/alliance_relay_controller.py | 12 +++--- modules/orgbot/alliance/alliance_relay.py | 43 +++++++++---------- modules/orgbot/org/org_controller.py | 5 +-- modules/raidbot/tower/tower_controller.py | 2 +- .../MessageDistributor/message_distributor.py | 23 +++++----- modules/standard/datanet/relay_controller.py | 35 ++++++++------- modules/standard/datanet/ws_controller.py | 4 +- modules/standard/loot/loot_controller.py | 37 ++++++++-------- .../standard/loot/loot_lists_controller.py | 2 +- modules/standard/news/worldboss_controller.py | 2 +- modules/standard/raid/leader_controller.py | 4 +- modules/standard/track/track_controller.py | 8 ++-- 24 files changed, 163 insertions(+), 169 deletions(-) diff --git a/core/igncore.py b/core/igncore.py index 8d6e92e..714ecba 100644 --- a/core/igncore.py +++ b/core/igncore.py @@ -42,7 +42,7 @@ class Tyrbot: self.last_timer_event = 0 self.start_time = int(time.time()) self.major_version = "IGNCore v2.6" - self.minor_version = "2" + self.minor_version = "3" self.incoming_queue = FifoQueue() self.mass_message_queue = None self.conns = DictObject() diff --git a/core/public_channel_service.py b/core/public_channel_service.py index 35f0554..e590d84 100644 --- a/core/public_channel_service.py +++ b/core/public_channel_service.py @@ -36,10 +36,10 @@ class PublicChannelService(BaseModule): priority=30) self.event_service.register_event_type(self.ORG_CHANNEL_MESSAGE_EVENT) self.event_service.register_event_type(self.ORG_MSG_EVENT) - self.setting_service.register_new('core.system', 'org_id', 0, - NumberSettingType(), 'OrgID used for roster') - self.setting_service.register_new('core.system', 'org_name', "", - TextSettingType(allow_empty=True), 'OrgName used for roster') + self.setting_service.register('core.system', 'org_id', 0, + NumberSettingType(), 'OrgID used for roster') + self.setting_service.register('core.system', 'org_name', "", + TextSettingType(allow_empty=True), 'OrgName used for roster') def start(self): org_id_setting = self.setting_service.get("org_id") diff --git a/core/setting_service.py b/core/setting_service.py index f8adfb4..56b1590 100644 --- a/core/setting_service.py +++ b/core/setting_service.py @@ -25,14 +25,9 @@ class SettingService: for name, method in get_attrs(inst).items(): if hasattr(method, "setting"): setting_name, value, description, extended_description, obj = getattr(method, "setting") - self.register(setting_name, value, description, obj, inst.module_name, extended_description) + self.register(inst.module_name, setting_name, value, obj, description, extended_description) - def register(self, name, value, description, setting, module, extended_description=None): - """Deprecated. Use register_new()""" - self.logger.warning(f"Using deprecated register method for setting '{name}' in module {module}") - self.register_new(module, name, value, setting, description, extended_description) - - def register_new(self, module, name, value, setting, description, extended_description=None): + def register(self, module, name, value, setting, description, extended_description=None): """Call during start""" name = name.lower() module = module.lower() @@ -44,10 +39,10 @@ class SettingService: setting.set_extended_description(extended_description) if not description: - self.logger.warning("No description specified for setting '%s'" % name) + self.logger.warning(f"No description specified for setting '{name}'") if " " in name: - raise Exception("One or more spaces found in setting name '%s' for module '%s'" % (name, module)) + raise Exception(f"One or more spaces found in setting name '{name}' for module '{module}'") row = self.db.query_single("SELECT name, value, description FROM setting WHERE name = ?", [name]) diff --git a/core/translation_service.py b/core/translation_service.py index a894ff4..441570e 100644 --- a/core/translation_service.py +++ b/core/translation_service.py @@ -33,8 +33,8 @@ class TranslationService: self.event_service.register_event_type("reload_translation") def start(self): - self.setting_service.register_new("core.system", self.LANGUAGE_SETTING, "en_US", - TextSettingType(self.lang_codes), "Language of the Bot") + self.setting_service.register("core.system", self.LANGUAGE_SETTING, "en_US", + TextSettingType(self.lang_codes), "Language of the Bot") self.language = self.setting_service.get_value(self.LANGUAGE_SETTING) self.register_translation("global", self.load_global_msg) diff --git a/modules/core/accounting/services/account_service.py b/modules/core/accounting/services/account_service.py index 580dd14..0603aab 100644 --- a/modules/core/accounting/services/account_service.py +++ b/modules/core/accounting/services/account_service.py @@ -118,18 +118,18 @@ class AccountService: self.event_service.register_event_type(self.MAIN_CHANGED_EVENT_TYPE) self.event_service.register_event_type(self.MEMBER_LOGON) self.event_service.register_event_type(self.MEMBER_LOGOFF) - self.setting_service.register_new(self.module_name, "is_alliance_bot", False, BooleanSettingType(), + self.setting_service.register(self.module_name, "is_alliance_bot", False, BooleanSettingType(), "Is this bot used as an alliancebot") - self.setting_service.register_new(self.module_name, "alt_verification", False, BooleanSettingType(), + self.setting_service.register(self.module_name, "alt_verification", False, BooleanSettingType(), "alts require admin verification") # Default preferences - self.setting_service.register_new(self.module_name, "pref_autoinvite", False, BooleanSettingType(), + self.setting_service.register(self.module_name, "pref_autoinvite", False, BooleanSettingType(), "Default Value for the auto invite preference") - self.setting_service.register_new(self.module_name, "pref_raidinvite", True, BooleanSettingType(), + self.setting_service.register(self.module_name, "pref_raidinvite", True, BooleanSettingType(), "Default Value for the raid invite (Massinvite) preference") - self.setting_service.register_new(self.module_name, "pref_raidspam", True, BooleanSettingType(), + self.setting_service.register(self.module_name, "pref_raidspam", True, BooleanSettingType(), "Default Value for the raid spam (Mass Message) preference") - self.setting_service.register_new(self.module_name, "pref_newsspam", True, BooleanSettingType(), + self.setting_service.register(self.module_name, "pref_newsspam", True, BooleanSettingType(), "Default Value for the news spam (News on logon) preference") v = self.setting_service.get_value("pref_raidspam") diff --git a/modules/core/colors/color_controller.py b/modules/core/colors/color_controller.py index 5676282..ffc224f 100644 --- a/modules/core/colors/color_controller.py +++ b/modules/core/colors/color_controller.py @@ -13,27 +13,27 @@ class ColorController(BaseModule): # noinspection LongLine def start(self): - self.setting_service.register_new(self.module_name, "header_color", "#FFFF00", ColorSettingType(), + self.setting_service.register(self.module_name, "header_color", "#FFFF00", ColorSettingType(), "Color for headers") - self.setting_service.register_new(self.module_name, "header2_color", "#FCA712", ColorSettingType(), + self.setting_service.register(self.module_name, "header2_color", "#FCA712", ColorSettingType(), "Color for sub-headers") - self.setting_service.register_new(self.module_name, "highlight_color", "#00FF00", ColorSettingType(), + self.setting_service.register(self.module_name, "highlight_color", "#00FF00", ColorSettingType(), "Color for highlight") - self.setting_service.register_new(self.module_name, "notice_color", "#FF8C00", ColorSettingType(), + self.setting_service.register(self.module_name, "notice_color", "#FF8C00", ColorSettingType(), "Color for important notices") - self.setting_service.register_new(self.module_name, "neutral_color", "#E6E1A6", ColorSettingType(), + self.setting_service.register(self.module_name, "neutral_color", "#E6E1A6", ColorSettingType(), "Color for neutral faction") - self.setting_service.register_new(self.module_name, "omni_color", "#FA8484", ColorSettingType(), + self.setting_service.register(self.module_name, "omni_color", "#FA8484", ColorSettingType(), "Color for omni faction") - self.setting_service.register_new(self.module_name, "clan_color", "#F79410", ColorSettingType(), + self.setting_service.register(self.module_name, "clan_color", "#F79410", ColorSettingType(), "Color for clan faction") - self.setting_service.register_new(self.module_name, "unknown_color", "#FF0000", ColorSettingType(), + self.setting_service.register(self.module_name, "unknown_color", "#FF0000", ColorSettingType(), "Color for unknown faction") - self.setting_service.register_new(self.module_name, "org_channel_color", "#89D2E8", ColorSettingType(), + self.setting_service.register(self.module_name, "org_channel_color", "#89D2E8", ColorSettingType(), "Default org channel color") - self.setting_service.register_new(self.module_name, "private_channel_color", "#89D2E8", ColorSettingType(), + self.setting_service.register(self.module_name, "private_channel_color", "#89D2E8", ColorSettingType(), "Default private channel color") - self.setting_service.register_new(self.module_name, "private_message_color", "#89D2E8", ColorSettingType(), + self.setting_service.register(self.module_name, "private_message_color", "#89D2E8", ColorSettingType(), "Default private message color") - self.setting_service.register_new(self.module_name, "blob_color", "#FFFFFF", ColorSettingType(), + self.setting_service.register(self.module_name, "blob_color", "#FFFFFF", ColorSettingType(), "Default blob content color") diff --git a/modules/core/discord/discord_controller.py b/modules/core/discord/discord_controller.py index 5a7393e..407f5a3 100644 --- a/modules/core/discord/discord_controller.py +++ b/modules/core/discord/discord_controller.py @@ -107,7 +107,7 @@ class DiscordController: self.setting_service: SettingService = registry.get_instance("setting_service") def pre_start(self): - self.setting_service.register_new(self.module_name, "discord_token", "", HiddenSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "discord_token", "", HiddenSettingType(allow_empty=True), "Enter your Discord token her") def get_name(self, discord_id): @@ -589,7 +589,7 @@ class DiscordController: else: response = f"{html.escape(msg.author.nick if msg.author.nick else msg.author.name, False)}: " \ f"{html.escape(emojis.decode(msg.clean_content), False)}" - await msg.delete(delay=3600) + await msg.delete(delay=3600) self.relay_hub_service.send_message("public_relay", [msg.author.nick, msg.author], response, response) if self.is_command(msg.content): diff --git a/modules/core/riadmin/riadmin_controller.py b/modules/core/riadmin/riadmin_controller.py index 1199c7d..8432901 100644 --- a/modules/core/riadmin/riadmin_controller.py +++ b/modules/core/riadmin/riadmin_controller.py @@ -48,11 +48,11 @@ class RIAdminController: "raid_instance_id INT NOT NULL, " "char_id INT PRIMARY KEY, " "is_leader TINYINT NOT NULL) ENGINE MEMORY") - self.setting_service.register_new(self.module_name, "riadmin_network", - "[905848882, 272234, 1923370, 313107, 1217210821, 1134420908]", - TextSettingType(), "Allowed bots (charID's)", - extended_description="This setting is *NOT* synchronized across the network;" - " this needs to be done manually!") + self.setting_service.register(self.module_name, "riadmin_network", + "[905848882, 272234, 1923370, 313107, 1217210821, 1134420908]", + TextSettingType(), "Allowed bots (charID's)", + extended_description="This setting is *NOT* synchronized across the network;" + " this needs to be done manually!") @event(event_type="buddy_logoff", description="Track raiders") def raider_logoff(self, _, event_data): diff --git a/modules/core/system/message_hub_controller.py b/modules/core/system/message_hub_controller.py index f19f145..3bb14ac 100644 --- a/modules/core/system/message_hub_controller.py +++ b/modules/core/system/message_hub_controller.py @@ -14,19 +14,16 @@ class MessageHubController: self.message_hub_service = registry.get_instance("message_hub_service") self.getresp = partial(registry.get_instance("translation_service").get_response, "module/system") - def start(self): - pass - @command(command="messagehub", params=[], access_level="admin", description="Show the current message hub subscriptions") def messagehub_cmd(self, _): blob = self.getresp("messagehub_info") + "\n" subscriptions = self.message_hub_service.hub for destination, obj in subscriptions.items(): - edit_subs_link = self.text.make_tellcmd(destination, "messagehub edit %s" % destination) - blob += "\n%s\n" % edit_subs_link + edit_subs_link = self.text.make_tellcmd(destination, f"messagehub edit {destination}") + blob += f"\n{edit_subs_link}\n" for source in obj.sources: - blob += " └ %s\n" % source + blob += f" └ {source}\n" return ChatBlob(self.getresp("messagehub_title", {"count": len(subscriptions)}), blob) @@ -43,13 +40,13 @@ class MessageHubController: if source in obj.invalid_sources: continue - sub_link = self.text.make_tellcmd("Subscribe", "messagehub subscribe %s %s" % (destination, source)) - unsub_link = self.text.make_tellcmd("Unsubscribe", "messagehub unsubscribe %s %s" % (destination, source)) + sub_link = self.text.make_tellcmd("Subscribe", f"messagehub subscribe {destination} {source}") + unsub_link = self.text.make_tellcmd("Unsubscribe", f"messagehub unsubscribe {destination} {source}") status = "" if source in obj.sources: count += 1 - status = "%s" % self.getresp("subscribed") - blob += "%s [%s] [%s] %s\n\n" % (source, sub_link, unsub_link, status) + status = f"{self.getresp('subscribed')}" + blob += f"{source} [{sub_link}] [{unsub_link}] {status}\n\n" return ChatBlob( self.getresp("messagehub_edit_title", {"destination": destination.capitalize(), "count": count}), blob) diff --git a/modules/core/system/system_controller.py b/modules/core/system/system_controller.py index 503bbcc..c26bd8e 100644 --- a/modules/core/system/system_controller.py +++ b/modules/core/system/system_controller.py @@ -34,24 +34,24 @@ class SystemController: def start(self): self.ts.register_translation("module/system", self.load_system_msg) - self.setting_service.register_new(self.module_name, "expected_shutdown", True, BooleanSettingType(), - "Helps bot to determine if last shutdown was expected or due to a problem") - self.setting_service.register_new("core.system", "symbol", "!", - TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), - "Symbol for executing bot commands") - self.setting_service.register_new("core.system", "org_channel_max_page_length", 7500, - NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), - "Maximum size of blobs in org channel") - self.setting_service.register_new("core.system", "private_message_max_page_length", 7500, - NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), - "Maximum size of blobs in private messages") - self.setting_service.register_new("core.system", "private_channel_max_page_length", 7500, - NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), - "Maximum size of blobs in private channel") + self.setting_service.register(self.module_name, "expected_shutdown", True, BooleanSettingType(), + "Helps bot to determine if last shutdown was expected or due to a problem") + self.setting_service.register(self.module_name, "symbol", "!", + TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), + "Symbol for executing bot commands") + self.setting_service.register(self.module_name, "org_channel_max_page_length", 7500, + NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), + "Maximum size of blobs in org channel") + self.setting_service.register(self.module_name, "private_message_max_page_length", 7500, + NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), + "Maximum size of blobs in private messages") + self.setting_service.register(self.module_name, "private_channel_max_page_length", 7500, + NumberSettingType([4500, 6000, 7500, 9000, 10500, 12000]), + "Maximum size of blobs in private channel") - self.setting_service.register_new("core.system", "accept_commands_from_slave_bots", True, BooleanSettingType(), - "Accept and respond to commands sent to slave bots (only applies if you have " - "added slave bots in the config)") + self.setting_service.register(self.module_name, "accept_commands_from_slave_bots", True, BooleanSettingType(), + "Accept and respond to commands sent to slave bots (only applies if you have " + "added slave bots in the config)") def load_system_msg(self): with open("modules/core/system/system.msg", mode="r", encoding="utf-8") as f: diff --git a/modules/core/system/util_controller.py b/modules/core/system/util_controller.py index 0bbad67..1258419 100644 --- a/modules/core/system/util_controller.py +++ b/modules/core/system/util_controller.py @@ -9,6 +9,7 @@ import psutil from core.chat_blob import ChatBlob from core.command_param_types import Any, Character from core.decorators import instance, command +from core.lookup.character_service import CharacterService from core.util import Util @@ -23,6 +24,7 @@ class UtilController: self.access_service = registry.get_instance("access_service") self.event_service = registry.get_instance("event_service") self.public_channel_service = registry.get_instance("public_channel_service") + self.character_service: CharacterService = registry.get_instance("character_service") self.getresp = registry.get_instance("translation_service").get_response @command(command="checkaccess", params=[Character("character")], access_level="moderator", @@ -94,14 +96,13 @@ class UtilController: bots_connected += f"{_id} - {conn.char_name} ({conn.char_id})\n" for channel_id, name in self.public_channel_service.get_all_public_channels().items(): - pub_channels += "%s - %d\n" % (name, channel_id) + pub_channels += f"{name} - {channel_id:d}\n" for event_type in self.event_service.get_event_types(): - event_types += "%s\n" % event_type + event_types += f"{event_type}\n" for access_level in self.access_service.get_access_levels(): - access_levels += "%s (%d)\n" % (access_level["label"], access_level["level"]) - + access_levels += f"{access_level['label']} ({access_level['level']:d})\n" blob = self.getresp("module/system", "status_blob", { "bot_ver": f"{self.bot.major_version}.{self.bot.minor_version}", "os_ver": platform.system() + " " + platform.release(), @@ -112,7 +113,7 @@ class UtilController: "db_type": self.db.type if not self.db.MARIADB else f"{self.db.MARIADB} with " f"{self.db.pool_size} active connections", "mem_usage": self.util.format_number(psutil.Process(os.getpid()).memory_info().rss / 1024), - "superadmin": "Not Set", + "superadmin": ", ".join([self.character_service.get_char_name(x) or str(x) for x in self.bot.superadmin]), "bl_used": self.buddy_service.get_buddy_list_size(), "bl_size": self.buddy_service.buddy_list_size, "uptime": self.util.time_to_readable(int(time.time()) - self.bot.start_time, max_levels=None), diff --git a/modules/onlinebot/Darknet/darknet_controller.py b/modules/onlinebot/Darknet/darknet_controller.py index 83c3bb0..ea7adb0 100644 --- a/modules/onlinebot/Darknet/darknet_controller.py +++ b/modules/onlinebot/Darknet/darknet_controller.py @@ -36,21 +36,21 @@ class DarkController: self.message_hub_service.register_message_source(self.MESSAGE_SOURCE) def start(self): - self.setting_service.register_new(self.module_name, "dark_relay", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_relay", "true", BooleanSettingType(), "Is the Module Enabled?") - self.setting_service.register_new(self.module_name, "dark_wts", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_wts", "true", BooleanSettingType(), "Is the WTS channel visible?") - self.setting_service.register_new(self.module_name, "dark_wtb", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_wtb", "true", BooleanSettingType(), "Is the WTB channel visible?") - self.setting_service.register_new(self.module_name, "dark_lr", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_lr", "true", BooleanSettingType(), "Is the Lootrights channel visible?") - self.setting_service.register_new(self.module_name, "dark_gen", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_gen", "true", BooleanSettingType(), "Is the General channel visible?") - self.setting_service.register_new(self.module_name, "dark_pvp", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_pvp", "true", BooleanSettingType(), "Is the PvP channel visible?") - self.setting_service.register_new(self.module_name, "dark_pvm", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_pvm", "true", BooleanSettingType(), "Is the PVM channel visible?") - self.setting_service.register_new(self.module_name, "dark_event", "true", BooleanSettingType(), + self.setting_service.register(self.module_name, "dark_event", "true", BooleanSettingType(), "Is the Event channel visible?") def handle_private_channel_invite(self, conn: Conn, packet: server_packets.PrivateChannelInvited): diff --git a/modules/onlinebot/alliance/alliance_relay_controller.py b/modules/onlinebot/alliance/alliance_relay_controller.py index f269b2b..44d2074 100644 --- a/modules/onlinebot/alliance/alliance_relay_controller.py +++ b/modules/onlinebot/alliance/alliance_relay_controller.py @@ -30,14 +30,14 @@ class AllianceRelayController: self.message_hub_service.register_message_source(self.MESSAGE_SOURCE) def start(self): - self.setting_service.register_new(self.module_name, "arelaybot", "", - TextSettingType(allow_empty=True), "Bot for alliance relay") + self.setting_service.register(self.module_name, "arelaybot", "", + TextSettingType(allow_empty=True), "Bot for alliance relay") - self.setting_service.register_new(self.module_name, "arelay_enabled", False, - BooleanSettingType(), "Enable the alliance relay") + self.setting_service.register(self.module_name, "arelay_enabled", False, + BooleanSettingType(), "Enable the alliance relay") - self.setting_service.register_new(self.module_name, "arelay_color", "#C3C3C3", - ColorSettingType(), + self.setting_service.register(self.module_name, "arelay_color", "#C3C3C3", + ColorSettingType(), "Color of messages from relay") self.message_hub_service.register_message_destination(self.MESSAGE_SOURCE, self.handle_relay_hub_message, [], diff --git a/modules/orgbot/alliance/alliance_relay.py b/modules/orgbot/alliance/alliance_relay.py index f9a0944..db43e48 100644 --- a/modules/orgbot/alliance/alliance_relay.py +++ b/modules/orgbot/alliance/alliance_relay.py @@ -5,7 +5,7 @@ from core.aochat.client_packets import PrivateChannelLeave 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 +from core.decorators import instance, command, setting from core.logger import Logger from core.lookup.character_service import CharacterService from core.setting_service import SettingService @@ -35,17 +35,6 @@ class AllianceRelay: self.message_hub_service.register_message_source(self.MESSAGE_SOURCE) def start(self): - - self.setting_service.register_new(self.module_name, "relay_symbols", {'default': "-"}, DictionarySettingType(), "Symbol for external relay") - self.setting_service.register_new(self.module_name, "relay_symbol_methods", {'default': "always"}, DictionarySettingType(), "When to relay messages") - self.setting_service.register_new(self.module_name, "relay_bots", {}, DictionarySettingType(), "Bot for alliance relay") - self.setting_service.register_new(self.module_name, "relay_command", {"default": "!agcr"}, DictionarySettingType(), "Relay command for the relay") - self.setting_service.register_new(self.module_name, "relay_enabled", {"default": True}, DictionarySettingType(), "Enable the alliance relay") - self.setting_service.register_new(self.module_name, "relay_guild_abbreviations", {"default": self.public_channel_service.get_org_name()}, DictionarySettingType(), "Abbreviation to use for org name") - self.setting_service.register_new(self.module_name, "relay_color_base", {"default": "#00FF00"}, DictionarySettingType(), "Base color for alliance relay") - self.setting_service.register_new(self.module_name, "relay_color_org", {"default": "#FFFF00"}, DictionarySettingType(), "Org color for alliance relay") - self.setting_service.register_new(self.module_name, "relay_color_sender", {"default": "#FF8C00"}, DictionarySettingType(), "Name color for alliance relay") - self.setting_service.register_new(self.module_name, "relay_color_msg", {"default": "#FF8C00"}, DictionarySettingType(), "Message color for alliance relay") self.message_hub_service.register_message_destination(self.MESSAGE_SOURCE, self.handle_relay_hub_message, ["org_channel"], @@ -381,35 +370,45 @@ class AllianceRelay: packet = client_packets.PrivateChannelMessage(int(alliance), self.text.format_message(msg, False), "\0") self.bot.conns["main"].send_packet(packet) + @setting(name="relay_symbols", value={"default": "-"}, description="Symbol for external relay") def relay_symbols(self) -> DictionarySettingType: - return self.setting_service.get("relay_symbols") + return DictionarySettingType() + @setting(name="relay_symbol_methods", value={'default': "always"}, description="Relay methods for the relays") def relay_symbol_methods(self) -> DictionarySettingType: - return self.setting_service.get("relay_symbol_methods") + return DictionarySettingType() + @setting(name="relay_bots", value={}, description="Bots used for relaying") def relay_bots(self) -> DictionarySettingType: - return self.setting_service.get("relay_bots") + return DictionarySettingType() + @setting(name="relay_enabled", value={"default": True}, description="Enabled status of the relays") def relay_enabled(self) -> DictionarySettingType: - return self.setting_service.get("relay_enabled") + return DictionarySettingType() + @setting(name="relay_guild_abbreviations", value={"default": "UNSET"}, description="Abbreviations used for the relays") def relay_guild_abbreviations(self) -> DictionarySettingType: - return self.setting_service.get("relay_guild_abbreviations") + return DictionarySettingType() + @setting(name="relay_color_base", value={"default": "#00FF00"}, description="Base color used for the relays") def relay_color_base(self) -> DictionarySettingType: - return self.setting_service.get("relay_color_base") + return DictionarySettingType() + @setting(name="relay_color_org", value={"default": "#FFFF00"}, description="Abbrv color used for the relays") def relay_color_org(self) -> DictionarySettingType: - return self.setting_service.get("relay_color_org") + return DictionarySettingType() + @setting(name="relay_color_sender", value={"default": "#FF8C00"}, description="Sender color used for the relays") def relay_color_sender(self) -> DictionarySettingType: - return self.setting_service.get("relay_color_sender") + return DictionarySettingType() + @setting(name="relay_color_msg", value={"default": "#FF8C00"}, description="Message color used for the relays") def relay_color_msg(self) -> DictionarySettingType: - return self.setting_service.get("relay_color_msg") + return DictionarySettingType() + @setting(name="relay_command", value={"default": "!agcr"}, description="Relay command used for the relays") def relay_command(self) -> DictionarySettingType: - return self.setting_service.get("relay_command") + return DictionarySettingType() def check_color(self, msg: str): if not msg.startswith('#'): diff --git a/modules/orgbot/org/org_controller.py b/modules/orgbot/org/org_controller.py index ce95d47..c987656 100644 --- a/modules/orgbot/org/org_controller.py +++ b/modules/orgbot/org/org_controller.py @@ -41,11 +41,10 @@ class OrgChannelController: def start(self): self.message_hub_service.register_message_destination( self.MESSAGE_SOURCE, self.handle_incoming_relay_message, - ["private_channel", "discord", "websocket_relay", "tell_relay", "broadcast", - "raffle", "cloak_reminder", "wave_counter", "shutdown_notice", "raid"], + ["private_channel", "websocket_relay", "cloak_reminder", "wave_counter", "shutdown_notice"], [self.MESSAGE_SOURCE]) - self.setting_service.register_new(self.module_name, "prefix_org_priv", True, BooleanSettingType(), + self.setting_service.register(self.module_name, "prefix_org_priv", True, BooleanSettingType(), "Should the prefix [org] be displayed in relayed messages") def handle_incoming_relay_message(self, ctx): diff --git a/modules/raidbot/tower/tower_controller.py b/modules/raidbot/tower/tower_controller.py index 0ec6a77..5229955 100644 --- a/modules/raidbot/tower/tower_controller.py +++ b/modules/raidbot/tower/tower_controller.py @@ -84,7 +84,7 @@ class TowerController: victory.location.playfield = self.playfield_controller.get_playfield_by_name(playfield_name) or \ DictObject() victory.location.playfield.long_name = playfield_name - print(victory) + # print(victory) self.event_service.fire_event(self.TOWER_VICTORY_EVENT, victory) elif packet.channel_id == self.ALL_TOWERS_ID: attack = self.get_attack_event(packet) diff --git a/modules/standard/MessageDistributor/message_distributor.py b/modules/standard/MessageDistributor/message_distributor.py index f5224f3..efc7306 100644 --- a/modules/standard/MessageDistributor/message_distributor.py +++ b/modules/standard/MessageDistributor/message_distributor.py @@ -12,6 +12,7 @@ from core.logger import Logger from core.lookup.character_service import CharacterService from core.lookup.pork_service import PorkService from core.message_hub_service import MessageHubService +from core.registry import Registry from core.setting_service import SettingService from core.setting_types import NumberSettingType from core.text import Text @@ -47,40 +48,42 @@ class MessageDistributor: self.relay_hub_service.register_message_source("access_denied_logger") self.relay_hub_service.register_message_source("member_logger") + def start(self): self.relay_hub_service.register_message_destination("tell_log", self.handle_logging_tell, ["tell_logger"], ["tell_log"]) - self.setting_service.register_new(self.module_name, "dc_tell_log", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_tell_log", 0, NumberSettingType(allow_empty=True), "ChannelID for the Tell Log") self.relay_hub_service.register_message_destination("access_denied_log", self.handle_logging_denied, ["access_denied_logger"], ["access_denied_log"]) - self.setting_service.register_new(self.module_name, "dc_denied_log", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_denied_log", 0, NumberSettingType(allow_empty=True), "ChannelID for the Access Denied Log") self.relay_hub_service.register_message_destination("relay_log", self.handle_logging_relay, ["alliance", "public_relay"], ["relay_log"]) - self.setting_service.register_new(self.module_name, "dc_relay_log", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_relay_log", 0, NumberSettingType(allow_empty=True), "ChannelID for the Relay Log") self.relay_hub_service.register_message_destination("public_relay", self.handle_public_relay, ["alliance"], ["public_relay"]) - self.setting_service.register_new(self.module_name, "dc_relay_public", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_relay_public", 0, NumberSettingType(allow_empty=True), "ChannelID for the Public Relay Channel") self.relay_hub_service.register_message_destination("system", self.handle_logging_system, ["system_logger"], ["system"]) - self.setting_service.register_new(self.module_name, "dc_system_log", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_system_log", 0, NumberSettingType(allow_empty=True), "ChannelID for the System Channel") self.relay_hub_service.register_message_destination("dc_member_log", self.handle_logging_members, ["member_logger"], ["dc_member_log"]) - self.setting_service.register_new(self.module_name, "dc_member_log", 0, NumberSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "dc_member_log", 0, NumberSettingType(allow_empty=True), "ChannelID for the Member Log") - self.relay_hub_service.register_message_destination("dc_darknet_log", self.handle_darknet_log, ["darknet"], - [""]) - self.setting_service.register_new(self.module_name, "dc_darknet_log", 0, NumberSettingType(allow_empty=True), - "ChannelID for the Darknet Log") + if Registry.get_instance("darknet", is_optional=True): + self.relay_hub_service.register_message_destination("dc_darknet_log", self.handle_darknet_log, ["darknet"], + [""]) + self.setting_service.register(self.module_name, "dc_darknet_log", 0, NumberSettingType(allow_empty=True), + "ChannelID for the Darknet Log") def handle_public_relay(self, ctx): if self.setting_service.get_value("dc_relay_public") != "0": diff --git a/modules/standard/datanet/relay_controller.py b/modules/standard/datanet/relay_controller.py index e51b8d9..5f56c75 100644 --- a/modules/standard/datanet/relay_controller.py +++ b/modules/standard/datanet/relay_controller.py @@ -43,35 +43,34 @@ class RelayController: def start(self): self.message_hub_service.register_message_destination(self.MESSAGE_SOURCE, self.handle_message_from_hub, - ["private_channel", "org_channel", - "discord", "tell_relay"], + ["private_channel", "org_channel"], [self.MESSAGE_SOURCE]) - self.setting_service.register_new(self.module_name, "websocket_relay_enabled", False, BooleanSettingType(), + self.setting_service.register(self.module_name, "websocket_relay_enabled", False, BooleanSettingType(), "Enable the websocket relay") - self.setting_service.register_new(self.module_name, "websocket_relay_server_address", + self.setting_service.register(self.module_name, "websocket_relay_server_address", "ws://localhost/subscribe/relay", - TextSettingType(["ws://localhost/subscribe/relay"]), + TextSettingType(["ws://localhost/subscribe/relay"]), "The address of the websocket relay server", "All bots on the relay must connect to the same server and channel. " "If using the public relay server, use a unique channel name.") - self.setting_service.register_new(self.module_name, "websocket_relay_channel_color", "#FFFF00", - ColorSettingType(), "Color of the channel in websocket relay messages") - self.setting_service.register_new(self.module_name, "websocket_relay_message_color", "#FCA712", - ColorSettingType(), + self.setting_service.register(self.module_name, "websocket_relay_channel_color", "#FFFF00", + ColorSettingType(), "Color of the channel in websocket relay messages") + self.setting_service.register(self.module_name, "websocket_relay_message_color", "#FCA712", + ColorSettingType(), "Color of the message content in websocket relay messages") - self.setting_service.register_new(self.module_name, "websocket_relay_sender_color", "#00DE42", - ColorSettingType(), "Color of the sender in websocket relay messages") - self.setting_service.register_new(self.module_name, "websocket_encryption_key", "", - HiddenSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "websocket_relay_sender_color", "#00DE42", + ColorSettingType(), "Color of the sender in websocket relay messages") + self.setting_service.register(self.module_name, "websocket_encryption_key", "", + HiddenSettingType(allow_empty=True), "An encryption key used to encrypt messages over a public websocket relay") - self.setting_service.register_new(self.module_name, "ws_relay_prefix", "", TextSettingType(allow_empty=True), + self.setting_service.register(self.module_name, "ws_relay_prefix", "", TextSettingType(allow_empty=True), "Name of this relay (if you don't want to use org or bot name)") - self.setting_service.register_new(self.module_name, "ws_msg_relay_prefix", "||", - TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), + self.setting_service.register(self.module_name, "ws_msg_relay_prefix", "||", + TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "Prefix for Messages which should get relayed") - self.setting_service.register_new(self.module_name, "ws_relay_type", "with_symbol", - TextSettingType(["with_symbol", "unless_symbol", "always"]), + self.setting_service.register(self.module_name, "ws_relay_type", "with_symbol", + TextSettingType(["with_symbol", "unless_symbol", "always"]), "Relay Messages", ) self.initialize_encrypter(self.setting_service.get("websocket_encryption_key").get_value()) diff --git a/modules/standard/datanet/ws_controller.py b/modules/standard/datanet/ws_controller.py index 9c71c89..826beb1 100644 --- a/modules/standard/datanet/ws_controller.py +++ b/modules/standard/datanet/ws_controller.py @@ -36,10 +36,10 @@ class WebsocketRelayController(BaseModule): def pre_start(self): self.event_service.register_event_type(self.WS_RELAY) - self.setting_service.register_new(self.module_name, + self.setting_service.register(self.module_name, 'relay_address', 'ws://localhost:25500', - TextSettingType([], allow_empty=True), + TextSettingType([], allow_empty=True), "relay for timers, tower info, ...") @timerevent(budatime="1s", description="Relay messages from Data relay to the internal message hub", diff --git a/modules/standard/loot/loot_controller.py b/modules/standard/loot/loot_controller.py index 01e12a8..0c82a80 100644 --- a/modules/standard/loot/loot_controller.py +++ b/modules/standard/loot/loot_controller.py @@ -93,7 +93,7 @@ class LootController: if self.loot_list[item_index]: self.last_modify = int(time.time()) self.bot.send_private_channel_message( - "Removed %s from loot list." % self.loot_list.pop(item_index).get_item_str()) + f"Removed {self.loot_list.pop(item_index).get_item_str()} from loot list.") else: return "Item error." except KeyError: @@ -115,7 +115,7 @@ class LootController: loot_item.count += 1 self.last_modify = int(time.time()) self.bot.send_private_channel_message( - "Increased item count for %s to %d." % (loot_item.get_item_str(), loot_item.count)) + f"Increased item count for {loot_item.get_item_str()} to {loot_item.count:d}.") else: return "Item error." except KeyError: @@ -137,7 +137,7 @@ class LootController: loot_item.count = loot_item.count - 1 if loot_item.count > 1 else 1 self.last_modify = int(time.time()) self.bot.send_private_channel_message( - "Decreased item count for %s to %d." % (loot_item.get_item_str(), loot_item.count)) + f"Decreased item count for {loot_item.get_item_str()} to {loot_item.count:d}.") else: return "Item error." except KeyError: @@ -173,12 +173,12 @@ class LootController: self.last_modify = int(time.time()) if old_item is not None: - text = "moved from %s to %s." % (old_item.get_item_str(), loot_item.get_item_str()) - self.bot.send_mass_message(request.sender.char_id, "You have %s" % text) + text = f"moved from {old_item.get_item_str()} to {loot_item.get_item_str()}." + self.bot.send_mass_message(request.sender.char_id, f"You have {text}") self.bot.send_private_channel_message(request.sender.name + " " + text) else: - text = "added to %s." % loot_item.get_item_str() - self.bot.send_mass_message(request.sender.char_id, "You have %s" % text) + text = f"added to {loot_item.get_item_str()}." + self.bot.send_mass_message(request.sender.char_id, f"You have {text}") self.bot.send_private_channel_message(request.sender.name + " " + text) except KeyError: @@ -193,8 +193,8 @@ class LootController: loot_item.bidders.remove(request.sender.name) self.last_modify = int(time.time()) - text = "removed from %s." % loot_item.get_item_str() - self.bot.send_private_message(request.sender.char_id, "You were %s" % text) + text = f"removed from {loot_item.get_item_str()}." + self.bot.send_private_message(request.sender.char_id, f"You were {text}") self.bot.send_private_channel_message(request.sender.name + " was " + text) else: return "You are not added to any loot." @@ -230,15 +230,14 @@ class LootController: "loot", f"{loot_item.get_item_str()}", request.sender.char_id) - blob += "%d. %s\n" % (i, loot_item.get_item_str()) - blob += " | Winners: %s\n\n" % ', '.join(winners) + blob += f"{i:d}. {loot_item.get_item_str()}\n" + blob += f" | Winners: {', '.join(winners)}\n\n" if loot_item.count == 0: remove.append(i) for i in remove: self.loot_list.pop(i) - msg = ChatBlob("Roll results", blob) - msg.page_prefix = "Time is up! " + msg = ChatBlob("Roll results", blob, "\n________________\n\nTime is UP!\n", "\n________________") self.bot.send_private_channel_message(msg if len(blob) > 0 else "No one was added to any loot") if self.loot_list: count = 1 @@ -250,6 +249,8 @@ class LootController: del self.loot_list[key] self.loot_list[count] = loot_item count += 1 + if len(self.loot_list) > 0: + self.bot.send_private_channel_message(f"Theres still loot left to roll, the list has been rebuilt.") else: return "No loot to roll." @@ -267,9 +268,9 @@ class LootController: if item: self.add_item_to_loot(item, item.comment, item_count) - self.bot.send_private_channel_message("Added %s to loot list." % item.name) + self.bot.send_private_channel_message(f"Added {item.name} to loot list.") else: - return "Failed to add item with ID %s." % raid_item_id + return f"Failed to add item with ID {raid_item_id}." @command(command="loot", params=[Const("addraid"), Any("raid"), Any("category")], description="Add all loot from pre-defined raid", access_level="leader", sub_command="modify") @@ -313,7 +314,7 @@ class LootController: self.add_item_to_loot(item, item_count=item_count) - self.bot.send_private_channel_message("%s was added to loot list." % item.name) + self.bot.send_private_channel_message(f"{item.name} was added to loot list.") @command(command="loot", params=[Const("additem", is_optional=True), Any("item"), Int("item_count", is_optional=True)], @@ -397,8 +398,8 @@ class LootController: f"[ {self.text.make_tellcmd('REM', f'loot remitem {i}')} ]\n\n" else: if len(bidders) > 0: - blob += "%s\n\n" % ', '.join(bidders) + blob += f"{', '.join(bidders)}\n\n" else: blob += "None added\n\n" - return ChatBlob("Loot (%d)" % len(self.loot_list), blob) + return ChatBlob(f"Loot ({len(self.loot_list):d})", blob) diff --git a/modules/standard/loot/loot_lists_controller.py b/modules/standard/loot/loot_lists_controller.py index 5cc1f0d..a1d8190 100644 --- a/modules/standard/loot/loot_lists_controller.py +++ b/modules/standard/loot/loot_lists_controller.py @@ -113,7 +113,7 @@ class LootListsController: self.command_alias_service.add_alias("alba", "albtraum") self.command_alias_service.add_alias("lt", "loottables") - self.command_alias_service.add_alias("raids", "loottables") + # self.command_alias_service.add_alias("raids", "loottables") self.command_alias_service.add_alias("ltables", "loottables") self.command_alias_service.add_alias("loots", "loottables") diff --git a/modules/standard/news/worldboss_controller.py b/modules/standard/news/worldboss_controller.py index 2b9674c..910a6c1 100644 --- a/modules/standard/news/worldboss_controller.py +++ b/modules/standard/news/worldboss_controller.py @@ -38,7 +38,7 @@ class WorldBossController: self.setting_service: SettingService = registry.get_instance("setting_service") def pre_start(self): - self.setting_service.register_new(self.module_name, 'timer_spam', True, BooleanSettingType(), + self.setting_service.register(self.module_name, 'timer_spam', True, BooleanSettingType(), "should timers be spammed") @event(WebsocketRelayController.WS_RELAY, "save most current timers") diff --git a/modules/standard/raid/leader_controller.py b/modules/standard/raid/leader_controller.py index 832721c..b36b85e 100644 --- a/modules/standard/raid/leader_controller.py +++ b/modules/standard/raid/leader_controller.py @@ -34,9 +34,9 @@ class LeaderController: def pre_start(self): self.command_alias_service.add_alias("repeat", "leader echo") - self.setting_service.register_new(self.module_name, "leader_echo_color", "#00FF00", ColorSettingType(), + self.setting_service.register(self.module_name, "leader_echo_color", "#00FF00", ColorSettingType(), "Color with which the leader's messages will be echoed with") - self.setting_service.register_new(self.module_name, "leader_auto_echo", True, BooleanSettingType(), + self.setting_service.register(self.module_name, "leader_auto_echo", True, BooleanSettingType(), "If turned on, when someone assume the leader role, " "leader echo will automatically be activated for said person") diff --git a/modules/standard/track/track_controller.py b/modules/standard/track/track_controller.py index 886e8bb..04a74f2 100644 --- a/modules/standard/track/track_controller.py +++ b/modules/standard/track/track_controller.py @@ -47,12 +47,12 @@ class TrackController(BaseModule): def pre_start(self): self.event_service.register_event_type("track_logon") self.event_service.register_event_type("track_logoff") - self.setting_service.register_new(self.module_name, "track_on_color", "#FF0000", ColorSettingType(), + self.setting_service.register(self.module_name, "track_on_color", "#FF0000", ColorSettingType(), "Color for Track logon") - self.setting_service.register_new(self.module_name, "track_off_color", "#00FF00", ColorSettingType(), + self.setting_service.register(self.module_name, "track_off_color", "#00FF00", ColorSettingType(), "Color for Track logoff") - self.setting_service.register_new(self.module_name, "autotrack", 'none', - TextSettingType(['omni', 'clan', 'neutral', "none"]), + self.setting_service.register(self.module_name, "autotrack", 'none', + TextSettingType(['omni', 'clan', 'neutral', "none"]), "Autotrack all players initiating tower attacks towards this faction:") self.db.exec( "CREATE TABLE IF NOT EXISTS track("