Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 28.07.2019
Сообщений: 3

Бот Discord. Почему у меня не отправляет в чат что человек зашел?

28.07.2019, 18:45. Показов 2494. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
MrOnlineCoder, Привет не могу понять почему у меня не отправляет в чат что человек зашел
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
client.on('message', message => { //новый человек на канале 
    if (!message.guild) return;
    if (message.content === '/join') {
      if (message.member.voiceChannel) {
        message.member.voiceChannel.join()
          .then(connection => {
            message.channel.send('Я успешно зашел на канал!');
          })
      } else {
        message.channel.send('Ты должен сначала зайти на канал!');
      }
    }
});
и после того как человек входит на сервер, человеку бот пытается выдать роль, но в этот момент выдает ошибку
Вот выдача роли:
JavaScript
1
2
3
4
client.on("guildMemberAdd", (member) => {
let role = member.guild.roles.find(r => r.name === "605047543277158429"); 
member.addRole(role);
});
Вот что пишет в cmd:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
B:\Программирование\программы\bot>node bot
B:\Программирование\программы\bot\bot.js:34
  let role = message.guild.roles.find(r => r.name === "605047543277158429"); //Не все роли работаю
             ^
 
ReferenceError: message is not defined
    at Client.client.on (B:\Программирование\программы\bot\bot.js:34:14)
    at Client.emit (events.js:198:13)
    at Guild._addMember (B:\Программирование\программы\bot\node_modules\discord.js\src\structures\Guild.js:1298:19)
    at GuildMemberAddHandler.handle (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\packets\handlers\GuildMemberAdd.js:12:13)
    at WebSocketPacketManager.handle (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
    at WebSocketConnection.onPacket (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (B:\Программирование\программы\bot\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:198:13)
    at Receiver.receiverOnMessage (B:\Программирование\программы\bot\node_modules\ws\lib\websocket.js:789:20)
 
B:\Программирование\программы\bot>pause
Для продолжения нажмите любую клавишу . . .
вот весь код:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
const Discord = require("discord.js");
const client = new Discord.Client({disableEveryone: true});
client.login("мой токен");
   
client.on('message', (message) =>{
 
    if(message.content == "Проверка")
    {
        message.reply("Я живое");
    }
    if(message.content == "Привет Бот")
    {
        message.channel.send('Привет ' + message.author + ', как ты?');
    }
});
 
client.on('message', message => { //новый человек на канале 
    if (!message.guild) return;
    if (message.content === '/join') {
      if (message.member.voiceChannel) {
        message.member.voiceChannel.join()
          .then(connection => {
            message.channel.send('Я успешно зашел на канал!');
          })
      } else {
        message.channel.send('Ты должен сначала зайти на канал!');
      }
    }
});
 
 
 
client.on("guildMemberAdd", (member) => {
  let role = message.guild.roles.find(r => r.name === "605047543277158429"); //Не все роли работаю
  member.addRole(role);
});
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.07.2019, 18:45
Ответы с готовыми решениями:

Отвечать при наборе сообщения определёнными пользователями
Хочу, чтобы при наборе сообщения определёнными пользователями бот им отвечал. Что-то идёт не так :/ import discord from discord...

Бот на discord.js
Столкнулся с проблемой. Не могу отправить сообщение в чат при запуске бота.

Бот Discord
Здравствуйте, захотел сделать так, чтобы мой бот имел команды администратора(банить, кикать, давать роли и тд.), даже нашел коды, но все...

5
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
29.07.2019, 15:46
Vlad06111991,

1) Не поднимайте старые темы, у вас может быть совершенно другая проблема, лучше создайте отдельную тему.
2)
JavaScript
1
2
3
4
client.on("guildMemberAdd", (member) => {
  let role = member.guild.roles.find(r => r.name === "605047543277158429"); //Не все роли работаю
  member.addRole(role);
});
событие guildMemberAdd в отличии от message, получает полезную нагрузку - объект типа Member, где есть информация о пользователе который зашел на сервер
0
0 / 0 / 0
Регистрация: 28.07.2019
Сообщений: 3
29.07.2019, 20:44  [ТС]
MrOnlineCoder, И что надо ? получается guildMemberAdd надо поменять на message ? Или другое ?
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
30.07.2019, 16:11
Vlad06111991, я же вам скинул рабочий код)
0
0 / 0 / 0
Регистрация: 28.07.2019
Сообщений: 3
30.07.2019, 20:43  [ТС]
1)
Всм? Я же это и написал выше
JavaScript
1
2
3
4
client.on("guildMemberAdd", (member) => {
let role = member.guild.roles.find(r => r.name === "605047543277158429"); 
member.addRole(role);
});
Я правильно понял что выдача роли работает ?

2)
Но почему у меня бот сразу выключается, когда человек присоединяется к серверу и нет оповещение ? вот ошибки
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
B:\Программирование\программы\bot>node bot
B:\Программирование\программы\bot\bot.js:34
  let role = message.guild.roles.find(r => r.name === "605047543277158429"); //Не все роли работаю
             ^
 
ReferenceError: message is not defined
    at Client.client.on (B:\Программирование\программы\bot\bot.js:34:14)
    at Client.emit (events.js:198:13)
    at Guild._addMember (B:\Программирование\программы\bot\node_modules\discord.js\src\structures\Guild.js:1298:19)
    at GuildMemberAddHandler.handle (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\packets\handlers\GuildMemberAdd.js:12:13)
    at WebSocketPacketManager.handle (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:105:65)
    at WebSocketConnection.onPacket (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
    at WebSocketConnection.onMessage (B:\Программирование\программы\bot\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
    at WebSocket.onMessage (B:\Программирование\программы\bot\node_modules\ws\lib\event-target.js:120:16)
    at WebSocket.emit (events.js:198:13)
    at Receiver.receiverOnMessage (B:\Программирование\программы\bot\node_modules\ws\lib\websocket.js:789:20)
 
B:\Программирование\программы\bot>pause
Для продолжения нажмите любую клавишу . . .
Это выдает когда человек присоединяется к серверу
0
Всегда онлайн
 Аватар для MrOnlineCoder
1084 / 788 / 295
Регистрация: 07.04.2013
Сообщений: 2,703
30.07.2019, 21:29
Vlad06111991, найдите отличие между:

JavaScript
1
let role = member.guild.roles.find(r => r.name === "605047543277158429");
и

JavaScript
1
let role = message.guild.roles.find(r => r.name === "605047543277158429");
Ваш код здесь
Цитата Сообщение от Vlad06111991 Посмотреть сообщение
вот весь код:
и в других постах отличается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.07.2019, 21:29
Помогаю со студенческими работами здесь

Программа: почему человек меня не понимает?
Речь идет о разговорной программе. Программисты, которые пишут такие программы, стараются всю работу свалить на программу. А ведь можно...

Зашел в свой местный Запорожский чат
Аж порадовало, - неужели мой провайдер учиться заметать следы, или чего такой глюк?

Определить зашел ли на сайт человек через прокси
Очень нужно сделать следующую весчь: необходимо определять зашел ли на сайт человек через прокси или нет. на ум приходит что-то...

как узнать, зашел человек с компьютера или с телефона?
как узнать со 100% точностью?

Почему-то сообщает, что dr closed. Что у меня не так?
Imports System Imports System.Data Imports System.Data.OleDb Imports System.Web.UI.Page Namespace Dict Public Class Word ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru