Discord 로봇을 Rasberry Pi에 넣었지만 이제 문제가 있습니다. 명령을 사용하려고하면 처음으로 작동합니다. 하지만 작업을하는 대신 두 번째로 사용하면 "MessageReceived 핸들러가 게이트웨이 작업을 차단하고 있습니다."라고 표시됩니다. System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw에서 마지막으로 하트 비트 놓친 서버()는 0x0000C]에 : System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess에서 0 (그후 바로 그 다음비동기 api를 두 번째 호출 한 후 Pi에 Bot이 충돌 함
System.Exception 말한다 System.Threading.Tasks.Task 작업) [0x0003e] in : 0 at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task 작업) [0x00028] in : 0 at System.Runtime.CompilerServices. TaskAwaiter.ValidateEnd (System.Threading.Tasks.Task 작업) [0x00008] in : 0 at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1 + ConfiguredTaskAwaiter [TResult] .GetResult() [0x00000] in : 0 012 3,516,Discord.ConnectionManager에서 + <> c__DisplayClass28_0 + < b__0> d.MoveNext() 0x0014b]에 0
끊 일부를 재접속하려하지만 매번 erroring. 명령 인터페이스를 사용하지 않지만 비동기/대기를 사용하고 있습니다. 그것은 내 정상적인 컴퓨터에서 완벽하게 작동, 내 파이에 휴식.
using Discord;
using Discord.WebSocket;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GlurrrBotDiscord
{
public class Program
{
DiscordSocketClient client;
static void Main(string[] args) => new Program().MainAsync().GetAwaiter().GetResult();
public async Task MainAsync()
{
client = new DiscordSocketClient();
try
{
using(StreamReader sr = new StreamReader("botcode.txt"))
{
string code = sr.ReadLine();
await client.LoginAsync(TokenType.Bot, code);
}
}
catch(Exception e)
{
Console.WriteLine("Code not found");
Console.WriteLine(e.Message);
}
await client.StartAsync();
await client.SetGameAsync("praise");
client.MessageReceived += handleMessage;
await Task.Delay(-1);
}
private async Task handleMessage(SocketMessage msg)
{
Console.WriteLine(msg.Author + " : " + msg.Content);
if(msg.Content.Contains("/leave"))
{
var embed = new EmbedBuilder() {
Title = msg.Author + " has left",
Description = msg.Author + " has left the Discord and would like everyone to know they did. They are very triggered.",
Color = Color.DarkRed,
};
await msg.Channel.SendMessageAsync("", false, embed);
}
}
}
}
전체 코드는 ~ https://github.com/Silthreent/Glurrr-Discord-Bot
관련 코드 ** 여기 **를 게시하십시오. [mcve] – MickyD
두 개의 비동기 호출을 사용할 때가 있습니다. '''경우 (msg.Content.Contains ("/ 휴가")) { var에 삽입 = 새로운 EmbedBuilder() { 제목 = msg.Author + "떠났다" 설명 = msg.Author + " 불화를 떠났고 모든 사람들에게 그들이 알았 으면 좋겠다. 그들은 매우 촉발되었다. ", Color = Color.DarkRed, }; 기다리고 있습니다 msg.Channel.SendMessageAsync ("", false, embed); }''' 아마도 가장 쉬운 장소 일 것입니다. ~ ~ 새로운 스택 주석; 쓰레기처럼 보입니다 ~~ – Silthreent
주석에 코드를 넣지 마십시오. 질문을 편집하고 거기에 최소 완전 검증 가능 예제를 넣어야합니다. 질문을 업데이트하기 전에 MickyD가 보낸 링크를 읽으십시오. 주석에 게시 한 코드는 예제로 허용되지 않습니다. –