Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有args的命令不';t在discord.js v12中工作_Javascript_Node.js_Discord.js - Fatal编程技术网

Javascript 带有args的命令不';t在discord.js v12中工作

Javascript 带有args的命令不';t在discord.js v12中工作,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我试图做的是让命令像这样工作:/changeicon(这里是服务器id) 我的代码: client.on(“message”,message=>{ 如果(!message.author.id==config.ownerID)返回; 如果(message.content=='/changeicon'){ var guild=client.guilds.cache.get(args[0]); guild.setIcon('./icon.jpg') }}) 这不起作用,它只是不运行命令,什么也没有发

我试图做的是让命令像这样工作:
/changeicon(这里是服务器id)

我的代码:

client.on(“message”,message=>{
如果(!message.author.id==config.ownerID)返回;
如果(message.content=='/changeicon'){
var guild=client.guilds.cache.get(args[0]);
guild.setIcon('./icon.jpg')
}})

这不起作用,它只是不运行命令,什么也没有发生,没有崩溃,也没有错误日志。

这有很多问题:

  • 您刚刚将
    message.author.id
    转换为布尔值,这就好像您正在检查
    config.ownerID
    是否等于
    false

  • 您正在检查消息内容是否完全等于“/changeicon”,如果消息内容为
    /changeicon 1234567624
    ,则无法正常工作

  • 您没有说明如何/何时创建
    args
    变量,因此很难帮助您。 如果它是一个字符串,那么您将获得该字符串的第一个字符

  • 您正在使用
    client.guilds.cache.get(
    仅当公会被缓存时才起作用(如果自上次重启bot以来该公会收到任何消息) 使用
    client.guilds.fetch(“id”)

  • 你没有等待你用来获取公会的函数。正因为如此,它会返回一个承诺而不是公会对象

    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')
        }
    })
    

  • 您不应该将
    message.author.id
    转换为带有
    的布尔值。如果(message.author.id!==config.ownerID),请使用
    if
    。此外,如果消息不完全是
    /changeicon
    ,您的机器人将什么也不做。请尝试阅读上的基础知识,因为您似乎没有实现
    args
    数组。正如@Zslot Meszaros所说,您可以检查
    /changeicon
    。如果使用其他输入,则不会触发if语句“将我重定向到其他网站并不能真正帮助我“你为什么这么认为?你的代码充满了错误,我提供的链接可以解决你的问题。StackOverflow不是一个免费的代码编写服务。如果你在开始发布之前花些时间阅读网页,了解网站的工作方式,你会发现你在这里的体验会更好。”。