Added afk/brb

Timer messages ("Timer XX has yyy left") now get resumed after a bot restart
Alliance relay is discord compatible now. [Orgbot]
This commit is contained in:
2021-10-26 22:35:31 +02:00
parent bd8055dac7
commit 2d7ecf4883
14 changed files with 119 additions and 48 deletions
@@ -122,18 +122,18 @@ class AccountService:
self.event_service.register_event_type(self.MEMBER_LOGON)
self.event_service.register_event_type(self.MEMBER_LOGOFF)
self.setting_service.register(self.module_name, "is_alliance_bot", False, BooleanSettingType(),
"Is this bot used as an alliancebot")
"Is this bot used as an alliancebot")
self.setting_service.register(self.module_name, "alt_verification", False, BooleanSettingType(),
"alts require admin verification")
"alts require admin verification")
# Default preferences
self.setting_service.register(self.module_name, "pref_autoinvite", False, BooleanSettingType(),
"Default Value for the auto invite preference")
"Default Value for the auto invite preference")
self.setting_service.register(self.module_name, "pref_raidinvite", True, BooleanSettingType(),
"Default Value for the raid invite (Massinvite) preference")
"Default Value for the raid invite (Massinvite) preference")
self.setting_service.register(self.module_name, "pref_raidspam", True, BooleanSettingType(),
"Default Value for the raid spam (Mass Message) preference")
"Default Value for the raid spam (Mass Message) preference")
self.setting_service.register(self.module_name, "pref_newsspam", True, BooleanSettingType(),
"Default Value for the news spam (News on logon) preference")
"Default Value for the news spam (News on logon) preference")
v = self.setting_service.get_value("pref_raidspam")
# Ranks
@@ -316,6 +316,7 @@ class AccountService:
try:
def del_orgs(_):
del self.orgs
self.orgs = [x["org_id"] for x in self.db.query("SELECT * from orgs", [])]
self.bot.job_scheduler.delayed_job(del_orgs, 60)
return self.orgs
@@ -331,6 +332,7 @@ class AccountService:
try:
def del_orgs(_):
del self.org_names
self.orgs = [x["org_name"] for x in self.db.query("SELECT * from orgs o "
"LEFT JOIN all_orgs a on o.org_id = ao.org_id", [])]
self.bot.job_scheduler.delayed_job(del_orgs, 60)
+4 -2
View File
@@ -108,7 +108,7 @@ class DiscordController:
def pre_start(self):
self.setting_service.register(self.module_name, "discord_token", "", HiddenSettingType(allow_empty=True),
"Enter your Discord token here")
"Enter your Discord token here")
def get_name(self, discord_id):
data = self.db.query_single(
@@ -584,6 +584,7 @@ class DiscordController:
return
channel: TextChannel = msg.channel
if channel.id == int(self.setting_service.get_value("dc_relay_public")):
if self.setting_service.get_value('is_alliance_bot') == "0":
response = f"[<notice>{html.escape(msg.author.nick if msg.author.nick else msg.author.name, False)}" \
f"</notice>]: " \
@@ -592,7 +593,8 @@ class DiscordController:
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)
self.relay_hub_service.send_message("public_relay", [msg.author.nick, msg.author], response, response)
sender = self.db.query_single("SELECT * from account a left join player p on a.main = p.char_id where a.discord_id = ?", [msg.author.id])
self.relay_hub_service.send_message("public_relay", sender, html.escape(emojis.decode(msg.clean_content), False), response)
if self.is_command(msg.content):
admin = self.get_role("Administrator", self.guild.roles)
@@ -42,6 +42,7 @@ class PrivateChannelController:
self.account_service: AccountService = registry.get_instance("account_service")
self.db: DB = registry.get_instance("db")
self.priv: PrivateChannelService = registry.get_instance("private_channel_service")
self.online_controller = registry.get_instance("online_controller", is_optional=True)
def pre_start(self):
self.db.create_view("online")
@@ -205,6 +206,10 @@ class PrivateChannelController:
msg = f"{self.text.format_char_info(self.pork.get_character_info(event_data.char_id))} joined us {info}"
self.bot.send_private_channel_message(msg, fire_outgoing_event=False)
self.message_hub_service.send_message(self.MESSAGE_SOURCE, None, msg, self.PRIVATE_CHANNEL_PREFIX + msg)
afk_list = {}
if self.online_controller:
afk_list = self.online_controller.afk_list
od = OnlineDisplay(self.text, self.util, self.db, afk_list)
od = OnlineDisplay(self.text, self.util, self.db)
params = [self.bot.name, self.bot.get_char_id()]
self.bot.send_mass_message(event_data.char_id,