Advertisement
Guest User

Untitled

a guest
Oct 14th, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.00 KB | None | 0 0
  1. <?php
  2. namespace Roci33;
  3.  
  4. use pocketmine\command\Command;
  5. use pocketmine\command\CommandSender;
  6. use pocketmine\event\entity\EntityLevelChangeEvent;
  7. use pocketmine\item\ItemFactory;
  8. use pocketmine\level\Position;
  9. use pocketmine\plugin\PluginBase;
  10. use pocketmine\event\Listener;
  11. use pocketmine\utils\TextFormat;
  12. use pocketmine\inventory\Inventory;
  13. use pocketmine\item\Item;
  14. use pocketmine\event\player\PlayerInteractEvent;
  15. use pocketmine\event\player\PlayerJoinEvent;
  16. use pocketmine\event\player\PlayerRespawnEvent;
  17. use pocketmine\math\Vector3;
  18. use Roci33\TaskGame;
  19. use pocketmine\event\player\PlayerMoveEvent;
  20. use pocketmine\event\player\PlayerDeathEvent;
  21. use pocketmine\Player;
  22. use pocketmine\event\entity\EntityDamageByEntityEvent;
  23.  
  24.  
  25.  
  26. class Main extends PluginBase implements Listener
  27. {
  28. public $stop = false;
  29.  
  30. public $move = true;
  31.  
  32. public $joinarray = [];
  33.  
  34.  
  35. public function onEnable()
  36. {
  37. $this->getServer()->getPluginManager()->registerEvents($this, $this);
  38.  
  39. $this->getScheduler()->scheduleRepeatingTask(new TaskGame($this), 22);
  40. $levels = scandir($this->getServer()->getDataPath() . "worlds/");
  41.  
  42. foreach ($levels as $level) {
  43.  
  44. if ($level === "." || $level === "..") {
  45.  
  46. continue;
  47.  
  48. }
  49.  
  50. $this->getServer()->loadLevel($level);
  51.  
  52. }
  53. }
  54.  
  55. public function onInteract(PlayerInteractEvent $event): void
  56. {
  57. $wp = count($this->getServer()->getLevelByName("abc")->getPlayers());
  58. if ($wp <= 6) {
  59. if (($event->getAction() === PlayerInteractEvent::RIGHT_CLICK_AIR or $event->getAction() === PlayerInteractEvent::RIGHT_CLICK_BLOCK) and in_array($event->getPlayer()->getLevel()->getFolderName(), $this->getConfig()->get("worlds")) and $event->getItem()->getId() === Item::NETHER_STAR) {
  60.  
  61. $this->stop = false;
  62.  
  63. $player = $event->getPlayer();
  64. $i = 1;
  65.  
  66. if ($i === 1) {
  67. $i++;
  68. $level = $this->getServer()->getLevelByName("abc");
  69.  
  70. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  71.  
  72.  
  73. } elseif ($i === 2){
  74. $i++;
  75. $level = $this->getServer()->getLevelByName("abc");
  76.  
  77. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  78.  
  79.  
  80. } elseif ($i === 3){
  81. $i++;
  82. $level = $this->getServer()->getLevelByName("abc");
  83.  
  84. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  85.  
  86.  
  87. } elseif ($i === 4){
  88. $i++;
  89. $level = $this->getServer()->getLevelByName("abc");
  90.  
  91. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  92.  
  93.  
  94. } elseif ($i === 5){
  95. $i++;
  96. $level = $this->getServer()->getLevelByName("abc");
  97.  
  98. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  99.  
  100.  
  101. } elseif ($i === 6){
  102. $i = 1;
  103. $level = $this->getServer()->getLevelByName("abc");
  104.  
  105. $player->teleport(new Position(258.3299, 64, 260.799, $level));
  106.  
  107.  
  108. }
  109. }
  110. }else {
  111. $player = $event->getPlayer();
  112. $player->sendMessage("la partita e gia iniziata");
  113.  
  114. }
  115.  
  116. }
  117.  
  118. public function onLevelEntity(EntityLevelChangeEvent $event){
  119.  
  120. $entity = $event->getEntity();
  121.  
  122. if($entity instanceof Player){
  123.  
  124. $this->joinarray[] = $entity;
  125.  
  126.  
  127.  
  128.  
  129.  
  130. }
  131.  
  132. }
  133.  
  134. public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool
  135. {
  136.  
  137. switch ($command->getName()) {
  138. case 'cordinate':
  139.  
  140.  
  141.  
  142. if ($sender instanceof Player) {
  143. $sender->sendMessage("coordinate: x " . $sender->getX() . "y " . $sender->getY() . "z " . $sender->getZ());
  144.  
  145.  
  146. }
  147.  
  148. }
  149.  
  150. return true;
  151. }
  152.  
  153. public function onJoin(PlayerJoinEvent $event): void
  154. {
  155. $player = $event->getPlayer();
  156.  
  157. $player->teleport($this->getServer()->getLevelByName("world")->getSpawnLocation());
  158. if (in_array($event->getPlayer()->getLevel()->getFolderName(), ["world"])) {
  159.  
  160. $slots[4] = Item::get(Item::NETHER_STAR);
  161. $player->getInventory()->setContents($slots);
  162.  
  163. }
  164. }
  165.  
  166. /**
  167. * @param PlayerRespawnEvent $event
  168. */
  169.  
  170.  
  171. public function onRespawn(PlayerRespawnEvent $event): void
  172. {
  173. $player = $event->getPlayer();
  174.  
  175. if(in_array($event->getPlayer()->getLevel()->getFolderName(), ["abc"])) {
  176.  
  177. $event->setRespawnPosition($this->getServer()->getLevelByName("abc")->getSpawnLocation());
  178.  
  179. }
  180. $player = $event->getPlayer();
  181. $slots[4] = Item::get(Item::NETHER_STAR);
  182. $player->getInventory()->setContents($slots);
  183.  
  184.  
  185. }
  186.  
  187. public function onDeath(PlayerDeathEvent $event)
  188. {
  189. $player = $event->getPlayer();
  190. $cause = $event->getPlayer()->getLastDamageCause();
  191. if ($cause instanceof EntityDamageByEntityEvent) {
  192. $damager = $cause->getDamager();
  193. if ($damager instanceof Player) {
  194. if ($player->getInventory()->contains(ItemFactory::get(Item::BANNER, 0, 1 or 2))) {
  195.  
  196. $player = $event->getPlayer();
  197. $player->setNameTag($player->getName());
  198. $damager->setNameTag("§4Flag" . $damager->getName());
  199. $damager->getInventory()->addItem(Item::get(Item::BANNER));
  200. }
  201. }
  202. }
  203. }
  204.  
  205.  
  206.  
  207. public function onMove(PlayerMoveEvent $event){
  208. if (in_array($event->getPlayer()->getLevel()->getFolderName(), ["abc"])) {
  209. if ($this->move === true) {
  210.  
  211. $event->setCancelled(true);
  212.  
  213. }
  214.  
  215. }
  216. }
  217.  
  218. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement