Skip to content

Commit

Permalink
feat: port remaining 0.2.33 changes
Browse files Browse the repository at this point in the history
Ported:
- ad454f5 feat: add new placeholders, closes #150
- 8b44e5b feat: %countdownwaiting% placeholder, closes #500 + game creator fix
- 6bb63e8 fix: stop showing Respawn in X title in case the player leaves the bedwars game mid-respawning
  • Loading branch information
Misat11 committed Jul 3, 2024
1 parent f234081 commit 7c28b00
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public void construct(CommandManager<CommandSender> manager, Command.Builder<Com

if (
game.getPos2() != null && ArenaUtils.arenaOverlaps(otherGame.getPos1(), otherGame.getPos2(), loc, game.getPos2())
|| game.getPos2() == null && ArenaUtils.isInArea(otherGame.getPos1(), otherGame.getPos2(), loc)
|| game.getPos2() == null && ArenaUtils.isInArea(loc, otherGame.getPos1(), otherGame.getPos2())
) {
sender.sendMessage(
Message.of(LangKeys.ADMIN_ARENA_EDIT_ERRORS_OVERLAPPING_ARENAS)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ public void construct(CommandManager<CommandSender> manager, Command.Builder<Com

if (
game.getPos1() != null && ArenaUtils.arenaOverlaps(otherGame.getPos1(), otherGame.getPos2(), game.getPos1(), loc)
|| game.getPos1() == null && ArenaUtils.isInArea(otherGame.getPos1(), otherGame.getPos2(), loc)
|| game.getPos1() == null && ArenaUtils.isInArea(loc, otherGame.getPos1(), otherGame.getPos2())
) {
sender.sendMessage(
Message.of(LangKeys.ADMIN_ARENA_EDIT_ERRORS_OVERLAPPING_ARENAS)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,7 @@ public void load() {
.replace("%mode%", "<mode>")
.replace("%state%", "<state>")
.replace("%countdown%", "<time>")
.replace("%countdownwaiting%", "<state>")
);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -271,6 +271,11 @@ public void onPlayerDeath(PlayerDeathEvent event) {

final var livingTime = new AtomicInteger(respawnTime);
Tasker.runDelayedAndRepeatedly(DefaultThreads.GLOBAL_THREAD, task -> {
if (!gVictim.isInGame()) {
task.cancel();
return;
}

if (livingTime.get() > 0) {
Message
.of(LangKeys.IN_GAME_RESPAWN_COOLDOWN_TITLE)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,13 @@ public BedwarsExpansion() {
}

@Override
@Nullable
public Component onRequest(@Nullable MultiPlatformOfflinePlayer player, @NotNull String identifier) {
public @Nullable Component onRequest(@Nullable MultiPlatformOfflinePlayer player, @NotNull String identifier) {
// any game
if (identifier.startsWith("game_")) {
var gameName = identifier.substring(5);
var index = gameName.lastIndexOf("_");
var operation = gameName.substring(index + 1).toLowerCase(Locale.ROOT);
if (operation.equals("teams")) {
if ("teams".equals(operation)) {
index = gameName.lastIndexOf("_", index - 1);
operation = gameName.substring(index + 1).toLowerCase(Locale.ROOT);
} else if (gameName.contains("_team_")) {
Expand Down Expand Up @@ -154,7 +153,11 @@ public Component onRequest(@Nullable MultiPlatformOfflinePlayer player, @NotNull
case "world":
return Component.text(game.getWorld().getName());
case "state":
return Component.text(game.getStatus().name().toLowerCase());
return Component.text(game.getStatus().name().toLowerCase(Locale.ROOT));
case "running":
return Component.text(game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING ? "true" : "false");
case "waiting":
return Component.text(game.getStatus() == GameStatus.WAITING ? "true" : "false");
case "available_teams":
return Component.text(game.countAvailableTeams());
case "connected_teams":
Expand All @@ -172,6 +175,10 @@ public Component onRequest(@Nullable MultiPlatformOfflinePlayer player, @NotNull
return Component.text(GameManagerImpl.getInstance().getGames().stream().mapToInt(GameImpl::countConnectedPlayers).sum());
case "maxplayers":
return Component.text(GameManagerImpl.getInstance().getGames().stream().mapToInt(GameImpl::getMaxPlayers).sum());
case "anyrunning":
return Component.text(GameManagerImpl.getInstance().getGames().stream().anyMatch(game -> game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) ? "true" : "false");
case "anywaiting":
return Component.text(GameManagerImpl.getInstance().getGames().stream().anyMatch(game -> game.getStatus() == GameStatus.WAITING) ? "true" : "false");
}
}

Expand Down Expand Up @@ -336,7 +343,15 @@ public Component onRequest(@Nullable MultiPlatformOfflinePlayer player, @NotNull
case "game_world":
return Component.text(PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid()).map(g -> g.getWorld().getName()).orElse("none"));
case "game_state":
return Component.text(PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid()).map(g -> g.getStatus().name().toLowerCase()).orElse("none"));
return Component.text(PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid()).map(g -> g.getStatus().name().toLowerCase(Locale.ROOT)).orElse("none"));
case "game_running":
return Component.text(PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid())
.map(game -> game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING ? "true" : "false")
.orElse("false"));
case "game_waiting":
return Component.text(PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid())
.map(game -> game.getStatus() == GameStatus.WAITING ? "true" : "false")
.orElse("false"));
case "available_teams":
return PlayerManagerImpl.getInstance().getGameOfPlayer(player.getUuid()).map(g -> Component.text(g.countAvailableTeams())).orElseGet(() -> Component.text("0"));
case "connected_teams":
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,8 @@ public GameSidebar(GameImpl game) {
.placeholder("game", game.getDisplayNameComponent())
.placeholder("players", () -> Component.text(game.countConnectedPlayers()))
.placeholder("max-players", game.getMaxPlayers())
.placeholder("time", () -> Component.text(game.getFormattedTimeLeft()))
.placeholder("time", () -> Component.text(game.getTimeLeft()))
.placeholder("time-formatted", () -> Component.text(game.getFormattedTimeLeft()))
.placeholder("version", VersionInfo.VERSION)
.placeholder("date", MiscUtils.getFormattedDate(game.getConfigurationContainer().getOrDefault(GameConfigurationContainer.SIDEBAR_DATE_FORMAT, "date-format")))
.placeholder("mode", checkMode())
Expand Down

0 comments on commit 7c28b00

Please sign in to comment.