不和谐机器人在一次响应后停止工作


const Discord = require('discord.js');
const client = new Discord.Client();
const Prefix = '!';
client.once('ready', () => {
console.log('Bot is online!');
});
client.once('message', message=>{
let args = message.content.substring(Prefix.length).split(" ");
switch(args[0]){
case 'ping':
message.channel.send('pong');
break;
};
})

client.login('[Token]');

当我对我的机器人说 !ping 时,它会像我想要的那样说 pong,但当我再说一遍时,它不会用 ping 响应

我会说,你需要让你的代码像client.on而不是client.once。你也可以检查不和谐.js他们有一个简单的例子.

还谈到您代码的其他部分,我建议使用.split(' ').split(" ")但我认为在这种情况下没有区别。

也许将所有消息转换为小写会很有用,因为如果有人会打磨PING这个命令将不起作用。

let command = args.shift().toLowerCase();

除了上面client.on()的答案,相信大家也想要这个:

  1. 您想使用前缀message.content.split(Prefix)拆分。
  2. 然后使用args[1].

(请注意,还有其他方法可以执行此操作。我对你的代码做了最少的修改。

const Discord = require('discord.js');
const client = new Discord.Client();
const Prefix = '!';
client.on('ready', () => {
console.log('Bot is online!');
});
client.on('message', message=>{
let args = message.content.split(Prefix);
switch(args[1]){
case 'ping':
message.channel.send('pong');
break;
};
})

client.login('[Token]');

最新更新