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); }
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'); }
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); }
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.')); // } }
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'); } }
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; } } }
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())); } }
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)); }
public function event_QUIT() { if (false !== ($user = Dog::getUser())) { Shadowrun4::onQuit(Dog::getServer(), Dog::getUser(), Dog::argv(0)); } }
public function replyAction($message) { return Dog::getServer()->replyAction($message); }
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); } } } }
<?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(); }
private function probeServer() { $server = Dog::getServer(); $this->sendNickservStatus($server, $server->getNick()->getName()); }
<?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()}");
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); }
public function event_254() { $stats = Dog_IRCStats::getOrCreateByServer(Dog::getServer()); $argv = Dog::argv(); $stats->saveVars(array('dis_max_chans' => $argv[1])); }
<?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()); }
<?php # PING :irc.giz.org Dog::getServer()->sendRAW('PONG ' . Dog::argv(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); }
<?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)));
/** * 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)); }