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("