【发布时间】:2021-09-10 11:11:53
【问题描述】:
我要做的是设置一个不和谐的自动响应机器人,如果有人说匹配前缀 + 响应对象,例如“!ping”,它就会响应。我不知道为什么它在争议中没有得到任何回应。我附上了它的作用的图片。我不明白为什么它没有出现任何不和谐的响应。
const Discord = require('discord.js');
const client = new Discord.Client({intents: ["GUILDS", "GUILD_MESSAGES"]});
const prefix = '!'
client.on('ready', () => {
let botStatus = [
'up!h or up!help',
`${client.users.cache.size} citizens!`,
`${client.guilds.cache.size} servers!`
]
setInterval(function(){
let status = botStatus[Math.floor(Math.random() * botStatus.length)]
client.user.setActivity(status, {type: 'WATCHING'})
}, 15000);
console.log(client.user.username);
});
client.on('message', message => {
if(!message.content.startsWith(prefix) || message.author.bot) return
const args = message.content.slice(prefix.length).split(/ +/)
const command = args.shift().toLowerCase()
const responseObject = {
"ping": `???? Latency is ${msg.createdTimestamp - message.createdTimestamp}ms. API Latency is ${Math.round(client.ws.ping)}ms`
};
if (responseObject[message.content]) {
message.channel.send('Loading data...').then (async (msg) =>{
msg.delete()
message.channel.send(responseObject[message.content]);
}).catch(err => console.log(err.message))
}
});
client.login(process.env.token);
【问题讨论】:
-
如果
message.content是"!ping"并且responseObject具有ping属性,那么responseObject[message.content]始终是undefined。你的意思是使用responseObject[command]? -
您在运行 discord.js V13 吗?如果是这样,请将
message事件更改为messageCreate -
感谢@LeeLenalee,我使用responseObject[command],它工作正常。
标签: javascript node.js discord discord.js