Fixed:
-> !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:
@@ -4,18 +4,20 @@ from core.buddy_service import BuddyService
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Character, Multiple
|
||||
from core.db import DB, SqlException
|
||||
from core.decorators import instance, command, event
|
||||
from core.decorators import instance, command, event, setting
|
||||
from core.dict_object import DictObject
|
||||
from core.igncore import IgnCore
|
||||
from core.lookup.character_service import CharacterService
|
||||
from core.lookup.pork_service import PorkService
|
||||
from core.private_channel_service import PrivateChannelService
|
||||
from core.setting_service import SettingService
|
||||
from core.setting_types import BooleanSettingType
|
||||
from core.text import Text
|
||||
from core.translation_service import TranslationService
|
||||
from core.igncore import IgnCore
|
||||
from core.util import Util
|
||||
from modules.core.accounting.services.account_service import AccountService
|
||||
from modules.core.ban.ban_service import BanService
|
||||
from modules.orgbot.org.org_controller import OrgChannelController
|
||||
from modules.standard.online.online_display import OnlineDisplay
|
||||
|
||||
|
||||
@@ -76,7 +78,14 @@ class PrivateChannelController:
|
||||
return hjson.load(f)
|
||||
|
||||
def handle_incoming_relay_message(self, ctx):
|
||||
self.bot.send_private_channel_message(ctx.formatted_message, fire_outgoing_event=False)
|
||||
if not self.display_main().get_value() == "1" and ctx.source == "org_channel" and ctx.sender:
|
||||
name = f"{OrgChannelController.ORG_CHANNEL_PREFIX} <yellow>{ctx.sender.name}</yellow>"
|
||||
if account := self.account_service.get_account(ctx.sender.char_id):
|
||||
if account.main != ctx.sender.char_id:
|
||||
name += f" (<yellow>{account.name}</yellow>)"
|
||||
self.bot.send_private_channel_message(name + ": " + ctx.message, fire_outgoing_event=False)
|
||||
else:
|
||||
self.bot.send_private_channel_message(ctx.formatted_message, fire_outgoing_event=False)
|
||||
|
||||
@event(event_type="member_logon", description="Send autoinvites to players logging in")
|
||||
def logon_event(self, _, data):
|
||||
@@ -85,7 +94,7 @@ class PrivateChannelController:
|
||||
account = data.account
|
||||
if account.disabled == 1:
|
||||
return
|
||||
if account.member == self.bot.public_channel_service.org_id:
|
||||
if self.pork.get_character_info(data.packet.char_id).org_id == self.bot.public_channel_service.org_id:
|
||||
return
|
||||
if account.auto_invite == 1:
|
||||
self.reinvite.append(data.packet.char_id)
|
||||
@@ -210,7 +219,7 @@ class PrivateChannelController:
|
||||
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)
|
||||
# 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,
|
||||
od.format_blob(od.format_by_channel_prof("and channel_id IN (1, 2) ", params)))
|
||||
@@ -248,3 +257,7 @@ class PrivateChannelController:
|
||||
None,
|
||||
message,
|
||||
message)
|
||||
|
||||
@setting(name="display_main", value="false", description="Should the main be displayed in relayed messages")
|
||||
def display_main(self) -> BooleanSettingType:
|
||||
return BooleanSettingType()
|
||||
|
||||
Reference in New Issue
Block a user