示例#1
0
  @EventHandler
  public void onPlayerDeath(PlayerDeathEvent e) {
    FileConfiguration locationsFile =
        YamlConfiguration.loadConfiguration(Main.getInstance().locations);
    Player p = e.getEntity();
    p.setHealth(20);
    p.setFoodLevel(20);
    p.setGameMode(GameMode.SPECTATOR);
    if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) {
      Bukkit.broadcastMessage(
          Color.np(
              "&6The "
                  + teamManager.getTeam(p).getTeamName()
                  + " &6team has dropped the needed block!"));
      neededBlockMaterial =
          String.valueOf(
              p.getLocation().getBlock().getTypeId() + ";" + p.getLocation().getBlock().getData());
      p.getLocation()
          .getBlock()
          .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false);
      neededBlock = p.getLocation();
    }
    gameManager.setCarrying(p, 0);
    blockManager.dropBlock(p.getLocation(), blockManager.playerBlocks.get(p.getName()));
    new BukkitRunnable() {
      int i = 10;

      public void run() {
        i--;
        if (i > 0) {
          Title title = new Title(Color.np("&6Respawning in &e" + String.valueOf(i)), "", 5, 10, 5);
          title.sendToPlayer(p);
        } else {
          this.cancel();
          p.setGameMode(GameMode.SURVIVAL);

          if (teamManager.getTeam(p) == Team.BLUE) {
            p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.blue.1")));
          } else if (teamManager.getTeam(p) == Team.RED) {
            p.teleport(locationUtil.deserializeLoc(locationsFile.getString("arena.spawns.red.1")));
          }
        }
      }
    }.runTaskTimer(Main.getInstance(), 0, 20);
  }
示例#2
0
  @EventHandler
  public void onAreaWalk(AreaWalkEvent e) {
    if (GameState.getState() != GameState.ENDING) {
      Player p = e.getPlayer();
      Area a = e.getArea();

      if (p.getGameMode() == GameMode.SURVIVAL) {
        if (a != null) {
          if (e.isBlockSpawn()) {
            int block = nexusManager.getColor(a);
            if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) {
              if (block != nexusManager.getCurrentNexusColor()) {
                if (!blockManager.isTaken(a)) {
                  Bukkit.broadcastMessage(
                      Color.np(
                          "&6The "
                              + teamManager.getTeam(p).getTeamName()
                              + " &6team has dropped the needed block. It has been brought back to it's original location."));
                  nexusManager
                      .getNeededBlockArea()
                      .getBlockSpawnBlock()
                      .getBlock()
                      .setTypeIdAndData(159, (byte) nexusManager.getCurrentNexusColor(), false);
                  blockManager.forcePickUpBlock(p, a);
                  isPickedUp = false;
                }
              }
            } else if (!blockManager.isTaken(a)) {
              blockManager.forcePickUpBlock(p, a);
            }

            if (nexusManager.getColor(e.getArea()) == nexusManager.getCurrentNexusColor()) {
              if (!isPickedUp) {
                Bukkit.broadcastMessage(
                    Color.np(
                        "&6The "
                            + teamManager.getTeam(p).getTeamName()
                            + " &6team has picked up the needed block!"));
                a.getBlockSpawnBlock().getBlock().setType(Material.AIR);
                if (GameManager.getCarrying(p) != 0
                    && GameManager.getCarrying(p) != nexusManager.getCurrentNexusColor()) {
                  blockManager.resetBlock(a.getBlockSpawnBlock(), a);
                }
                GameManager.setCarrying(p, nexusManager.getCurrentNexusColor());
                isPickedUp = true;
              }
            }
          } else {
            Team spawn = getTeam(a);
            int carrying = gameManager.getCarrying(p);
            if (spawn == teamManager.getTeam(p)) {
              if (carrying == nexusManager.getCurrentNexusColor()) {
                Bukkit.broadcastMessage(
                    Color.np(
                        "&6The "
                            + spawn.getTeamName()
                            + " &6team has brought the block to their base first!"));
                GameManager.addPoint(spawn);
                gameManager.setCarrying(p, 0);
                nexusManager.generateNewNexus();
              } else {
                if (carrying != 0) {
                  GameManager.addPoint(teamManager.getTeam(p).getOpposite());
                  GameManager.setCarrying(p, 0);
                  Bukkit.broadcastMessage(
                      Color.np(
                          "&cThe "
                              + spawn.getTeamName()
                              + " &cteam has brought the wrong block to their base!"));
                }
              }
            } else {
              if (GameManager.getCarrying(p) == nexusManager.getCurrentNexusColor()) {
                Bukkit.broadcastMessage(
                    Color.np(
                        "&cThe "
                            + spawn.getOpposite().getTeamName()
                            + " &cteam has brought the block to the wrong base!"));
                GameManager.addPoint(spawn);
                gameManager.setCarrying(p, 0);
                nexusManager.generateNewNexus();
              }
            }
          }
        }
      }
    }
  }