Как скрыть команду косой черты для конкретного пользователя или канала Discord.js v13

#permissions #discord.js #command #hide #slash

Вопрос:

Можно ли скрыть команду косой черты в discord.js v13.1.0 ? Я попытался добавить некоторое разрешение, но ничего из того, что я нашел, не сработало так, как

«команда.разрешения.добавить({ «массив разрешений» }) «

Если бы был способ это сделать, это было бы потрясающе

Я видел, что служба поддержки заметила эту проблему, но есть ли у вас какие-либо идеи о том, когда они добавят эту функцию ?

Ответ №1:

Согласно руководству discordjs, вам необходимо использовать ApplicationCommandPermissionsManager#set() или ApplicationCommandPermissionsManager#add() :

использование set()

 const fullPermissions = [
    {
        id: '123456789012345678',
        permissions: [{
            id: '224617799434108928',
            type: 'USER',
            permission: false,
        }],
    },
    {
        id: '876543210987654321',
        permissions: [{
            id: '464464090157416448',
            type: 'ROLE',
            permission: true,
        }],
    },
];

await client.guilds.cache.get('123456789012345678')?.commands.permissions.set({ fullPermissions });
 

использование функции добавить()

 if (!client.application?.owner) await client.application?.fetch();

const command = await client.guilds.cache.get('123456789012345678')?.commands.fetch('876543210987654321');

const permissions = [
    {
        id: '224617799434108928',
        type: 'USER',
        permission: false,
    },
];

await command.permissions.add({ permissions });
 

Комментарии:

1. Я уже видел это, но метод добавления не работает

2. И даже при этом какой первый идентификатор используется в наборе

3. Насколько я знаю, вы не можете «скрыть» команду слэша для своего бота таким образом. Система разрешений отключает команду косой черты для указанного пользователя/роли, делая ее непригодной для них. Вы можете отключить команды косой черты в настройках канала или роли, которые скрывали бы все команды косой черты из канала, кроме системных команд.

4. Но все равно этот способ с разрешением не работает для меня, я действительно не понимаю, где и как я могу его использовать

5. может быть, это потому, что у вас есть «администратор» или что-то в этом роде? вы это проверили??