package me.yaruma.fightsystem.winconditions; import me.yaruma.fightsystem.FightSystem; import me.yaruma.fightsystem.fight.Fight; import me.yaruma.fightsystem.utils.Config; import me.yaruma.fightsystem.utils.Region; import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityExplodeEvent; public class WinconditionPercentSystem implements Listener { private static double bluePercent = 0D; private static double redPercent = 0D; private static int blueDestroyedBlocks; private static int redDestroyedBlocks; private static int schematicSize; public WinconditionPercentSystem() { schematicSize = Math.abs(Config.SchemsizeX * Config.SchemsizeY * Config.SchemsizeZ); } @EventHandler public void handleEntityExplode(EntityExplodeEvent event) { if(!Config.PercentSystem) return; Entity entity = event.getEntity(); //Team Blue if(Region.isInRange(entity.getLocation(), Config.TeamBlueCornerX, Config.TeamBlueCornerY, Config.TeamBlueCornerZ, Config.SchemsizeX, Config.SchemsizeY, Config.SchemsizeZ, Config.BorderFromSchematic)){ blueDestroyedBlocks = blueDestroyedBlocks + event.blockList().size(); double doubleBlueDestroyedBlocks = blueDestroyedBlocks; double destroyPercent = doubleBlueDestroyedBlocks * 100 / schematicSize; bluePercent = destroyPercent; if(destroyPercent >= Config.PercentWin) { FightSystem.getPlugin().setSpectateState(Fight.blueTeam); } return; } //Team Red if(Region.isInRange(entity.getLocation(), Config.TeamRedCornerX, Config.TeamRedCornerY, Config.TeamRedCornerZ, Config.SchemsizeX, Config.SchemsizeY, Config.SchemsizeZ, Config.BorderFromSchematic)) { redDestroyedBlocks = redDestroyedBlocks + event.blockList().size(); double doubleRedDestroyedBlocks = redDestroyedBlocks; double destroyPercent = doubleRedDestroyedBlocks * 100 / schematicSize; redPercent = destroyPercent; if(destroyPercent >= Config.PercentWin) { FightSystem.getPlugin().setSpectateState(Fight.redTeam); } return; } } public static double getBluePercent() { return bluePercent; } public static double getRedPercent() { return redPercent; } }