Example #1
0
 public function on_note_Pb()
 {
     $server = Dog::getServer();
     $user = Dog::getUser();
     $message = $this->msgarg();
     $command = Common::substrUntil($message, ' ', $message);
     $message = Common::substrFrom($message, ' ', '');
     switch ($command) {
         case 'send':
             $out = $this->onSend($server, $user, $message);
             break;
         case 'read':
             $out = $this->onRead($server, $user, $message);
             break;
         case 'delete':
             $out = $this->onDelete($server, $user, $message);
             break;
         case 'search':
             $out = $this->onSearch($server, $user, $message);
             break;
         default:
         case 'help':
             $this->onHelp();
             return;
     }
     $this->reply($out);
 }
Example #2
0
 public function on_autojoin_Ac()
 {
     $user = Dog::getUser();
     $server = Dog::getServer();
     $argv = $this->argv();
     $argc = count($argv);
     # Invoked in channel.
     switch ($argc) {
         # .autojoin
         case 0:
             return $this->showStatus($channel);
             # .autojoin on|#channel
         # .autojoin on|#channel
         case 1:
             if (Dog_Var::isValid('b', $argv[0])) {
                 return $this->setEnabled($channel, Dog_Var::parseValue('b', $argv[0]));
             } elseif (false === ($channel = Dog::getOrLoadChannelByArg($argv[0]))) {
                 return Dog::rply('err_channel');
             } else {
                 return $this->showStatus($channel);
             }
             # .autojoin #wechall on
         # .autojoin #wechall on
         case 2:
             if (false === ($channel = Dog::getOrLoadChannelByArg($argv[0]))) {
                 return Dog::rply('err_channel');
             }
             if (!Dog::hasPermission($server, $channel, $user, 'A')) {
                 return Dog::noPermission('s');
             }
             return $this->setEnabled($channel, Dog_Var::parseValue('b', $argv[1]));
     }
     $this->showHelp('autojoin');
 }
Example #3
0
 public function on_peak_Lc()
 {
     $channel = Dog::getChannel();
     if (false === ($peak = Dog_ChannelPeak::getPeak($channel))) {
         return Dog::err('ERR_DATABASE', array(__FILE__, __LINE__));
     }
     $date = $peak->getVar('lcpeak_date');
     $count = $peak->getVar('lcpeak_peak');
     $count_now = $channel->getUserCount();
     $age = GWF_Time::displayAge($date);
     $date = GWF_Time::displayDate($date);
     $args = array($count, $channel->getName(), Dog::getServer()->displayLongName(), $date, $age, $this->peekshowstring());
     $this->rply('old_peak', $args);
 }
Example #4
0
 public static function onLocationGlobalMessage(SR_Player $player, $key, $args = NULL)
 {
     $server = Dog::getServer();
     $channel = Dog::getChannel();
     $sid = $server->getID();
     //		$cid = $channel->getID();
     $party = $player->getParty();
     //		$b = chr(2);
     //		$message = sprintf('%s in %s: "%s".', $player->getName(), $party->getLocation(), $message);
     // 		$sent = 0;
     foreach (Shadowrun4::getParties() as $pid => $p) {
         // 			echo "party $pid\n";
         if ($party->sharesLocation($p)) {
             // 				echo "partyy $pid\n";
             foreach ($p->getMembers() as $m) {
                 $m instanceof SR_Player;
                 if ($m->isCreated()) {
                     // 						if (false === ($u = $m->getUser()))
                     // 						{
                     // 							continue;
                     // 						}
                     // 						if (false === ($s = $u->getServer()))
                     // 						{
                     // 							continue;
                     // 						}
                     // 						$c = $s->getChannelByName('#shadowlamb');
                     // 						if ($sid === $s->getID())
                     // 						{
                     // 							if ( ($channel !== false) && ($channel->getUserByName($u->getName()) !== false) )
                     // 							{
                     // 								# TODO: fix this
                     // //								continue; # player already read it in irc.
                     // 							}
                     // 						}
                     # send to player.
                     echo "Sending to {$m->getName()}\n";
                     $m->msg($key, $args);
                     // 						$m->message($message);
                     // 						$sent++;
                 }
             }
         }
     }
     //		if ($sent > 0)
     //		{
     //			$player->message(sprintf('%s players on cross servers read your message inside the same location. Use #exit or privmsg/query/pm with the bot.'));
     //		}
 }
