-> !wants
-> !orgs info
-> special cmd's
-> !assist
-> "afk" for players without active account
-> !loot add <item_ref> <count> => nolonger breaks !account
Changes:
-> grouped !tara, !gaunt, .. into !wb
-> Display the most recent news entry on logon (default: enabled)
-> improved grouping of !items
-> Added the option to authentificate WS connections (Datanet module). This is used in special cases, where the Websocket Server requires the clien tto authentificate itself. (Server sends "#auth", client responds with the auth string)
-> Add main name to relaying (priv <-> org) [default: disabled]
-> Added logon/logoff messages back
-> restricted default access to "dangerous" commands to moderator
-> Added optional logging (Private Channel, Org Channel, Tells, ... disabled by default)

Rewrite of the Tower Module.
-> More verbosity, if enabled in config. by default, GAS and Hot timer only.
-> !hot displays currently hot (and in penalty) sites, and these which go hot in < 60 minutes
-> !attacks filterable by PF and Site
-> display current contract QL's grouped by org: !contracts (requires managed cache)
This commit is contained in:
2021-11-25 14:09:43 +01:00
parent 2d7ecf4883
commit 17c776faec
44 changed files with 1669 additions and 1249 deletions
@@ -1,12 +1,13 @@
from core.aochat import server_packets, client_packets
from core.conn import Conn
from core.decorators import instance
from core.igncore import IgnCore
from core.logger import Logger
from core.lookup.character_service import CharacterService
from core.setting_service import SettingService
from core.setting_types import TextSettingType, BooleanSettingType, ColorSettingType
from core.text import Text
from core.igncore import IgnCore
from modules.onlinebot.online.org_alias_controller import OrgAliasController
@instance("AllianceRelayController")
@@ -25,6 +26,7 @@ class AllianceRelayController:
self.message_hub_service = registry.get_instance("message_hub_service")
self.public_channel_service = registry.get_instance("public_channel_service")
self.text: Text = registry.get_instance("text")
self.alias_controller: OrgAliasController = registry.get_instance("org_alias_controller")
def pre_start(self):
self.message_hub_service.register_message_source(self.MESSAGE_SOURCE)
@@ -87,21 +89,21 @@ class AllianceRelayController:
if not self.setting_service.get("arelay_enabled").get_value():
return
plain_msg = ctx.message or ctx.formatted_message
plain_msg = ctx.message
invite = self.text.make_chatcmd("click here", "/tell <myname> discord invite",
style="style='text-decoration:none'")
name = f"[{self.alias_controller.get_alias(ctx.sender.org_id)}] {ctx.sender.name}"
blob = self.text.format_page('Info',
f"<header>::: Information :::</header><br><br>"
f"This message has been sent to you by:<br><br>"
f"<header2>Igncom</header2><br>"
f"<notice>{ctx.sender[1].name + '#' + ctx.sender[1].discriminator}</notice><br>"
f"<highlight>{ctx.sender[0]}</highlight> on Alliance Discord.<br><br>"
f"<notice>{ctx.sender.discord_handle}</notice><br>"
f"<highlight>{name}</highlight> on Alliance Discord.<br><br>"
f"To reply, either respond in the relay or "
f"contact them directly at the provided handles.<br><br>"
f"<header2>Have you joined The Alliance Discord yet? "
f"If not <highlight>{invite}</highlight> to receive an invite.</header2>")
self.send_message_to_alliance(plain_msg + f" <yellow>[{blob}]</yellow>")
self.send_message_to_alliance(f"{name}: {plain_msg}" + f" <yellow>[{blob}]</yellow>")
def send_message_to_alliance(self, msg):
if self.relay_channel_id: