Added !orglist cancel

fix for !whois <char_id>
added logging for invalid ORG_MSG_EVENT's
This commit is contained in:
2022-05-09 19:47:26 +02:00
parent 3cade228fe
commit 43918066a9
8 changed files with 107 additions and 42 deletions
@@ -1,4 +1,5 @@
import time
import typing
from functools import partial
from core.aochat.server_packets import BuddyAdded, CharacterName
@@ -8,10 +9,11 @@ from core.command_request import CommandRequest
from core.db import DB
from core.decorators import instance, command, timerevent
from core.dict_object import DictObject
from core.lookup.pork_service import PorkService
from core.text import Text
from core.igncore import IgnCore
if typing.TYPE_CHECKING:
from core.job_scheduler import JobScheduler
from core.lookup.pork_service import PorkService
from core.text import Text
from core.igncore import IgnCore
@instance()
class CharacterInfoController:
@@ -31,6 +33,7 @@ class CharacterInfoController:
self.account_service = registry.get_instance("account_service")
self.buddy_service = registry.get_instance("buddy_service")
self.alts_controller = registry.get_instance("alts_controller")
self.jobs: JobScheduler = registry.get_instance("job_scheduler")
def pre_start(self):
self.bot.register_packet_handler(CharacterName.id, self.character_name_update)
@@ -60,6 +63,16 @@ class CharacterInfoController:
if dimension == self.bot.dimension and char.char_id:
online_status = self.buddy_service.is_online(char.char_id)
if online_status is None:
if str(char.char_id) == char.name:
def a(_):
if char.char_id in self.waiting_for_update.keys():
del self.waiting_for_update[char.char_id]
if not self.waiting_for_update:
self.bot.remove_packet_handler(BuddyAdded.id, self.handle_buddy_status)
self.buddy_service.remove_buddy(char.char_id, self.BUDDY_IS_ONLINE_TYPE)
request.reply(f"Could not find character <highlight>{char.name}</highlight> on RK{dimension}. Lookup failed.")
self.jobs.delayed_job(a, 5)
self.bot.register_packet_handler(BuddyAdded.id, self.handle_buddy_status)
self.waiting_for_update[char.char_id] = \
DictObject({"char_id": char.char_id, "name": char.name,