【问题标题】:Can't figure out what's causing problems [closed]无法弄清楚是什么导致了问题[关闭]
【发布时间】:2020-03-12 23:18:01
【问题描述】:

我最近问了一个关于如何使用每个服务器命令设置跨服务器机器人的问题。有人说我可以使用 quick.db,然后将这段代码放在他的答案中:

client.on("message", message => {
    const args = message.content.slice(prefix.length).trim().split(/ +/g);
    const command = args.shift().toLowerCase();
    if(command == "setautorole"){
        let roleName = args.slice(0).join(" ");
        let role = message.guild.roles.find(role => role.name == roleName).catch(message.reply("Couldn't find that role"),
        db.set(`autorole_${message.guild.id}`, role.id)
    }
    if(command == "unsetautorole"){
        db.delete(`autorole_${message.guild.id})
    }
    if(command == "setwelcomechannel"){
        let channelName = args.slice(0).join(" ");
        let channel = message.guild.channels.find(channel => channel.name == channelName).catch(message.reply("Couldn't find that channel")
        db.set(`welcomechannel_${message.guild.id}`, channel.id)
    }
    if(command == "unsetwelcomechannel"){
        db.delete(`welcomechannel_${message.guild.id})
    }
})
client.on("guildMemberAdd", member => {
    let roleId = db.get(`autorole_${member.guild.id}`);
    if(roleId) member.addRole(roleId).catch(console.error);
    let channelId = db.get(`welcomechannel_${member.guild.id}`);
    if(channelId) channel = member.guild.channels.get(channelId).catch(console.error);
    if(channel) channel.send("x")
})

问题是,我得到了很多错误。 https://imgur.com/a/zUxx9TK

我需要在哪里和什么地方来修复上述错误?

【问题讨论】:

  • 您需要学习您尝试使用的语言的基本语法;我会推荐一个教程。
  • 另外,请提供一个真实描述您的问题的问题标题。除了为您提供帮助外,本网站的目的之一是为将来可能遇到类似问题的人提供帮助。为此,这些问题需要由 Google 以适当的方式编入索引
  • @GeorgeJempty 是的,我很抱歉。我只是不知道更好的表达方式。以后会记住的。
  • 不要苛刻,但不知道更好的方式来表达你的问题是一个明确的迹象,你甚至几乎不知道问题是什么。
  • @GeorgeJempty 是的,我是 js/node.js/etc 的新手。我把它当作一种学习经历。所以当 VScode 说“10 个问题”之类的东西时,我不知道有什么更好的表达方式。无论哪种方式,都有一个晚安的朋友。

标签: javascript node.js discord discord.js


【解决方案1】:

client.on("message", message => {
    const args = message.content.slice(prefix.length).trim().split(/ +/g);
    const command = args.shift().toLowerCase();
    if(command == "setautorole"){
        let roleName = args.slice(0).join(" ");
        let role = message.guild.roles.find(role => role.name == roleName).catch(message.reply("Couldn't find that role"))
        db.set(`autorole_${message.guild.id}`, role.id)
    }
    if(command == "unsetautorole"){
        db.delete(`autorole_${message.guild.id}`)
    }
    if(command == "setwelcomechannel"){
        let channelName = args.slice(0).join(" ");
        let channel = message.guild.channels.find(channel => channel.name == channelName).catch(message.reply("Couldn't find that channel"))
        db.set(`welcomechannel_${message.guild.id}`, channel.id)
    }
    if(command == "unsetwelcomechannel"){
        db.delete(`welcomechannel_${message.guild.id}`)
    }
})
client.on("guildMemberAdd", member => {
    let roleId = db.get(`autorole_${member.guild.id}`);
    if(roleId) member.addRole(roleId).catch(console.error);
    let channelId = db.get(`welcomechannel_${member.guild.id}`);
    if(channelId) channel = member.guild.channels.get(channelId).catch(console.error);
    if(channel) channel.send("x")
})

【讨论】:

  • 这修复了格式问题 - 可能无法修复功能,但这不是这里的问题。
  • 谢谢,有人给了我,希望它有效。
【解决方案2】:

在第 18 行,您忘记关闭模板字符串 :)

【讨论】:

  • 你能发布固定代码吗?我不知道你的意思。对不起。
  • 你忘了使用反引号`来关闭模板字符串,就在括号之前,第26行也是如此
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-31
  • 2018-05-09
  • 1970-01-01
  • 2021-07-10
相关资源
最近更新 更多