【问题标题】:join + leave command leave is not working?加入+离开命令离开不起作用?
【发布时间】:2021-06-05 12:31:33
【问题描述】:

在这里我有一个加入和离开的代码,但离开不起作用

(加入有效,离开也有效,但每次他想离开时都会崩溃)

> client.on('message', async message => {
    if (!message.guild) return;

    if (message.content === `${config.prefix}komm`) {
        message.react('☘️');
        if (message.member.voice.channel) {
            const connection = await message.member.voice.channel.join();
        } else {
            message.reply('Du huens geh mal erst in nen channel');
        }
    }
});

client.on('message', async message => {
    if (!message.guild) return;

    if (message.content === `${config.prefix}geh`) {
        message.react('☘️');

        if (!message.guild.me.voice.channel.leave()) {
        message.reply("bin ja schon weg ya salame!");
        message.react('☘️');
        

        } else {
            !message.reply("warte, bin nirgendwo drin!");
            message.channel.send()
        }
    }
});

【问题讨论】:

  • 为什么等待加入而不离开?
  • 为什么有一个if (!message.guild.me.voice.channel.leave()) 的if 语句?你不应该检查if (connection),然后检查connection.disconnect()吗?

标签: javascript node.js discord discord.js bots


【解决方案1】:

这是你的答案:)

基于Discord.js Guide

// Discord.js v11.
// Inside of Message Event.

if (message.content === `${config.prefix}join`) {
    if (!message.guild) return;
    if (message.member.voiceChannel) {
        message.member.voiceChannel.join()
            .then(connection => { // Connection is an instance of VoiceConnection
                message.reply('I am connected');
            })
            .catch(console.log);
    } else {
        message.reply('You need to join a voice channel first!');
    }
}

if (message.content === `${config.prefix}leave`) {
    if (!message.guild) return;
    // check if the bot is connected to a voice channel
    if (message.guild.me.voiceChannel !== undefined) {
        message.guild.me.voiceChannel.leave();
        message.reply("Left.");
    } else {
        message.reply("I'm not connected to a voice channel.");
    }
}
// Discord.js v12
// Async message Event and await the command.
client.on('message', async message => {
    if (!message.guild) return;
    if (message.content === `${config.prefix}join`) {
        // Join the same voice channel of the author of the message
        if (message.member.voice.channel) {
            const connection = await message.member.voice.channel.join();
            await message.channel.send("Connected."); // await message.reply("Connected.");
            // REST OF YOUR CODE
        }
    }
    if (message.content === `${config.prefix}leave`) {
        if(message.guild.me.voice.channel !== undefined) {
            await message.guild.me.voice.channel.leave(); // disconnect();
            await message.channel.send("Left");
        }
    }
});

【讨论】:

    猜你喜欢
    • 2021-05-16
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多