web-dev-qa-db-fra.com

Discord Bot ne peut pas obtenir la chaîne par son nom

J'ai fait un bot de discorde et je voulais lui faire envoyer un message à un canal "Bienvenue" spécifique. Malheureusement, je n'ai pas pu le faire. J'ai essayé ça.

const welcomeChannel = bot.channels.get("name", "welcome")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);

Cependant dans ce "welcomeChannel n'est pas défini".

Éditer:

J'ai essayé d'utiliser

const welcomeChannel = bot.channels.get("id", "18NUMBERIDHERE")
welcomeChannel.sendMessage("Welcome\n"+member.user.username);

mais c'est encore indéfini, étrangement

7
Leo

Vous devez utiliser l'identifiant du canal au lieu de son nom.

Comment obtenir l'ID de canal d'un canal:

  1. Ouvrez vos paramètres Discord

  2. Accédez à Appearance

  3. Cocher Developer Mode (Et fermez les paramètres Discord)

  4. Faites un clic droit sur la chaîne souhaitée

  5. Il y a maintenant une option Copy ID pour copier l'ID de la chaîne

Consultez également la documentation discord.js pour les collections (canal)


De plus, votre approche ne fonctionnera pas car .get veut un identifiant de canal (voir la documentation liée ci-dessus). Si vous [~ # ~] voulez vraiment [~ # ~] obtenir une chaîne par son nom, utilisez .find au lieu de cela.
Ceci est cependant une très mauvaise idée dans le cas où votre bot s'exécute sur plusieurs serveurs car les noms de canaux peuvent maintenant apparaître plusieurs fois.

17
Der-Eddy

Vous pouvez aussi utiliser

bot.channels.find("name","welcome").send("Welcome!")
7
Razboy20