use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class InfectionMechanic method playerDeath.
@EventHandler(ignoreCancelled = true)
private void playerDeath(PlayerDeathEvent event) {
MinigamePlayer player = pdata.getMinigamePlayer(event.getEntity());
if (player == null)
return;
if (player.isInMinigame()) {
Minigame mgm = player.getMinigame();
if (mgm.isTeamGame() && mgm.getMechanicName().equals("infection")) {
Team blue = TeamsModule.getMinigameModule(mgm).getTeam(TeamColor.BLUE);
Team red = TeamsModule.getMinigameModule(mgm).getTeam(TeamColor.RED);
if (blue.getPlayers().contains(player)) {
if (!red.isFull()) {
MultiplayerType.switchTeam(mgm, player, red);
InfectionModule.getMinigameModule(mgm).addInfectedPlayer(player);
if (event.getEntity().getKiller() != null) {
MinigamePlayer killer = pdata.getMinigamePlayer(event.getEntity().getKiller());
killer.addScore();
mgm.setScore(killer, killer.getScore());
}
player.resetScore();
mgm.setScore(player, player.getScore());
if (mgm.getLives() != player.getDeaths()) {
mdata.sendMinigameMessage(mgm, String.format(red.getGameAssignMessage(), player.getName(), red.getChatColor() + red.getDisplayName()), "error", null);
}
if (blue.getPlayers().isEmpty()) {
List<MinigamePlayer> w;
List<MinigamePlayer> l;
w = new ArrayList<MinigamePlayer>(red.getPlayers());
l = new ArrayList<MinigamePlayer>();
pdata.endMinigame(mgm, w, l);
}
} else {
pdata.quitMinigame(player, false);
}
} else {
if (event.getEntity().getKiller() != null) {
MinigamePlayer killer = pdata.getMinigamePlayer(event.getEntity().getKiller());
killer.addScore();
mgm.setScore(killer, killer.getScore());
}
}
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class InfectionMechanic method balanceTeam.
@Override
public void balanceTeam(List<MinigamePlayer> players, Minigame minigame) {
for (int i = 0; i < players.size(); i++) {
MinigamePlayer ply = players.get(i);
Team red = TeamsModule.getMinigameModule(minigame).getTeam(TeamColor.RED);
Team blue = TeamsModule.getMinigameModule(minigame).getTeam(TeamColor.BLUE);
Team team = ply.getTeam();
if (team == blue) {
if (red.getPlayers().size() < Math.ceil(players.size() * (((Integer) InfectionModule.getMinigameModule(minigame).getInfectedPercent()).doubleValue() / 100d)) && !red.isFull()) {
MultiplayerType.switchTeam(minigame, ply, red);
players.get(i).sendMessage(String.format(red.getAssignMessage(), red.getChatColor() + red.getDisplayName()), null);
mdata.sendMinigameMessage(minigame, String.format(red.getGameAssignMessage(), players.get(i).getName(), red.getChatColor() + red.getDisplayName()), null, players.get(i));
}
} else if (team == null) {
if (red.getPlayers().size() < Math.ceil(players.size() * 0.18) && !red.isFull()) {
red.addPlayer(ply);
players.get(i).sendMessage(String.format(red.getAssignMessage(), red.getChatColor() + red.getDisplayName()), null);
mdata.sendMinigameMessage(minigame, String.format(red.getGameAssignMessage(), players.get(i).getName(), red.getChatColor() + red.getDisplayName()), null, players.get(i));
} else if (!blue.isFull()) {
blue.addPlayer(ply);
ply.sendMessage(String.format(blue.getAssignMessage(), blue.getChatColor() + blue.getDisplayName()), null);
mdata.sendMinigameMessage(minigame, String.format(blue.getGameAssignMessage(), players.get(i).getName(), blue.getChatColor() + blue.getDisplayName()), null, players.get(i));
} else {
pdata.quitMinigame(ply, false);
ply.sendMessage(MinigameUtils.getLang("minigame.full"), "error");
}
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class InfectionMechanic method endMinigame.
@Override
public void endMinigame(Minigame minigame, List<MinigamePlayer> winners, List<MinigamePlayer> losers) {
List<MinigamePlayer> wins = new ArrayList<MinigamePlayer>(winners);
for (MinigamePlayer ply : wins) {
if (InfectionModule.getMinigameModule(minigame).isInfectedPlayer(ply)) {
winners.remove(ply);
losers.add(ply);
InfectionModule.getMinigameModule(minigame).removeInfectedPlayer(ply);
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class SetLoadoutCommand method onCommand.
@Override
public boolean onCommand(CommandSender sender, Minigame minigame, String label, String[] args) {
MinigamePlayer player = Minigames.plugin.pdata.getMinigamePlayer((Player) sender);
Menu loadouts = new Menu(6, getName(), player);
List<MenuItem> mi = new ArrayList<MenuItem>();
LoadoutModule mod = LoadoutModule.getMinigameModule(minigame);
List<String> des = new ArrayList<String>();
des.add("Shift + Right Click to Delete");
Material item = Material.THIN_GLASS;
for (String ld : mod.getLoadouts()) {
item = Material.THIN_GLASS;
if (mod.getLoadout(ld).getItems().size() != 0) {
item = mod.getLoadout(ld).getItem((Integer) mod.getLoadout(ld).getItems().toArray()[0]).getType();
}
MenuItemDisplayLoadout mil = new MenuItemDisplayLoadout(ld, des, item, mod.getLoadout(ld), minigame);
mil.setAllowDelete(mod.getLoadout(ld).isDeleteable());
mi.add(mil);
}
loadouts.addItem(new MenuItemLoadoutAdd("Add Loadout", Material.ITEM_FRAME, mod.getLoadoutMap(), minigame), 53);
loadouts.addItems(mi);
loadouts.displayMenu(player);
return true;
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class JuggernautMechanic method playerDeath.
@EventHandler
private void playerDeath(PlayerDeathEvent event) {
MinigamePlayer ply = pdata.getMinigamePlayer(event.getEntity());
if (ply == null)
return;
if (ply.getMinigame() != null && ply.getMinigame().getMechanic() == this) {
JuggernautModule jm = JuggernautModule.getMinigameModule(ply.getMinigame());
if (jm.getJuggernaut() == ply) {
if (event.getEntity().getKiller() != null) {
MinigamePlayer pk = pdata.getMinigamePlayer(event.getEntity().getKiller());
if (pk != null) {
jm.setJuggernaut(pk);
pk.addScore();
pk.getMinigame().setScore(pk, pk.getScore());
checkScore(pk);
} else {
jm.setJuggernaut(assignNewJuggernaut(ply.getMinigame().getPlayers(), ply));
}
} else {
jm.setJuggernaut(assignNewJuggernaut(ply.getMinigame().getPlayers(), ply));
}
} else {
if (event.getEntity().getKiller() != null) {
MinigamePlayer pk = pdata.getMinigamePlayer(event.getEntity().getKiller());
if (pk != null && jm.getJuggernaut() == pk) {
pk.addScore();
pk.getMinigame().setScore(pk, pk.getScore());
checkScore(pk);
}
}
}
}
}
Aggregations