Fix for mrelay, and blobs. (Spotted by Luckycharmmz/VA - ty for the fixing assistance!)

Orgmembers will nolonger get invited into the priv channel of their orgbot.. (on reboot only)
Added Nickname to !history (only useful for !history char_id>)
This commit is contained in:
2021-10-10 00:47:34 +02:00
parent 25eb552590
commit fc68950ade
8 changed files with 23 additions and 11 deletions
+1 -1
View File
@@ -641,7 +641,7 @@ class DiscordController:
self.setting_service.set_value(out, msg.channel.id)
self.send_message(msg.channel.id, Embed(color=3066993, title="Channel Guard",
description=f"This channel has been "
f"subscriped to the source {out}."))
f"subscribed to the source {out}."))
def send_message(self, channel: int, message, delete=0):
if self.client.is_ready():
@@ -83,8 +83,10 @@ class PrivateChannelController:
if data.packet.char_id not in self.reinvite:
account = data.account
if account.disabled == 1:
pass
elif account.auto_invite == 1:
return
if account.member == self.bot.public_channel_service.org_id:
return
if account.auto_invite == 1:
self.reinvite.append(data.packet.char_id)
return
if self.private_channel_service.in_private_channel(data.packet.char_id):
@@ -333,6 +333,7 @@ class AllianceRelay:
self.logger.warning("##FIX ME## No relay command set!")
if message[:len(rcmd)] != rcmd:
return
message = message.replace("\n", "<br>")
message = re.match(f"{rcmd} \[(.+?)\] (.+?): (.+)", message)
if not message:
return
+9 -1
View File
@@ -190,22 +190,30 @@ class OrgRosterController:
@event(PublicChannelService.ORG_MSG_EVENT, "Update org roster when characters join or leave", is_hidden=True)
def org_msg_event(self, _, event_data):
ext_msg = event_data.extended_message
log = False
if [ext_msg.category_id, ext_msg.instance_id] == self.LEFT_ORG:
log = True
self.process_org_msg(ext_msg.params[0], self.MODE_REM_MANUAL, ext_msg)
elif [ext_msg.category_id, ext_msg.instance_id] == self.KICKED_FROM_ORG:
log = True
self.process_org_msg(ext_msg.params[1], self.MODE_REM_MANUAL, ext_msg.params[0])
elif [ext_msg.category_id, ext_msg.instance_id] == self.INVITED_TO_ORG:
log = True
self.process_org_msg(ext_msg.params[1], self.MODE_ADD_MANUAL, ext_msg.params[0])
elif [ext_msg.category_id, ext_msg.instance_id] == self.KICKED_INACTIVE_FROM_ORG:
log = True
self.process_org_msg(ext_msg.params[1], self.MODE_REM_MANUAL, ext_msg.params[0])
elif [ext_msg.category_id, ext_msg.instance_id] == self.KICKED_ALIGNMENT_CHANGED:
log = True
self.process_org_msg(ext_msg.params[0], self.MODE_REM_MANUAL)
elif [ext_msg.category_id, ext_msg.instance_id] == self.JOINED_ORG:
log = True
self.process_org_msg(ext_msg.params[0], self.MODE_ADD_MANUAL)
# This just writes everything to the log.... also tower messages, and so on. mainly for debugging reasons,
# may change in the future.
# noinspection SqlInsertValues
self.db.exec("INSERT INTO org_activity (message, time) VALUES(?, ?)", [ext_msg.get_message(), time.time()])
if log:
self.db.exec("INSERT INTO org_activity (message, time) VALUES(?, ?)", [ext_msg.get_message(), time.time()])
def process_org_msg(self, char_name, new_mode, actee=None):
char_id = self.character_service.resolve_char_to_id(char_name)
@@ -191,9 +191,10 @@ class TowerAttackController:
self.tower.format_site_info(row))
attacker = self.text.format_char_info(event_data.attacker)
add = ""
if account := self.account_service.get_account(event_data.attacker.char_id):
if self.account_service.simple_checks(account):
add = " :: <red>He's a <myname> Raider!</red>"
# Disable for now...
# if account := self.account_service.get_account(event_data.attacker.char_id) and event_data.defender.org_name in self.account_service.get_org_names():
# if self.account_service.simple_checks(account):
# add = " :: <red>He's a <myname> Raider!</red>"
self.bot.send_private_channel_message(
f"[<cyan>NW</cyan>] "
f"<{event_data.defender.faction.lower()}>"
+1 -1
View File
@@ -168,7 +168,7 @@ class PollController:
"ORDER BY finished_at, id", [event_data.account.char_id])
if data:
row = data[0]
self.bot.send_private_message(event_data.char_info.char_id, self.show_poll_details_blob(row))
self.bot.send_private_message(event_data.packet.char_id, self.show_poll_details_blob(row))
def create_scheduled_jobs_for_polls(self):
data = self.db.query("SELECT * FROM poll WHERE is_finished != 1")
@@ -36,7 +36,7 @@ class CharacterHistoryController:
else:
return f"Could not find history for <highlight>{char.name}</highlight> " \
f"on server <highlight>{server_num}</highlight>."
blob = " | ".join(["Date", "Lvl", "AI", "Side", "Breed", "CharId", "Guild (Rank)"]) + "\n"
blob = " | ".join(["Date", "Lvl", "AI", "Side", "Breed", "CharId", "Name", "Guild (Rank)"]) + "\n"
blob += "__________________________________________________________\n"
return self.text.format_pagination(data, offset, page, self.formatter,
f'History of {char.name} (RK{server_num})',
@@ -54,5 +54,5 @@ class CharacterHistoryController:
return "<red>DELETED</red>\n"
return f"{last_changed} | <white>{self.text.zfill(int(row.level), 220)}</white> | " \
f"<green>{self.text.zfill(int(row.defender_rank or 0), 30)}</green> | {row.faction:^7} | " \
f"{row.breed:^10} | {self.text.zfill(int(row.char_id or 0), int(data[0].char_id or 0))} | " \
f"{row.breed:^10} | {self.text.zfill(int(row.char_id or 0), int(data[0].char_id or 0))} | {row.nickname:^13} | " \
f"<white>{org}</white>\n"