【问题标题】:Command Handling = Slash Command Permissions命令处理 = 斜杠命令权限
【发布时间】:2021-09-15 18:46:15
【问题描述】:

你有命令处理,例如:

const { SlashCommandBuilder } = require('@discordjs/builders');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('avatar')
        .setDescription('Get the avatar URL of the selected user, or your own avatar.')
        .addUserOption(option => option.setName('target').setDescription('The user\'s avatar to show')),
    async execute(interaction) {
        const user = interaction.options.getUser('target');
        if (user) return interaction.reply(`${user.username}'s avatar: ${user.displayAvatarURL({ dynamic: true })}`);
        return interaction.reply(`Your avatar: ${interaction.user.displayAvatarURL({ dynamic: true })}`);
    },
};

现在的问题是,如何整合斜杠命令权限?

【问题讨论】:

  • 你的意思是 a)scope for slash commands 还是 b)you want to run slash commands only for a particular user,还是我理解错了?我的意思是,权限到底是什么意思?

标签: javascript discord discord.js


【解决方案1】:

您可以简单地使用 GuildMember#Permission#has() 方法,同时从 Interaction#member 获取 GuildMember 对象,如下所示:

let flag = `ADMINISTRATOR`; // permission flag needed 
if (!interaction.member.permissions.has(flag)) {
    return await interaction.reply({
        content: `You Don't Have The Permisssion To Execute this command, must have the following permission: **${flag}**`,
        ephemeral: true
    });
}

【讨论】:

  • 我知道,但是应该是这个命令对未经授权的人是灰色的,所以不能选择!
  • 你在找this
猜你喜欢
  • 2022-01-09
  • 1970-01-01
  • 2021-09-09
  • 2021-07-17
  • 1970-01-01
  • 2021-12-15
  • 2021-10-14
  • 1970-01-01
  • 2022-01-07
相关资源
最近更新 更多