Я работал над ботом разногласий, написанным на python. И я пытался заставить своего бота сказать сообщение, когда пользователь присоединяется к серверу и покидает сервер. Но когда я проверил это, я получил 2 ошибки, которые я не понимаю ошибки. И я не уверен, что я сделал не так. Если бы кто-нибудь мог помочь объяснить эти ошибки и указать правильное направление для моего кода, я был бы очень признателен.
Я посмотрел на api для перезаписи и проверил его на своем сервере с другом, когда я получил ошибки
@client.event
async def on_member_join(member):
channel = member.server.get_channel("499457708978864151")
msg = 'Welcome to the {1.name} Server, {0.mention}'
await client.say(channel, msg.format(member, member.server))
@client.event
async def on_member_remove(member):
channel = member.server.get_channel("499457708978864151")
msg = '{0.mention} has left the server'
await client.say((channel, msg.format(member, member.server)))
Я ожидал, что мой бот скажет: «Добро пожаловать на (имя сервера) сервера», @username при входе на сервер, и @username покинул сервер, когда пользователь вышел, но я получил эти ошибки:
TypeError: send_message() takes from 2 to 3 positional arguments but 4 were given
discord.errors.InvalidArgument: Destination must be Channel, PrivateChannel, User, or Object. Received NoneType
Вот мой полный след
Ignoring exception in on_member_join
Traceback (most recent call last):
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "C:/Users/Chris/PycharmProjects/untitled1/RomaniBot.py", line 37, in on_member_join
await client.say(channel, msg.format(member, member.server))
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\ext\commands\bot.py", line 350, in say
coro = self.send_message(destination, *args, **kwargs)
TypeError: send_message() takes from 2 to 3 positional arguments but 4 were given
Ignoring exception in on_member_remove
Traceback (most recent call last):
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "C:/Users/Chris/PycharmProjects/untitled1/RomaniBot.py", line 43, in on_member_remove
await client.say((channel, msg.format(member, member.server)))
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\ext\commands\bot.py", line 309, in _augmented_msg
msg = yield from coro
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\client.py", line 1145, in send_message
channel_id, guild_id = yield from self._resolve_destination(destination)
File "C:\Users\Chris\PycharmProjects\untitled1\venv\lib\site-packages\discord\client.py", line 289, in _resolve_destination
raise InvalidArgument(fmt.format(destination))
discord.errors.InvalidArgument: Destination must be Channel, PrivateChannel, User, or Object. Received NoneType