This commit is contained in:
parent
f54dcbcfdf
commit
b393f8fde2
|
@ -50,22 +50,30 @@ public class GameCommand {
|
|||
@Permission("sgm.games.start")
|
||||
void start(@Context Player player) {
|
||||
Minigame game = SGM.getInstance().getGameManager().findGame(player);
|
||||
CustomPlayer cPlayer = new CustomPlayer(player);
|
||||
if (game == null) {
|
||||
CustomPlayer cPlayer = new CustomPlayer(player);
|
||||
cPlayer.sendMessage(SGM.getInstance().getMessages().getString("sgm.game.not-found"));
|
||||
} else {
|
||||
game.start(player);
|
||||
if (game.getState() == Minigame.GameState.READY) {
|
||||
game.start(player);
|
||||
} else {
|
||||
cPlayer.sendMessage(SGM.getInstance().getMessages().getString("sgm.game.cant-start"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Execute(name = "team")
|
||||
void teamJoin(@Context Player player) {
|
||||
Minigame game = SGM.getInstance().getGameManager().findGame(player);
|
||||
CustomPlayer cPlayer = new CustomPlayer(player);
|
||||
if (game == null) {
|
||||
CustomPlayer cPlayer = new CustomPlayer(player);
|
||||
cPlayer.sendMessage(SGM.getInstance().getMessages().getString("sgm.game.not-found"));
|
||||
} else {
|
||||
new TeamGui(player).getGui().show(player);
|
||||
if (game.getState() == Minigame.GameState.READY) {
|
||||
new TeamGui(player).getGui().show(player);
|
||||
} else {
|
||||
cPlayer.sendMessage(SGM.getInstance().getMessages().getString("sgm.game.started"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -152,14 +152,39 @@ public class CTB implements Minigame {
|
|||
}
|
||||
|
||||
private String getBrickCount(ScoreboardTeam team) {
|
||||
String icon = "\uD83D\uDDC3";
|
||||
String icon = "\uD83D\uDDC3"; // Full colored icon
|
||||
StringBuilder builder = new StringBuilder();
|
||||
for (int i = 1; i <= this.bricks; i++) {
|
||||
builder.append(icon + " ");
|
||||
int score = getScore(team); // Get the score for the specified team
|
||||
|
||||
String fullIcon = null;
|
||||
if (team == redTeam) {
|
||||
fullIcon = "<red><bold>" + icon;
|
||||
} else if (team == blueTeam) {
|
||||
fullIcon = "<blue><bold>" + icon;
|
||||
}
|
||||
return builder.toString();
|
||||
|
||||
String grayIcon = "<gray><bold>" + icon;
|
||||
|
||||
for (int i = 1; i <= this.bricks; i++) {
|
||||
if (i <= score) {
|
||||
builder.append(fullIcon).append(" ");
|
||||
} else {
|
||||
builder.append(grayIcon).append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
return builder.toString().trim(); // trim() removes the trailing space
|
||||
}
|
||||
|
||||
// private String getBrickCount(ScoreboardTeam team) {
|
||||
// String icon = "\uD83D\uDDC3";
|
||||
// StringBuilder builder = new StringBuilder();
|
||||
// for (int i = 1; i <= this.bricks; i++) {
|
||||
// builder.append(icon + " ");
|
||||
// }
|
||||
// return builder.toString();
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onTick() {
|
||||
if (players.isEmpty()) {
|
||||
|
@ -214,11 +239,11 @@ public class CTB implements Minigame {
|
|||
public void start(CommandSender sender) {
|
||||
if (checkStart(sender)) {
|
||||
for (Player player : players) {
|
||||
EntityEquipment playerEquipment = player.getEquipment();
|
||||
player.getInventory().clear();
|
||||
sb.addPlayer(player);
|
||||
player.setGameMode(GameMode.ADVENTURE);
|
||||
playerStateMap.put(player, CtbData.PlayerState.Free);
|
||||
player.setHealth(Objects.requireNonNull(player.getAttribute(Attribute.GENERIC_MAX_HEALTH)).getValue());
|
||||
for (ScoreboardTeam teams : teamManager.teams()) {
|
||||
if (teams == redTeam && teams.defaultDisplay().entries().contains(player.getName())) {
|
||||
player.teleport(this.redSpawnLocation);
|
||||
|
@ -235,7 +260,7 @@ public class CTB implements Minigame {
|
|||
this.taskId = task.getTaskId();
|
||||
|
||||
state = GameState.STARTED;
|
||||
sendMessageToAllPlayers("The game has started!");
|
||||
sendMessageToAllPlayers(SGM.getInstance().getMessages().getString("sgm.game.start"));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -402,6 +427,8 @@ public class CTB implements Minigame {
|
|||
if (!players.contains(player)) return;
|
||||
ScoreboardTeam team = getTeam(player);
|
||||
addScore(team, 1);
|
||||
EntityEquipment entityEquipment = player.getEquipment();
|
||||
entityEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
}
|
||||
|
||||
void addScore(ScoreboardTeam team, int scoreToAdd) {
|
||||
|
@ -427,8 +454,6 @@ public class CTB implements Minigame {
|
|||
if (!players.contains(player)) return;
|
||||
if (this.state != GameState.STARTED) return;
|
||||
if (playerStateMap.get(player) != CtbData.PlayerState.Stealing) return;
|
||||
EntityEquipment entityEquipment = player.getEquipment();
|
||||
entityEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
player.sendMessage(event.getMessage());
|
||||
}
|
||||
|
||||
|
@ -517,11 +542,11 @@ public class CTB implements Minigame {
|
|||
Player tagger = event.getTagger();
|
||||
if (this.state != GameState.STARTED) return;
|
||||
if (!players.contains(tagged) || !players.contains(tagger)) return;
|
||||
taggedPlayerHashMap.putIfAbsent(tagger, tagged);
|
||||
taggedPlayerHashMap.put(tagger, tagged);
|
||||
CustomPlayer cTagged = new CustomPlayer(tagged);
|
||||
CustomPlayer cTagger = new CustomPlayer(tagger);
|
||||
cTagged.sendMessage(messages.getString("system.player.tag.notify").replace("%player%", tagger.getName()));
|
||||
cTagger.sendMessage(messages.getString("system.player.tag.info").replace("%player%", tagged.getName()));
|
||||
cTagged.sendMessage(messages.getString("system.player.tag.notify").replace("%player%", tagger.getName()).replace("%seconds%", String.valueOf(this.tagTime)));
|
||||
cTagger.sendMessage(messages.getString("system.player.tag.info").replace("%player%", tagged.getName()).replace("%seconds%", String.valueOf(this.tagTime)));
|
||||
Entity seatEntity = gameWorld.spawnEntity(tagger.getLocation(), EntityType.ARMOR_STAND);
|
||||
ArmorStand armorStandEntity = (ArmorStand) seatEntity;
|
||||
armorStandEntity.setInvisible(true);
|
||||
|
@ -694,13 +719,13 @@ public class CTB implements Minigame {
|
|||
if (team == redTeam) {
|
||||
if (interactedEquipment.getHelmet().getType().equals(Material.BLUE_WOOL)) {
|
||||
interactedEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
placeBrick(interacted.getLocation(), blueTeam);
|
||||
}
|
||||
placeBrick(interacted.getLocation(), blueTeam);
|
||||
} else if (team == blueTeam) {
|
||||
if (interactedEquipment.getHelmet().getType().equals(Material.RED_WOOL)) {
|
||||
interactedEquipment.setHelmet(new ItemStack(Material.AIR));
|
||||
placeBrick(interacted.getLocation(), redTeam);
|
||||
}
|
||||
placeBrick(interacted.getLocation(), redTeam);
|
||||
}
|
||||
}
|
||||
playerStateMap.replace(interacted, CtbData.PlayerState.Tagged);
|
||||
|
@ -718,23 +743,19 @@ public class CTB implements Minigame {
|
|||
Player brickTaker = event.getPlayer();
|
||||
if (!(rightClicked instanceof ArmorStand)) return;
|
||||
if (!players.contains(brickTaker)) return;
|
||||
EntityEquipment equipment = ((ArmorStand) rightClicked).getEquipment();
|
||||
Material brickMaterial = null;
|
||||
if (equipment.getHelmet().getType().equals(Material.RED_WOOL)) {
|
||||
brickMaterial = Material.RED_WOOL;
|
||||
} else if (equipment.getHelmet().getType().equals(Material.BLUE_WOOL)) {
|
||||
brickMaterial = Material.BLUE_WOOL;
|
||||
}
|
||||
ScoreboardTeam taggerTeam = getTeam(brickTaker);
|
||||
event.setCancelled(true);
|
||||
CtbData.Territory territory = getTerritory(brickTaker);
|
||||
if (territory == CtbData.Territory.Blue && taggerTeam == blueTeam) return;
|
||||
if (territory == CtbData.Territory.Red && taggerTeam == redTeam) return;
|
||||
if (playerStateMap.get(brickTaker) != CtbData.PlayerState.Free) return;
|
||||
if (brickMaterial == null) return;
|
||||
playerStateMap.replace(brickTaker, CtbData.PlayerState.Free, CtbData.PlayerState.Stealing);
|
||||
EntityEquipment playerEquipment = event.getPlayer().getEquipment();
|
||||
playerEquipment.setHelmet(new ItemStack(brickMaterial));
|
||||
EntityEquipment playerEquipment = brickTaker.getEquipment();
|
||||
if (taggerTeam == redTeam) {
|
||||
playerEquipment.setHelmet(new ItemStack(Material.BLUE_WOOL));
|
||||
} else if (taggerTeam == blueTeam) {
|
||||
playerEquipment.setHelmet(new ItemStack(Material.RED_WOOL));
|
||||
}
|
||||
PlayerStealBrickEvent playerStealBrickEvent = new PlayerStealBrickEvent(brickTaker);
|
||||
playerStealBrickEvent.callEvent();
|
||||
rightClicked.remove();
|
||||
|
|
|
@ -21,7 +21,7 @@ system:
|
|||
info: "&7You have tagged %player%! You have %seconds% seconds to take them to Jail! Crouch if you would like to set them free."
|
||||
released:
|
||||
notify: "&7You have released %player%"
|
||||
info: "&7%player% let you free! You must head back to Neutral before you can do anything."
|
||||
info: "&7%player% let you free!"
|
||||
full: "&7You have returned to Neutral. You can now get back to the game!"
|
||||
brick:
|
||||
steal:
|
||||
|
|
|
@ -14,8 +14,9 @@ sgm:
|
|||
new: "&7A new %game% has started and can now be joined!"
|
||||
not-found: "&7Game couldn't be found!"
|
||||
cant-start: "&7Game couldn't be started!"
|
||||
started: "&7Game has already started!"
|
||||
cant-join: "&7Could not join this game!"
|
||||
started: "&7Game has started!"
|
||||
start: "&7Game has started!"
|
||||
win: "&7Congratulations to %winner% for winning!"
|
||||
level:
|
||||
new: "&7A level with the name %level% has been created."
|
||||
|
|
Loading…
Reference in New Issue
Block a user