带有 args 的命令在不和谐中不起作用.js v12



我想做的是使命令工作如下:/changeicon (server id here)

我代码:

client.on("message", message => { 
if(!message.author.id === config.ownerID) return;
if(message.content === '/changeicon'){
var guild = client.guilds.cache.get(args[0]);
guild.setIcon('./icon.jpg')
}})

这行不通,它只是简单地不运行命令,什么也没发生,没有崩溃,也没有错误日志。

这里有很多错误:

  1. 你刚刚把message.author.id变成了一个布尔值,所以这就好像你在检查config.ownerID是否等于false

  2. 您正在检查消息内容是否完全等于"/changeicon",如果消息内容是/changeicon 123456765624它将不起作用

  3. 您没有显示如何/何时制作args变量,因此很难帮助您。如果它是一个字符串,那么你将获得字符串的第一个字符。

  4. 你正在使用client.guilds.cache.get(,只有当公会被缓存时才会起作用(如果自上次重启bot以来该公会收到任何消息)使用client.guilds.fetch("id")

  5. 您没有等待用于获取公会的函数。因此,它返回一个承诺而不是一个公会对象。

    client.on("message", message => {
    if(message.author.id !== config.ownerID) return;
    if(message.content.startsWith('/changeicon ')){
    var guild = await client.guilds.fetch(args[0]);
    guild.setIcon('./icon.jpg')
    }
    })
    

相关内容

  • 没有找到相关文章

最新更新