use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method playerQuit.
@EventHandler(ignoreCancelled = true)
private void playerQuit(QuitMinigameEvent event) {
MinigamePlayer ply = event.getMinigamePlayer();
if (ply == null)
return;
Minigame mg = ply.getMinigame();
for (Region r : RegionModule.getMinigameModule(mg).getRegions()) {
if (r.hasPlayer(ply))
r.removePlayer(ply);
}
for (Node node : RegionModule.getMinigameModule(event.getMinigame()).getNodes()) {
node.execute(Triggers.getTrigger("GAME_QUIT"), event.getMinigamePlayer());
if (event.getMinigame().getPlayers().size() > 1) {
for (NodeExecutor exec : node.getExecutors()) exec.removeTrigger(event.getMinigamePlayer());
} else {
for (NodeExecutor exec : node.getExecutors()) exec.clearTriggers();
node.setEnabled(true);
}
}
for (Region region : RegionModule.getMinigameModule(event.getMinigame()).getRegions()) {
if (region.playerInRegion(ply))
region.execute(Triggers.getTrigger("GAME_QUIT"), event.getMinigamePlayer());
if (event.getMinigame().getPlayers().size() > 1) {
for (RegionExecutor exec : region.getExecutors()) exec.removeTrigger(event.getMinigamePlayer());
} else {
for (RegionExecutor exec : region.getExecutors()) {
exec.clearTriggers();
}
region.removeTickTask();
region.setEnabled(true);
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method playerXpChange.
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
private void playerXpChange(PlayerExpChangeEvent event) {
final MinigamePlayer player = pdata.getMinigamePlayer(event.getPlayer());
if (player == null || !player.isInMinigame()) {
return;
}
executeTrigger(Triggers.getTrigger("XP_CHANGE"), player);
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method itemPickupEvent.
@EventHandler(ignoreCancelled = true)
private void itemPickupEvent(PlayerPickupItemEvent event) {
final MinigamePlayer ply = pdata.getMinigamePlayer(event.getPlayer());
if (ply == null)
return;
if (ply.isInMinigame()) {
final Trigger trig = Triggers.getTrigger("ITEM_PICKUP");
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
if (!ply.isInMinigame()) {
return;
}
for (Node node : getRegionModule(ply.getMinigame()).getNodes()) {
node.execute(trig, ply);
}
for (Region region : getRegionModule(ply.getMinigame()).getRegions()) {
if (region.hasPlayer(ply)) {
region.execute(trig, ply);
}
}
}
});
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class RegionEvents method playerJoin.
@EventHandler(ignoreCancelled = true)
private void playerJoin(JoinMinigameEvent event) {
final MinigamePlayer ply = event.getMinigamePlayer();
if (ply == null)
return;
final Minigame mg = event.getMinigame();
Bukkit.getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
@Override
public void run() {
executeRegionChanges(mg, ply);
for (Node node : RegionModule.getMinigameModule(mg).getNodes()) {
node.execute(Triggers.getTrigger("GAME_JOIN"), ply);
}
for (Region region : RegionModule.getMinigameModule(mg).getRegions()) {
if (region.hasPlayer(ply))
region.execute(Triggers.getTrigger("GAME_JOIN"), ply);
}
}
});
if (event.getMinigame().getPlayers().size() == 0) {
for (Region region : RegionModule.getMinigameModule(event.getMinigame()).getRegions()) {
for (RegionExecutor ex : region.getExecutors()) {
if (ex.getTrigger().getName().equalsIgnoreCase("TICK")) {
region.startTickTask();
break;
}
}
}
}
}
use of au.com.mineauz.minigames.MinigamePlayer in project Minigames by AddstarMC.
the class ScoreSign method signUse.
@Override
public boolean signUse(Sign sign, MinigamePlayer player) {
if (player.isInMinigame() && player.getPlayer().isOnGround()) {
Minigame mg = player.getMinigame();
int score = Integer.parseInt(sign.getLine(2));
if (!mg.isTeamGame()) {
if (player.hasClaimedScore(sign.getLocation())) {
player.sendMessage(MinigameUtils.getLang("sign.score.alreadyUsed"), "error");
return true;
}
player.addScore(score);
mg.setScore(player, player.getScore());
player.sendMessage(MinigameUtils.formStr("sign.score.addScore", score, player.getScore()), null);
if (mg.getMaxScore() != 0 && mg.getMaxScorePerPlayer() <= player.getScore()) {
Minigames.plugin.pdata.endMinigame(player);
}
player.addClaimedScore(sign.getLocation());
} else {
TeamColor steam = TeamColor.matchColor(ChatColor.stripColor(sign.getLine(3)));
Team pteam = player.getTeam();
if (steam == null || !TeamsModule.getMinigameModule(mg).hasTeam(steam) || pteam.getColor() == steam) {
if (Minigames.plugin.mdata.hasClaimedScore(mg, sign.getLocation(), 0)) {
player.sendMessage(MinigameUtils.getLang("sign.score.alreadyUsedTeam"), "error");
return true;
}
player.addScore(score);
mg.setScore(player, player.getScore());
pteam.addScore(score);
player.sendMessage(MinigameUtils.formStr("sign.score.addScoreTeam", score, pteam.getChatColor().toString() + pteam.getScore()), null);
Minigames.plugin.mdata.addClaimedScore(mg, sign.getLocation(), 0);
if (mg.getMaxScore() != 0 && mg.getMaxScorePerPlayer() <= pteam.getScore()) {
List<MinigamePlayer> winners = new ArrayList<MinigamePlayer>(pteam.getPlayers());
List<MinigamePlayer> losers = new ArrayList<MinigamePlayer>(mg.getPlayers().size() - pteam.getPlayers().size());
for (Team t : TeamsModule.getMinigameModule(mg).getTeams()) {
if (t != pteam)
losers.addAll(t.getPlayers());
}
Minigames.plugin.pdata.endMinigame(mg, winners, losers);
}
}
}
} else if (player.isInMinigame() && !player.getPlayer().isOnGround()) {
player.sendMessage(MinigameUtils.getLang("sign.onGround"), "error");
}
return true;
}
Aggregations