Home > Blockchain >  message.author.id TypeError: Cannot read properties of undefined (reading 'id')
message.author.id TypeError: Cannot read properties of undefined (reading 'id')

Time:05-07

Why i didnt get message.author.id and create the channel with special permissions?

const {SlashCommandBuilder} = require("@discordjs/builders")
const { Client, Permissions } = require('discord.js');
module.exports = {
    //Create the Command 
    data: new SlashCommandBuilder()
        .setName("veranstaltung")
        .setDescription(`erstelle eine Veranstaltung`)
        .addStringOption(option1=> option1.setName("name").setDescription("Der Name der Veranstaltung").setRequired(true))
        .addStringOption(option2=> option2.setName("datum").setDescription("Das Datum der Veranstaltung").setRequired(true)),
    async execute(message){
        const name = message.options.get("name").value
        const Datum = message.options.get("datum").value
        const userid =


            //Create the Channel with Permissions
            message.guild.channels.create('new-voice', {
                type: 'GUILD_VOICE',
                permissionOverwrites: [
                    {
                        id: message.author.id,
                        deny: [Permissions.FLAGS.VIEW_CHANNEL],
                    },
                ],
            })
            .then(
                message.reply ("Der Kanal "   name   " am "   Datum   " Wurde erfolgreich erstellt")
                )

            }

}

CodePudding user response:

It looks like you are using interactions. To access the user object, use Interaction.user, not Interaction.author (this is used in message commands). So, to access the author id, use the following:

message.user.id

Docs: https://discord.js.org/#/docs/discord.js/stable/class/Interaction?scrollTo=user

CodePudding user response:

Slash commands are not message, they are interaction. So you should use your handler as interactionCreate and in your command file you'll edit all things according to interaction. Whenever you want to get id whos used command, you'll use;

interaction.user.id

You can look docs for more info.

  • Related