module.exports.run = async (bot, message, args) => {
let ticketreason = args[1];
let ticketname = "ticket" + ticketreason;
message.guild.createChannel("tickets", "category")
message.guild.createChannel(ticketname, "text");
}
So I've got this very simple and basic code here. I am trying to find a way to check if a channel exists before creating it. I've attempted to search around the discord.js documentation a few times for a solution, but I've had no luck so far. I need an explanation for how I can achieve this.
module.exports.run = async (bot, message, args) => {
let ticketreason = args[1];
let ticketname = "ticket" + ticketreason;
message.guild.createChannel("tickets", "category")
message.guild.createChannel(ticketname, "text");
}
So I've got this very simple and basic code here. I am trying to find a way to check if a channel exists before creating it. I've attempted to search around the discord.js documentation a few times for a solution, but I've had no luck so far. I need an explanation for how I can achieve this.
Share Improve this question edited Feb 24, 2018 at 14:46 newbie 1,5711 gold badge13 silver badges21 bronze badges asked Feb 24, 2018 at 12:07 Josh BowkerJosh Bowker 111 gold badge1 silver badge2 bronze badges3 Answers
Reset to default 2You can use <Guild>.channels
, which returns a collection of GuildChannels, from this collection you can use <Colection>.exists()
to check if the channel already exists in the guild.
So something like this:
if (message.guild.channels.exists('name', ticketname)) { //checks if there in an item in the channels collection that corresponds with the supplied parameters, returns a boolean
message.reply(`The ${ticketname} channel already exists in this guild.`).catch(console.error);
return; //prevents the rest of the code from being executed
}
// Code that creates the channel {ticketname}...
I do it in the following way, and I go through each of the channels.
let nameOfChannel = "lista-" + message.author.username.toLowerCase();
// Check if channel exist
if ((message.guild.channels.cache.find(c => c.name.toLowerCase() === nameOfChannel))) {
---- code continue here----
You can do this by checking for the id. While this might not resolve this particular issue, it might help others with a similar issue.:
var chan_id;
if(message.guild.channels.cache.get(chan_id) === undefined) {
//checks if the channel doesn't exist
//put the action to take here
}
//continue your code here