#How to properly get channel ID?

33 messages · Page 1 of 1 (latest)

jagged nimbus
#

Hello, all I really want to do is to get the channel ID, but I'm struggling to do so as it prints out as undefined.

module.exports = async ( interaction, client, member) => {
const channelID = interaction.channel?.id;
console.log(channelID);
/*if (channel.id === '852196626138267698') {
console.log('works!');

}*/

}

supple fulcrumBOT
#
  • What's your exact discord.js npm list discord.js and node node -v version?
  • Not a discord.js issue? Check out #1081585952654360687.
  • Consider reading #how-to-get-help to improve your question!
  • Explain what exactly your issue is.
  • Post the full error stack trace, not just the top part!
  • Show your code!
  • Issue solved? Press the button!
  • Marked as resolved by staff
short musk
jagged nimbus
#

I'm using commandkit, which is a handler for commands and events. Im trying to get the guild channel id and the bot does have the necessary intent.

#

new CommandKit({
client, //client
commandsPath: path.join(__dirname, 'commands'), //path to commands
eventsPath: path.join(__dirname, 'events'), //path to events
validationsPath: path.join(__dirname, 'validations'), //path to validations
devGuildIds: ['852010387795607562'],
devRoleIds: [
'852199048970108959', //loser
'852213887956680795', //nsfw
'884877160668602409', //manga enthusiast
'852201577548742687' //anime
],
skipBuiltInValidations: false,
});

#

^^^ The function calling for it

shadow sparrow
minor bridgeBOT
#

The order of function parameters must match between definition and function call.

function execute(client, interaction) { ... };
execute(interaction, client);
  • mismatch! you pass an interaction where the client is expected
  • mismatch! you pass the client where an interaction is expected
jagged nimbus
# shadow sparrow And what’s the order of parameter commandkit calls your exported function with?

I'm not quite sure but looking at commandkits docs...
module.exports = (c, client, handler) => {
console.log(${c.user.username} is ready!);
};
"The first parameter c is the client object that was returned as a parameter when the "ready" event was triggered. The second parameter client is the Discord.js client that was instantiated in your main entry point file. Finally, the handler parameter is the current CommandKit instance."

shadow sparrow
jagged nimbus
shadow sparrow
#

Both of my suggestions?

neat valve
#

looking at the commandkit docs, it doesn't just pass the interaction as its own param
examples show ({ interaction, client, handler }) => { where it's destructured

jagged nimbus
jagged nimbus
#

I don't know lmao I feel like its really simple to fix but I don't understand what the issue really is

#

from my understanding I'm not properly defining it so I'm scouring through the code to see where its not getting defined at

neat valve
#

your filepath seems to indicate that this file will have nothing to do with commands or interactions for that matter
I suppose I had assumed that when you named the param interaction, that this was a command, but it appears not
reactions aren't interactions
<MessageReaction>.channelId doesn't exist
<MessageReaction>.message.channelId does exist

jagged nimbus
#

ahhh I see

#

where could I see that on the docs?

#

is it under messageReactions?

minor bridgeBOT
jagged nimbus
#

Is that the same for messageReactionadd as well>?

neat valve
#

the messageReactionAdd event emits with a MessageReaction and a User, so yes

minor bridgeBOT
jagged nimbus
#

another question, if I were to make a reaction role, would it better to have it as a command instead, or as an event?

#

I've noticed that when I start a new "save", it doesn't read the new reactions thats added to previous messages from the previous "saves".

neat valve
# jagged nimbus another question, if I were to make a reaction role, would it better to have it ...

not exactly sure what you mean
reactions are reactions
they also aren't commands
if you mean that you want to send the message with reactions through a command, you're free to do so
you're also free to just use buttons
it's entirely up to you
I'm assuming that when you make the distinction between a command and an event, that'd be because commandkit is doing so, but fyi application commands are handled through the interactionCreate event

neat valve
minor bridgeBOT
#

guide Popular Topics: Reactions - Listening for reactions on old messages
read more

jagged nimbus
#

Alright I see, that makes sense

#

Thanks a lot