Esempio n. 1
0
 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?")
Esempio n. 2
0
    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)
Esempio n. 3
0
    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")
Esempio n. 4
0
    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)
Esempio n. 5
0
    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"
        )
Esempio n. 6
0
    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)
Esempio n. 7
0
    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")
Esempio n. 8
0
    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"
        )
Esempio n. 9
0
    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)
Esempio n. 11
0
    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")
Esempio n. 12
0
    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")
Esempio n. 13
0
    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)
Esempio n. 14
0
 def prefix_priv(self):
     return BooleanSettingType()
Esempio n. 15
0
 def private_channel_relay_commands(self):
     return BooleanSettingType()
Esempio n. 16
0
    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)
Esempio n. 17
0
 def vickrey_auction(self):
     return BooleanSettingType()
Esempio n. 18
0
 def use_item_icons(self):
     return BooleanSettingType()
Esempio n. 19
0
 def websocket_relay_enabled(self):
     return BooleanSettingType()
Esempio n. 20
0
 def include_read_on_logon(self):
     return BooleanSettingType()
Esempio n. 21
0
 def restart_notify(self):
     return BooleanSettingType()
Esempio n. 22
0
    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")
Esempio n. 23
0
    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"))
Esempio n. 24
0
 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"
     )
Esempio n. 25
0
 def expected_shutdown(self):
     return BooleanSettingType()
Esempio n. 26
0
 def relay_to_private(self):
     return BooleanSettingType()
Esempio n. 27
0
 def leader_auto_echo(self):
     return BooleanSettingType()
Esempio n. 28
0
 def relay_to_org(self):
     return BooleanSettingType()