Beispiel #1
0
 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);
 }
Beispiel #2
0
 public static function onKick(Dog_Server $server, Dog_Channel $channel, Dog_User $user, $message)
 {
     echo "PG: {$message}\n";
     //		$server->sendPRIVMSG($channel->getName(), $user->getName().': '.$message);
     $server->getConnection()->sendRAW(sprintf("KICK %s %s :%s", $channel->getName(), $user->getName(), $message));
     $event = new self(array('lpg_uid' => $user->getID(), 'lpg_time' => time()));
     self::onBan($server, $channel, $user, $message);
 }
Beispiel #3
0
 public static function getPeak(Dog_Channel $channel)
 {
     $cid = $channel->getID();
     if (false !== ($peak = GDO::table(__CLASS__)->getRow($cid))) {
         return $peak;
     }
     return self::createPeak($cid);
 }
Beispiel #4
0
 public static function createChannelRecord(Dog_Channel $channel)
 {
     $row = new self(array('dqj_cid' => $channel->getID(), 'dqj_sid' => $channel->getVar('chan_sid'), 'dqj_uid' => 0, 'dqj_duration' => 9999.999900000001, 'dqj_date_quit' => str_repeat('0', 14), 'dqj_date_join' => str_repeat('0', 14), 'dqj_options' => 0));
     if (false === $row->replace()) {
         return false;
     }
     return $row;
 }
Beispiel #5
0
 public function output($message)
 {
     $message = trim($message);
     if ($message !== '') {
         $this->channel->sendPRIVMSG($message);
     }
 }
Beispiel #6
0
 private function onHighlightFlood(Dog_Server $server, Dog_Channel $channel, Dog_User $user, $message)
 {
     $count = 0;
     $nicknames = preg_split('/ +/', $message);
     $users = array_keys($channel->getUsers());
     $nicknames = array_unique(array_map('strtolower', $nicknames));
     foreach ($nicknames as $nickname) {
         //			echo "checking '$nickname'\n";
         foreach ($users as $username) {
             if (strcasecmp($username, $nickname) === 0) {
                 $count++;
                 break;
             }
         }
     }
     //		echo "PGCOUNT: $count\n";
     if ($count >= self::HIGHLIGHT_MAX) {
         $this->kick($server, $channel, $user, "Do not mass-highlight!");
     }
 }
Beispiel #7
0
 public function getChannel()
 {
     return Dog_Channel::getByID($this->getCID());
 }
Beispiel #8
0
 private function setEnabled(Dog_Channel $channel, $value)
 {
     $channel->saveOption(Dog_Channel::AUTO_JOIN, $value);
     $key = $value ? 'enabled' : 'disabled';
     return $this->rply($key, array($channel->displayName()));
 }
Beispiel #9
0
 public function partChannel(Dog_Channel $channel)
 {
     $this->sendRAW("PART {$channel->getName()}");
 }
Beispiel #10
0
 private static function stopTheWatch(Dog_User $user, Dog_Channel $channel)
 {
     $uid = $user->getID();
     $cid = $channel->getID();
     return isset(self::$JOIN[$cid][$uid]) ? self::$JOIN[$cid][$uid] : false;
 }
Beispiel #11
0
 /**
  * @param Dog_Server $server
  * @param Dog_Channel $channel
  * @return Dog_GreetMsg
  */
 public static function getGreetMsg(Dog_Server $server, Dog_Channel $channel)
 {
     return GDO::table(__CLASS__)->getRow($channel->getID());
 }
Beispiel #12
0
 private function setGreetModeB(Dog_Channel $channel, Dog_GreetMsg $msg, $char, $bit)
 {
     $msg->saveOption(Dog_GreetMsg::MODES, false);
     $msg->saveOption($bit);
     $this->rply('change_to_' . $char, array($channel->displayLongName()));
 }
Beispiel #13
0
 private function sendAbbo(Dog_Forum $board, Dog_Channel $channel, Dog_ForumEntry $entry)
 {
     $channel->sendPRIVMSG($this->lang('msg_entry', array($board->getTitle(), $entry->getUserName(), $entry->getTitle(), $entry->getURL())));
 }
Beispiel #14
0
 public static function flushPermcache(Dog_Channel $channel, Dog_User $user)
 {
     $user->unsetVar("dcp_{$channel->getID()}");
 }
Beispiel #15
0
<?php

$lang = array('en' => array('help' => 'Usage: %CMD% <channel>[!<SID>]. Try to join a channel.', 'already' => 'I am already on that channel.', 'trying' => 'Trying to join this channel.', 'unknown_serv' => 'This server is unknown.'), 'de' => array('help' => 'Nutze: %CMD% <Kanal>[!<SID>]. Versucht einem Kanal beizutreten.', 'already' => 'Ich bin schon in diesem Kanal.', 'trying' => 'Es wird versucht dem Kanal beizutreten.', 'unknown_serv' => 'Dieser Server ist nicht vorhanden.'));
$plugin = Dog::getPlugin();
if ($plugin->argc() !== 1) {
    return $plugin->showHelp();
}
$arg = $plugin->argv(0);
if (false === ($server = Dog::getServerBySuffix($arg))) {
    return $plugin->rply('unknown_serv');
}
if (false !== ($channel = Dog::getChannelByArg($arg))) {
    return $plugin->rply('already');
}
$chan_name = Common::substrFrom($arg, '!', $arg);
if (false === ($channel = Dog_Channel::getOrCreate($server, $chan_name))) {
    return Dog::err('ERR_DATABASE', array(__FILE__, __LINE__));
}
$plugin->rply('trying');
$channel->saveOption(Dog_Channel::AUTO_JOIN, true);
$server->joinChannel($channel);
Beispiel #16
0
 private function randomQuoteChannel(Dog_Channel $channel)
 {
     $message = $this->lang('random_quote', array($this->onDisplay()));
     $channel->sendPRIVMSG($message);
 }
Beispiel #17
0
 /**
  * Get a channel from cache, or load it from db.
  * @param string $arg
  * @return Dog_Channel
  */
 public static function getOrLoadChannelByArg($arg)
 {
     if (false === ($server = self::getServerBySuffix($arg))) {
         $server = self::getServer();
     }
     $arg = Common::substrUntil($arg, '!', $arg);
     if (false !== ($channel = $server->getChannelByName($arg))) {
         return $channel;
     }
     return Dog_Channel::getForServer($server->getID(), $arg);
 }