Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Wie erstelle ich einen IRC-Chat inklusive eines IRC-Servers und Chatbots?
#1

1.............Einleitung
2.............Requirements
3.............Konfiguration des Unreal IRC-Servers
3.1.1.......Serverdaten
3.1.2.......Channel restriction
3.1.3.......Operator festlegen
4.............IRC – Chat mittels Template einfügen.
4.1..........Chat Template erzeugen
4.2..........Chat Button in die Navigation einfügen
5.............J - A l i c e 0.5 (Chatbot) installieren


1. Einleitung

Mit diesem kleinen Tutorial, möchte ich euch versuchen zu erklären, wie es möglich ist einen IRC Chat in euer MyBB Board zu integrieren, der auf euren eigenen IRC-Server inklusive eines ChatBots zugreift.

Ich werde in diesem Tutorial nur auf die allernötigsten Punkte eingehen, weil a) alles andere zu komplex wäre und b) Ich selbst nicht alle Konfigurationsmöglichkeiten kenne.


Vorweg möchte ich gleich loswerden, dass dies mein erstes Tutorial ist Wink. Habt also ein wenig nachsicht!

Genug der Worte legen wir los!

2. Requirements


Zwingend

- Ein funktionierendes MyBB Board, mit Admin rechten
- Unreal IRCD 3.2.4 (IRC-Server)
- J - A l i c e 0.5 (Chatbot)
- PJIRC (IRC Chat)

Empfohlen

- Einen guten Texteditor ( ich persönlich benutze den PHP Coder Pro)


3. Konfiguration des Unreal IRC-Servers

Es gibt natürlich noch jede menge anderer freier IRC-Server, jedoch bietet der Unreal Server, meiner Meinung nach, eine große Konfigurations freiheit und lässt so kaum wünsche übrig.

Zu allererst ladet ihr euch unter Unreal den Unreal herunter, installiert diesen und wechselt in das Wurzelverzeichnis (z.B. C:\Programme\Unreal3.2).

Dort angelangt kopiert ihr die „unrealircd.conf“ hinein (die Datei findet ihr im Anhang).Macht euch am besten auch gleich eine Sicherungskopie von dieser Datei, um evntl. „Fehlkonfigurationen“ wieder rückgängig machen zu können.



3.1 Bearbeiten der „unrealircd.conf“

Ich werde jetzt nicht das ganze config-file mir euch durchkauen, sondern nur die Sachen die wirklich notwendig sind, damit der Server danach auch rennt.


3.1.1 Serverdaten

Code:
/*
* NEW: me {}
* OLD: M:Line
* me {} defines the name, description and unreal server numeric for
* this server. Syntax is as follows:
* me {
*  name "server.name";
*  info "Server Description";
*  numeric (server numeric*);
* };
* If linking, this numeric may not be used by any other server on the network.
*/
me
{
    name "mein-irc-Server";     [b]Hier trag Ihr den Hostnamen eures IRC-Servers ein[/b]
    info "Info Halt";        [b]Selbsterklärend [/b]
numeric 1;    [b]Ist nur wichtig wenn ihr euren Server mit anderen Linken wollt[/b]
};

3.1.2 Channel restriction


Code:
/*
* NEW: allow channel {}
* OLD: chrestrict
* Allows a user to join a channel...
* like an except from deny channel.
* Syntax:
* allow channel {
*   channel "channel name";
* };
*/
allow           channel {
channel "#erlaubtes Forum";    [b]Hier tragt ihr einfach das Forum ein welches auch in euerem Forums-Template eingetragen ist (dazu komm ich später noch)[/b]
};

3.1.3 Operator festlegen

Code:
/*
* NEW: oper {}
* OLD: O:Line
* Defines an IRC Operator
* IRC operators are there to keep sanity to the server and usually keep it
* maintained and connected to the network.
* The syntax is as follows:
* oper (login) {
*     class (class to put them in, if different from I, moves them to new
*                class);
*     from {
*        userhost (ident@host);
*        userhost (ident@host);
*     };
*     flags
*     {
*       (flags here*);
*     };
*     OR
*     flags "old type flags, like OAaRD";
* };
*/


