Skip to content Skip to sidebar Skip to footer

Return The Channel Id Of A Channel Mentioned In A Command

The title says all. I'm making a Discord bot in node.js, and one part that I'm trying to add is a .setup command, to make the bot less dependent on manually changing the value of c

Solution 1:

Here is the most easy and understandable way i found :

message.guild.channels.cache.get(args[0].replace('<#','').replace('>',''))

But it not really what we want we could use <#####9874829874##><<<547372>> and it will work. So i figured out this :

message.guild.channels.cache.get(args[0].substring(2).substring(0,18))

Solution 2:

I like to just remove all non-integers from the message, as this allows for both IDs and mentions to be used easily, and it will return the ID for you from that, as mentions are just IDs with <# and > around them. To do this you would use

message.content.replace(/\D/g,'')

With this, your code would look like this:

function setupChannel() {
  client.channels.get(setupChannelID).send('Alright. What channel would you like me to send my reminders to?');
  client.on('message', message => {
    checkChannel = message.content.replace(/\D/g,'');
    client.channels.get(setupChannelID).send('Ok. I\'ll send my reminders to <#' + checkChannel + '>.');
  });
}

From this you will always get an ID. And we can surround the ID to trun it into a mention.

Post a Comment for "Return The Channel Id Of A Channel Mentioned In A Command"