Sprüche im Chat

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Hi Leute,

    dieses Tutorial soll euch zeigen, wie einfach und schnell man neue Sprüche in seinen Chat bauen kann. Fangen wir also an:

    Zu allererst benötigen wir eine Plugin Datem die wir in das Verzeichnis Plugins/CommandHandlers laden. Die Datei hänge ich mal an. Denn damit werden wir in den nächsten Schritten arbeiten.

    Schritt 1 ist also: Plugin Datei hier runterladen und in den Plugins/CommandHandlers/ Ordner hochladen.

    In dieser Datei finden wir nun folgende Zeile(n):

    'test' => \&test_handler,


    Diese erweitern wir nun um die Handler, die wir haben möchten z.B.

    'test' => \&test_handler,
    'hallo' => \&hallo_handler,


    EIn paar Zeilen tiefer finden wir folgenden Abschnitt:

    sub test_handler
    {
    my($self,$main,$command,$text) = @_;

    my ($nick) = split(/\s+/,$text);

    if (my $error=check_gagged($main))
    {
    return $error;
    }

    else
    {
    my $candidates = $main->getPossibleOnlineUsers($nick);

    my $user = $candidates->[0];

    my $info = $main->createInfoOutput('test',
    {
    admin => $main->{current_user}{nick},
    });
    $info->restrictToCurrentRoom();

    return [$info];
    }

    }


    Dies ist der eigentliche Handler, der den Befehl ausführt. Diesen erweitert man, indem man einfach einen Abschnitt darunter setzt wie etwa:

    sub hallo_handler
    {
    my($self,$main,$command,$text) = @_;

    my ($nick) = split(/\s+/,$text);

    if (my $error=check_gagged($main))
    {
    return $error;
    }

    else
    {
    my $candidates = $main->getPossibleOnlineUsers($nick);

    my $user = $candidates->[0];

    my $info = $main->createInfoOutput('hallo',
    {
    admin => $main->{current_user}{nick},
    });
    $info->restrictToCurrentRoom();

    return [$info];
    }

    }


    Der rot markierte Teil zeigt den, den man ändern muss. Im ersten Teil muss der Handler genau so heißen wie bei Schritt 2.

    Im 2. Teil kann man sich eine Bezeichnung aussuchen wobei wir beim nächsten Schritt wären.

    Der orangen markierte Bereich zeigt "InfoOutput". Daran erkennt man, dass man nun in der german.lng unter Info Messages eine neue Zeile anfügen muss, die dann so lautet wir wir sie in der Plugin Datei angegeben haben:

    Falsch:

    info_tschüss => 'Dies soll eine Ausgabe im Chat werden.',


    Richtig:

    info_hallo => 'Dies ist eine Ausgabe. Du hast das Tutorial bestanden!',


    Wir sehen also, man gibt am besten allem erst einmal den gleichen Namen, damit es nicht zu Problemen kommt.

    Nun muss der Chat natürlich wissen, dass es einen neuen Befehl gibt. Dies erledigen wir in der Settings.dat unter dem Punkt custom_command_handlers => {

    Dort fügen wir für jeden Befehl, den wir erstellen einen neuen darunter wie etwa so:

    test => 'plugindir::CommandHandlers/Sayings.pm',
    hallo => 'plugindir::CommandHandlers/Sayings.pm',

    Hier sieht man nun, dass man eig. die Befehle /test und /hallo erstellt. Diese Bereiche sind Orange markiert.

    Die rot markierten Bereiche zeigen, dass der Name der pm, in der diese Handler drin sind, variabel d.h. änderbar sind. Sollte die Date zum Beispiel Sprueche.pm heißen, muss die Zeile also lauten:

    test => 'plugindir::CommandHandlers/Sprueche.pm',


    Vorallendingen muss man darauf achten, dass man kein Hochkomma oder Tiefkomma vergisst, da euer Chat sonst nicht mehr geht!!! Diese Bereiche sind grün markiert.

    Hat man diese Schritte getan, ist das Tutorial beendet. Hier die Kurztipps:

    Alle Handler die erstellt werden, immer gleich benennen, damit man nichts vertauscht oder verkehrt macht!
    Immer auf alle Kommas und Hochkommas achten!

    Haben wir das nun geschafft und unsere ersten Sprüche zum Laufen gebracht, sollte Teil II des Tutorials kein Problem mehr sein.

    Hier geht es darum, extra für andere User Sprüche zu entwerden d.h. Beispielsweise /hau TrioxX würde dann ausgeben Userxy haut TrioxX erst einmal kräftig auf die Schulter!

    Hier sieht man, dass die Orangenen Parameter folgende Funktion haben:

    /hau löst den Befehl aus und der Zusatz TrioxX personalisiert diesen.

    Fangen wir also an, die Codezeile in unsere Plugin Datei Sayings.pm einzufügen:

    Man denke aber vorher daran, einen eigenen Handler anzulegen in Form von:

    'hau' => \&hau_handler,


    Dann der Hauptcode:

    sub hau_handler
    {
    my($self,$main,$command,$text) = @_;

    my ($nick) = split(/\s+/,$text);

    if (my $error=check_gagged($main))
    {
    return $error;
    }

    else
    {
    return [$main->createErrorOutput('kick_namenotgiven')] unless defined($nick);

    my $candidates = $main->getPossibleOnlineUsers($nick);

    return [$main->createErrorOutput('notonline',{nick => $nick})] if ($#$candidates < 0);
    return [$main->createErrorOutput('ambiguousname',{nick => $nick})] if ($#$candidates > 0);

    my $user = $candidates->[0];

    return [$main->createErrorOutput('hau_self')] if ($user->{name} eq $main->{current_user}{name});

    my $info = $main->createInfoOutput('hau',
    {
    admin => $main->{current_user}{nick},
    nick => $user->{nick},
    });
    $info->restrictToCurrentRoom();

    return [$info];
    }

    }


    Wir sehen nun, dass sich einiges geändert hat. Die Zeile(n) createErrorOutput zeigen, dass es sich um Errors, also um fehler handelt. Dies könnte beispielsweise sein, wenn ein User nicht online ist, oder wenn man einen Befehl auf sich selbst anwenden will.

    Die meisten variablen Parameter sind uns noch aus dem ersten Tutorial bekannt beispielsweise die sub Routinen. Nun habe ich explizit eine Stelle grün markiert. Hierbei handelt es sich um spezielle Ausgabeparameter d.h. diese Parameter sind für Usereingaben zuständig. Der Parameter Nick würde in diesem Fall den Nick des Users ausgeben, auf den man den Befehl anwendet beispielsweise:

    Userxyz: /hau TrioxX


    Nun fügen wir in der german.lng wieder einen Infooutput ein (diesmal aber mit Verwendung des Parameters):

    info_hau => '%%admin%% haut %%nick%% erst einmal kräftig auf die Schulter!',


    Diesmal kommt aber noch ein ErrorOutput dazu: hau_self
    Dieser ist dafür zuständig, dass man den Befehl nicht auf sich selbst anwenden kann:

    error_hau_self => 'Du kannst dich nicht selbst schlagen',


    Nun haben wir bereits soweit fast alles Startklar.

    Wir legen also den Befehl wieder ein der Settings.dat an:

    Suche:

    custom_command_handlers => {


    Darunter einfügen

    hau => 'plugindir::CommandHandlers/Sayings.pm',


    Da wir nun mir Parametern arbeiten, müssen wir noch in folgender Zeile arbeiten:

    custom_output_params => {


    Dort teilen wir dem Chat nun mit, dass wir für den Befehl /hau 2 Parameter verwenden, nämlich "nick" und "admin". Also fügt man direkt darunter folgendes ein:

    hau => [
    'admin',
    'nick',
    ],


    Hat man dies getan, und es funktioniert alles, so hat man auch das 2. Tutorial beendet und kann sich ab sofort seine eigenen Sprüche mit Nicks oder ohne basteln.

    -----------

    Ich hoffe, dieses Tutorial hilft euch dabei, euren Chat mit lustigen, fiesen und interessanten Sprüchen zu füllen und ein wenig Leben in euren Chat zu bringen :)
    Dateien

    1.842 mal gelesen