format
[PHP-P10.git] / ModCMD / Binding.class.php
index 143b35ef2487e1c203a41b29a68ed2fe1f96bba6..e7619b48cd54fc9adcdc456fd6b307ddeddacee2 100644 (file)
@@ -1,12 +1,10 @@
 <?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