Example #5
0
 public function on_greetmode_Sc()
 {
     $channel = Dog::getChannel();
     if (false === ($msg = Dog_GreetMSG::getGreetMsg(Dog::getServer(), $channel))) {
         return Dog::err('ERR_DATABASE', array(__FILE__, __LINE__));
     }
     $argv = $this->argv();
     $argc = count($argv);
     if ($argc === 0) {
         $this->showGreetMode($channel, $msg);
     } elseif ($argc === 1) {
         $this->setGreetMode($channel, $msg, $argv[0]);
     } else {
         $this->showHelp('greetmode');
     }
 }
Example #6
0
 function dogplug_help_all($entry, $fullpath, $cutlen)
 {
     global $DPH_ALL;
     $priv = $entry[0];
     $chan = Dog::getChannel();
     $serv = Dog::getServer();
     $user = Dog::getUser();
     $name = substr($entry, 0, -7);
     if (false !== ($plug = Dog_Plugin::getPlugWithPerms($serv, $chan, $user, $name)) && $plug->isEnabled($serv, $chan)) {
         $dir = substr($fullpath, $cutlen);
         $dir = substr($dir, 0, strrpos($dir, '/'));
         if (!isset($DPH_ALL[$dir])) {
             $DPH_ALL[$dir] = array();
         }
         if (!array_search($name, $DPH_ALL[$dir], true)) {
             $DPH_ALL[$dir][] = $name;
         }
     }
 }
Example #7
0
 public static function setVar(array $vars, $scope = NULL, $varname, $value)
 {
     if (false === ($var = self::getVar($vars, $varname, $scope))) {
         Dog::rply('err_unk_var');
     } elseif (!self::isValid($var->getType(), $value)) {
         Dog::rply('err_variabl', array($var->displayName(), $varname, $var->displayType()));
     } elseif (!$var->hasPermission(Dog::getServer(), Dog::getChannel(), Dog::getUser())) {
         Dog::noPermission($var->getPriv());
     } elseif (false === ($oldval = $var->getValue())) {
         Dog::err('ERR_DATABASE', array(__FILE__, __LINE__));
     } elseif (!$var->setValue($value)) {
         Dog::err('ERR_DATABASE', array(__FILE__, __LINE__));
     } else {
         Dog::rply('msg_set_var', array($var->displayName(), $varname, $oldval, $var->getValue()));
     }
 }
Example #8
0
 private function setup()
 {
     return GDO::table('Dog_Nick')->insertAssoc(array('nick_id' => '0', 'nick_sid' => $this->getID(), 'nick_name' => Dog::getServer()->getNick()->getName(), 'nick_pass' => NULL, 'nick_options' => 0));
 }
Example #9
0
 public function event_QUIT()
 {
     if (false !== ($user = Dog::getUser())) {
         Shadowrun4::onQuit(Dog::getServer(), Dog::getUser(), Dog::argv(0));
     }
 }
Example #10
0
 public function replyAction($message)
 {
     return Dog::getServer()->replyAction($message);
 }
Example #11
0
 public static function map($method_name, $args = NULL)
 {
     $server = Dog::getServer();
     $channel = Dog::getChannel();
     foreach (self::$MODULES as $module) {
         $module instanceof Dog_Module;
         if (method_exists($module, $method_name)) {
             if ($module->isEnabled($server, $channel)) {
                 call_user_func(array($module, $method_name), $args);
             }
         }
     }
 }
Example #12
0
<?php

$lang = array('en' => array('help' => '%CMD% <nickname>. Change the bot`s nickname.', 'curr' => 'My current nick here is %s.', 'ok' => 'Sending the NICK command...'));
$plugin = Dog::getPlugin();
$argv = $plugin->argv();
$argc = count($argv);
if ($argc === 0) {
    $plugin->rply('curr', array(Dog::getNickname()));
} elseif ($argc === 1 && preg_match('/^[a-z0-9_]+$/i', $argv[0])) {
    $plugin->rply('ok');
    Dog::getServer()->sendRAW("NICK {$argv[0]}");
} else {
    $plugin->showHelp();
}
Example #13
0
 private function probeServer()
 {
     $server = Dog::getServer();
     $this->sendNickservStatus($server, $server->getNick()->getName());
 }
Example #14
0
<?php

