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