Discord Bot Can't Get Channel by Name

2019-01-20 11:13发布

问题:

I have been making a discord bot and wanted to make it send a message to a specific "Welcome" channel. Unfortunately, I have been unable to do so. I tried this.

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

However in this "welcomeChannel is undefined".

Edit:

I tried using

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

but this is still undefined, strangely

回答1:

You should use the channnel id instead of it's name.

How to get the channel id of a channel:

  1. Open up your Discord Settings

  2. Go to Appearance

  3. Tick Developer Mode (And close the Discord settings)

  4. Right click on your desired channel

  5. Now there's an option Copy ID to copy the channel id

Also checkout the discord.js documentation for (channel) collections


Furthermore your approach won't work because .get wants a channel id (see the linked documentation above). In case you REALLY want to get an channel by its name, use .find instead for that.
This is however a really bad idea in case your bot runs on more than one server since channel names can now occur multiple times.



回答2:

You can also use

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