/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
bindinger af fuction PHP IRC bot
Fra : Steffen Sørensen


Dato : 05-08-02 12:45

hejsa.

jeg sidder og arbejder på en IRC bot i php, og til det skal der selfølge
lig være scripting muligheder, men det jeg ikke rigtigt lige kan finde
ud af hvordan jeg f-eks, binder en function til lad os sige et join, så
jeg ikke er nød til at include scriptet hver eneste gang selve botten
modtager noget fra serveren

nogen der har en fix ide, til hvordan jeg gør, det ville være lækkert
hvis du kunne laves ligesom TCL scripts er lavet til eggdroppen

MVH
Steffen Sørensen


 
 
Larz (05-08-2002)
Kommentar
Fra : Larz


Dato : 05-08-02 12:55

Steffen Sørensen wrote:
> jeg sidder og arbejder på en IRC bot i php, og til det skal der selfølge
> lig være scripting muligheder, men det jeg ikke rigtigt lige kan finde
> ud af hvordan jeg f-eks, binder en function til lad os sige et join, så
> jeg ikke er nød til at include scriptet hver eneste gang selve botten
> modtager noget fra serveren

while (etellerandet)
{
   if ($event == 'join' && strlen($joinfunction)) $joinfunction();
}

så skal du bare hælde et funktionsnavn i $joinfunction... i.e.:

function detteermitjoinevent()
{
   // etellerandet
}

$joinfunction = 'detteermitjoinevent';


--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your-pants.


Steffen Sørensen (05-08-2002)
Kommentar
Fra : Steffen Sørensen


Dato : 05-08-02 13:06

Larz wrote:
> Steffen Sørensen wrote:
>
>> jeg sidder og arbejder på en IRC bot i php, og til det skal der
>> selfølge lig være scripting muligheder, men det jeg ikke rigtigt lige
>> kan finde ud af hvordan jeg f-eks, binder en function til lad os sige
>> et join, så jeg ikke er nød til at include scriptet hver eneste gang
>> selve botten modtager noget fra serveren
>
>
> while (etellerandet)
> {
> if ($event == 'join' && strlen($joinfunction)) $joinfunction();
> }
>
> så skal du bare hælde et funktionsnavn i $joinfunction... i.e.:
>
> function detteermitjoinevent()
> {
> // etellerandet
> }
>
> $joinfunction = 'detteermitjoinevent';
>
>

hmmm...
den er jeg ikke helt med på,

altså sådan som det er nu har jeg:

while($connected){
// stream data og udfør funktion

}

så hvis nu jeg skal ha bundet flere script til join eventet
så skal det jo bare skrives i starten af det script som har skrevet lige
som på egdroppen:

bind join - * read_rules_do_it

proc read_rules_do_it {nick uhost hand chan} {
putquick "NOTICE $nick :Velkommen til #SubLife - Vær så venlig at
læse kanalens regler her: http://www.irc.sublife.dk/regler.php";
}

lige som det, og se inkludere egdroppen bare skriptet i starten.

MVH steffen Sørensen


Nezar Nielsen (07-08-2002)
Kommentar
Fra : Nezar Nielsen


Dato : 07-08-02 09:41

Steffen Sørensen wrote:
>
> altså sådan som det er nu har jeg:
>
> while($connected){
> // stream data og udfør funktion
>
> }
>
> så hvis nu jeg skal ha bundet flere script til join eventet
> så skal det jo bare skrives i starten af det script som har skrevet lige
> som på egdroppen:

eeh, hva?

Men forestil dig at du laver et

$events=array();

Nu har du et tomt array af de events du har handlere til.

Så kan du tilføje en handler til f.eks. join eventet(bemærk jeg laver
'join' indexet til et array så du kan have flere handlers til hvert event):

$events['join'][]='handle_join';

(kunne også skrives som $events['join']=array('handle_join'); men på den
her måde risikerer du ikke at overskrive nogle allerede eksisterende
handlere.)

og så skal du bare lige lave lidt kode i din while-loop:

while($connected){
//stream data ind i $data(?)
$event=parseEvent($data);
if(isset($events[$event->type]) && sizeof($events[$event->type])>0){
foreach($events[$event->type] as $handler_func){
$handler_func($event->nick,$event->uhost,$event->hand,$event->chan);
}
}
}

og så er det bare lige at skrive parseEvent funktionen til at parse dine
data ud til et event objekt..

--
Mvh. Nezar Nielsen

Nano - Advanced Simplicity
http://www.nano.dk/


Søg
Reklame
Statistik
Spørgsmål : 177505
Tips : 31968
Nyheder : 719565
Indlæg : 6408554
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste