• Как получать количество пользователей в голосовом канале Discord?

    fgvnovoross
    @fgvnovoross
    Если бы ты был через Discord.js, то я бы сказал:
    voiceChannel.members.size
    https://discord.js.org/#/docs/main/stable/class/Vo...
    Как получить голосовой канал:
    https://discord.js.org/#/docs/main/stable/class/Gu...
    или
    message.guild.channels.get("айди канала");|
    message.guild.channels.find("тип поиска", "запрос");
    //типы - name, id и тд


    Если ты про Discord API простой, то ответ прост - НЕЗНАЮ. Вроде кто-то писал в комментах к задаче...
    Ответ написан
    Комментировать
  • [Discord.js] Как одним ботом отправлять и считывать сообщения другого бота?

    fgvnovoross
    @fgvnovoross
    Вообще-то работают... Ты наверно блокировал сообщения от ботов. Ты ставил это или что-то подобное?
    if(message.author.bot) return;
    Если да, а тебе нужно чтение сообщений и от ботов толи убери, толи сделай отдельную проверку типа
    if(message.author.bot){
    //код если бот
    }else{
    //код если не бот
    }
    Ответ написан
    Комментировать
  • Что делать, если консоль в Visual Studio Code (discord.js) не находит модуль ".message"?

    fgvnovoross
    @fgvnovoross
    Я так понимаю что ты пытался сделать index.js и доп. файл message.js который делает ответ на команду, верно?
    Если да то логично что не так:
    Попробуй написать не require(".message"), а require("./message")

    Если ты писал в консоль
    npm i message
    или
    npm install message
    или типа того, то убери точку:require("message")
    Ответ написан
    Комментировать
  • Как сделать чтобы Discord bot высылал изооброжения с гугла в чат?

    fgvnovoross
    @fgvnovoross
    https://www.npmjs.com/package/google-images
    https://www.npmjs.com/package/free-google-image-search
    Используйте один из этих модулей и ищите картинку. А потом делаем рандомное число (от нуля до array.length - 1 (array - массив)) и получаем из массива изображение по индексу числа.
    Ответ написан
    Комментировать
  • Как исправить ошибку?

    fgvnovoross
    @fgvnovoross
    А чего тут не понятного?
    Во первых не agrc и не agrs а args.
    Во вторых:
    const agrc = message.content.slice('15');
                  message.guild.createChannel ('${agrs}')


    Вначале объявили agrC а потом пытаетесь откуда-то взять agrS, которое не объявляли. Внимательней надо быть!
    Ответ написан
    Комментировать
  • Как исправить ошибку с bot.login(token);?

    fgvnovoross
    @fgvnovoross
    ПХПХ!!! Логично, что он не запускается. Там же тебе В ЛИЦО пишет консоль.
    Ожидалось, что вы напишите } но вы не написали

    логично!!!
    bot.on('message', msg => {
      if (msg.content === 'ping') {

    Здесь ты открыл обычную ( и 2 фигурных { скобки.
    let cmd = bot.commands.get(command.slice(prefix.length));
      if(cmd) cmd.run(bot,message,args);
    };
     
    bot.login(token);

    В конце ты закрыл одну фигурную скобку из if.
    А фигурную скобку и обычную ты не закрыл!!!
    bot.on('ready', () => {
    //твой код
    });

    Тут ты сделал правильно! Тут ты их открыл, а потом закрыл!

    И не сделай подобную ошибку:
    let cmd = bot.commands.get(command.slice(prefix.length));
      if(cmd) cmd.run(bot,message,args);
    };
     
    bot.login(token);
    });


    Ведь если ты так сделаешь, то код будет ждать сообщения пользователя, чтобы запустить бота (причём он должен будет запускаться при каждом новом сообщении, что тоже будет ошибкой или хотябы нагрузкой системы), а сам по себе он так и не запустится (а значит и читать сообщения тоже не сможет...). Правильно будет закончить код так:

    let cmd = bot.commands.get(command.slice(prefix.length));
      if(cmd) cmd.run(bot,message,args);
    };
     });
    
    bot.login(token);
    Ответ написан
    Комментировать
  • Как сделать такую статистику на сервере в дискорде?

    fgvnovoross
    @fgvnovoross
    Тут есть два варианта. Толи найти бота, толи сделать своего!
    Если найти то вот:
    https://top.gg/bot/475393791902351360
    Но как я понял это на английском...
    Могу помочь с настройкой если надо. Пишите в комменты под ответом.
    Ответ написан
    7 комментариев
  • Как работает метод this в данном примере?

    fgvnovoross
    @fgvnovoross
    В объекте ladder есть несколько значение step изначально равное нулю и 3 функции.
    Первая (up) - берёт объект ladder (в котором сама находится) через this, находит там значение step и увеличивает его на 1, после чего возвращает новое значение всего объекта (ladder).
    Вторая (down) делает тоже что и первая, но уменьшает на 1 а не увеличивает.
    Третья берёт step из объекта через this, делает alert (открывает диалоговое окно) в котором написано значение step, возвращает значение объекта ladder.

    Функции эти можно использовать как:
    ladder.up(); // 1
    ladder.up(); // 2
    ladder.down(); // 1
    ladder.down(); // 0
    ladder.showStep(); // 0


    , так и так:

    ladder.up().up().down().down()showStep(); // 0

    Объяснение:

    Мы обращаемся к ladder и используем функцию up. Единственное что она делает, это увеличивает значение ladder.step и после её использования объект ladder как и был объектом со значением step и функциями, так и остался. Изменяется только step. return у всех этих функций возвращение всего объекта ladder, а значит... Напримеррр:
    ladder.up().up() делает тоже самое, что и ladder.up(), но дважды.
    ladder.up().down() делает ТОЖЕ что и ladder.up(); ladder.down();

    ВОТ! Я не знаю с чего вы взяли что нельзя писать заного. Здесь просто это упрощено, чтобы писать заного было необязательно и можно было сократить количество строк кода!
    Ответ написан
    Комментировать
  • Лучше перестать обновлять виндовс 7 заранее?

    fgvnovoross
    @fgvnovoross
    Windows 7 просто больше не будут обновлять. Можете ставить сторонние проги по желанию... Типа как обновку... Но в любом случае переходить на 10 винду не обязательно... Всё по желанию.... А пока есть обновления лучше обновлять, ато может чтото важное на последок запилят...
    Ответ написан
    Комментировать
  • Как сделать так что бы дискорд бот упомянул роль?

    fgvnovoross
    @fgvnovoross
    Не
    <@roleid>
    , а
    <@&roleid>
    Ответ написан
    Комментировать
  • Почему при подключении файла он не видит подключенные модули?

    fgvnovoross
    @fgvnovoross
    Потому что ты их этому подключённому файлу не отправил?...
    https://learn.javascript.ru/import-export
    Это вроде
    Ответ написан
    Комментировать
  • Выполнение кода указанного в сообщении через команду?

    fgvnovoross
    @fgvnovoross
    if(message.author.id != "ваш id") return;
    var code = args.join(" "); //получаем код
    try{ //Проверка на ошибку
    var res = eval(code); //выполняем код
    message.channel.send(res); //Отправляем то, что код вернул
    }catch(err) console.log(err); //логим ошибку, если есть
    Ответ написан
    Комментировать
  • Как получить аватарку через id участника?

    fgvnovoross
    @fgvnovoross
    Изи вопрос!
    var user = message.mentions.users.first(); //Получаем первого упомянутого в сообщении юзера
    if(!user) return message.reply("юзер не упомянут");
    var url = user.avatarURL; //Получаем его аватарку! Всё просто!

    Если вам нужно получить ИМЕННО ПО ID, то вот:
    //Типа вы уже объявили переменную id
    var user = client.users.get(id); //Получаем юзера из users
    if(!user) return message.reply("юзер не найден");
    var url = user.avatarURL; //Готово!


    Если нужен код получения id из сообщения, то могу накодить ;)
    Ответ написан
    Комментировать
  • Не удается найти аватарку пользователя. Как исправить?

    fgvnovoross
    @fgvnovoross
    SilverStorm, я знаю о чём он. Users - это Map.
    Nikita NeVajno:
    1.В первом коде была ошибка из-за того, что user не имеет переменной displayAvatarURL. Что-бы её получить нужно обращаться к member. Чтобы получить аватар из user нужно убрать надпись display, т.к. там просто - user.avatarURL

    Так-же вы неверно указали ошибку. Нужно показывать что наверху, а то что вы дали ничего не говорит. В комментарии вы правильно указали ошибку.

    2.Ошибка Discord is not defined возникает из-за того, что это не главный рабочий скрипт, в котором вы объявили константу (или переменную) Discord. В этом скрипте её нету и вы её не импортировали. Вам в первой строчке этого скрипта написать
    const Discord = require("discord.js"); //Вы же не пользуетесь command, верно?...


    Это всё, в остальном вроде всё верно! ;)
    Ответ написан
    Комментировать
  • Как получить статус типа "Играет в Google Chrome" через API Дискорда?

    fgvnovoross
    @fgvnovoross
    Javascript бот дискорд:
    client.user.setGame("Google Chrome");
    client.user.setStatus("online"); //или другой тип статуса

    или
    client.user.setPresence({
    "status" : "online", //или другой тип статуса
    
     "game" : {
    
    "name" : 'Google Chrome',
    
    "type" : "PLAYING" //, (или другой тип деятельности)
    
    //:url : "URL видео на Twich" (только если стоит WATCHING или STREAMING)
    
    }
    });


    Типы статуса и типы деятельности:

    Playing
    - играет
    Streaming
    - стримит на твиче
    Listening
    - слушает
    Watching
    - смотрит на твиче

    Вот!

    Если ты хочешь для себя, типа ты играешь во что-то (именно играешь), то есть 2 способа (2 как первый только немного расширенный, но более сложный. В обоих ТРЕБУЕТСЯ ИМЕННО ПРОГРАММА ДИСКОРДА, чтобы через программу а не через браузер!):

    1 способ:

    Зайди в настройки Дискорда, выбери Game Activity, добавь этот гугл хром (скриншот)!!
    5cef8494d22d9735671799.png
    Потом можешь менять и название игры.
    5cef84abe2352520562725.png5cef84b7b16a4577859359.png2 спобоб или вот
    Ответ написан
    1 комментарий
  • Как сделать так чтобы бот в Discord упоминал тебя?

    fgvnovoross
    @fgvnovoross
    В примере выше ответ должен получиться:
    m!trade, @Мойник

    а что без запятой вот как можно:

    message.channel.send(`m!trade ${message.member}`)
    другая вариация
    message.channel.send(`m!trade ${message.author}`)
    или можно так
    message.channel.send("m!trade " + message.member)
    :)
    Ответ написан
    Комментировать
  • Как сделать, чтобы дискорд бот банил по команде?

    fgvnovoross
    @fgvnovoross
    Тут нужны аргументы!
    var prefix = ":";
    
    client.on("message", message => {
    if(!message.guild) return; //чтобы команда не работала в личных сообщениях!
    if(message.author === client.user) return; //чтобы бот не написал сам себе
    if(!message.content.startsWith(":")) return; //иначе может начать работать с любым префиксом
    const args = message.content.slice(prefix.length).trim().split(/ +/g); //вычисляем аргументы
            const command = args.shift().toLowerCase(); //отделяем аргументы от команды
    if(command === "ban"){
    if(!message.member.hasPermission("BAN_MEMBERS")) return (msg.reply("вы не имеете прав на использование этой команды"));
    if(!message.guild.me.hasPermission("BAN_MEMBERS")) return (msg.reply("у меня нет права банить пользователей на этом сервере!"));
    let member = message.mentions.members.first();
    let arg = args[0];
    if(!member) return (msg.reply("вы не указали пользователя!"));
    if(!member = arg) return (msg.reply("неправильно введены данные!!"));
    let reason = args.slice(1).join(" ");
    if(reason) {
    member.ban(reason).catch(err => console.log(err));
    }else{
    member.ban().catch(err => console.log(err));
    }
    }
    });


    Фух! Вроде-бы ошибок не должно быть! К сожалению тут без времени, только причина. Просто сам не знаю как время сделать. Если будут ошибки - пиши:
    fgvnovoross#3014
    Ответ написан
    2 комментария
  • Какой бот и как отправлять сообщение ботом в определённый чат?

    fgvnovoross
    @fgvnovoross
    Есть 2 варианта как это сделать. Первый - найти этот канал через бота. Второй - использовать вебхуки.
    Найти канал можно разными способами.

    Через сообщение:
    let channel = message.channel;
    channel.send("тест");

    Или например через его id:
    let channel = client.channels.get("айди");
    channel.send("тест");


    Как узнать id канала?
    Зайдите в Настройки (Дискорда), в Общий Вид, включите параметр Режим Разработчика. После этого (как вы обычно нажимаете левой кнопкой мыши чтобы зайти на канал) нажмите на нужный вам текстовый канал правой кнопкой мыши и нажмите Копировать id.

    Как использовать вебхуки?
    Зайдите в настройки сервера, в вебхуки, нажмите Создать вебхук, настройте название канал и аватарку вебхука. Внизу этой менюшки будет URL вебхука и там кнопка Copy. Нажмите на эту кнопку. Сохраните изменения в вебхуке. Зайдите в браузер, вставьте URL-адрес и перейдите по нему. На этой странице найдите
    "id": "айди вебхука"}
    и
    "token": "токен вебхука",
    и вставьте их в код следующим образом:
    const webhook = new Discord.Webhook("айди вебхука", "токен вебхука");

    После этого вы можете использовать этот вебхук:
    webhook.send("тест");
    Всё! :)
    Ответ написан
    Комментировать
  • Как упоминать роли?

    fgvnovoross
    @fgvnovoross
    Не знаю! Единственный вариант, который смог найти при помощи бота Дискорд.
    Сделал (на javascript discord.js):
    client.on("message", msg => {
    console.log(msg.content);
    });

    и написал сообщение с упомянутой ролью.
    Оно в консоли и написало
    <@&айди>

    ВОТ!
    Ответ написан
    Комментировать
  • Что надо сделать, чтобы бот в дискорде мог выдавать наказания и тд?

    fgvnovoross
    @fgvnovoross
    Могу назвать лишь часть команд как сделать. Над остальными сам парюсь.
    Команды которые могу назвать:
    ^kickplayer;
    ^blockplayer;
    ^print.
    Так-же могу предложить помощь по команде ^authorise, но только в том случае, если ты делаешь бота для одного сервера а не для общего пользования. Ты делаешь для одного сервера или нет?

    По тем трём командам тут. Если что, то я привожу самые простые примеры, но можно сделать и получше! Если что - пиши мне в Дискорд, помогу!
    Мой тег Дискорд:
    fgvnovoross#3014

    ^kickplayer:
    var prefix = "^";
    
    client.on("message", msg => {
    if(!msg.guild) return;
    if(!msg.content.startsWith("^") return;
    const args = msg.content.slice(prefix.length).trim().split(/ +/g);
            const command = args.shift().toLowerCase();
    if(command === "kickplayer"){
    let member = msg.mentions.members.first();
    member.kick().catch(err => constole.log(err));
    }
    });


    ^blockplayer:

    var prefix = "^";
    
    client.on("message", msg => {
    if(!msg.guild) return;
    if(!msg.content.startsWith("^") return;
    const args = msg.content.slice(prefix.length).trim().split(/ +/g);
            const command = args.shift().toLowerCase();
    if(command === "blockplayer"){
    let member = msg.mentions.members.first();
    let player = args[0];
    if(!member === player) return (msg.reply("неправильно введены данные!"));
    let days = args[1];
    member.ban(days).catch(err => {
    console.log(err);
    msg.reply("ошибка!");
    });
    
    }
    });


    ^print:

    var prefix = "^";
    
    client.on("message", msg => {
    if(!msg.guild) return;
    if(!msg.content.startsWith("^") return;
    const args = msg.content.slice(prefix.length).trim().split(/ +/g);
            const command = args.shift().toLowerCase();
    if(command === "print"){
    let text = args.join(" ");
      msg.delete().catch(err => console.log(err));
      msg.channel.send(text);
    }
    });
    Ответ написан
    2 комментария