gpt4 book ai didi

javascript - Discordjs 机器人的聊天命令

转载 作者:行者123 更新时间:2023-12-03 02:07:51 24 4
gpt4 key购买 nike

我正在不和谐上制作一个机器人,将来我会添加更多命令,我只是不明白参数的使用以及如果有像“;说一般( channel )嗨伙计们,我是一条文本(要发送的文本)”这样的空格,它会如何工作。它只会向将军发送“hi”,而不会发送其他内容,这是聊天命令的缺点。

const bot = new Discord.Client({disableEveryone: true});


bot.on("ready", async () => {
console.log(`Bot is ready! ${bot.user.username}`);


try {
let link = await bot.generateInvite("[ADMINISTRATOR]");
console.log(link);
} catch(e) {
console.log(e.stack);
}

bot.user.setGame('nope nope nope');

});

bot.on("message", async (message) => {
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;

let command = message.content.split(" ")[0];
command = command.slice(prefix.length);

const args = message.content.slice(prefix.length).trim().split(/ +/g);

if (command === "ping") {
message.channel.send(`Pong! Time took: ${Date.now() - message.createdTimestamp} ms`);
} else

if (command === "say") {
message.delete()
let thetext = args[2];
let thechannel = args[1];

bot.channels.find("name",`${thechannel}`).sendMessage(`${thetext}`)
}

});

最佳答案

所以,如果我理解正确的话,一切正常,除了消息只包含该消息的第一个单词。发生这种情况是因为您正在抓取 args[2]它只获取第二个参数(或第二个单词)。为了获取完整消息,您可以这样做:let theText = args.slice(1).join(' ');

代码片段说明 slice(1)其作用是删除第一个参数,即文本 channel 。 join(' ')这将连接第一个参数之后的所有参数。

总之,如果该人运行此命令:say general My message is awesome 。这将是变量:theChannel = 'general' theMessage = 'My message is awesome'

关于javascript - Discordjs 机器人的聊天命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49724373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com