X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=ModCMD%2FBinding.class.php;h=e7619b48cd54fc9adcdc456fd6b307ddeddacee2;hp=dfb247ffb7d4731626c9ce9b76cf5995b4967209;hb=7f51193ddac01b0540000c756c50167ff015e02a;hpb=a53ed534c0e521ae169634f38f391b5bf7ca21b3 diff --git a/ModCMD/Binding.class.php b/ModCMD/Binding.class.php index dfb247f..e7619b4 100644 --- a/ModCMD/Binding.class.php +++ b/ModCMD/Binding.class.php @@ -1,12 +1,10 @@ . * * * ************************************************************************ - * + * * ModCMD/Binding.class.php * * a single Binding... * - ************************************************************************ - * - * */ class Binding { - - public function trigger() { - + private $bot; + private $method; + private $filter; + + public function __construct($bot, $method, $filter) { + $this->bot = $bot; + $this->method = $method; + $this->filter = $filter; + } + + public function trigger($params) { + call_user_func_array(array($this->bot, $this->method), $params); + } + + public function match($bot, $method, $filter) { + return ($bot === $this->bot && (!$method || strtolower($this->method) == strtolower($method)) && (!$filter || $this->match_filter($filter, false))); + } + + public function match_filter($filter, $preg = true) { + if(!$this->filter) return true; + if(is_object($filter) || is_object($this->filter)) { + return $filter === $this->filter; + } else if($preg && is_string($filter && is_string($this->filter))) { + return preg_match($this->filter, $filter); + } else + return $filter == $this->filter; } - } ?> \ No newline at end of file