Erstellen von Chatbots

Anmerkungen

Tipp

Im Moment enthält diese Seite nur die Grundlagen der Chat-Bot-API, genug Details, um dir beizubringen, wie du einfache Chatbots erstellst. Für weitere Details solltest du einen Blick auf die ChatBot.csIn neuem Fenster öffnen und Examples werfen. Diese Seite wird in Zukunft verbessert.

Der Minecraft Console Client hat eine reiche C# API, mit der du Chat-Bots (effektiv Plugins) erstellen kannst, die dir helfen können, komplexe Automatisierungen zu erstellen, die normale Skripte möglicherweise nicht durchführen können.

Voraussetzungen

  • Grundkenntnisse in der Programmiersprache C#
  • Ein Texteditor

Wenn du die Programmiersprache C# nicht kennst, empfehlen wir dir folgende Ressourcen anzuschauen:

Crashkurse:

Erweiterte Ressourcen

Kurze Einführung

Dieses Tutorial setzt voraus, dass du Grundwissen in C# hast.

Tipp

Hier verwenden wir Begriffe Chatbot und Skript austauschbar

Erstelle eine neue Datei in dem gleichen Ordner, in dem du MCC installiert hast. Nenne sie ExampleChatBot.cs.

Füge den folgenden Beispielcode ein:

//MCCScript 1.0

MCC.LoadBot(new ExampleChatBot());

//MCCScript Extensions

// The code and comments above are defining a "Script Metadata" section

// Every single chat bot (script) must be a class which extends the ChatBot class.
// Your class must be instantiates in the "Script Metadata" section and passed to MCC.LoadBot function.
class ExampleChatBot : ChatBot
{
    // This method will be called when the script has been initialized for the first time, it's called only once
    // Here you can initialize variables, eg. Dictionaries. usw...
    public override void Initialize()
    {
        LogToConsole("An example Chat Bot has been initialized!");
    }

    // This is a function that will be run when we get a chat message from a server
    // In this example it just detects the type of the message and prints it out
    public override void GetText(string text)
    {
        string message = "";
        string username = "";
        text = GetVerbatim(text);

        if (IsPrivateMessage(text, ref message, ref username))
        {
            LogToConsole(username + " has sent you a private message: " + message);
        }
        else if (IsChatMessage(text, ref message, ref username))
        {
            LogToConsole(username + " has said: " + message);
        }
    }
}

Starte MCC und verbinde dich zu einem Server. Führe folgenden Befehl aus: /script ExampleChatBot.cs

Wenn du alles richtig gemacht hast, solltest du folgendes in der Konsole sehen: [Example Chat Bot] An example Chat Bot has been initialised!

Struktur der Chatbots

Chatbot (Skript) Struktur ist folgende:

<script metadata>
<chat bot class>

Skript-Metadaten ist ein Abschnitt mit einem benutzerdefinierten Format, der mithilfe von Kommentaren in C# mit unserem Format mischt.

Jeder einzelne Chatbot (Skript) muss diesen Abschnitt am Anfang haben, um zu funktionieren.

Skript-Metadatenformat

//MCCScript 1.0 markiert den Anfang des Abschnitts Skript-Metadaten. Diese Zeile muss immer in der ersten Zeile stehen, sonst wird der Chatbot (Skript) nicht geladen und es wird ein Fehler ausgegeben.

//MCCScript Extensions markiert das Ende des Skript-Metadaten Abschnitt, dies muss vor einer Chatbot (Skript) Klasse definiert werden.

Damit der Chatbot (Skript) richtig zwischen den //MCCScript 1.0 und die //MCCScript Extension Zeilen lädt muss du die Chatbot (Skript) Klasse instanziieren und an die MCC.LoadBot Funktion übergeben.

Beispielcode:

MCC.LoadBot(new YourChatBotClassNameHere());

Skript-Metadaten Abschnitt erlaubt das Einbinden von C# Paketen und Bibliotheken mit: //using <namespace> und /dll <dll name>.

Tipp

Vermeiden das Hinzufügen von Leerzeichen zwischen // und Keywords

Standardmäßig werden folgende Pakete geladen:

using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;
using System.Threading;
using MinecraftClient;
using MinecraftClient.Mapping;
using MinecraftClient.Inventory;

Beispiel:

//using System.Collections.Immutable
//dll MyDll.dll

Vollständiges Beispiel:

//MCCScript 1.0

//using System.Collections.Immutable
//dll MyDll.dll

MCC.LoadBot(new ExampleChatBot());

//MCCScript Extensions

Chatbot-Klasse

Nach dem Ende des Abschnitts Skript-Metadaten kann man grundsätzlich beliebig viele Klassen definieren die einzige Einschränkung ist, dass die Hauptklasse deines Chatbots (Skript) ChatBot Klasse erweitern muss.

Es gibt keine erforderlichen Methoden, alles ist optional.

Wenn der Chatbot (Skript) zum ersten Mal initialisiert wurde, wird die Initialisierung Methode aufgerufen.

Darin kann man z.B. Variablen initialisieren. Wörterbücher, usw..

Tipp

For allocating resources like a database connection, we recommend allocating them in AfterGameJoined and freeing them in OnDisconnect

.

Beispiele

You can find a lot of examples in our Git Hub Repository at ChatBotsIn neuem Fenster öffnen and configIn neuem Fenster öffnen.

C#-API

As of the time of writing, the C# API has been changed in forks that are yet to be merged, so for now you can use the ChatBot.csIn neuem Fenster öffnen for reference.

Each method is well documented with standard C# documentation comments.

In the future we will make a script to auto-generate this section based on the documentation in the code.