def ready_client_events(
self,
client: discord.Client,
load_config_fn: Callable[[], None],
on_ready_fn: Callable[[], None] = None
):
"""Set the code for event-handling in the discord.Client"""
@client.event
async def on_ready():
"""Called after the client has successfully logged in"""
await self.post_login_init(
client=client,
server_id=Config.SERVER_ID,
load_config_fn=load_config_fn
)
if on_ready_fn is not None:
await on_ready_fn(self)
@client.event
async def on_message(message: discord.Message):
"""Called whenever a new message is posted in any channel on any server"""
if not self._initted:
return
if Config.testing():
await msgqueue.send_message(message)
if message.author.id == self.client.user.id:
return
cmd = Command(message)
await self._execute(cmd)
# noinspection PyUnusedLocal
@client.event
async def on_error(event: str, *args, **kwargs):
"""Called when an event raises an uncaught exception"""
exc_info = sys.exc_info()
exc_type = exc_info[0].__name__ if exc_info[0] is not None else '<no exception>'
exc_what = str(exc_info[1]) if exc_info[1] is not None else ''
console.error(
'Uncaught exception {exc_type}: {exc_what}'.format(exc_type=exc_type, exc_what=exc_what)
)
# @client.event
# async def on_member_join(member: discord.Member):
# """Called when anyone joins the server"""
# if not self._initted:
# return
#
# await userdb.register_discord_user(member)
#
# @client.event
# async def on_member_update(member_before: discord.Member, member_after: discord.Member):
# """Called when anyone updates their discord profile"""
# if not self._initted:
# return
#
# if member_before.display_name != member_after.display_name:
# await userdb.register_discord_user(member_after)
评论列表
文章目录