Discord.js v13: Slash commands are duplicated(Discord.js V13:劈开命令重复)
本文介绍了Discord.js V13:劈开命令重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这看起来像是某个错误,或者我不知道,但我确信这是可以修复的。我所有的劈开命令都是重复的,第一个是命令的最新版本,第二个是一些过时的命令。
我假设和劈开命令注册有关,所以是这样的:
const guild = await client.guilds.cache
.get("836212492769165363")
guild.commands.set(arrayOfSlashCommands).then((cmd) => {
const getRoles = (commandName) => {
const permissions = arrayOfSlashCommands.find(x => x.name === commandName).userPermissions;
if(!permissions) return null;
return guild.roles.cache.filter(x => x.permissions.has(permissions) && !x.managed)
}
const fullPermissions = cmd.reduce((accumulator, x) => {
const roles = getRoles(x.name);
if(!roles) return accumulator;
const permissions = roles.reduce((a, v) => {
return [
...a,
{
id: v.id,
type: 'ROLE',
permission: true,
},
]
}, [])
return [
...accumulator,
{
id: x.id,
permissions,
}
]
}, [])
guild.commands.permissions.set({ fullPermissions }).catch((e) => console.log(e))
})
推荐答案
尝试使用此代码重新启动您的机器人:
client.application.commands.set([])
或者,如果您有行会,您可以这样做:
guild.commands.set([])
此可能需要一些时间才能完成,但可以正常工作。它将清除所有劈开命令,这样您就可以将它们放回原处,而不需要复制。在我看来,您同时拥有Guild命令和应用程序命令
这篇关于Discord.js V13:劈开命令重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Discord.js V13:劈开命令重复
基础教程推荐
猜你喜欢
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 动态更新多个选择框 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01