commands[$cmd] = [$callback, $source]; $this->count++; } /** * Detach existing command. * * @param string $cmd Command ID * @param mixed $source Provider * * @return void * * @since 1.0.0 */ public function detach(string $cmd, $source) : void { if (\array_key_exists($cmd, $this->commands)) { unset($this->commands[$cmd]); $this->count--; } } /** * Trigger command. * * @param string $cmd Command ID * @param mixed $conn Client ID * @param mixed $para Parameters to pass * * @return mixed|bool * * @since 1.0.0 */ public function trigger(string $cmd, $conn, $para) { if (\array_key_exists($cmd, $this->commands)) { return $this->commands[$cmd][0]($conn, $para); } return false; } /** * Count commands. * * @return int * * @since 1.0.0 */ public function count() : int { return $this->count; } }