javascript - DiscordJS 斜线命令权限设置错误
问题描述
我对 discordJS 中斜线命令的 command.permission.set() 函数有疑问。DiscordJS 版本为 13。节点版本:v16.8.0。
(我在一个名为 commands 的目录中创建了一个 Slash 命令处理程序。命令的所有文件都有)
错误是:
TypeError [INVALID_TYPE]: Supplied permissions is not an Array of ApplicationCommandPermissionData.
权限集代码:
client.on('messageCreate', async (msg) => {
if (msg.content.startsWith('$')) {
if (msg.content === '$add') {
const slashCommandData = {};
const commandFiles = fs
.readdirSync('./src/commands')
.filter((file) => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require('./commands/' + file);
console.log("- " + command.data.name);
slashCommandData['name'] = command.data.name;
slashCommandData['description'] = command.data.description;
if (command.data.options !== undefined) {
console.log('Option for ' + command.data.name);
slashCommandData['options'] = command.data.options;
} else {
slashCommandData['options'] = [];
}
await client.guilds.cache
.get('877098630299934740')
?.commands.create(slashCommandData);
if (command.data.permission !== undefined) {
console.log("Permission for " + command.data.name);
const permission = [
{
id: '461976441110921218',
type: 'USER',
permission: true,
},
]
const commando = await client.guilds.cache.get('877098630299934740')?.commands.fetch('884318697794195486');
try {
await commando.permissions.set({ permission })
}
catch (error) {
console.log(error)
}
}
}
msg.reply('Aggiunti i comandi nuovi!');
}
}
});
我哪里失败了?
解决方案
您需要访问的ApplicationCommandPermissionsManager
属性,ApplicationCommands
然后您可以使用ApplicationCommandPermissionsManager#add
方法添加权限。
这是一个例子!
client.guilds.cache.get('877098630299934740').commands.permissions.add({
command: '884318697794195486',
permissions: [{
id: '461976441110921218',
type: 'USER',
permission: true,
}, ]
})
.then(console.log)
.catch(console.error);
推荐阅读
- javascript - 获取数组 JavaScript 中出现次数最多的元素
- prolog - 为什么 prolog 不为变量提供正确的值?
- coldfusion - 通过循环结构插入到表中
- c - 查找字符串中字符的结尾
- python - 使用 Python 和使用请求的 API 的 multipart/form-data 问题
- c# - MVVM 绑定对象的属性
- plot - NetLogo 绘图笔颜色
- python - 获得 kolmogorov-smirnov 检验所需的临界值
- java - ActionListener 在按钮点击时没有做任何事情
- python - 如何使用“for”循环创建变量名?