Ich fing an, einen Discord-Bot zu schreiben, aber ich schaffte es schon, auf ein Problem zu stoßen. Ich habe ziemlich genau geschrieben, was he mit einigen kleinen Änderungen geschrieben hat, die das Programm nicht zu sehr beeinflussen sollten. Ich habe 2 Klassen, die Hauptklasse, die gerade das Token für den Bot bekommt und erstellt dann den Bot mitDiscord Bot [C#] führt den Befehl nicht aus
MyBot bot = MyBot(token)
Hier ist die 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<CommandService>();
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);
}
}
}
Es stellt keine Verbindung und der Bot tut komm online. Dies ist die Ausgabe in meiner Konsole:
[BOT] Connecting...
[BOT] Connected
[BOT] GUILD_AVAILABLE: BotTestServer
Wenn ich jetzt .info in #general passiert nichts geben. Nichts in der Konsole und nichts in # general. Ich sah schon this, aber es löste mein Problem nicht
EDIT: Ich weiß, ich sollte eine CommandHandler-Klasse verwenden und nicht nur alle meine Befehle dort. Das werde ich in Zukunft nicht machen, aber das war nur zum Testen.
Danke! Der MyBot-Bot = [neu] myBot (Token); war nur ein Tippfehler hier im Stackoverflow. Den Befehl zu setzen, bevor er es verbindet, hat es für mich repariert! Vielen Dank! – FritzFurtz
Ich kann Discord.NET v1 jedoch nicht im NuGet Packet Manager finden. – FritzFurtz
@FritzFurtz Sie benötigen eine neue Paketquelle zum Herunterladen der Vorabversion, die Paketquelle ist diese "https://www.myget.org/F/discord-net/api/v3/index.json" Pre-Release-API-Pakete, so dass Sie die v1 des Pakets sehen können. Die Dokumentation ist noch nicht veröffentlicht, aber Sie können versuchen, Hilfe in dem Chat, den ich verlinkt habe, zu verwenden oder den Beispiel-Bot hier zu verwenden: https://github.com/420foxbot/DiscordExampleBot – WQYeo