Exemple #1
0
 public function run()
 {
     $explode = explode(" ", $this->message->content);
     $prefix = $this->channelConfig->prefix;
     $system = isset($explode[0]) ? $explode[0] == "{$prefix}pc" ? "global" : str_replace($prefix, "", $explode[0]) : "global";
     unset($explode[0]);
     $item = implode(" ", $explode);
     // Stuff that doesn't need a db lookup
     $quickLookUps = ["plex" => array("typeName" => "30 Day Pilot's License Extension (PLEX)", "typeID" => 29668), "injector" => array("typeName" => "Skill Injector", "typeID" => 40520), "extractor" => array("typeName" => "Skill Extractor", "typeID" => 40519)];
     if ($system && $item) {
         if (isset($quickLookUps[$item])) {
             $single = $quickLookUps[$item];
             $multiple = null;
         } else {
             $single = $this->db->queryRow("SELECT typeID, typeName FROM invTypes WHERE typeName = :item", array(":item" => $item));
             $multiple = $this->db->query("SELECT typeID, typeName FROM invTypes WHERE typeName LIKE :item LIMIT 5", array(":item" => $item));
         }
         if (count($multiple) == 1) {
             $single = $multiple[0];
         }
         if (empty($single) && !empty($multiple)) {
             $items = array();
             foreach ($multiple as $item) {
                 $items[] = $item["typeName"];
             }
             $items = implode(", ", $items);
             return $this->message->reply("**Multiple results found:** {$items}");
         }
         // If there is a single result, we'll get data now!
         if ($single) {
             $typeID = $single["typeID"];
             $typeName = $single["typeName"];
             if ($system == "global") {
                 $system = "global";
                 $data = new SimpleXMLElement($this->curl->get("https://api.eve-central.com/api/marketstat?typeid={$typeID}"));
             } else {
                 $solarSystemID = $this->db->queryField("SELECT solarSystemID FROM mapSolarSystems WHERE solarSystemName = :system", "solarSystemID", array(":system" => $system));
                 $data = new SimpleXMLElement($this->curl->get("https://api.eve-central.com/api/marketstat?usesystem={$solarSystemID}&typeid={$typeID}"));
             }
             $lowBuy = number_format((double) $data->marketstat->type->buy->min, 2);
             $avgBuy = number_format((double) $data->marketstat->type->buy->avg, 2);
             $highBuy = number_format((double) $data->marketstat->type->buy->max, 2);
             $lowSell = number_format((double) $data->marketstat->type->sell->min, 2);
             $avgSell = number_format((double) $data->marketstat->type->sell->avg, 2);
             $highSell = number_format((double) $data->marketstat->type->sell->max, 2);
             $solarSystemName = $system == "pc" ? "Global" : ucfirst($system);
             $messageData = "```\ntypeName: {$typeName}\nsolarSystemName: {$solarSystemName}\nBuy:\n  Low: {$lowBuy}\n  Avg: {$avgBuy}\n  High: {$highBuy}\nSell:\n  Low: {$lowSell}\n  Avg: {$avgSell}\n  High: {$highSell}```";
             $this->message->reply($messageData);
         } else {
             $this->message->reply("**Error:** ***{$item}*** not found");
         }
     } else {
         $this->message->reply("**Error:** No itemName set..");
     }
     // Mark this as garbage
     $this->isGarbage();
 }
Exemple #2
0
 public function run()
 {
     $channels = $this->db->query("SELECT * FROM killmailPosting");
     foreach ($channels as $channel) {
         $rowID = $channel["id"];
         $type = $channel["typeName"];
         $id = $channel["typeID"];
         $latest = $channel["latestKillID"];
         $channelID = $channel["channelID"];
         // Get the killdata
         $killData = json_decode($this->curl->get("https://evedata.xyz/api/killlist/latest/"));
         if (!empty($killData)) {
             foreach ($killData as $kill) {
                 if (isset($kill->killID) && $kill->killID > $latest) {
                     switch ($type) {
                         case "character":
                             if ($kill->victim->characterID == $id) {
                                 $msg = "{$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName}) lost {$kill->victim->shipTypeName} in {$kill->solarSystemName} ({$kill->regionName}) with a total value of {$kill->totalValue}isk | https://beta.eve-kill.net/kill/{$kill->killID}/";
                                 $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                             }
                             foreach ($kill->attackers as $attacker) {
                                 if ($attacker->characterID == $id && $attacker->finalBlow == 1) {
                                     $msg = "{$attacker->characterName} participated in killing {$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName} / {$kill->victim->shipTypeName}) in a {$attacker->shipTypeName} doing a total of {$attacker->damageDone} damage, and helped destroy {$kill->totalValue}isk | https://beta.eve-kill.net/kill/{$kill->killID}/";
                                     $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                                 }
                             }
                             break;
                         case "corporation":
                             if ($kill->victim->corporationID == $id) {
                                 $msg = "{$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName}) lost {$kill->victim->shipTypeName} in {$kill->solarSystemName} ({$kill->regionName}) with a total value of {$kill->totalValue}isk";
                                 $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                             }
                             foreach ($kill->attackers as $attacker) {
                                 if ($attacker->corporationID == $id && $attacker->finalBlow == 1) {
                                     $msg = "{$attacker->characterName} participated in killing {$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName} / {$kill->victim->shipTypeName}) in a {$attacker->shipTypeName} doing a total of {$attacker->damageDone} damage, and helped destroy {$kill->totalValue}isk | https://beta.eve-kill.net/kill/{$kill->killID}/";
                                     $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                                 }
                             }
                             break;
                         case "alliance":
                             if ($kill->victim->allianceID == $id) {
                                 $msg = "{$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName}) lost {$kill->victim->shipTypeName} in {$kill->solarSystemName} ({$kill->regionName}) with a total value of {$kill->totalValue}isk";
                                 $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                             }
                             foreach ($kill->attackers as $attacker) {
                                 if ($attacker->allianceID == $id && $attacker->finalBlow == 1) {
                                     $msg = "{$attacker->characterName} participated in killing {$kill->victim->characterName} ({$kill->victim->corporationName} / {$kill->victim->allianceName} / {$kill->victim->shipTypeName}) in a {$attacker->shipTypeName} doing a total of {$attacker->damageDone} damage, and helped destroy {$kill->totalValue}isk | https://beta.eve-kill.net/kill/{$kill->killID}/";
                                     $this->db->execute("UPDATE killmailPosting SET latestKillID = :killID WHERE id = :rowID", array(":killID" => $kill->killID, ":rowID" => $rowID));
                                 }
                             }
                             break;
                     }
                 }
             }
             if (!empty($msg)) {
                 /** @var Channel $chan */
                 $chan = Channel::find($channelID);
                 $chan->sendMessage($msg);
             }
         }
     }
 }