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进行响应
答案 0 :(得分:3)
我要说的是,您需要像client.on
这样的代码而不是client.once
。您也可以检查discord.js那里有一个关于此的简单示例。
我还建议您讨论代码的其他部分,但我建议使用.split(' ')
.split(" ")
,但我认为这种情况不会有任何区别。
也许将所有消息都转换为小写会很有用,因为如果有人会打PING
,则此命令将无效。
let command = args.shift().toLowerCase();
答案 1 :(得分:1)
除了以上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]');