Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace EnteMomo;
- use pocketmine\level\Position;
- use pocketmine\inventory\ChestInventory;
- use pocketmine\event\player\PlayerItemHeldEvent;
- use pocketmine\plugin\PluginBase;
- use pocketmine\event\block\SignChangeEvent;
- use pocketmine\scheduler\PluginTask;
- use pocketmine\network\mcpe\protocol\Transferpacket;
- use pocketmine\level\sound\PopSound;
- use pocketmine\level\sound\LevelSound;
- use pocketmine\level\sound\EndermanTeleportSound;
- use pocketmine\level\sound\NoteblockSound;
- use pocketmine\level\sound\ExpPickupSound;
- use pocketmine\level\sound\ClickSound;
- use pocketmine\event\player\PlayerCommandPreprocessEvent;
- use pocketmine\level\sound\AnvilFallSound;
- use pocketmine\level\sound\LaunchSound;
- use pocketmine\level\sound\FizzSound;
- use pocketmine\command\CommandSender;
- use pocketmine\command\Command;
- use pocketmine\command\ConsoleCommandSender;
- use pocketmine\event\block\BlockBreakEvent;
- use pocketmine\level\particle\RedstoneParticle;
- use pocketmine\event\block\BlockPlaceEvent;
- use pocketmine\event\player\PlayerDeathEvent;
- use pocketmine\event\player\PlayerChatEvent;
- use pocketmine\event\player\PlayerRespawnEvent;
- use pocketmine\event\player\PlayerQuitEvent;
- use pocketmine\event\player\PlayerInteractEvent;
- use pocketmine\event\player\PlayerJoinEvent;
- use pocketmine\event\player\PlayerDropItemEvent;
- use pocketmine\event\entity\EntityDamageEvent;
- use pocketmine\event\entity\EntityDamageByEntityEvent;
- use pocketmine\particle\FloatingTextParticle;
- use pocketmine\event\Listener;
- use pocketmine\Player;
- use pocketmine\entity\Entity;
- use pocketmine\utils\Config;
- use pocketmine\block\Block;
- use pocketmine\level\Level;
- use pocketmine\level\particle;
- use pocketmine\utils\TextFormat as C;
- use pocketmine\item\item;
- use pocketmine\math\Vector3;
- use pocketmine\nbt\NBT;
- use xenialdan\BossBarAPI\API;
- use pocketmine\nbt\tag\Byte;
- use pocketmine\nbt\tag\Compound;
- use pocketmine\nbt\tag\Double;
- use pocketmine\nbt\tag\Enum;
- use pocketmine\tile\Tile;
- use pocketmine\tile\Chest;
- use pocketmine\tile\Sign;
- use pocketmine\entity\Effect;
- class Main extends PluginBase implements Listener{
- public $prefix = "§eUHCRun §8| §7";
- public $game = "UHCRun-1";
- public $lobbytimer = 60;
- public $starttimer = 10;
- public $gametimer = 1200;
- public $dmtimer = 600;
- public $waiting = 4;
- public $status = "lobby";
- public function OnEnable(){
- @mkdir("/home/Datenbank/");
- $this->getServer()->getPluginManager()->registerEvents($this, $this);
- $this->getServer()->getScheduler()->scheduleRepeatingTask(new TopSigns($this), 60);
- $this->getServer()->getScheduler()->scheduleRepeatingTask(new Timer($this), 20);
- $config = new Config($this->getDataFolder()."config.yml", Config::YAML);
- $dbconfig = new Config("/home/Datenbank/Cloud.yml", Config::YAML);
- $dbconfig->setNested($this->game."Status", "Lobby");
- $dbconfig->setNested($this->game."Map", "Standart");
- $config->set("Players",array(""));
- $this->getLogger()->info(C::GREEN . "Aktiviert");
- }
- public function onJoin(PlayerJoinEvent $event){
- $config = new Config($this->getDataFolder()."config.yml", Config::YAML);
- $player = $event->getPlayer();
- //$oldplayers = $config->get("Players");
- //$newplayers = $config->set("Players".array($oldplayers, $player->getName()));
- $level = $this->getServer()->getDefaultLevel();
- //$level->addParticle(new FloatingTextParticle(new Vector3(107, 122, 50),"lolo", [$player]));
- }
- public function onCommand(CommandSender $sender, Command $cmd, string $label, array $args) : bool{
- $player = $sender->getPlayer();
- $db = new Config("/home/Datenbank/Stats/UHCRun/".strtolower($player->getName()).".yml", Config::YAML);
- $dbg = new Config("/home/Datenbank/Players/".strtolower($player->getName()).".yml", Config::YAML);
- $lang = $dbg->get("Lang");
- if (strtolower($cmd->getName()) == "stats"){
- if(empty($args[0])){
- $kills = $db->get("Kills");
- $deaths = $db->get("Deaths");
- $games = $db->get("Games");
- $wins = $db->get("Wins");
- if($lang == "deu"){
- $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats von ".C::GOLD.$sender->getName().C::GRAY." (30 Tage) =-");
- $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
- $player->sendMessage(C::GRAY." Tode".C::DARK_GRAY.": ".C::YELLOW.$deaths);
- $player->sendMessage(C::GRAY." Gespielte Spiele".C::DARK_GRAY.": ".C::YELLOW.$games);
- $player->sendMessage(C::GRAY." Gewonnene Spiele".C::DARK_GRAY.": ".C::YELLOW.$wins);
- $player->sendMessage(C::GRAY."-----------------");
- } else {
- $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats of ".C::GOLD.$sender->getName().C::GRAY." (30 days) =-");
- $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
- $player->sendMessage(C::GRAY." Deaths".C::DARK_GRAY.": ".C::YELLOW.$deaths);
- $player->sendMessage(C::GRAY." Played Games".C::DARK_GRAY.": ".C::YELLOW.$games);
- $player->sendMessage(C::GRAY." Won Games".C::DARK_GRAY.": ".C::YELLOW.$wins);
- $player->sendMessage(C::GRAY."-----------------");
- }
- }
- $db2 = new Config("/home/Datenbank/Stats/UHCRun/".strtolower($args[0]).".yml", Config::YAML);
- if(!empty($db2->get("Kills"))){
- $kills = $db2->get("Kills");
- $deaths = $db2->get("Deaths");
- $games = $db2->get("Games");
- $wins = $db2->get("Wins");
- if($lang == "deu"){
- $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats von ".C::GOLD.$args[0].C::GRAY." (30 Tage) =-");
- $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
- $player->sendMessage(C::GRAY." Tode".C::DARK_GRAY.": ".C::YELLOW.$deaths);
- $player->sendMessage(C::GRAY." Gespielte Spiele".C::DARK_GRAY.": ".C::YELLOW.$games);
- $player->sendMessage(C::GRAY." Gewonnene Spiele".C::DARK_GRAY.": ".C::YELLOW.$wins);
- $player->sendMessage(C::GRAY."-----------------");
- } else {
- $player->sendMessage(C::GRAY."-= ".C::YELLOW."Stats of ".C::GOLD.$args[0].C::GRAY." (30 days) =-");
- $player->sendMessage(C::GRAY." Kills".C::DARK_GRAY.": ".C::YELLOW.$kills);
- $player->sendMessage(C::GRAY." Deaths".C::DARK_GRAY.": ".C::YELLOW.$deaths);
- $player->sendMessage(C::GRAY." Played Games".C::DARK_GRAY.": ".C::YELLOW.$games);
- $player->sendMessage(C::GRAY." Won Games".C::DARK_GRAY.": ".C::YELLOW.$wins);
- $player->sendMessage(C::GRAY."-----------------");
- }
- return false;}
- return false;}
- }
- public function onTop()
- {
- $a = array(
- 1 => array(
- "name" => "/",
- "amount" => 0,
- ),
- 2 => array(
- "name" => "/",
- "amount" => 0,
- ),
- 3 => array(
- "name" => "/",
- "amount" => 0,
- )
- );
- $dir = "/home/Datenbank/Stats/UHCRun/";
- $files = array_slice(scandir($dir), 2);
- foreach ($files as $f) {
- $player = pathinfo($f, PATHINFO_FILENAME);
- $cfg = new Config("/home/Datenbank/Stats/UHCRun/". $player . ".yml", Config::YAML);
- $name = $player;
- $kills = (int)$cfg->get("Wins");
- $a1 = (int)$a[1]["amount"];
- $a2 = (int)$a[2]["amount"];
- $a3 = (int)$a[3]["amount"];
- if ($kills > $a1) {
- if ($a1 > $a2) {
- $a[2]["amount"] = $a[1]["amount"];
- $a[2]["name"] = $a[1]["name"];
- } elseif ($a1 > $a3) {
- $a[3]["amount"] = $a[1]["amount"];
- $a[3]["name"] = $a[1]["name"];
- }
- $a[1]["amount"] = $kills;
- $a[1]["name"] = $name;
- } elseif ($kills > $a2) {
- if ($a2 > $a3) {
- $a[3]["amount"] = $a[2]["amount"];
- $a[3]["name"] = $a[2]["name"];
- }
- $a[2]["amount"] = $kills;
- $a[2]["name"] = $name;
- } elseif ($kills > $a3) {
- $a[3]["amount"] = $kills;
- $a[3]["name"] = $name;
- }
- }
- return $a;
- }
- }
- class TopSigns extends PluginTask
- {
- public function __construct($plugin)
- {
- $this->plugin = $plugin;
- parent::__construct($plugin);
- }
- public function onRun($tick)
- {
- $level = $this->plugin->getServer()->getDefaultLevel();
- $tiles = $level->getTiles();
- $top = $this->plugin->onTop();
- $erster = $top[1];
- $zweiter = $top[2];
- $dritter = $top[3];
- $name_erster = $erster["name"];
- $anzahl_erster = $erster["amount"];
- $name_zweiter = $zweiter["name"];
- $anzahl_zweiter = $zweiter["amount"];
- $name_dritter = $dritter["name"];
- $anzahl_dritter = $dritter["amount"];
- foreach ($tiles as $t)
- {
- if ($t instanceof Sign)
- {
- $text = $t->getText();
- if ($text[0] === C::RED . C::BOLD."Platz 3")
- {
- $t->setText(C::RED . C::BOLD."Platz 3",
- C::YELLOW . $name_dritter,
- "---",
- C::DARK_AQUA . "Wins: " . $anzahl_dritter
- );
- }
- if ($text[0] === C::GRAY . C::BOLD."Platz 2")
- {
- $t->setText(C::GRAY . C::BOLD. "Platz 2",
- C::YELLOW . $name_zweiter,
- "---",
- C::DARK_AQUA . "Wins: " . $anzahl_zweiter
- );
- }
- if ($text[0] === C::GOLD . C::BOLD."Platz 1")
- {
- $t->setText(C::GOLD . C::BOLD."Platz 1",
- C::AQUA . $name_erster,
- "---",
- C::DARK_AQUA . "Wins: " . $anzahl_erster
- );
- }
- }
- }
- }
- }
- class Timer extends PluginTask
- {
- public function __construct($plugin)
- {
- $this->plugin = $plugin;
- parent::__construct($plugin);
- }
- public function onRun($tick)
- {
- $dbconfig = new Config("/home/Datenbank/Cloud.yml", Config::YAML);
- if($dbconfig->getNested($this->plugin->game."Status") == "Lobby"){
- $players = count($this->plugin->getServer()->getOnlinePlayers());
- if($players < 2){
- $this->plugin->lobbytimer = 60;
- if($this->plugin->waiting == 4){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendTip("§cWarte auf Spieler");
- $p->setXpLevel(0);
- }
- }
- if($this->plugin->waiting == 3){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendTip("§cWarte auf Spieler.");
- $p->setXpLevel(0);
- }
- }
- if($this->plugin->waiting == 2){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendTip("§cWarte auf Spieler..");
- }
- }
- if($this->plugin->waiting == 1){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendTip("§cWarte auf Spieler...");
- }
- }
- if($this->plugin->waiting == 0){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendTip("§cWarte auf Spieler....");
- }
- $this->plugin->waiting = 4;
- }
- $this->plugin->waiting--;
- }else{
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $sec = $this->plugin->lobbytimer;
- $p->sendTip($this->plugin->prefix.C::GRAY."Die Runde startet in".C::YELLOW.$sec.C::GRAY." Sekunden!");
- $p->setXpLevel($sec);
- }
- if($this->plugin->lobbytimer == 60){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e60§f Sekunden.");
- $p->sendTitle("§a60", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 45){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e45§f Sekunden.");
- $p->sendTitle("§a45", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 30){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e30§f Sekunden.");
- $p->sendTitle("§a30", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 20){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e20§f Sekunden.");
- $p->sendTitle("§a20", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 15){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e15§f Sekunden.");
- $map = $config->get("Map");
- $p->sendTitle("§aMap", "§e".$map."");
- }
- }
- if($this->plugin->lobbytimer == 10){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e10§f Sekunden.");
- $p->sendTitle("§a10", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 5){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e5§f Sekunden.");
- $p->sendTitle("§a5", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 4){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e4§f Sekunden.");
- $p->sendTitle("§a4", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 3){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e3§f Sekunden.");
- $p->sendTitle("§a3", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 2){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e2§f Sekunden.");
- $p->sendTitle("§a2", "§7Sekunden");
- }
- }
- if($this->plugin->lobbytimer == 1){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- $p->sendMessage($this->plugin->prefix."Runde startet in §e1§f Sekunde.");
- $p->sendTitle("§a1", "§7Sekunde");
- }
- }
- if($this->plugin->lobbytimer == 0){
- foreach($this->plugin->getServer()->getOnlinePlayers() as $p){
- }
- $this->plugin->lobbytimer = 60;
- $this->plugin->status = "start";
- $dbconfig->setNested($this->plugin->game."Status", "Ingame");
- $dbconfig->save();
- }
- $this->plugin->lobbytimer--;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement