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