Разрешение пользователям создавать свою собственную роль (для ARK Tribes)

У меня тут проблемы, лол. Я пытаюсь создать бота разногласий для сообщества ARK: Survival Evolved, чтобы они могли создать индивидуальную роль для своего племени без помощи администратора. Я занимаюсь этим уже почти неделю. Есть ли что-то, что я делаю неправильно?

module.exports = {
    data: new SlashCommandBuilder()
        .setName('createtribe')
        .setDescription('Creates a custom role for you and your tribemates')
        .addStringOption(option =>
            option.setName('tribename')
                .setDescription('The name of your tribe')
                .setRequired(true))
        .addStringOption(option =>
            option.setName('rolecolor')
            .setDescription('The color you wish your role to have')
            .setRequired(true)),
   
    async execute(interaction) {
if (commandName === 'createtribe')
    guild.roles.create({name: `${tribename}`});
await interaction.reply("Your tribe has been successfully registered");

    }
}

Я не получаю никаких ошибок, но в консоли есть строка с надписью «ответил: ложь».

Вы знакомы с Javascript или имеете опыт программирования?

Liz 13.04.2023 20:23

Я следовал руководству на сайте discord.js. У меня также есть некоторый опыт кодирования из колледжа.

StonedCookieGaming 13.04.2023 20:25
if (commandName === 'createtribe') отсутствуют фигурные скобки и не нужны, а guild не определено. Вы также должны включать ошибки всякий раз, когда запрашиваете помощь по кодированию.
Liz 13.04.2023 20:34

Я не получаю никаких ошибок консоли, но есть вещь, которая выскакивает «ответ = ложь»

StonedCookieGaming 13.04.2023 21:01

Также была определена гильдия, я просто забыл включить ее в свой пост. Извинения.

StonedCookieGaming 13.04.2023 21:18

Вам нужно принять свою логику в операторе if, а также справиться с обещанием guild.roles.create(). Кроме того, вы не определили tribename

Elitezen 13.04.2023 22:49

Логика Wdym внутри оператора if? Извините, новичок здесь, лолз.

StonedCookieGaming 13.04.2023 23:08

Ваш оператор if является однострочным. Вам нужно дать ему область действия: if (...) { CODE HERE }. В вашем текущем коде await interaction.reply("Your tribe has been successfully registered"); всегда будет работать независимо от оператора if.

Elitezen 13.04.2023 23:49

async execute(guild) { if (commandName === 'createtribe') { await guild.roles.create({name: ${tribename}})}; }, это мой код для создания роли. Если я облажался, лмк.

StonedCookieGaming 14.04.2023 00:49

Кто-нибудь может помочь?

StonedCookieGaming 15.04.2023 08:39
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
10
65
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Регистрация опции не делает ее немедленно доступной в качестве переменной.

Вам нужно получить его через объект параметров взаимодействия. Вот так:

interaction.guild.roles.create({name: interaction.options.getString("tribename")});

Рекомендую прочитать руководство по Discord.JS полностью.

Другие вопросы по теме