use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class ToolCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
MinigamePlayer player = Minigames.plugin.pdata.getMinigamePlayer((Player) sender);
if (args == null) {
MinigameUtils.giveMinigameTool(player);
} else if (MinigameUtils.hasMinigameTool(player)) {
if (args[0].equalsIgnoreCase("minigame") && args.length == 2) {
if (Minigames.plugin.mdata.hasMinigame(args[1])) {
MinigameTool tool;
Minigame mg = Minigames.plugin.mdata.getMinigame(args[1]);
if (!MinigameUtils.hasMinigameTool(player))
tool = MinigameUtils.giveMinigameTool(player);
else
tool = MinigameUtils.getMinigameTool(player);
tool.setMinigame(mg);
} else {
sender.sendMessage(ChatColor.RED + "No Minigame found by the name \"" + args[1] + "\"");
}
} else if (args[0].equalsIgnoreCase("select")) {
MinigameTool tool;
if (!MinigameUtils.hasMinigameTool(player))
tool = MinigameUtils.giveMinigameTool(player);
else
tool = MinigameUtils.getMinigameTool(player);
if (tool.getMinigame() != null && tool.getMode() != null) {
tool.getMode().select(player, tool.getMinigame(), TeamsModule.getMinigameModule(tool.getMinigame()).getTeam(tool.getTeam()));
} else if (tool.getMode() == null)
sender.sendMessage(ChatColor.RED + "You must have a mode selected to select anything!");
else
sender.sendMessage(ChatColor.RED + "You must have a valid Minigame selected to use this tool!");
} else if (args[0].equalsIgnoreCase("deselect")) {
MinigameTool tool;
if (!MinigameUtils.hasMinigameTool(player))
tool = MinigameUtils.giveMinigameTool(player);
else
tool = MinigameUtils.getMinigameTool(player);
if (tool.getMinigame() != null && tool.getMode() != null) {
tool.getMode().deselect(player, tool.getMinigame(), TeamsModule.getMinigameModule(tool.getMinigame()).getTeam(tool.getTeam()));
} else if (tool.getMode() == null)
sender.sendMessage(ChatColor.RED + "You must have a mode selected to deselect anything!");
else
sender.sendMessage(ChatColor.RED + "You must have a valid Minigame selected to use this tool!");
} else if (args[0].equalsIgnoreCase("team") && args.length == 2) {
if (TeamColor.matchColor(args[1]) != null || args[1].equalsIgnoreCase("none")) {
MinigameTool tool;
if (!MinigameUtils.hasMinigameTool(player))
tool = MinigameUtils.giveMinigameTool(player);
else
tool = MinigameUtils.getMinigameTool(player);
if (args[1].equalsIgnoreCase("none"))
tool.setTeam(null);
else
tool.setTeam(TeamColor.matchColor(args[1]));
sender.sendMessage(ChatColor.GRAY + "Set the tools team to " + args[1]);
} else {
sender.sendMessage(ChatColor.RED + args[1] + " is not a valid team color!");
}
} else if (ToolModes.getToolMode(args[0]) != null) {
MinigameTool tool;
if (!MinigameUtils.hasMinigameTool(player))
tool = MinigameUtils.giveMinigameTool(player);
else
tool = MinigameUtils.getMinigameTool(player);
tool.setMode(ToolModes.getToolMode(args[0]));
sender.sendMessage(ChatColor.GRAY + "Set the tools mode to '" + tool.getMode().getName().toLowerCase().replace("_", " ") + "'");
} else {
return false;
}
} else {
sender.sendMessage(ChatColor.RED + "You must have a Minigame Tool! Type \"/minigame tool\" to recieve one.");
}
return true;
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class PlayerCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
if (args != null) {
if (args[0].equalsIgnoreCase("list")) {
List<MinigamePlayer> pls = new ArrayList<MinigamePlayer>();
for (MinigamePlayer pl : Minigames.plugin.getPlayerData().getAllMinigamePlayers()) {
if (pl.isInMinigame()) {
pls.add(pl);
}
}
sender.sendMessage(ChatColor.AQUA + "-----------List of Players Playing Minigames-----------");
if (!pls.isEmpty()) {
for (MinigamePlayer pl : pls) {
sender.sendMessage(ChatColor.GREEN + pl.getName() + ChatColor.GRAY + " (Playing \"" + pl.getMinigame().getName(false) + "\")");
}
} else {
sender.sendMessage(ChatColor.RED + "None");
}
} else {
List<Player> plmatch = Minigames.plugin.getServer().matchPlayer(args[0]);
if (!plmatch.isEmpty()) {
MinigamePlayer pl = Minigames.plugin.getPlayerData().getMinigamePlayer(plmatch.get(0));
sender.sendMessage(ChatColor.AQUA + "--------Player info on " + pl.getName() + "--------");
if (pl.isInMinigame()) {
sender.sendMessage(ChatColor.GREEN + "Minigame: " + ChatColor.GRAY + pl.getMinigame().getName(false));
sender.sendMessage(ChatColor.GREEN + "Score: " + ChatColor.GRAY + pl.getScore());
sender.sendMessage(ChatColor.GREEN + "Kills: " + ChatColor.GRAY + pl.getKills());
sender.sendMessage(ChatColor.GREEN + "Deaths: " + ChatColor.GRAY + pl.getDeaths());
sender.sendMessage(ChatColor.GREEN + "Reverts: " + ChatColor.GRAY + pl.getReverts());
sender.sendMessage(ChatColor.GREEN + "Play Time: " + ChatColor.GRAY + MinigameUtils.convertTime((int) ((Calendar.getInstance().getTimeInMillis() - pl.getStartTime() + pl.getStoredTime()) / 1000)));
} else {
sender.sendMessage(ChatColor.GREEN + "Minigame: " + ChatColor.RED + "Not in Minigame");
}
} else {
sender.sendMessage(ChatColor.RED + "Could not find a player by the name \"" + args[0] + "\"");
}
}
return true;
}
return false;
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class PlayerKillsMechanic method playerAttackPlayer.
@EventHandler
private void playerAttackPlayer(PlayerDeathEvent event) {
MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
if (ply == null)
return;
Minigame mgm = ply.getMinigame();
if (ply.isInMinigame() && mgm.getMechanicName().equals("kills")) {
MinigamePlayer attacker = null;
if (ply.getPlayer().getKiller() != null) {
attacker = pdata.getMinigamePlayer(ply.getPlayer().getKiller());
if (attacker == ply) {
return;
}
} else {
return;
}
if (!mgm.equals(attacker.getMinigame())) {
return;
}
if (ply.getTeam() == null) {
attacker.addScore();
mgm.setScore(attacker, attacker.getScore());
if (mgm.getMaxScore() != 0 && attacker.getScore() >= mgm.getMaxScorePerPlayer()) {
List<MinigamePlayer> losers = new ArrayList<MinigamePlayer>(mgm.getPlayers().size() - 1);
List<MinigamePlayer> winner = new ArrayList<MinigamePlayer>(1);
winner.add(attacker);
for (MinigamePlayer player : mgm.getPlayers()) {
if (player != attacker)
losers.add(player);
}
pdata.endMinigame(mgm, winner, losers);
}
} else {
Team team = ply.getTeam();
Team ateam = attacker.getTeam();
if (team != ateam) {
attacker.addScore();
mgm.setScore(attacker, attacker.getScore());
ateam.addScore();
if (mgm.getMaxScore() != 0 && mgm.getMaxScorePerPlayer() <= ateam.getScore()) {
mdata.sendMinigameMessage(mgm, MinigameUtils.formStr("player.kills.finalKill", attacker.getName(), ply.getName()), null, null);
List<MinigamePlayer> w = new ArrayList<MinigamePlayer>(ateam.getPlayers());
List<MinigamePlayer> l = new ArrayList<MinigamePlayer>(mgm.getPlayers().size() - ateam.getPlayers().size());
for (Team t : TeamsModule.getMinigameModule(mgm).getTeams()) {
if (t != ateam)
l.addAll(t.getPlayers());
}
plugin.pdata.endMinigame(mgm, w, l);
}
}
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class PlayerKillsMechanic method playerSuicide.
@EventHandler
private void playerSuicide(PlayerDeathEvent event) {
MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
if (ply == null)
return;
if (ply.isInMinigame() && (ply.getPlayer().getKiller() == null || ply.getPlayer().getKiller() == ply.getPlayer()) && ply.getMinigame().hasStarted()) {
Minigame mgm = ply.getMinigame();
if (mgm.getMechanicName().equals("kills")) {
ply.takeScore();
mgm.setScore(ply, ply.getScore());
if (mgm.isTeamGame())
ply.getTeam().setScore(ply.getTeam().getScore() - 1);
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class MenuItemLoadoutAdd method onClick.
@Override
public ItemStack onClick() {
MinigamePlayer ply = getContainer().getViewer();
ply.setNoClose(true);
ply.getPlayer().closeInventory();
ply.sendMessage("Enter a name for the new Loadout, the menu will automatically reopen in 10s if nothing is entered.", null);
ply.setManualEntry(this);
getContainer().startReopenTimer(30);
return null;
}
Aggregations