我想做的是让命令像这样工作:/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')
}})
这不起作用,它只是不运行命令,没有任何反应,没有崩溃,也没有错误日志。
答案 0 :(得分:0)
这有很多问题:
你刚刚把 message.author.id
变成了一个布尔值,所以这就好像你在检查 config.ownerID
是否等于 false
您正在检查消息内容是否与“/changeicon”完全相同,如果消息内容为 /changeicon 123456765624
则无效
您没有说明如何/何时创建 args
变量,因此很难为您提供帮助。
如果它是一个字符串,那么您将获得该字符串的第一个字符。
您使用的 client.guilds.cache.get(
仅在公会被缓存时才有效(如果自上次重启机器人后该公会收到任何消息)
使用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')
}
})