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()
的答案,相信大家也想要这个:
- 您想使用前缀
message.content.split(Prefix)
拆分。 - 然后使用
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]');