我想做的是使命令工作如下:/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')
}})
这行不通,它只是简单地不运行命令,什么也没发生,没有崩溃,也没有错误日志。
这里有很多错误:
-
你刚刚把
message.author.id
变成了一个布尔值,所以这就好像你在检查config.ownerID
是否等于false
-
您正在检查消息内容是否完全等于"/changeicon",如果消息内容是
/changeicon 123456765624
它将不起作用 -
您没有显示如何/何时制作
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') } })