Reputation: 29
people of the internet! I am quite new to programming and I am trying to work on a Discord bot as a means of learning.
I am trying to find a channel by name and send a message to it after kicking a member (it's a kick command). The error I am getting is message.guild.channels.find is not a function
.
I am not sure what to do here, and I am unable to get it to work for some reason.
if (cmd === prefix + "kick") {
let kUser = message.guild.member(
message.mentions.users.first() || message.guild.member.length(args[0])
);
if (!kUser) return message.channel.send("Can't find user!");
let kReason = args.join(" ").slice(22);
if (!message.member.hasPermission("MANAGE_MESSAGES"))
return message.channel.send("No can do pal!");
if (kUser.hasPermission("MANAGE_MESSAGES"))
return message.channel.send("That person can't be kicked");
let kickEmbed = new Discord.MessageEmbed()
.setDescription("Kick")
.setColor("#f418")
.addField("Kicked User" + kUser + "With ID" + kUser.id)
.addField(
"Kicked By",
"<@" + message.author.id + ">" + "With ID : " + message.author.id
)
.addField("Time", message.createdAt)
.addField("Reason", kReason);
let kickChannel = message.guild.channels.find(channel => channel.name === "logs");
if (!kickChannel) return message.channel.send("Can't find logs channel.");
message.guild.member(kUser).kick(kReason);
// kickChannel.send(kickEmbed);
return;
}
Thank you in advance!
Upvotes: 1
Views: 480
Reputation: 5174
Since discord.js v12 you need to access the channels
collection using cache
so your solution would be:
let kickChannel = message.guild.channels.cache.find(channel => channel.name === "logs");
Upvotes: 1