/* For a list of oper flags, see doc/unreal32docs.html#operblock
* [HIGHLY recommended to read]
*/

oper “dein Benutzername im Forum” {
    class clients;
    from {
        userhost *@*;
    };
    password "Passwort";
flags    [b]Hier kannst Du die Rechte festlegen, über welche der hier  eingestellte Operator verfügt.[/b]
    {
        netadmin;
        can_zline;
        can_gzline;
        can_gkline;
        global;
    };
};

In Zeile 726 des Config-files könnt ihr den Standard-Channel für OP´s einrichten

Code:
oper-auto-join "#Forum Name";    [b]Hier tragt ihr einfach das Forum ein welches auch in euerem Forums-Template eingetragen ist (dazu komm ich später noch)[/b]
Hier habt ihr jetzt den Operator eingerichtet. Ihr könnt natürlich beliebig viel einrichten, falls es
Nötig sein sollte.

Um später dann auch als Operator fungieren zu können müsst ihr im IRC-Channel einfach
Folgenden befehl eintippen:

/oper „dein Benutzername im Forum“ „passwort“ das Passwort bezieht sich nicht auf euer
Forum´s Login, sondern auf das was ihr unter Punkt 3.1.3 festgelegt habt.

Das waren soweit die wichtigsten Einstellungen die Ihr Vornehmen müsst. Nun ist es an der
Zeit den Server zu starten. Dazu einfach die „wircd.exe“ ausführen.


Wenn alles richtig eingestellt wurde, seht Ihr das Logo des Unreal, und ein paar
Einstellungsmöglichkeiten. Bei falschen Einstellungen erscheint ein Fenster, in dem die Zeile
samt Fehler genannt wird.



4. IRC – Chat mittels Template einfügen.

Ich bin an dieser Stelle mal so frei, das Rad nicht neu zu erfinden, und eine Anleitung von Michael einzufügen. PJIRC findet ihr hier

4.1 Chat Template erzeugen

Michael schrieb:So schwer ists doch gar nicht.

Also: PJIRC und die deutschen Sprachdateien runterladen und entpacken. Dann die Ordner "img", "snd" inklusive Inhalt und folgende Dateien in das Forenverzeichnis hochladen:
• background.gif
• english.lng
• german.lng
• irc.cab
• irc.jar
• IRCApplet.class
• pixx.cab
• pixx-english.lng
• pixx-german.lng
• pjirc.cfg
• securedirc.cab
Anschließend im Admin-CP ein neues globales Template mit dem Namen "chat" anlegen:
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>$settings[bbname] - Chat</title>
$headerinclude
</head>
<body>
$header
<!-- Applet Start -->
<br /><div style="text-align: center;">
<applet code=IRCApplet.class archive="irc.jar,pixx.jar" width=640 height=400>
<param name="CABINETS" value="irc.cab,securedirc.cab,pixx.cab">

<param name="nick" value="$username">
<param name="alternatenick" value="Anonym">
<param name="fullname" value="$usergroup">
[color=red][b]<param name="host" value="irc.domain.tld">  
<param name="command1" value="/join Channel">
<param name="command2" value="/invite #channel Botname">[/color][/b]
<param name="gui" value="pixx">

<param name="quitmessage" value="Bis Bald!">
<param name="asl" value="true">
<param name="useinfo" value="true">
<param name="language" value="german">

<param name="style:bitmapsmileys" value="true">
<param name="style:smiley1" value="  img/sourire.gif">
<param name="style:smiley2" value=":-) img/sourire.gif">
<param name="style:smiley3" value=":-D img/content.gif">
<param name="style:smiley4" value=":d img/content.gif">
<param name="style:smiley5" value=":-O img/OH-2.gif">
<param name="style:smiley6" value=":o img/OH-1.gif">
<param name="style:smiley7" value=":-P img/langue.gif">
<param name="style:smiley8" value=":p img/langue.gif">
<param name="style:smiley9" value=";-) img/clin-oeuil.gif">
<param name="style:smiley10" value="  img/clin-oeuil.gif">
<param name="style:smiley11" value=":-( img/triste.gif">
<param name="style:smiley12" value="  img/triste.gif">
<param name="style:smiley13" value=":-| img/OH-3.gif">
<param name="style:smiley14" value=":| img/OH-3.gif">
<param name="style:smiley15" value=":'( img/pleure.gif">
<param name="style:smiley16" value=":$ img/rouge.gif">
<param name="style:smiley17" value=":-$ img/rouge.gif">
<param name="style:smiley18" value="(H) img/cool.gif">
<param name="style:smiley19" value="(h) img/cool.gif">
<param name="style:smiley20" value=":-@ img/enerve1.gif">
<param name="style:smiley21" value=":@ img/enerve2.gif">
<param name="style:smiley22" value=":-S img/roll-eyes.gif">
<param name="style:smiley23" value=":s img/roll-eyes.gif">
<param name="style:backgroundimage" value="true">
<param name="style:backgroundimage1" value="all all 0 background.gif">
<param name="style:sourcefontrule1" value="all all Serif 12">
<param name="style:floatingasl" value="true">

<param name="pixx:timestamp" value="true">
<param name="pixx:highlight" value="true">
<param name="pixx:highlightnick" value="true">
<param name="pixx:styleselector" value="true">
<param name="pixx:setfontonstyle" value="true">

</applet>
</div>
<!-- Applet Ende -->
$footer
</body>
</html>
Im Template kann die Konfiguration natürlich beliebig geändert werden. Außerdem müssen in den hervorgehobenen Zeilen der Server und der Channel angegeben werden.

Dann noch die Datei chat.php mit folgendem Inhalt erstellen und ins Forenverzeichnis laden:
PHP-Code:
<?php
define
("KILL_GLOBALS"1);

// Dateien einbinden
require "./global.php";
require 
"./inc/functions_post.php";

// Navigation
addnav("Chat");

// Gast?
if ($mybb->user['uid'] == "0")
{
nopermission();
}

// Benutzergruppe ermitteln
$query $db->query("SELECT title FROM ".TABLE_PREFIX."usergroups WHERE gid = '".$mybb->user['displaygroup']."'");
$get_groups $db->fetch_array($query);

// Variablen für Template
$username $mybb->user['username'];
$usergroup $get_groups['title'];

// Ausgabe
eval("\$chat = \"".$templates->get("chat")."\";");
outputpage($chat);
?>
Das wars!


4.2 Chat Button in die Navigation einfügen

Dazu geht ihr in euer aktuelles „Theme Template“, in meinem Fall ist das das „BeigeElegance“ theme. Dort angelangt bearbeitet ihr das „header“ Template.

Code:
<script language="Javascript" type="text/javascript">
         var cookieDomain = "$settings[cookiedomain]";
         var cookiePath = "$settings[cookiepath]";
         var quickdelete_confirm = "$lang->quickdelete_confirm";
         var newpm_prompt = "$lang->newpm_prompt";
         var deleteevent_confirm = "$lang->deleteevent_confirm";
         var removeattach_confirm = "$lang->removeattach_confirm";
    </script>
    <div id="container">
        <div id="header">
        <div class="logo">
        <table width="100%"  border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" valign="top"><a href="$settings[bburl]/index.php" name="top"><img src="$theme[logo]" alt="$settings[bbname]" border="0" /></a></td>
    <td align="right" valign="middle"><a href="$settings[bburl]/search.php"><img src="$theme[imgdir]/toplinks/find.png" alt="$lang->toplinks_search" title="$lang->toplinks_search" border="0" style="margin:0px; padding:0px;" /></a><a href="$settings[bburl]/memberlist.php"><img src="$theme[imgdir]/toplinks/member.png" border="0" title="$lang->toplinks_memberlist" alt="$lang->toplinks_memberlist" style="margin:0px; padding:0px;" /></a><a href="$settings[bburl]/calendar.php"><img src="$theme[imgdir]/toplinks/cal.png" border="0" title="$lang->toplinks_calendar" alt="$lang->toplinks_calendar" style="margin:0px; padding:0px;" /></a>
