public function __toString() { $uid = $this->user ? $this->user->getID() : '?'; $cid = $this->channel ? $this->channel->getID() : '?'; $sid = $this->server ? $this->server->getID() : '?'; return sprintf('SCOPE(U:%s,C:%s,S:%s)', $uid, $cid, $sid); }
private function initQueues() { if (false === ($this->queue_in = msg_get_queue(1000 + $this->server->getID()))) { return false; } if (false === ($this->queue_out = msg_get_queue(2000 + $this->server->getID()))) { return false; } return true; }
/** * Called by events to get or create the user. * @return Dog_User */ public static function getOrCreateUserByName($username) { if (false !== ($user = self::$LAST_SERVER->getUserByName($username))) { return $user; } if (false !== ($user = Dog_User::getOrCreate(self::$LAST_SERVER->getID(), $username))) { return $user; } return false; }
/** * Grant a user all privileges on a server. * @param int $sid * @param int $uid */ public static function grantAllToAll(Dog_Server $server, Dog_User $user, $bits = NULL) { $uid = $user->getID(); $all = $bits === NULL ? Dog_IRCPriv::allBits() : intval($bits); foreach (GDO::table('Dog_Channel')->selectColumn('chan_id', "chan_sid={$server->getID()}") as $cid) { if (false === self::table(__CLASS__)->insertAssoc(array('priv_cid' => $cid, 'priv_uid' => $uid, 'priv_privs' => $all))) { return false; } $user->setVar("dcp_{$cid}", $all); } return true; }
/** * Check if plugin is enabled for server and optional channel. * @param Dog_Server $server * @param DOG_Channel $channel * @return boolean */ public function isEnabled(Dog_Server $server, $channel) { $plg = $this->name; if (Dog_Conf_Plug::isDisabled($plg) || Dog_Conf_Plug_Serv::isDisabled($plg, $server->getID()) || $channel !== false && Dog_Conf_Plug_Chan::isDisabled($plg, $channel->getID(), $this->defdis)) { return false; } return true; }
public static function flushPermcache(Dog_Server $server, Dog_User $user) { $user->unsetVar("dsp_{$server->getID()}"); }
public function isTriggerEnabled(Dog_Server $server, $channel, $trigger) { $mod = $this->getName(); $sid = $server->getID(); if (!$this->isEnabled($server, $channel) || Dog_Conf_Mod_Serv::isTriggerDisabled($mod, $sid, $trigger, '0') || $channel !== false && Dog_Conf_Mod_Chan::isTriggerDisabled($mod, $channel->getID(), $trigger, $this->getDefDis($trigger))) { return false; } return true; }
public function onSend(Dog_Server $server, Dog_User $user, $message) { // $c = Dog::getTrigger(); if (false === ($nickname = Common::substrUntil($message, ' ', false))) { return $this->lang('help_send'); } $message = Common::substrFrom($message, ' '); if (false === ($user_to = Dog_User::getForServer($server->getID(), $nickname))) { return Dog::lang('err_user'); } if (false === Dog_Note::isWithinLimits($user->getID())) { return $this->lang('err_limit', array(Dog_Note::LIMIT_AMT, GWF_Time::humanDuration(Dog_Note::LIMIT_TIME))); } if (false !== ($channel = Dog::getChannel())) { if (false !== $channel->getUserByName($nickname)) { return $this->lang('err_in_chan', array($nickname)); } } if (false === Dog_Note::insertNote($user, $user_to, $message)) { return GWF_HTML::lang('ERR_DATABASE', array(__FILE__, __LINE__)); } return $this->lang('msg_sent', array($nickname)); }
public static function getByServer(Dog_Server $server) { return self::table(__CLASS__)->getRow($server->getID()); }
private function tryAutoLogin(Dog_Server $server, Dog_User $user) { if ($user->isRegistered()) { $username = $user->getName(); if (in_array($server->getID(), $this->status, true)) { $this->sendNickservStatus($server, $username); } else { $server->getConnection()->sendRAW("WHOIS {$username}"); } } }
private function onPrivmsgB(Dog_Server $server, Dog_User $user, $link, $origin, $message) { echo __METHOD__ . "({$link})"; $targets = explode(',', $link); $spam = false; foreach ($targets as $i => $target) { list($sid, $chan) = explode(':', $target); $sid2 = $server->getID(); if ($origin === $chan && $sid == $sid2) { unset($targets[$i]); $spam = true; } } if (!$spam) { return; } $b = chr(2); $lamb = Lamb::instance(); foreach ($targets as $target) { list($sid, $chan) = explode(':', $target); if (false === ($s = $lamb->getServer($sid))) { echo "Can not spam server {$sid}.\n"; continue; } if (false === ($c = $s->getChannel($chan))) { echo "Can not spam server {$sid} channel {$chan}.\n"; continue; } $s->sendPRIVMSG($chan, sprintf("<{$b}%s:%s{$b}>: %s", $server->getID(), $user->getName(), $message)); } }
public static function getExistingNick(Dog_Server $server, $nickname) { $nick = self::escape($nickname); return self::table(__CLASS__)->selectFirstObject('*', "nick_sid={$server->getID()} AND nick_name='{$nick}'"); }
/** * @param int $sid * @param string $name * @return Dog_Channel */ public static function getOrCreate(Dog_Server $server, $name) { $sid = $server->getID(); if (false !== ($channel = self::getForServer($sid, $name))) { return $channel; } $channel = new self(array('chan_id' => '0', 'chan_sid' => $sid, 'chan_name' => $name, 'chan_lang' => $server->getLangISO(), 'chan_pass' => NULL, 'chan_modes' => '', 'chan_triggers' => NULL, 'chan_options' => self::DEFAULT_OPTIONS)); return $channel->insert() ? $channel : false; }