Initial Release of IGNCore version 2.5

This commit is contained in:
2021-08-09 13:18:56 +02:00
commit a83d98c47e
910 changed files with 224171 additions and 0 deletions
@@ -0,0 +1,57 @@
from core.aochat import server_packets
from core.conn import Conn
from core.decorators import instance, command, event
from core.logger import Logger
from modules.standard.online.online_controller import OnlineController
@instance(name="online_controller", override=True)
class OrgOnlineController(OnlineController):
MESSAGE_SOURCE = 'RELAY_LOGGER'
def __init__(self):
super().__init__()
def inject(self, registry):
super().inject(registry)
self.logger = Logger('relay')
self.character_service = registry.get_instance("character_service")
self.event_service = registry.get_instance("event_service")
@event("connect", 'Add bots as members')
def connect_event(self, _, _1):
for bot in self.db.query('SELECT * FROM account where disabled = 0'):
self.buddy_service.add_buddy(bot.char_id, 'member')
@command(command="online", params=[],
description="shows online players",
access_level="member")
def online_all_cmd(self, request):
query = "and channel_id IN (1, 2) "
params = [self.bot.name, self.bot.get_char_id()]
blob = self.online_display.format_by_channel_prof(query, params)
self.bot.send_mass_message(request.sender.char_id, self.online_display.format_blob(blob))
def pre_start(self):
super().pre_start()
self.bot.register_packet_handler(server_packets.PrivateChannelClientJoined.id,
self.handle_private_channel_client_joined)
self.bot.register_packet_handler(server_packets.PrivateChannelClientLeft.id,
self.handle_private_channel_client_left)
self.bot.register_packet_handler(server_packets.PrivateChannelMessage.id,
self.handle_private_channel_message)
def handle_private_channel_message(self, conn: Conn, packet: server_packets.PrivateChannelMessage):
char_name = self.character_service.get_char_name(packet.char_id)
if packet.private_channel_id == conn.char_id:
self.logger.log_chat(conn, "PG", char_name, packet.message)
def handle_private_channel_client_joined(self, conn: Conn, packet: server_packets.PrivateChannelClientJoined):
char_name = self.character_service.get_char_name(packet.char_id)
if packet.private_channel_id == conn.char_id:
self.logger.log_chat(conn, "PG", None, f"{char_name} joined the channel.")
def handle_private_channel_client_left(self, conn: Conn, packet: server_packets.PrivateChannelClientLeft):
char_name = self.character_service.get_char_name(packet.char_id)
if packet.private_channel_id == conn.char_id:
self.logger.log_chat(conn, "PG", None, f"{char_name} left the channel.")