$lang = array('en' => array('help' => 'Usage: %CMD% <topic here ...>. Let %BOT% set the channels topic.'));
$plugin = Dog::getPlugin();
$argv = $plugin->argv();
$argc = count($argv);
if ($argc === 0) {
    return $plugin->showHelp();
}
$channel = Dog::getChannel();
Dog::getServer()->sendRAW("TOPIC {$channel->getName()} :{$plugin->msg()}");
Example #15
0
 public function on_slapstats_Pb()
 {
     $user = Dog::getUser();
     $server = Dog::getServer();
     $message = $this->msgarg();
     if ($message === '') {
         $user2 = $user;
     } elseif (false === ($user2 = $server->getUserByName($message))) {
         return 'This user is unknown';
     }
     $db = gdo_db();
     $userid = $user2->getVar('user_id');
     $lsh = GWF_TABLE_PREFIX . 'dog_slap_history';
     $lsu = GWF_TABLE_PREFIX . 'dog_slap_user';
     $query = "SELECT COUNT(*) c , SUM(lsh_damage) sum, slapu_malus malus, slapu_malus_c malus_c FROM {$lsh} LEFT JOIN {$lsu} ON slapu_uid={$userid} WHERE lsh_slapper={$userid}";
     if (false === ($result = $db->queryFirst($query))) {
         return 'This user has no stats yet.';
     }
     $count1 = $result['c'];
     $dmg_deal = $result['sum'];
     $malus = $result['malus'];
     $malus_c = $result['malus_c'];
     //		list($count1, $dmg_deal, $malus, $malus_c) = $result;
     $query = "SELECT COUNT(*) c, SUM(lsh_damage) sum FROM {$lsh} WHERE lsh_target={$userid}";
     if (false === ($result = $db->queryFirst($query))) {
         return 'This user has no stats yet.';
     }
     $count2 = $result['c'];
     $dmg_take = $result['sum'];
     //		list($count2, $dmg_take) = $result;
     //		$count3 = $count1 - $count2;
     $score = $dmg_deal - $dmg_take;
     $score -= $malus;
     if ($malus_c > 0) {
         $malusmsg = sprintf(' %d Remainslaps (-%d points).', $malus_c, $malus);
     } else {
         $malusmsg = '';
     }
     $out = sprintf('%s has slapped other people %d times. Total damage caused: %d(%.02f in avg). The user got slapped %d times. Total damage taken: %d(%.02f in avg).%s This sums up to %d points.', $user2->getName(), $count1, $dmg_deal, $count1 == 0 ? 0 : $dmg_deal / $count1, $count2, $dmg_take, $count2 == 0 ? 0 : $dmg_take / $count2, $malusmsg, $score);
     $this->reply($out);
 }
Example #16
0
 public function event_254()
 {
     $stats = Dog_IRCStats::getOrCreateByServer(Dog::getServer());
     $argv = Dog::argv();
     $stats->saveVars(array('dis_max_chans' => $argv[1]));
 }
Example #17
0
<?php

# :krashed__!~dig@mx.renome.ua QUIT :Excess Flood
if (false !== ($user = Dog::setupUser())) {
    Dog::getServer()->removeUser($user);
} else {
    Dog_Log::error('Cannot get use from quit');
    Dog_Log::error(Dog::getMessage());
}
Example #18
0
<?php

# PING :irc.giz.org
Dog::getServer()->sendRAW('PONG ' . Dog::argv(0));
Example #19
0
<?php

$lang = array('en' => array('help' => 'Usage: %CMD% <raw irc data here>. Send raw IRC data to this server.'));
$plugin = Dog::getPlugin();
if ('' === ($message = $plugin->msg())) {
    $plugin->showHelp();
} else {
    Dog::getServer()->sendRAW($message);
}
Example #20
0
<?php

$lang = array('en' => array('help' => 'Usage: %CMD% [<server>]. List the channels where %BOT% is online.', 'none' => 'I am not connected to any channel on %s.', 'out' => 'I am in %d channels on %s: %s.'));
$plugin = Dog::getPlugin();
$argv = $plugin->argv();
$argc = count($argv);
if ($argc === 0) {
    $server = Dog::getServer();
} elseif ($argc !== 1) {
    return $plugin->showHelp();
} else {
    if (false === ($server = Dog::getServerByArg($argv[0]))) {
        return Dog::rply('err_server');
    }
}
if (!$server->isConnected()) {
    return Dog::rply('err_connection');
}
$out = '';
$channels = $server->getChannels();
foreach ($channels as $channel) {
    $channel instanceof Lamb_Channel;
    $out .= sprintf(', %s(%d)', $channel->getName(), count($channel->getUsers()));
}
if ($out === '') {
    return $plugin->rply('none', array($server->displayName()));
}
$plugin->rply('out', array(count($channels), $server->displayName(), substr($out, 2)));
Example #21
0
 /**
  * Get a user by long name notation, either foo!4 for server 4 or just foo for current server.
  * @param string $name
  * @return Dog_User
  */
 public static function getByLongName($name)
 {
     $sid = Common::substrFrom($name, '!', Dog::getServer()->getID());
     return self::getForServer($sid, Common::substrUntil($name, '!', $name));
 }