【问题标题】:How do i make my discord bot respond to a message with prefix?如何让我的不和谐机器人响应带有前缀的消息?
【发布时间】: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


【解决方案1】:

您的主要问题是您尝试检查 message.content'ping',但需要前缀。你的message.content 总是有一个前缀,所以你可以试试if (responseObject[message.content.slice(prefix.length)])

其他替代方法是将前缀添加到对象 ("!ping": "Latency is...")

或者,创建一个变量来跟踪所使用的命令。

let cmd = message.content.toLowerCase().slice(prefix.length).split(/\s+/gm)[0]
// then use it to check the object
if (responseObject[cmd]) {}

【讨论】:

    猜你喜欢
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2019-06-08
    • 2021-03-05
    • 2021-04-07
    • 2021-07-07
    • 2019-11-23
    相关资源
    最近更新 更多