X-Git-Url: http://git.pk910.de/?p=PHP-P10.git;a=blobdiff_plain;f=ModCMD%2FBinding.class.php;h=ed980c0219e8997b1388e80e1b1eca17a174ad16;hp=5bf9a75fd1026e8d0b6e5ac1433a561c7b1766a0;hb=2e900783aa961dd56ec4733231656fd8928aaa55;hpb=e4b8ef21756e63577c17f9e76d812c9a5a7f0bdc diff --git a/ModCMD/Binding.class.php b/ModCMD/Binding.class.php index 5bf9a75..ed980c0 100644 --- a/ModCMD/Binding.class.php +++ b/ModCMD/Binding.class.php @@ -26,20 +26,31 @@ class Binding { private $bot; private $method; + private $filter; - public function __construct($bot, $method) { + 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) { - return ($bot === $this->bot && (!$method || strtolower($this->method) == strtolower($method))); + 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