X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=ModCMD%2FModCMD.class.php;fp=ModCMD%2FModCMD.class.php;h=83106b4c06b5c8c5e314de9be925cad0b61de5ea;hp=c613ecaecbef5819e77cac37380401a25466b182;hb=7f51193ddac01b0540000c756c50167ff015e02a;hpb=811bc0c7a1f583fb624a0f8c3601146e063c5a25 diff --git a/ModCMD/ModCMD.class.php b/ModCMD/ModCMD.class.php index c613eca..83106b4 100644 --- a/ModCMD/ModCMD.class.php +++ b/ModCMD/ModCMD.class.php @@ -6,7 +6,7 @@ * it under the terms of the GNU General Public License as published by * * the Free Software Foundation, either version 3 of the License, or * * (at your option) any later version. * - * * + * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * @@ -16,14 +16,14 @@ * along with this program. If not, see . * * * ************************************************************************ - * + * * ModCMD/ModCMD.class.php * * shares the incoming events to all bot's that request them. * */ require_once("Binding.class.php"); - + $bindid = 1; define("BIND_NEWSERVER", $bindid++); define("BIND_SQUIT", $bindid++); @@ -45,31 +45,31 @@ define("BIND_CTCPREPLY", $bindid++); define("BIND_PREPARSE", $bindid++); define("BIND_UNKNOWNCMD", $bindid++); - + class ModCMD implements EventHandler { private static $eventHandler = null; private static $bindings = array(); - + public static function getEventHandler() { if(self::$eventHandler == null) { self::$eventHandler = new ModCMD(); } return self::$eventHandler; } - + public static function bind($bot, $type, $method, $filter = NULL) { if(is_a($bot, "Bot") && method_exists($bot, $method)) { if(array_key_exists($type, self::$bindings)) { foreach(self::$bindings[$type] as $binding) { if($binding->match($bot, $method, $filter)) - return; + return; } - } else - self::$bindings[$type] = array(); + } else + self::$bindings[$type] = array(); self::$bindings[$type][] = new Binding($bot, $method, $filter); } } - + public static function unbind($bot, $type, $method, $filter = NULL) { if(is_a($bot, "Bot")) { if(array_key_exists($type, self::$bindings)) { @@ -82,7 +82,7 @@ class ModCMD implements EventHandler { } } } - + public static function unbindBot($bot) { if(is_a($bot, "Bot")) { foreach(self::$bindings as $type => $bindings) { @@ -94,108 +94,108 @@ class ModCMD implements EventHandler { } } } - + /******************************************************************************************** * EVENT HANDLER * ********************************************************************************************/ - + private function event($type, $parameters, $matchings = array(null)) { if(array_key_exists($type, self::$bindings)) { foreach(self::$bindings[$type] as $binding) { - $match = false; - foreach($matchings as $matching) { - if(($match = $binding->match_filter($matching))) break; - } - if($match) - $binding->trigger($parameters); + $match = false; + foreach($matchings as $matching) { + if(($match = $binding->match_filter($matching))) break; + } + if($match) + $binding->trigger($parameters); } } } - + public function event_newserver($server, $isBurst) { $this->event(BIND_NEWSERVER, array($server, $isBurst)); } - + public function event_squit($server){ $this->event(BIND_SQUIT, array($server)); } - + public function event_connect($user, $isBurst) { $this->event(BIND_CONNECT, array($user, $isBurst)); } - + public function event_nick($user, $newNick) { $this->event(BIND_NICK, array($user, $newNick)); } - + public function event_usermode($user, $modes) { $this->event(BIND_USERMODE, array($user, $modes)); } - + public function event_quit($user, $reason) { $this->event(BIND_QUIT, array($user, $reason)); } - + public function event_join($user, $channel, $isBurst) { $this->event(BIND_JOIN, array($user, $channel, $isBurst), array($user, $channel)); } - + public function event_part($user, $channel, $reason) { $this->event(BIND_PART, array($user, $channel, $reason), array($user, $channel)); } - + public function event_kick($user, $target, $channel, $reason) { $this->event(BIND_KICK, array($user, $target, $channel, $reason), array($user, $channel, $target)); } - + public function event_chanmode($user, $channel, $modes) { $this->event(BIND_CHANMODE, array($user, $channel, $modes), array($user, $channel)); } - + public function event_chanmessage($user, $channel, $message) { $this->event(BIND_CHANMSG, array($user, $channel, $message), array($user, $channel)); } - + public function event_channotice($user, $channel, $message) { $this->event(BIND_CHANNOTICE, array($user, $channel, $message), array($user, $channel)); } - + public function event_privmessage($user, $target, $message) { $this->event(BIND_PRIVMSG, array($user, $target, $message), array($user, $target)); } - + public function event_privnotice($user, $target, $message) { $this->event(BIND_PRIVNOTICE, array($user, $target, $message), array($user, $target)); } - + public function event_preparse($from, $command, $arguments) { $this->event(BIND_PREPARSE, array($from, $command, $arguments), array($command)); } - + public function event_unknown_cmd($from, $command, $arguments) { $this->event(BIND_UNKNOWNCMD, array($from, $command, $arguments), array($command)); } - + public function event_chanctcp($user, $channel, $command, $text) { $this->event(BIND_CTCP, array($user, $channel, $command, $text, true)); } - + public function event_chanctcpreply($user, $channel, $command, $text) { $this->event(BIND_CTCPREPLY, array($user, $channel, $command, $text, true)); } - + public function event_privctcp($user, $target, $command, $text) { $this->event(BIND_CTCP, array($user, $target, $command, $text, false)); } - + public function event_privctcpreply($user, $target, $command, $text) { $this->event(BIND_CTCPREPLY, array($user, $target, $command, $text, false)); } - + public function event_away($user, $away) { $this->event(BIND_AWAY, array($user, $away)); } - + } ?> \ No newline at end of file