[color=red][b]<a href="="$settings[bburl]/chat.php"><img src="$theme[imgdir]/toplinks/chat.gif" border="0" title="Chat" alt="Chat" style="margin:0px; padding:0px;" /></a>[/color][/b]
<a href="$settings[bburl]/misc.php?action=help"><img
src="$theme[imgdir]/toplinks/help.png" border="0" title="$lang->toplinks_help" alt="$lang->toplinks_help" style="margin:0px; padding:0px;" /></a></td>
  </tr>
</table>
        </div>
            <hr class="hidden" />
            <div id="panel">
                $welcomeblock
            </div>
<p><div class="schatten_panel"><img src="images/BeigeElegance/schatten_links.gif" alt="" width="8" height="8" align="left" style="border:0px; padding:0px; margin:0px;" /><img src="images/BeigeElegance/schatten_rechts.gif" alt="" width="8" height="8" align="right" style="border:0px; padding:0px; margin:0px;" />
            </div>
        </div>
        <hr class="hidden" />
        <br class="clear" />
        <div id="content">
            $bannedwarning
            $bbclosedwarning
            $unreadreports
            <navigation>
            <br class="clear" />

Das ganze abspeichern, Forum´s Startseite neu laden, neuen Butten bewundern Big Grin, und euren eigenen Chat, auf eurem eigenem IRC-Server betreten Wink.

5. J - A l i c e 0.5 (Chatbot) installieren

Zu allererst ladet Ihr euch hier das Alice Paket herunter. Entpackt das Zipfile, und kopiert die im Anhang befindlich 0.aiml Datei, in das AIML Verzeichnis. Jetzt noch die „std-startup.xml“ aus dem Anhang runterladen und die alte „std-startup.xml“, im Wurzelverzeichnis, ersetzen.

Nun Spricht der Bot schon mal Deutsch.

Zu guter letzt sagen wir dem Bot wohin er verbinden soll. Dazu einfach die Alice.ini öffnen und folgende Werte ändern.

Code:
[General]
BotName=Bot        [b]Hier legt ihr den Name eures Bot´s fest (das ist der Name den                 ihr im Template festlegt)[/b]

[IRC]
Host=Name eures IRC-Servers
            
Port=6667        [b]Port eures IRC Servers[/b]

Nicks=Bot    [b]Nickname des Bots im IRC Channel (schreibt den Namen am besten klein, da der bot Später im Channel leider nur auf  seinen exakten Namen  hört.[/b]
            
        
            
[Web Server]
Enabled=false    [b]Habe ich ausgeschaltet, weil ich den nicht benötige. Sinn der Sache ist in diesem Fall nur eine erzeugte „chat.html“ auf der man dann mit dem Bot alleine reden könnte.[/b]

Nun noch den Bot starten, Chat übers Forum neu betreten und ein wenig mit Eurem Bot
quasseln Wink

Ich hoffe ich konnte euch ein wenig helfen. Falls ich irgendwas vergessen haben sollte, schreibts hier ins Forum Big Grin

Gruss Kalleberlin

.


Angehängte Dateien
.rar   anhang.rar (Größe: 68,05 KB / Downloads: 10)
Zitieren
#2
Danke für das Tutorial. Den Punkt 4 kann man auch abkürzen, indem man dieses Plugin installiert.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#3
Wichtig ist nur das diese Zeile nachträglich ins Template eingeführt wird, da James sonst nicht im Channel ist.

Code:
<param name="command2" value="/invite #channel Botname">

Gruss Kalleberlin
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Wie baue ich meinen Ajax Chat als Shoutbox ein? TDoS 49 11.108 02.06.2012, 11:42
Letzter Beitrag: eneR
Question Wie baue ich meinen Ajax Chat richtig ein Soul 9 2.046 06.05.2012, 18:38
Letzter Beitrag: SicX
  Möchte einen Chat wie bei Facebook Schbasti_01 6 1.533 17.04.2011, 21:35
Letzter Beitrag: Michael
  Wie erstelle ich eine Übersicht der letzten Beiträge in meinem Forum? daselternforum.com 5 1.199 04.04.2011, 18:14
Letzter Beitrag: daselternforum.com
  img tag deaktiveren ausserhalb des Servers problemkind 21 2.957 04.04.2009, 15:55
Letzter Beitrag: problemkind