Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.rw_craft.elitemctntwars;
- import java.util.ArrayList;
- import java.util.Arrays;
- import me.rw_craft.elitemctntwars.ArenaManager.Team;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.DyeColor;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.entity.Player;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.material.Wool;
- import org.bukkit.scoreboard.Objective;
- import org.bukkit.scoreboard.Score;
- import org.bukkit.scoreboard.Scoreboard;
- public class Arena {
- private int ID;
- private boolean started = false;
- private Location redspawn, bluespawn;
- private ArrayList<PlayerData> players = new ArrayList<PlayerData>();
- private Scoreboard sb;
- private Objective o;
- private Score red, blue;
- @SuppressWarnings("deprecation")
- public Arena (int ID) {
- this.ID = ID;
- ConfigurationSection conf = SettingsManager.getInstance().get(ID + "");
- this.redspawn = getLocation(conf.getConfigurationSection("redspawn"));
- this.bluespawn = getLocation(conf.getConfigurationSection("bluespawn"));
- sb = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
- o = sb.registerNewObjective("Team Scores", "dummy");
- red = o.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.RED + "Red"));
- blue = o.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.BLUE + "Blue"));
- }
- public boolean isStarted() {
- return started;
- }
- public void setStarter(boolean started) {
- this.started = started;
- }
- private Location getLocation(ConfigurationSection path) {
- return new Location(
- Bukkit.getServer().getWorld(path.getString("world")),
- path.getDouble("x"),
- path.getDouble("y"),
- path.getDouble("z")
- );
- }
- public int getID() {
- return ID;
- }
- public Location getSpawn(Team team) {
- switch(team) {
- case RED: return redspawn;
- case BLUE: return bluespawn;
- default: return null;
- }
- }
- public Team getTeam(Player p) {
- return getData(p).getTeam();
- }
- public void addPlayer(Player p) {
- players.add(new PlayerData(p.getName(), getTeamWithLessPlayers(), p.getInventory(), p.getLocation()));
- p.getInventory().clear();
- ItemStack chest = new ItemStack(Material.CHEST, 1);
- ItemMeta chestmeta = chest.getItemMeta();
- chestmeta.setDisplayName(ChatColor.GREEN+"Items");
- chestmeta.setLore(Arrays.asList(ChatColor.WHITE+"Click To Open The Items GUI"));
- chest.setItemMeta(chestmeta);
- p.getInventory().setHelmet(new Wool(DyeColor.valueOf(getData(p).getTeam().toString())).toItemStack(1));
- p.getInventory().setItem(8, chest);
- p.teleport(getSpawn(getData(p).getTeam()));
- p.setScoreboard(sb);
- if (players.size() >= 2) start();
- }
- public void removePlayer(Player p) {
- PlayerData pd = getData(p);
- p.getInventory().clear();
- p.teleport(pd.getLocation());
- p.getInventory().setArmorContents(pd.getInventory().getArmorContents());
- p.getInventory().addItem(pd.getInventory().getContents());
- p.setScoreboard(null);
- players.remove(p);
- MessageManager.getInstance().info(p, "Unlucky! You Died.");
- msg(p.getName()+" Died.");
- }
- public void start() {
- msg("Game Starting In 30 Seconds...");
- Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(SettingsManager.getInstance().getPlugin(), new Runnable() {
- public void run() {
- Arena.this.started = true;
- }
- }, 30 * 20);
- }
- public void stop() {
- for (PlayerData pd: players) {
- Player p = Bukkit.getServer().getPlayer(pd.getPlayerName());
- p.getInventory().clear();
- p.teleport(pd.getLocation());
- p.getInventory().setArmorContents(pd.getInventory().getArmorContents());
- p.getInventory().addItem(pd.getInventory().getContents());
- }
- }
- public void addDeath(Player p) {
- Team t = getTeam(p);
- if (t == Team.RED) blue.setScore(blue.getScore() + 1);
- else red.setScore(red.getScore() + 1);
- }
- private void msg(String msg) {
- for (PlayerData pd : players) {
- Player p = Bukkit.getServer().getPlayer(pd.getPlayerName());
- MessageManager.getInstance().publicarena(p, msg);
- }
- }
- private Team getTeamWithLessPlayers() {
- int red = 0, blue = 0;
- for (PlayerData pd : players) {
- if (pd.getTeam() == Team.RED) red++;
- else blue++;
- }
- if (red > blue) return Team.BLUE;
- else return Team.RED;
- }
- public boolean containsPlayer(Player p) {
- return getData(p) != null;
- }
- private PlayerData getData(Player p) {
- for (PlayerData pd : players) {
- if (pd.getPlayerName().equalsIgnoreCase(p.getName())) return pd;
- }
- return null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement