def start(self): self.setting_service.register(self.module_name, "dark_relay", "false", BooleanSettingType(), "Is the Module Enabled?") self.setting_service.register(self.module_name, "dark_wts", "true", BooleanSettingType(), "Is the WTS channel visible?") self.setting_service.register(self.module_name, "dark_wtb", "true", BooleanSettingType(), "Is the WTB channel visible?") self.setting_service.register(self.module_name, "dark_lr", "true", BooleanSettingType(), "Is the Lootrights channel visible?") self.setting_service.register(self.module_name, "dark_gen", "true", BooleanSettingType(), "Is the General channel visible?") self.setting_service.register(self.module_name, "dark_pvp", "true", BooleanSettingType(), "Is the PvP channel visible?") self.setting_service.register(self.module_name, "dark_pvm", "true", BooleanSettingType(), "Is the PVM channel visible?") self.setting_service.register(self.module_name, "dark_event", "true", BooleanSettingType(), "Is the Event channel visible?")
def start(self): self.setting_service.register( self.module_name, "dark_relay", "false", BooleanSettingType(), "Is the Module Enabled?", extended_description= "Use !messagehub to control where Darknet messages are relayed to") self.setting_service.register(self.module_name, "dark_wts", "true", BooleanSettingType(), "Is the WTS channel visible?") self.setting_service.register(self.module_name, "dark_wtb", "true", BooleanSettingType(), "Is the WTB channel visible?") self.setting_service.register(self.module_name, "dark_lr", "true", BooleanSettingType(), "Is the Lootrights channel visible?") self.setting_service.register(self.module_name, "dark_gen", "true", BooleanSettingType(), "Is the General channel visible?") self.setting_service.register(self.module_name, "dark_pvp", "true", BooleanSettingType(), "Is the PvP channel visible?") self.setting_service.register(self.module_name, "dark_pvm", "true", BooleanSettingType(), "Is the PVM channel visible?") self.setting_service.register(self.module_name, "dark_event", "true", BooleanSettingType(), "Is the Event channel visible?") self.setting_service.register_change_listener( "dark_relay", self.update_darket_status)
def start(self): self.command_alias_service.add_alias("aries", "pande aries") self.command_alias_service.add_alias("aquarius", "pande aquarius") self.command_alias_service.add_alias("leo", "pande leo") self.command_alias_service.add_alias("virgo", "pande virgo") self.command_alias_service.add_alias("cancer", "pande cancer") self.command_alias_service.add_alias("gemini", "pande gemini") self.command_alias_service.add_alias("libra", "pande libra") self.command_alias_service.add_alias("pisces", "pande pisces") self.command_alias_service.add_alias("capricorn", "pande capricorn") self.command_alias_service.add_alias("scorpio", "pande scorpio") self.command_alias_service.add_alias("taurus", "pande taurus") self.command_alias_service.add_alias("sagittarius", "pande sagittarius") self.command_alias_service.add_alias("tnh", "pande tnh") self.command_alias_service.add_alias("s7", "apf s7") self.command_alias_service.add_alias("s13", "apf s13") self.command_alias_service.add_alias("s28", "apf s28") self.command_alias_service.add_alias("s35", "apf s35") self.command_alias_service.add_alias("mitaar", "xan mitaar") self.command_alias_service.add_alias("12m", "xan 12m") self.command_alias_service.add_alias("vortexx", "xan vortexx") self.command_alias_service.add_alias("alba", "albtraum") self.setting_service.register(self.module_name, "use_item_icons", True, BooleanSettingType(), "Use icons when building loot list")
def start(self): self.setting_service.register(self.module_name, "relaygcr_type", "private_channel", TextSettingType(["tell", "private_channel"]), "Type of relay") self.setting_service.register(self.module_name, "relaygcr_symbol", "@", TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "Symbol for external relay") self.setting_service.register(self.module_name, "relaygcr_symbol_method", "with_symbol", TextSettingType(["Always", "with_symbol", "unless_symbol"]), "When to relay messages") self.setting_service.register(self.module_name, "relaygcr_bot", "Relay", TextSettingType(), "Bot for Guildrelay") self.setting_service.register(self.module_name, "relaygcr_enabled", False, BooleanSettingType(), "Is the Module Enabled?") self.setting_service.register(self.module_name, "relaygcr_color_guild", "#C3C3C3", ColorSettingType(), "Color of messages from relay to guild channel") self.setting_service.register(self.module_name, "relaygcr_color_priv", "#C3C3C3", ColorSettingType(), "Color of messages from relay to priv channel") self.setting_service.register(self.module_name, "relaygcr_guest", False, BooleanSettingType(), "Relay the Private/Guest Channel") self.setting_service.register(self.module_name, "relaygcr_guild_abbreviation", "ORG_TAG", TextSettingType(), "Abbreviation to use for org name") self.setting_service.register(self.module_name, "relaygcr_share", False, BooleanSettingType(), "Do we share online lists with relayed partners?") self.setting_service.register(self.module_name, "relaygcr_others", "", TextSettingType(allow_empty=True), "Online wanted Bot(s) unspaced list ; separated (example: Bot1;Bot2;Bot3)") self.bot.register_packet_handler(server_packets.PrivateChannelInvited.id, self.handle_private_channel_invite) self.bot.register_packet_handler(server_packets.PrivateChannelMessage.id, self.handle_private_channel_message) self.bot.register_packet_handler(server_packets.PublicChannelMessage.id, self.handle_org_channel_message)
def start(self): self.ts.register_translation("module/system", self.load_system_msg) 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" )
def start(self): self.setting_service.register( "arelay_symbol", "#", "Symbol for external relay", TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "custom.arelay") self.setting_service.register( "arelay_symbol_method", "with_symbol", "When to relay messages", TextSettingType(["Always", "with_symbol", "unless_symbol"]), "custom.arelay") self.setting_service.register("arelaybot", "", "Bot for alliance relay", TextSettingType([]), "custom.arelay") self.setting_service.register("arelay_enabled", False, "Enable the alliance relay", BooleanSettingType(), "custom.arelay") self.setting_service.register("arelay_guild_abbreviation", "", "Abbreviation to use for org name", TextSettingType([]), "custom.arelay") self.setting_service.register("arelay_color", "#C3C3C3", "Color of messages from relay", ColorSettingType(), "custom.arelay") self.message_hub_service.register_message_source( self.MESSAGE_SOURCE, self.handle_relay_hub_message) self.bot.add_packet_handler(server_packets.PrivateChannelInvited.id, self.handle_private_channel_invite, 100) self.bot.add_packet_handler(server_packets.PrivateChannelMessage.id, self.handle_private_channel_message)
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", "tower_attacks"], [self.MESSAGE_SOURCE]) self.setting_service.register(self.module_name, "prefix_org_priv", True, BooleanSettingType(), "Should the prefix [org] be displayed in relayed messages")
def start(self): self.command_alias_service.add_alias("leaderecho", "leader echo") self.setting_service.register_new( 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", False, BooleanSettingType(), "If turned on, when someone assume the leader role, leader echo will automatically be activated for said person" )
def start(self): self.db.exec( "CREATE TABLE IF NOT EXISTS discord_char_link (discord_id BIGINT NOT NULL, char_id INT NOT NULL)" ) self.message_hub_service.register_message_destination( self.MESSAGE_SOURCE, self.handle_incoming_relay_message, [ "private_channel", "org_channel", "websocket_relay", "tell_relay", "shutdown_notice" ], [self.MESSAGE_SOURCE]) self.register_discord_command_handler( self.discord_link_cmd, "discord", [Const("link"), Character("ao_character")]) self.register_discord_command_handler(self.discord_unlink_cmd, "discord", [Const("unlink")]) self.ts.register_translation("module/discord", self.load_discord_msg) self.setting_service.register(self.module_name, "discord_enabled", False, BooleanSettingType(), "Enable the Discord relay") self.setting_service.register(self.module_name, "discord_bot_token", "", HiddenSettingType(allow_empty=True), "Discord bot token") self.setting_service.register( self.module_name, "discord_channel_id", "", TextSettingType(allow_empty=True), "Discord channel id for relaying messages to and from", "You can get the Discord channel ID by right-clicking on a channel name in Discord and then clicking \"Copy ID\"" ) self.setting_service.register(self.module_name, "discord_embed_color", "#00FF00", ColorSettingType(), "Discord embedded message color") self.setting_service.register( self.module_name, "relay_color_prefix", "#FCA712", ColorSettingType(), "Set the prefix color for messages coming from Discord") self.setting_service.register( self.module_name, "relay_color_name", "#808080", ColorSettingType(), "Set the color of the name for messages coming from Discord") self.setting_service.register( self.module_name, "relay_color_message", "#00DE42", ColorSettingType(), "Set the color of the content for messages coming from Discord") self.setting_service.register_change_listener( "discord_channel_id", self.update_discord_channel) self.setting_service.register_change_listener( "discord_enabled", self.update_discord_state)
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"], [self.MESSAGE_SOURCE]) self.setting_service.register(self.module_name, "websocket_relay_enabled", False, BooleanSettingType(), "Enable the websocket relay") self.setting_service.register( self.module_name, "websocket_relay_server_address", "ws://localhost/subscribe/relay", TextSettingType([ "ws://localhost/subscribe/relay", "wss://relay.jkbff.com/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. " "Example: ws://relay.jkbff.com/subscribe/unique123 (<highlight>relay.jkbff.com</highlight> is the server and <highlight>unique123</highlight> is the channel)" ) 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( 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.initialize_encrypter( self.setting_service.get("websocket_encryption_key").get_value()) self.setting_service.register_change_listener( "websocket_relay_enabled", self.websocket_relay_update) self.setting_service.register_change_listener( "websocket_relay_server_address", self.websocket_relay_update) self.setting_service.register_change_listener( "websocket_encryption_key", self.websocket_relay_update)
def start(self): self.db.exec( "CREATE TABLE IF NOT EXISTS poll (id INT PRIMARY KEY AUTO_INCREMENT, question VARCHAR(1024) NOT NULL, duration INT NOT NULL, " "min_access_level VARCHAR(20) NOT NULL, char_id INT NOT NULL, created_at INT NOT NULL, finished_at INT NOT NULL, is_finished SMALLINT NOT NULL)" ) self.db.exec( "CREATE TABLE IF NOT EXISTS poll_choice (id INT PRIMARY KEY AUTO_INCREMENT, poll_id INT NOT NULL, choice VARCHAR(1024))" ) self.db.exec( "CREATE TABLE IF NOT EXISTS poll_vote (poll_id INT NOT NULL, choice_id INT NOT NULL, char_id INT NOT NULL)" ) self.setting_service.register( self.module_name, "poll_show_voters", True, BooleanSettingType(), "Show the list of characters that have voted for each poll option") self.command_alias_service.add_alias("vote", "poll")
def start(self): self.db.exec( "CREATE TABLE IF NOT EXISTS tower_attacker (id INT PRIMARY KEY AUTO_INCREMENT, att_org_name VARCHAR(50) NOT NULL, att_faction VARCHAR(10) NOT NULL, " "att_char_id INT, att_char_name VARCHAR(20) NOT NULL, att_level INT NOT NULL, att_ai_level INT NOT NULL, att_profession VARCHAR(15) NOT NULL, " "x_coord INT NOT NULL, y_coord INT NOT NULL, is_victory SMALLINT NOT NULL, " "tower_battle_id INT NOT NULL, created_at INT NOT NULL)") self.db.exec( "CREATE TABLE IF NOT EXISTS tower_battle (id INT PRIMARY KEY AUTO_INCREMENT, playfield_id INT NOT NULL, site_number INT NOT NULL, " "def_org_name VARCHAR(50) NOT NULL, def_faction VARCHAR(10) NOT NULL, is_finished INT NOT NULL, battle_type VARCHAR(20) NOT NULL, last_updated INT NOT NULL)" ) self.command_alias_service.add_alias("victory", "attacks") self.setting_service.register(self.module_name, "show_tower_attack_messages", True, BooleanSettingType(), "Show tower attack messages")
def start(self): self.setting_service.register( self.module_name, "arelay_symbol", "@", TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "Symbol for external relay") self.setting_service.register( self.module_name, "arelay_symbol_method", "with_symbol", TextSettingType(["Always", "with_symbol", "unless_symbol"]), "When to relay messages") self.setting_service.register(self.module_name, "arelay_bot", "", TextSettingType(allow_empty=True), "Bot for alliance relay") self.setting_service.register(self.module_name, "arelay_enabled", False, BooleanSettingType(), "Enable the alliance relay") self.setting_service.register(self.module_name, "arelay_guild_abbreviation", "", TextSettingType(allow_empty=True), "Abbreviation to use for org name") self.setting_service.register(self.module_name, "arelay_color", "#C3C3C3", ColorSettingType(), "Color of messages from relay") self.setting_service.register( self.module_name, "arelay_command_prefix", "!agcr", TextSettingType(["!agcr", "gcr", "grc"]), "Command prefix to use when sending and receiving messages") self.message_hub_service.register_message_destination( self.MESSAGE_SOURCE, self.handle_relay_hub_message, [ "org_channel", "org_channel_update", "private_channel", "private_channel_update", "discord" ], [self.MESSAGE_SOURCE]) self.bot.register_packet_handler( server_packets.PrivateChannelInvited.id, self.handle_private_channel_invite, 100) self.bot.register_packet_handler( server_packets.PrivateChannelMessage.id, self.handle_private_channel_message)
def prefix_priv(self): return BooleanSettingType()
def private_channel_relay_commands(self): return BooleanSettingType()
def start(self): self.setting_service.register( "core.system", "symbol", "!", TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "Symbol for executing bot commands") self.setting_service.register( "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( "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( "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( "core.system", "accept_commands_from_slave_bots", False, 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("core.colors", "header_color", "#FFFF00", ColorSettingType(), "Color for headers") self.setting_service.register("core.colors", "header2_color", "#FCA712", ColorSettingType(), "Color for sub-headers") self.setting_service.register("core.colors", "highlight_color", "#00BFFF", ColorSettingType(), "Color for highlight") self.setting_service.register("core.colors", "notice_color", "#FF8C00", ColorSettingType(), "Color for important notices") self.setting_service.register("core.colors", "neutral_color", "#E6E1A6", ColorSettingType(), "Color for neutral faction") self.setting_service.register("core.colors", "omni_color", "#FA8484", ColorSettingType(), "Color for omni faction") self.setting_service.register("core.colors", "clan_color", "#F79410", ColorSettingType(), "Color for clan faction") self.setting_service.register("core.colors", "unknown_color", "#FF0000", ColorSettingType(), "Color for unknown faction") self.setting_service.register("core.colors", "org_channel_color", "#89D2E8", ColorSettingType(), "Default org channel color") self.setting_service.register("core.colors", "private_channel_color", "#89D2E8", ColorSettingType(), "Default private channel color") self.setting_service.register("core.colors", "private_message_color", "#89D2E8", ColorSettingType(), "Default private message color") self.setting_service.register("core.colors", "blob_color", "#FFFFFF", ColorSettingType(), "Default blob content color") self.register_packet_handler(server_packets.PrivateMessage.id, self.handle_private_message, priority=40)
def vickrey_auction(self): return BooleanSettingType()
def use_item_icons(self): return BooleanSettingType()
def websocket_relay_enabled(self): return BooleanSettingType()
def include_read_on_logon(self): return BooleanSettingType()
def restart_notify(self): return BooleanSettingType()
def start(self): self.message_hub_service.register_message_destination( self.MESSAGE_SOURCE, self.handle_message_from_hub, [ "private_channel", "private_channel_update", "org_channel", "org_channel_update", "discord" ], [self.MESSAGE_SOURCE]) self.setting_service.register( self.module_name, "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(self.module_name, "websocket_relay_enabled", False, BooleanSettingType(), "Enable the websocket relay") self.setting_service.register( self.module_name, "websocket_relay_server_address", "wss://ws.nadybot.org", TextSettingType( ["ws://localhost/subscribe/relay", "wss://ws.nadybot.org"]), "The address of the websocket relay server (must be the same on all bots)", "Point this to a running instance of https://github.com/Nadybot/highway" ) self.setting_service.register( self.module_name, "websocket_relay_room", "", TextSettingType(allow_empty=True), "The name of the websocket room to join (must be the same on all bots)" ) 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( 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.initialize_encrypter( self.setting_service.get("websocket_encryption_key").get_value()) self.setting_service.register_change_listener( "websocket_relay_enabled", self.websocket_relay_update) self.setting_service.register_change_listener( "websocket_relay_server_address", self.websocket_relay_update) self.setting_service.register_change_listener( "websocket_encryption_key", self.websocket_relay_update) self.setting_service.register_change_listener( "websocket_relay_room", self.websocket_relay_update) self.setting_service.register( self.module_name, "websocket_symbol", "#", TextSettingType(["!", "#", "*", "@", "$", "+", "-"]), "Symbol for websocket relay") self.setting_service.register( self.module_name, "websocket_symbol_method", "Always", TextSettingType(["Always", "with_symbol", "unless_symbol"]), "When to relay messages")
def test_boolean_setting_type(self): Registry.add_instance("setting_service", MockSettingService()) setting = BooleanSettingType() setting.set_value("true") self.assertTrue(setting.get_value()) setting.set_value(True) self.assertTrue(setting.get_value()) setting.set_value("false") self.assertFalse(setting.get_value()) setting.set_value(False) self.assertFalse(setting.get_value()) self.assertRaises(Exception, lambda: setting.set_value("test"))
def start(self): 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" )
def expected_shutdown(self): return BooleanSettingType()
def relay_to_private(self): return BooleanSettingType()
def leader_auto_echo(self): return BooleanSettingType()
def relay_to_org(self): return BooleanSettingType()