2017-10-10 4 views
0

Mon code actuel estDiscord.py inopérants les arguments à l'intérieur member.server_default_channel

@client.event 
async def on_member_join(member): 
    serverchannel = member.server.default_channel 
    msg = "Wuss poppin', {0}. Welcome to {1}".format(member.mention, member.server.name) 
    await client.send_message(member.server.default_channel, msg)` 

@client.event 
async def on_member_remove(member): 
    serverchannel = member.server.default_channel 
    msg = "Well. Cya, {0}!".format(member.mention) 
    await client.send_message(serverchannel, msg) 

Outre les autres lignes nécessaires (comme import discord etc.) et d'autres commandes.

Lorsqu'un membre rejoint ou quitte, je reçois cette erreur:

Ignoring exception in on_member_join 
Traceback (most recent call last): 
    File "C:\Users\WillL\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 307, in _run_event 
    yield from getattr(self, event)(*args, **kwargs) 
    File "C:/Users/WillL/Desktop/MemzBot-master/index.py", line 102, in on_member_join 
    await client.send_message(member.server.default_channel, msg) 
    File "C:\Users\WillL\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 1145, in send_message 
    channel_id, guild_id = yield from self._resolve_destination(destination) 
    File "C:\Users\WillL\AppData\Local\Programs\Python\Python36\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 

Je ne comprends pas pourquoi, qu'est-ce que je manque?

Répondre

1

Default channels no longer exist. Cela signifie 2 choses:

  1. server.default_channel peut renvoyer un NoneType.
  2. L'envoi d'un message à server peut déclencher discord.NotFound.

Ces cas se produiront sur tous les serveurs créés après le 3 août ou sur tous les serveurs ayant supprimé leur canal "par défaut".

Vous devez choisir vous-même un canal ou demander au serveur de définir un canal pour le message de bienvenue. Vous pouvez toujours tenter d'envoyer au serveur, mais assurez-vous que vous avez une option de repli en cas d'échec.

0

Les canaux par défaut ne sont plus une chose.