Advertisement
EnteMomo

Untitled

Oct 20th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 14.34 KB | None | 0 0
  1. <?php
  2.  
  3. namespace EnteMomo;
  4.  
  5. use pocketmine\level\Position;
  6. use pocketmine\inventory\ChestInventory;
  7. use pocketmine\event\player\PlayerItemHeldEvent;
  8. use pocketmine\plugin\PluginBase;
  9. use pocketmine\event\block\SignChangeEvent;
  10. use pocketmine\scheduler\PluginTask;
  11. use pocketmine\network\mcpe\protocol\Transferpacket;
  12. use pocketmine\level\sound\PopSound;
  13. use pocketmine\level\sound\LevelSound;
  14. use pocketmine\level\sound\EndermanTeleportSound;
  15. use pocketmine\level\sound\NoteblockSound;
  16. use pocketmine\level\sound\ExpPickupSound;
  17. use pocketmine\level\sound\ClickSound;
  18. use pocketmine\event\player\PlayerCommandPreprocessEvent;
  19. use pocketmine\level\sound\AnvilFallSound;
  20. use pocketmine\level\sound\LaunchSound;
  21. use pocketmine\level\sound\FizzSound;
  22. use pocketmine\command\CommandSender;
  23. use pocketmine\command\Command;
  24. use pocketmine\command\ConsoleCommandSender;
  25. use pocketmine\event\block\BlockBreakEvent;
  26. use pocketmine\level\particle\RedstoneParticle;
  27. use pocketmine\event\block\BlockPlaceEvent;
  28. use pocketmine\event\player\PlayerDeathEvent;
  29. use pocketmine\event\player\PlayerChatEvent;
  30. use pocketmine\event\player\PlayerRespawnEvent;
  31. use pocketmine\event\player\PlayerQuitEvent;
  32. use pocketmine\event\player\PlayerInteractEvent;
  33. use pocketmine\event\player\PlayerJoinEvent;
  34. use pocketmine\event\player\PlayerDropItemEvent;
  35. use pocketmine\event\entity\EntityDamageEvent;
  36. use pocketmine\event\entity\EntityDamageByEntityEvent;
  37. use pocketmine\particle\FloatingTextParticle;
  38. use pocketmine\event\Listener;
  39. use pocketmine\Player;
  40. use pocketmine\entity\Entity;
  41. use pocketmine\utils\Config;
  42. use pocketmine\block\Block;
  43. use pocketmine\level\Level;
  44. use pocketmine\level\particle;
  45. use pocketmine\utils\TextFormat as C;
  46. use pocketmine\item\item;
  47. use pocketmine\math\Vector3;
  48. use pocketmine\nbt\NBT;
  49. use xenialdan\BossBarAPI\API;
  50. use pocketmine\nbt\tag\Byte;
  51. use pocketmine\nbt\tag\Compound;
  52. use pocketmine\nbt\tag\Double;
  53. use pocketmine\nbt\tag\Enum;
  54. use pocketmine\tile\Tile;
  55. use pocketmine\tile\Chest;
  56. use pocketmine\tile\Sign;
  57. use pocketmine\entity\Effect;
  58.  
  59. class Main extends PluginBase implements Listener{
  60.     public $prefix = "§eUHCRun §8| §7";
  61.     public $game = "UHCRun-1";
  62.     public $lobbytimer = 60;
  63.     public $starttimer = 10;
  64.     public $gametimer = 1200;
  65.     public $dmtimer = 600;
  66.     public $waiting = 4;
  67.     public $status = "lobby";
  68.    
  69.     public function OnEnable(){
  70.         @mkdir("/home/Datenbank/");
  71.         $this->getServer()->getPluginManager()->registerEvents($this, $this);
  72.         $this->getServer()->getScheduler()->scheduleRepeatingTask(new TopSigns($this), 60);
  73.         $this->getServer()->getScheduler()->scheduleRepeatingTask(new Timer($this), 20);
  74.         $config = new Config($this->getDataFolder()."config.yml", Config::YAML);
  75.         $dbconfig = new Config("/home/Datenbank/Cloud.yml", Config::YAML);
  76.         $dbconfig->setNested($this->game."Status", "Lobby");
  77.         $dbconfig->setNested($this->game."Map", "Standart");
  78.         $config->set("Players",array(""));
  79.         $this->getLogger()->info(C::GREEN . "Aktiviert");
  80.     }
  81.    
  82.     public function onJoin(PlayerJoinEvent $event){
  83.         $config = new Config($this->getDataFolder()."config.yml", Config::YAML);
  84.         $player = $event->getPlayer();
  85.         //$oldplayers = $config->get("Players");
  86.         //$newplayers = $config->set("Players".array($oldplayers, $player->getName()));
  87.         $level = $this->getServer()->getDefaultLevel();
  88.         //$level->addParticle(new FloatingTextParticle(new Vector3(107, 122, 50),"lolo", [$player]));
  89.     }
  90.    
  91.     public function onCommand(CommandSender $sender, Command $cmd, string $label, array $args) : bool{
  92.         $player = $sender->getPlayer();
  93.         $db = new Config("/home/Datenbank/Stats/UHCRun/".strtolower($player->getName()).".yml", Config::YAML);
  94.         $dbg = new Config("/home/Datenbank/Players/".strtolower($player->getName()).".yml", Config::YAML);
  95.         $lang = $dbg->get("Lang");
  96.         if (strtolower($cmd->getName()) == "stats"){
  97.             if(empty($args[0])){
  98.                 $kills = $db->get("Kills");
  99.                 $deaths = $db->get("Deaths");
  100.                 $games = $db->get("Games");
  101.                 $wins = $db->get("Wins");
  102.                 if($lang == "deu"){
  103.                
  104.                 $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats von ".C::GOLD.$sender->getName().C::GRAY." (30 Tage) =-");
  105.                 $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
  106.                 $player->sendMessage(C::GRAY." Tode".C::DARK_GRAY.": ".C::YELLOW.$deaths);
  107.                 $player->sendMessage(C::GRAY." Gespielte Spiele".C::DARK_GRAY.": ".C::YELLOW.$games);
  108.                 $player->sendMessage(C::GRAY." Gewonnene Spiele".C::DARK_GRAY.": ".C::YELLOW.$wins);
  109.                 $player->sendMessage(C::GRAY."-----------------");
  110.                 } else {
  111.                     $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats of ".C::GOLD.$sender->getName().C::GRAY." (30 days) =-");
  112.                     $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
  113.                     $player->sendMessage(C::GRAY." Deaths".C::DARK_GRAY.": ".C::YELLOW.$deaths);
  114.                     $player->sendMessage(C::GRAY." Played Games".C::DARK_GRAY.": ".C::YELLOW.$games);
  115.                     $player->sendMessage(C::GRAY." Won Games".C::DARK_GRAY.": ".C::YELLOW.$wins);
  116.                     $player->sendMessage(C::GRAY."-----------------");
  117.                 }
  118.             }
  119.             $db2 = new Config("/home/Datenbank/Stats/UHCRun/".strtolower($args[0]).".yml", Config::YAML);
  120.                 if(!empty($db2->get("Kills"))){
  121.                     $kills = $db2->get("Kills");
  122.                     $deaths = $db2->get("Deaths");
  123.                     $games = $db2->get("Games");
  124.                     $wins = $db2->get("Wins");
  125.                     if($lang == "deu"){
  126.                         $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats von ".C::GOLD.$args[0].C::GRAY." (30 Tage) =-");
  127.                         $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
  128.                         $player->sendMessage(C::GRAY." Tode".C::DARK_GRAY.": ".C::YELLOW.$deaths);
  129.                         $player->sendMessage(C::GRAY." Gespielte Spiele".C::DARK_GRAY.": ".C::YELLOW.$games);
  130.                         $player->sendMessage(C::GRAY." Gewonnene Spiele".C::DARK_GRAY.": ".C::YELLOW.$wins);
  131.                         $player->sendMessage(C::GRAY."-----------------");
  132.                     } else {
  133.                         $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats of ".C::GOLD.$args[0].C::GRAY." (30 days) =-");
  134.                         $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
  135.                         $player->sendMessage(C::GRAY." Deaths".C::DARK_GRAY.": ".C::YELLOW.$deaths);
  136.                         $player->sendMessage(C::GRAY." Played Games".C::DARK_GRAY.": ".C::YELLOW.$games);
  137.                         $player->sendMessage(C::GRAY." Won Games".C::DARK_GRAY.": ".C::YELLOW.$wins);
  138.                         $player->sendMessage(C::GRAY."-----------------");
  139.                     }
  140.                     return false;}
  141.             return false;}
  142.     }
  143.    
  144.     public function onTop()
  145.     {
  146.         $a = array(
  147.                 1 => array(
  148.                         "name" => "/",
  149.                         "amount" => 0,
  150.                 ),
  151.                 2 => array(
  152.                         "name" => "/",
  153.                         "amount" => 0,
  154.                 ),
  155.                 3 => array(
  156.                         "name" => "/",
  157.                         "amount" => 0,
  158.                 )
  159.         );
  160.        
  161.         $dir = "/home/Datenbank/Stats/UHCRun/";
  162.         $files = array_slice(scandir($dir), 2);
  163.         foreach ($files as $f) {
  164.             $player = pathinfo($f, PATHINFO_FILENAME);
  165.             $cfg = new Config("/home/Datenbank/Stats/UHCRun/". $player . ".yml", Config::YAML);
  166.             $name = $player;
  167.             $kills = (int)$cfg->get("Wins");
  168.             $a1 = (int)$a[1]["amount"];
  169.             $a2 = (int)$a[2]["amount"];
  170.             $a3 = (int)$a[3]["amount"];
  171.            
  172.             if ($kills > $a1) {
  173.                 if ($a1 > $a2) {
  174.                     $a[2]["amount"] = $a[1]["amount"];
  175.                     $a[2]["name"] = $a[1]["name"];
  176.                 } elseif ($a1 > $a3) {
  177.                     $a[3]["amount"] = $a[1]["amount"];
  178.                     $a[3]["name"] = $a[1]["name"];
  179.                 }
  180.                 $a[1]["amount"] = $kills;
  181.                 $a[1]["name"] = $name;
  182.             } elseif ($kills > $a2) {
  183.                 if ($a2 > $a3) {
  184.                     $a[3]["amount"] = $a[2]["amount"];
  185.                     $a[3]["name"] = $a[2]["name"];
  186.                 }
  187.                 $a[2]["amount"] = $kills;
  188.                 $a[2]["name"] = $name;
  189.             } elseif ($kills > $a3) {
  190.                 $a[3]["amount"] = $kills;
  191.                 $a[3]["name"] = $name;
  192.             }
  193.         }
  194.         return $a;
  195.     }
  196. }
  197.  
  198.  
  199. class TopSigns extends PluginTask
  200. {
  201.    
  202.     public function __construct($plugin)
  203.     {
  204.         $this->plugin = $plugin;
  205.         parent::__construct($plugin);
  206.     }
  207.    
  208.     public function onRun($tick)
  209.     {
  210.         $level = $this->plugin->getServer()->getDefaultLevel();
  211.         $tiles = $level->getTiles();
  212.         $top = $this->plugin->onTop();
  213.         $erster = $top[1];
  214.         $zweiter = $top[2];
  215.         $dritter = $top[3];
  216.         $name_erster = $erster["name"];
  217.         $anzahl_erster = $erster["amount"];
  218.        
  219.         $name_zweiter = $zweiter["name"];
  220.         $anzahl_zweiter = $zweiter["amount"];
  221.        
  222.         $name_dritter = $dritter["name"];
  223.         $anzahl_dritter = $dritter["amount"];
  224.         foreach ($tiles as $t)
  225.         {
  226.             if ($t instanceof Sign)
  227.             {
  228.                 $text = $t->getText();
  229.                 if ($text[0] === C::RED . C::BOLD."Platz 3")
  230.                 {
  231.                     $t->setText(C::RED . C::BOLD."Platz 3",
  232.                             C::YELLOW . $name_dritter,
  233.                             "---",
  234.                             C::DARK_AQUA . "Wins: " . $anzahl_dritter
  235.                             );
  236.                 }
  237.                 if ($text[0] === C::GRAY . C::BOLD."Platz 2")
  238.                 {
  239.                     $t->setText(C::GRAY . C::BOLD. "Platz 2",
  240.                             C::YELLOW . $name_zweiter,
  241.                             "---",
  242.                             C::DARK_AQUA . "Wins: " . $anzahl_zweiter
  243.                             );
  244.                 }
  245.                 if ($text[0] === C::GOLD . C::BOLD."Platz 1")
  246.                 {
  247.                     $t->setText(C::GOLD . C::BOLD."Platz 1",
  248.                             C::AQUA . $name_erster,
  249.                             "---",
  250.                             C::DARK_AQUA . "Wins: " . $anzahl_erster
  251.                             );
  252.                 }
  253.             }
  254.         }
  255.     }
  256. }
  257.  
  258. class Timer extends PluginTask
  259. {
  260.    
  261.     public function __construct($plugin)
  262.     {
  263.         $this->plugin = $plugin;
  264.         parent::__construct($plugin);
  265.     }
  266.    
  267.     public function onRun($tick)
  268.     {
  269.         $dbconfig = new Config("/home/Datenbank/Cloud.yml", Config::YAML);
  270.         if($dbconfig->getNested($this->plugin->game."Status") == "Lobby"){
  271.             $players = count($this->plugin->getServer()->getOnlinePlayers());
  272.             if($players < 2){
  273.                 $this->plugin->lobbytimer = 60;
  274.                 if($this->plugin->waiting == 4){
  275.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  276.                         $p->sendTip("§cWarte auf Spieler");
  277.                         $p->setXpLevel(0);
  278.                     }
  279.                 }
  280.                 if($this->plugin->waiting == 3){
  281.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  282.                         $p->sendTip("§cWarte auf Spieler.");
  283.                         $p->setXpLevel(0);
  284.                     }
  285.                 }
  286.                 if($this->plugin->waiting == 2){
  287.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  288.                         $p->sendTip("§cWarte auf Spieler..");
  289.                     }
  290.                 }
  291.                 if($this->plugin->waiting == 1){
  292.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  293.                         $p->sendTip("§cWarte auf Spieler...");
  294.                     }
  295.                 }
  296.                 if($this->plugin->waiting == 0){
  297.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  298.                         $p->sendTip("§cWarte auf Spieler....");
  299.                     }
  300.                     $this->plugin->waiting = 4;
  301.                 }
  302.                 $this->plugin->waiting--;
  303.             }else{
  304.                 foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  305.                     $sec = $this->plugin->lobbytimer;
  306.                     $p->sendTip($this->plugin->prefix.C::GRAY."Die Runde startet in".C::YELLOW.$sec.C::GRAY." Sekunden!");
  307.                     $p->setXpLevel($sec);
  308.                 }
  309.                 if($this->plugin->lobbytimer == 60){
  310.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  311.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e60§f Sekunden.");
  312.                         $p->sendTitle("§a60", "§7Sekunden");
  313.                     }
  314.                 }
  315.                 if($this->plugin->lobbytimer == 45){
  316.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  317.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e45§f Sekunden.");
  318.                         $p->sendTitle("§a45", "§7Sekunden");
  319.                     }
  320.                 }
  321.                 if($this->plugin->lobbytimer == 30){
  322.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  323.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e30§f Sekunden.");
  324.                         $p->sendTitle("§a30", "§7Sekunden");
  325.                     }
  326.                 }
  327.                 if($this->plugin->lobbytimer == 20){
  328.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  329.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e20§f Sekunden.");
  330.                         $p->sendTitle("§a20", "§7Sekunden");
  331.                     }
  332.                 }
  333.                 if($this->plugin->lobbytimer == 15){
  334.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  335.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e15§f Sekunden.");
  336.                         $map = $config->get("Map");
  337.                         $p->sendTitle("§aMap", "§e".$map."");
  338.                     }
  339.                 }
  340.                 if($this->plugin->lobbytimer == 10){
  341.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  342.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e10§f Sekunden.");
  343.                         $p->sendTitle("§a10", "§7Sekunden");
  344.                     }
  345.                 }
  346.                 if($this->plugin->lobbytimer == 5){
  347.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  348.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e5§f Sekunden.");
  349.                         $p->sendTitle("§a5", "§7Sekunden");
  350.                     }
  351.                 }
  352.                 if($this->plugin->lobbytimer == 4){
  353.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  354.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e4§f Sekunden.");
  355.                         $p->sendTitle("§a4", "§7Sekunden");
  356.                     }
  357.                 }
  358.                 if($this->plugin->lobbytimer == 3){
  359.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  360.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e3§f Sekunden.");
  361.                         $p->sendTitle("§a3", "§7Sekunden");
  362.                     }
  363.                 }
  364.                 if($this->plugin->lobbytimer == 2){
  365.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  366.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e2§f Sekunden.");
  367.                         $p->sendTitle("§a2", "§7Sekunden");
  368.                     }
  369.                 }
  370.                 if($this->plugin->lobbytimer == 1){
  371.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  372.                         $p->sendMessage($this->plugin->prefix."Runde startet in §e1§f Sekunde.");
  373.                         $p->sendTitle("§a1", "§7Sekunde");
  374.                     }
  375.                 }
  376.                 if($this->plugin->lobbytimer == 0){
  377.                    
  378.                    
  379.                     foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
  380.                     }
  381.                    
  382.                     $this->plugin->lobbytimer = 60;
  383.                     $this->plugin->status = "start";
  384.                     $dbconfig->setNested($this->plugin->game."Status", "Ingame");
  385.                     $dbconfig->save();
  386.                 }
  387.                 $this->plugin->lobbytimer--;
  388.             }
  389.         }
  390.     }
  391.    
  392.    
  393. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement