<?php
-/********************************* PHP-P10 ******************************
- * P10 uplink class by pk910 (c)2011 pk910 *
- ************************************************************************
- * Version 2 (OOP) *
+/******************************* PHP-P10 v2 *****************************
+ * Copyright (C) 2011-2012 Philipp Kreil (pk910) *
* *
- * PHP-P10 is free software; you can redistribute it and/or modify *
+ * This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
+ * 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, *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
- * along with PHP-P10; if not, write to the Free Software Foundation, *
- * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. *
* *
************************************************************************
- *
+ *
* ModCMD/Binding.class.php
*
* a single Binding...
*
- ************************************************************************
- *
- *
*/
class Binding {
private $bot;
private $method;
-
- public function __construct($bot, $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) {
- return ($bot === $this->bot && 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