Я начал писать бот-диск Discord, но мне уже удалось столкнуться с проблемой. Я в значительной степени просто написал, что он написал с некоторыми незначительными изменениями, которые не должны сильно влиять на программу. У меня есть 2 класса, основной класс, который просто получает токен для бота, а затем создает бота с
MyBot bot = MyBot(token)
Вот MyBot.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Discord; using Discord.Commands; namespace Coding_Bot < class MyBot < DiscordClient discord; String botToken; public MyBot(String tempToken) < botToken = tempToken; discord = new DiscordClient(x =>< x.LogLevel = LogSeverity.Info; x.LogHandler = Log; >); Console.WriteLine(«[BOT] Connecting. «); discord.ExecuteAndWait(async () => < await discord.Connect(botToken, TokenType.Bot); >); discord.UsingCommands(x => < x.PrefixChar = ‘.’; x.AllowMentionPrefix = true; >); var commands = discord.GetService(); commands.CreateCommand(«info»).Do(async (e) => < Console.WriteLine(«!info executed»); await e.Channel.SendMessage(«Coding Bot»); >); > private void Log(object sender, LogMessageEventArgs e) < Console.WriteLine(«[BOT] » + e.Message); >> >
Он подключается, и Bot запускается онлайн.
Что делать если не реагируют на команду BDFD Discord
Это вывод в моей консоли:
[BOT] Connecting. [BOT] Connected [BOT] GUILD_AVAILABLE: BotTestServer
Когда я теперь ввожу .info в #general ничего не происходит. Ничего в консоли и ничего в #general. Я уже рассмотрел этот, но это не решило мою проблему. EDIT: Я знаю, что должен использовать класс CommandHandler, а не просто добавлять туда все мои команды.
Я не буду этого делать в будущем, но это было просто для тестирования.
FritzFurtz 05 фев. 2017, в 11:07
Поделиться
Поделиться:
2 ответа
Лучший ответ
Я скопировал код в один из моих тестовых ботов и немного изменился, и мой бот смог подключиться, только чтобы он не отвечал на команды.
Это то, что я изменил: Первое изменение
MyBot bot = new MyBot(token); //instead of MyBot bot = MyBot(token);
Я изменил это, потому что получил эту ошибку: Второе изменение: бот не ответил на команды
Console.WriteLine(«[BOT] Connecting. «); discord.ExecuteAndWait(async () => < await discord.Connect(botToken, TokenType.Bot); >);
Это выше было помещено в неправильное место кода, поэтому я переместил его под
commands.CreateCommand(«info»).Do(async (e) => < Console.WriteLine(«!info executed»); await e.Channel.SendMessage(«Coding Bot»); >);
Итак, в конце он будет размещен здесь: Другие сведения: Проверьте версию .NET Framework, я использовал 4.6.2 при тестировании этого кода, а версия API Discord.NET — 0.9.6 Если проблема не устранена, вы можете обратиться за помощью здесь: https://discord.gg/JBp6gSN Незначительное примечание
Смерть Discord ботов
Кроме того, недавно появилась версия Discord.NET, версия 1.0. Он включает значительные изменения от v1 до v0.9.6, заставляя все работать на основе async. Если эта проблема дает вам большую головную боль, вы можете легко избежать ситуации, используя вместо этого Discord.NET v1.
WQYeo 05 фев. 2017, в 12:27
Поделиться
Спасибо! Бот MyBot = [новый] myBot (токен); была просто опечатка здесь в stackoverflow. Помещение команды до того, как она подключится, исправило это для меня! Спасибо!
FritzFurtz 05 фев. 2017, в 12:40
Я не могу найти Discord.NET v1 в диспетчере пакетов NuGet.
FritzFurtz 05 фев. 2017, в 12:43
Источник: overcoder.net
Discord бот не отвечает на команды только в личку
Я следую руководству по ботам от c#Fritz, но мой бот ведет себя не очень хорошо.
На моем тестовом сервере он получил права администратора от discord/developer — URL-bot-administrator, но когда я набираю «ping», он не отвечает?
Если я открою личку с ботом, то ЭТО ДЕЛАЕТ??
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация?
Filip Warning 17 Сен 2022 в 21:36
1 ответ
За последние пару месяцев я слышал, как многие люди жалуются на отсутствие связи между ботом и его пользователями. Одна из самых распространенных жалоб заключается в том, что, несмотря на то, что они дали своему боту разрешение администратора на создание сообщений, он не отвечает на команды.
На самом деле это была обычная жалоба на Discord (популярную онлайн-платформу для небольших сообществ) 6 месяцев назад, но через некоторое время, похоже, она затихла. Проблема связана с двумя факторами: 1) бот не разговаривает со своими пользователями в режиме реального времени и 2) у Discord есть строгие правила относительно того, что он может и чего не может делать.
Первая проблема довольно тривиальна; вы даете своему боту-администратору разрешение на отправку сообщений, а затем не получаете от него ответа в течение нескольких дней или недель. Происходит это потому, что чат-боты могут общаться с людьми двумя основными способами: 1) они отправляют голосовые сообщения, которые невозможно проигнорировать; 2) Они отправляют текстовые сообщения, которые невозможно игнорировать после того, как они проходят через несколько уровней спам-фильтров (которые, как правило, плохо работают).
Вторая проблема возникает из-за общеэкосистемных правил Discord о том, какие вещи он разрешает на своих серверах: вообще никаких команд из белого списка — например, «отправить информацию о своем боте» будет запрещено по умолчанию. Поэтому, если вы хотите, чтобы система сообщений вашего бота могла принимать такие команды, как «помогите мне понять это» или «дайте мне денег», вам нужно добавить все остальное (то есть все, кроме «отправить информацию о моем боте»).
Вот почему мы добавили в бота эти две функции: Простой способ для людей, которые не знают, как использовать наш API, который мы называем «амплитуда», чтобы они могли добавлять свои собственные команды (например, «помогите мне понять это «), а также способ для нас не только реагировать, когда кто-то отправляет нам команду, но и когда нам ее никто не отправляет! Важно, что мы добавляем эти команды, не имея над ними никакого контроля, потому что тогда мы ничего не сможем сделать, если API не будет работать должным образом! Если вашему боту нужен поставщик сообщений с API для добавления новых, мы настоятельно рекомендуем вместо этого использовать Amplitude! А если вы еще не используете Amplitude, просто посмотрите несколько примеров ниже!
mokju poeu 17 Сен 2022 в 21:42
Я вряд ли думаю, что «пинг» и «понг» подпадают под упомянутые критерии? Но я поставил в настройках сервера более низкий уровень модерации, но все равно без ответа бота.
Источник: question-it.com
Почему бот может не реагировать на команды Discord python
Пишу бота для своего сервера, у меня работали команды до сегодняшнего дня. Бот попросту не реагирует на них в discord. В документации discord.py было написано, что это может возникать от ивента on_message и нужно добавить в код await bot.process_commands(message) , тогда команды должны заработать, но по итогу ничего не изменилось.
Unreplied Threads
Capacitance of current carrying wires (Transmission Line)
- Aravindh Vasu
- 12 minutes ago
- Physics
- Replies: 0
Let me explain my primitive understanding of a capacitor.
In electrostatics, a conductor containing accumulated charges attracts opposite charges in a conductor that’s separated by an insulator, this setup is called a capacitor.
While studying transmission lines, we associate a capacitance between the two lines or line and ground etc. But how is this possible, don’t we need charges to accumulate to attract charges on the other conductor or ground? If the transmission lines are carrying current how do charges accumulate? The root of the question seems to be «Do current-carrying wires produce an electric field outside in addition to the magnetic fields?» If the answer is yes, then this electric field might attract the opposite charge in the other conductor, but I’m not sure.
well, you’re studying transmission lines, so you definitely know Maxwell, and you also know that electrostatics is not a model you can model the transmission line with.
In the book I’m reading currently Stevenson and Grainger, the expression for capacitance between two lines in a single phase 2 wire system is found just like finding the capacitance between two oppositely charged straight long conductors placed in parallel. I’m not able to understand why this is possible, is there no need to account for the current at all?
I found a gif on wiki,
Is this the answer? The bunching up of electrons causes a capacitance?
Jogo de Apostas
- Carolina Monteiro
- 12 minutes ago
- Technology
- Replies: 0
Boa tarde, tudo bem? Estou precisando de um Help. Preciso dazer um jogo de aposta onde o jogador deve escolher de 1 a 6, e apostar pelo menos 1 moeda de um total de 50. Se o jogardor adivinhar corretamente, o jogador ganhará o dobro da quantia apostada. Se perder, será subtraído o que apostou.
Quando errar o numero, o programa lançará uma mensagem de alerta indicando o montante perdido e as moedas restantes. Quando as moedas chega a 0, o programa termina e é exibida uma mensagem de «Game Over»
porém eu travei logo no começo, poderiam me dizer as formas de poderia ser feito?
const numeros = [1, 2, 3, 4, 5, 6] function escolheNumeros(numeros)< prompt(`Escolha um numero de 1 a 6`) numeros.find(function(numero)< numero == numeros >) return numero > function valorAposta()< let montante = 50 prompt(`Voce tem
Erro ao tentar fazer um «UPDATE» usando TypeORM no Postgre (NestJS) | Empty criteria(s) are not allowed for the update method
- Gabriel de Almeida Alves Pinto
- 12 minutes ago
- Technology
- Replies: 0
Estou aprendendo NestJS e comecei com o básico, fazendo uma API de crud básico usando TypeORM e Postgre.
Primeiro criei uma tabela no Postgre chamado «users»
create table users( id_user SERIAL PRIMARY KEY, fullname_user VARCHAR(100) NOT NULL, email_user VARCHAR(150) NOT NULL, password_user VARCHAR(300) NOT NULL, role_user INTEGER NOT NULL, firsttime_user boolean NOT NULL, isactive_user boolean NOT NULL )
No nest defini minha entity: (user.entity.ts)
E na minha Controller criei os metodos: (users.controller.ts)
Meu Service onde ocorre o erro: (user.service.ts)
Utilizando o Insomnia consigo Criar, Deletar, Listar Todos e Listar somente um pelo id. Porém quando tento fazer o update tenho o seguinte erro:
Imagino que estou usando o metodo de forma errada, porém na documentação está assim. Como fazer esse update de maneira correta?
Como calcular o VPL (NPV) e o TIR (IRR) usando Javascript?
- Luan Rabelo
- 12 minutes ago
- Technology
- Replies: 0
Estou com um projeto de TCC de viabilidade econômica usando o PHP + Javascript, pois bem, consigo calcular todos os indicadores que preciso, menos o VPL (NPV) e o TIR (IRR), vi uma biblioteca chamada finance.js , mas não consegui integrar ela no meu script alguém pode me ajudar nessa?
aqui está parte do código:
String.prototype.formatMoney = function() < var v = this; if(v.indexOf(‘.’) === -1) < v = v.replace(/([d]+)/, «$1,00»); >v = v.replace(/([d]+).([d])$/, «$1,$20»); v = v.replace(/([d]+).([d])$/, «$1,$2»); return v; >; function id( el ) < return document.getElementById( el ); >function getMoney( el ) < var money = id( el ).value.replace( ‘,’, ‘.’ ); return parseFloat( money ); >function soma()
e aqui, o que encontrei para calcular o que preciso: https://gist.github.com/ghalimi/4597900
Как вычислить разницу в часах между датами?
- Anatoly Dekhtyar
- 12 minutes ago
- Technology
- Replies: 0
Здравствуйте имею две даты. $tekData1 = ‘2023.06.15 10.24’; $tekData1 = ‘2023.06.15 14.00’;
Как определить какая разница между ними в часах? Хочу написать проверку, если между датами разница в два часа то делать одно если нет то другое. Как это сделать, с датами совсем не дружу.
Почему поток выполнения прерывается на await?
- Aycon
- 12 minutes ago
- Technology
- Replies: 0
- Почему операция не продолжается после resume() ? Я же ожидаю её на 264 строке.
- Как можно исправить код?
- Что вообще можно улучшить в классе Operation ?
Почта на сервере не получает письма, а Exim выдает очень странные логи
- Fox Braun
- 12 minutes ago
- Technology
- Replies: 0
причем auth_login authenticator failed for (User) прямо дофига, этот скрин только за 1 минуту а там их ещё больше
и почтовые ящики эти все не существуют, а ip почему то используется только тех доменов которые я не использую для почты, да и вообще они просто есть и никак не используются.
В конфиге exim поставил interface = 82.000.00.00 (домен с которого и нужно все отправлять) но нужный для ip 82. вообще не фигурирует в логах, да результата это не дало
DNS домена делегирован на яндексе.
Почтовые, и другие записи все там есть, а на сервере в панели управления DNS есть нюанс «Ошибка при работе с вторичным сервером DNS» и как её исправить я так и не понял.
Источник: s2.solveforum.com