• Как сменить префикс бота дискорд командой используя библеотеку discord.js?

    AlmondPark33609
    @AlmondPark33609
    Занимаюсь кодингом как хобби
    А теперь самый легкий и у меня рабочий способ: создаём в папке бота файл prefixes.json. Затем, в основном файле бота добавляем к основе следующее:
    // вверху со всеми импортами
    let fs = require("fs")
    let prefixes = require("./prefixes.json")
    // ниже
    let sid = message.guild.id
    if(!prefixes[sid]){
       prefixes[sid] ={
           prefix:"любой префикс по умолчанию",
       };
    };
    let prefix = prefixes[sid].prefix
    fs.writeFile("./prefixes.json",JSON.stringify(prefixes),(err)=>{
          if (err) console.log(err)
    
    }

    ОБЯЗАТЕЛЬНО в файле prefixes.json впишите {} и сохраните перед запуском! Остальное будет вписано автоматически.
    Далее создаём команду (у меня в отдельном файле), к основе добавляем:
    // вверху со всеми импортами
    let fs = require("fs")
    let prefixes = require("./prefixes.json")
    // ниже
    let sid = message.guild.id
    prefixes[sid] ={
       prefix:args[0]
    }
    fs.writeFile("./prefixes.json",JSON.stringify(prefixes),(err)=>{
         if (err) console.log(err)
    }

    Вот и всё ;) теперь мы сможем менять префикс командой. Название команды и как её оформить думаю разберетесь) Также в основном файле не забудьте убрать импорт префикса из конфига бота.
    Ответ написан
    Комментировать
  • Как проверить наличие роли у пользователя?

    AlmondPark33609
    @AlmondPark33609
    Занимаюсь кодингом как хобби
    Проверяем наличие роли по названию или айди:
    По названию:
    let rUser = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]))
    if (rUser.roles.cache.find(role => role.name == "Название роли")) message.channel.send("Роль всё таки есть ;)")

    По айди: делаем всё тоже самое только меняем role.name на role.id
    if (rUser.roles.cache.find(role => role.id == "айди роли")) message.channel.send("Роль всё таки есть ;)")
    Ответ написан
    Комментировать
  • Как сделать действие на реакции?

    AlmondPark33609
    @AlmondPark33609
    Занимаюсь кодингом как хобби
    Можно немного изменить код выше чтобы бот не ждал конца времени а выполнял действие сразу когда наберется нужное кол-во реакций
    const filter = (reaction, user) => {
      return reaction.emoji.name === 'unicode реакция'
    };
    
    const collector = message.createReactionCollector(filter, { max: 2 }); //вместо time указываем максимальное кол-во реакций после набирания которых произойдёт действие
    //также можно совмещать time и max чтобы действия происходили и когда наберется необходимое кол-во реакций и по истечению времени: { max: 3, time: 60000 }
    
    collector.on('collect', (reaction, user) => {
    });
    
    collector.on('end', collected => {
      // действия, которые произойдут когда наберется нужное кол-во реакций
    });
    Ответ написан
  • Как сделать код для выдачи роли discord.js?

    AlmondPark33609
    @AlmondPark33609
    Занимаюсь кодингом как хобби
    var role = message.guild.roles.cache.find(role => role.id === "id_роли");
    var user = message.guild.members.cache.get('id_пользователя');
    user.roles.add(role)
    Ответ написан
    Комментировать