Hopefully slightly more optimized tag event
Some checks are pending
Build plugin / build (push) Waiting to run
Some checks are pending
Build plugin / build (push) Waiting to run
This commit is contained in:
parent
7a216b4095
commit
c8b4820be7
|
@ -14,8 +14,10 @@ import org.bukkit.Bukkit;
|
|||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import xyz.twovb.sgm.commands.handlers.InvalidArgsHandler;
|
||||
import xyz.twovb.sgm.commands.handlers.NoPermissionsHandler;
|
||||
|
@ -74,13 +76,14 @@ public final class SGM extends JavaPlugin implements Listener {
|
|||
registerGames();
|
||||
registerPlaceholders();
|
||||
levelManager.loadLevels();
|
||||
// Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
||||
Bukkit.getPluginManager().registerEvents(this, SGM.getInstance());
|
||||
}
|
||||
|
||||
// @EventHandler
|
||||
// public void onEntityDamage() {
|
||||
//
|
||||
// }
|
||||
@EventHandler
|
||||
public void onEntityDamage(EntityDamageByEntityEvent event) {
|
||||
if (!(event.getEntity() instanceof Player damaged) && !(event.getDamager() instanceof Player damager)) return;
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
private void loadScoreboard() {
|
||||
try {
|
||||
|
|
|
@ -225,15 +225,13 @@ public class CTB implements Minigame {
|
|||
player.setGameMode(GameMode.ADVENTURE);
|
||||
playerStateMap.put(player, CtbData.PlayerState.Free);
|
||||
for (ScoreboardTeam teams : teamManager.teams()) {
|
||||
if (teams.defaultDisplay().entries().contains(player.getName())) {
|
||||
if (teams == redTeam) {
|
||||
if (teams == redTeam && teams.defaultDisplay().entries().contains(player.getName())) {
|
||||
player.teleport(this.redSpawnLocation);
|
||||
} else if (teams == blueTeam) {
|
||||
} else if (teams == blueTeam && teams.defaultDisplay().entries().contains(player.getName())) {
|
||||
player.teleport(this.blueSpawnLocation);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (int i = 0; i <= this.bricks - 1; i++) {
|
||||
placeBrick(redBrickSpawns.get(i), redTeam);
|
||||
placeBrick(blueBrickSpawns.get(i), blueTeam);
|
||||
|
@ -246,10 +244,6 @@ public class CTB implements Minigame {
|
|||
}
|
||||
}
|
||||
|
||||
boolean isJailed(Player player) {
|
||||
return playerStateMap.get(player) == CtbData.PlayerState.Jailed;
|
||||
}
|
||||
|
||||
CtbData.Territory getTerritory(Player player) {
|
||||
Location playerLoc = player.getLocation();
|
||||
Location blockCheck = new Location(gameWorld, playerLoc.getBlockX(), territoryLevel, playerLoc.getBlockZ());
|
||||
|
@ -341,13 +335,10 @@ public class CTB implements Minigame {
|
|||
if (!players.contains(player)) return;
|
||||
if (state == GameState.STARTED) {
|
||||
addPlayerToJail(player);
|
||||
} else {
|
||||
player.teleport(gameWorld.getSpawnLocation());
|
||||
}
|
||||
event.setCancelled(true);
|
||||
// if (players.contains(player) && state == GameState.STARTED) {
|
||||
// sendMessageToAllPlayers(player.getName() + " was eliminated!");
|
||||
// event.setDeathMessage("");
|
||||
// removePlayer(player);
|
||||
// }
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -389,9 +380,9 @@ public class CTB implements Minigame {
|
|||
Player player = event.getPlayer();
|
||||
if (!players.contains(player)) return;
|
||||
if (this.state != GameState.STARTED) return;
|
||||
if (playerStateMap.get(player) != CtbData.PlayerState.Stealing) return;
|
||||
CtbData.PlayerState state = playerStateMap.get(player);
|
||||
if (state != CtbData.PlayerState.Stealing) return;
|
||||
CtbData.Territory territory = getTerritory(player);
|
||||
// CustomPlayer cPlayer = new CustomPlayer(player);
|
||||
if (territory.equals(CtbData.Territory.Neutral)) {
|
||||
sendMessageToAllPlayers(messages.getString("system.player.brick.steal.announce").replace("%player%", player.getName()));
|
||||
playerStateMap.replace(player, CtbData.PlayerState.Stealing, CtbData.PlayerState.Free);
|
||||
|
@ -411,13 +402,9 @@ public class CTB implements Minigame {
|
|||
|
||||
void addScore(ScoreboardTeam team, int scoreToAdd) {
|
||||
if (team == redTeam) {
|
||||
// SGM.getInstance().getCLogger().log(redScore);
|
||||
this.redScore = redScore + scoreToAdd;
|
||||
// SGM.getInstance().getCLogger().log(redScore);
|
||||
} else if (team == blueTeam) {
|
||||
// SGM.getInstance().getCLogger().log(blueScore);
|
||||
this.blueScore = blueScore + scoreToAdd;
|
||||
// SGM.getInstance().getCLogger().log(blueScore);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -561,9 +548,6 @@ public class CTB implements Minigame {
|
|||
}.runTaskTimer(SGM.getInstance(), 0, 20L);
|
||||
}
|
||||
|
||||
|
||||
//TODO MAKE LEVEL CREATE TP U TO RIGHT PLACE
|
||||
|
||||
@EventHandler
|
||||
void onPlayerFreedom(PlayerFreedFromJailEvent event) {
|
||||
Player tagged = event.getTagged();
|
||||
|
@ -609,6 +593,7 @@ public class CTB implements Minigame {
|
|||
if (playerStateMap.get(player) != CtbData.PlayerState.Jailed) this.cancel();
|
||||
if (seconds > jailTime) {
|
||||
jailbreakPlayer(player);
|
||||
this.cancel();
|
||||
} else {
|
||||
seconds++;
|
||||
}
|
||||
|
@ -681,30 +666,32 @@ public class CTB implements Minigame {
|
|||
|
||||
if (this.state != GameState.STARTED) return;
|
||||
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
||||
if (getTerritory(interacted) != getTerritory(interacter)) return;
|
||||
CtbData.Territory interactedTerritory = getTerritory(interacted);
|
||||
CtbData.Territory interacterTerritory = getTerritory(interacter);
|
||||
if (interactedTerritory != interacterTerritory) return;
|
||||
ScoreboardTeam interactedTeam = getTeam(interacted);
|
||||
ScoreboardTeam interacterTeam = getTeam(interacter);
|
||||
if (interactedTeam == interacterTeam) return;
|
||||
event.setCancelled(true);
|
||||
CtbData.PlayerState interactedState = playerStateMap.get(interacted);
|
||||
CtbData.PlayerState interacterState = playerStateMap.get(interacter);
|
||||
|
||||
CtbData.Territory territory = getTerritory(interacted);
|
||||
EntityEquipment interactedEquipment = interacted.getEquipment();
|
||||
if (territory == CtbData.Territory.Neutral) return;
|
||||
if (territory == CtbData.Territory.Blue && interacterTeam != blueTeam) return;
|
||||
if (territory == CtbData.Territory.Red && interacterTeam != redTeam) return;
|
||||
if (playerStateMap.get(interacter) != CtbData.PlayerState.Free) return;
|
||||
if (playerStateMap.get(interacted) != CtbData.PlayerState.Free && playerStateMap.get(interacted) != CtbData.PlayerState.Stealing)
|
||||
return;
|
||||
if (playerStateMap.get(interacted) == CtbData.PlayerState.Stealing) {
|
||||
if (interactedTerritory == CtbData.Territory.Neutral) return;
|
||||
if (interactedTerritory == CtbData.Territory.Blue && interacterTeam != blueTeam) return;
|
||||
if (interactedTerritory == CtbData.Territory.Red && interacterTeam != redTeam) return;
|
||||
if (interacterState != CtbData.PlayerState.Free) return;
|
||||
if (interactedState != CtbData.PlayerState.Free && interactedState != CtbData.PlayerState.Stealing) return;
|
||||
if (interactedState == CtbData.PlayerState.Stealing) {
|
||||
ScoreboardTeam team = getTeam(interacted);
|
||||
if (team == redTeam) {
|
||||
if (interactedEquipment.getHelmet().getType().equals(Material.BLUE_WOOL)) {
|
||||
interacted.getInventory().clear();
|
||||
interactedEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
placeBrick(interacted.getLocation(), blueTeam);
|
||||
}
|
||||
} else if (team == blueTeam) {
|
||||
if (interactedEquipment.getHelmet().getType().equals(Material.RED_WOOL)) {
|
||||
interacted.getInventory().clear();
|
||||
interactedEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
placeBrick(interacted.getLocation(), redTeam);
|
||||
}
|
||||
}
|
||||
|
@ -717,8 +704,8 @@ public class CTB implements Minigame {
|
|||
|
||||
@EventHandler
|
||||
void onBrickSteal(PlayerInteractAtEntityEvent event) {
|
||||
// Check if a player is allowed to tag, and if the tagged player is allowed to be tagged
|
||||
// If both are true, call the custom tag event and add players to tagged hashmap
|
||||
// Check if a player is allowed to steal a brick
|
||||
// If true, do brick steal logic
|
||||
if (this.state != GameState.STARTED) return;
|
||||
Entity rightClicked = event.getRightClicked();
|
||||
Player brickTaker = event.getPlayer();
|
||||
|
@ -757,9 +744,6 @@ public class CTB implements Minigame {
|
|||
} else if (team == blueTeam) {
|
||||
player.teleport(redJail);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void freePlayerFromJail(Player player) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user