Wie erstelle ich einen IRC-Chat inklusive eines IRC-Servers und Chatbots? - kalleberlin - 11.02.2006
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 . 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 , und euren eigenen Chat, auf eurem eigenem IRC-Server betreten .
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
Ich hoffe ich konnte euch ein wenig helfen. Falls ich irgendwas vergessen haben sollte, schreibts hier ins Forum
Gruss Kalleberlin
.
RE: Wie erstelle ich einen IRC-Chat inklusive eines IRC-Servers und Chatbots? - Michael - 11.02.2006
Danke für das Tutorial. Den Punkt 4 kann man auch abkürzen, indem man dieses Plugin installiert.
RE: Wie erstelle ich einen IRC-Chat inklusive eines IRC-Servers und Chatbots? - kalleberlin - 11.02.2006
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
|