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:
@@ -1,3 +1,4 @@
|
||||
import time
|
||||
from typing import List
|
||||
|
||||
from core.chat_blob import ChatBlob
|
||||
@@ -8,10 +9,11 @@ from core.util import Util
|
||||
|
||||
|
||||
class OnlineDisplay:
|
||||
def __init__(self, text, util, db):
|
||||
def __init__(self, text, util, db, afk_list={}):
|
||||
self.text: Text = text
|
||||
self.util: Util = util
|
||||
self.db: DB = db
|
||||
self.afk_list = afk_list
|
||||
|
||||
def get_online_players(self, order, group="", params=None):
|
||||
return self.db.query(f"SELECT r.*, "
|
||||
@@ -68,10 +70,11 @@ class OnlineDisplay:
|
||||
blob += f"\n\n<tab><notice>.:: <header>{self.get_channel_name(channel_id)}</header> ::.</notice>"
|
||||
main_id = 0
|
||||
in_org_priv.append(player.char_id)
|
||||
|
||||
afk = self.afk_list.get(player.char_id, None)
|
||||
if main_id != player.main_id:
|
||||
main_id = player.main_id
|
||||
blob += f"\n<highlight>{player.main_name}</highlight>{rank}:\n"
|
||||
afk = "" if not afk else f" [<notice>{afk.message} - since {self.util.time_to_readable(int(time.time() - afk.time))}</notice>]"
|
||||
blob += f"\n<highlight>{player.main_name}</highlight>{rank}:{afk}\n"
|
||||
if channel_id == 1:
|
||||
org += 1
|
||||
elif channel_id == 2:
|
||||
@@ -109,18 +112,20 @@ class OnlineDisplay:
|
||||
blob += f"\n\n<tab><notice>.:: <header>{self.get_channel_name(channel_id)}</header> ::.</notice>"
|
||||
profession = 0
|
||||
in_org_priv.append(player.char_id)
|
||||
afk = self.afk_list.get(player.char_id, None)
|
||||
afk = "" if not afk else f" [<notice>{afk.message} - since {self.util.time_to_readable(int(time.time() - afk.time))}</notice>]"
|
||||
|
||||
if profession != player.profession:
|
||||
profession = player.profession
|
||||
blob += f"\n<highlight>{player.profession}</highlight>:\n"
|
||||
if channel_id == 1:
|
||||
blob += self.format_org(player, rank, main_order=True)
|
||||
blob += self.format_org(player, rank, afk, main_order=True)
|
||||
org += 1
|
||||
elif channel_id == 2:
|
||||
blob += self.format_priv(player, rank, main_order=True)
|
||||
blob += self.format_priv(player, rank, afk, main_order=True)
|
||||
priv += 1
|
||||
elif channel_id == 3:
|
||||
blob += self.format_notify(player, rank, main_order=True)
|
||||
blob += self.format_notify(player, rank, afk, main_order=True)
|
||||
notify += 1
|
||||
return blob, org, priv, notify
|
||||
|
||||
@@ -161,25 +166,25 @@ class OnlineDisplay:
|
||||
elif c_id == 3:
|
||||
return "Buddylist"
|
||||
|
||||
def format_org(self, player, rank="", main_order=False):
|
||||
def format_org(self, player, rank="", afk="", main_order=False):
|
||||
main = f"[{self.text.make_tellcmd(player.main_name, f'alts {player.main_name}')}]" if main_order else ""
|
||||
return f" {self.util.get_prof_icon(player.profession)} {rank}" \
|
||||
f"{self.text.zfill(player.level, 220)}/<green>{self.text.zfill(player.ai_level, 30)}</green> " \
|
||||
f"<{player.faction.lower()}>{player.name}</{player.faction.lower()}> ({player.org_rank_name}) {main}\n"
|
||||
f"<{player.faction.lower()}>{player.name}</{player.faction.lower()}> ({player.org_rank_name}){afk} {main}\n"
|
||||
|
||||
def format_priv(self, player, rank="", main_order=False):
|
||||
def format_priv(self, player, rank="", afk="", main_order=False):
|
||||
main = f"[{self.text.make_tellcmd(player.main_name, f'alts {player.main_name}')}]" if main_order else ""
|
||||
return f" {self.util.get_prof_icon(player.profession)} {rank}" \
|
||||
f"{self.text.zfill(player.level, 220)}/<green>{self.text.zfill(player.ai_level, 30)}</green> " \
|
||||
f"<{player.faction.lower()}>{player.name}</{player.faction.lower()}> " \
|
||||
f"({player.org_name}|{player.org_rank_name}) {main}\n"
|
||||
f"({player.org_name}|{player.org_rank_name}){afk} {main}\n"
|
||||
|
||||
def format_notify(self, player, rank="", main_order=False):
|
||||
def format_notify(self, player, rank="", afk="", main_order=False):
|
||||
main = f"[{self.text.make_tellcmd(player.main_name, f'alts {player.main_name}')}]" if main_order else ""
|
||||
return f" {self.util.get_prof_icon(player.profession)} {rank}" \
|
||||
f"{self.text.zfill(player.level, 220)}/<green>{self.text.zfill(player.ai_level, 30)}</green> " \
|
||||
f"<{player.faction.lower()}>{player.name}</{player.faction.lower()}> " \
|
||||
f"({player.org_name}|{player.org_rank_name}) {main}\n"
|
||||
f"({player.org_name}|{player.org_rank_name}){afk} {main}\n"
|
||||
|
||||
def count_prof(self, query, params, filters):
|
||||
if filters:
|
||||
|
||||
Reference in New Issue
Block a user