refactor: generator minigame system (gui + text), fix color codes, holograms, messages, & config
This commit is contained in:
parent
957ab4a5a2
commit
7c7562a8d4
48 changed files with 1628 additions and 733 deletions
|
|
@ -3,8 +3,8 @@ package dev.loki.phase;
|
|||
import dev.loki.config.GameConfig;
|
||||
import dev.loki.core.GameSession;
|
||||
import dev.loki.player.BasePlayer;
|
||||
import dev.loki.config.MessagesConfig;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
|
|
@ -38,7 +38,8 @@ public class LobbyPhase implements Phase {
|
|||
if (p != null && p.isOnline()) {
|
||||
p.setGameMode(org.bukkit.GameMode.ADVENTURE);
|
||||
lobbyManager.teleportToLobby(p);
|
||||
p.sendMessage(Component.text("[DBD] Лобби открыто! Ожидание игроков...", NamedTextColor.GREEN));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
p.sendMessage(messages.get("lobby.opened"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -59,9 +60,8 @@ public class LobbyPhase implements Phase {
|
|||
secondsLeft = config.getCountdown4Players();
|
||||
tickSub = 0;
|
||||
lastPlayerCount = playerCount;
|
||||
sendActionBarToAll(session,
|
||||
Component.text("⏳ Ожидание игроков: " + playerCount + "/" + minPlayers,
|
||||
NamedTextColor.YELLOW));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
sendActionBarToAll(session, messages.get("lobby.waiting", playerCount, maxPlayers));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -74,9 +74,8 @@ public class LobbyPhase implements Phase {
|
|||
if (secondsLeft > fast) {
|
||||
secondsLeft = fast;
|
||||
tickSub = 0;
|
||||
Bukkit.broadcast(Component.text(
|
||||
"[DBD] Все игроки вошли! Старт через " + fast + " сек!",
|
||||
NamedTextColor.GREEN));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
Bukkit.broadcast(messages.get("lobby.all-ready", fast));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -91,17 +90,14 @@ public class LobbyPhase implements Phase {
|
|||
if (secondsLeft == 30 || secondsLeft == 15 || secondsLeft == 10
|
||||
|| secondsLeft == 5 || secondsLeft == 3
|
||||
|| secondsLeft == 2 || secondsLeft == 1) {
|
||||
Bukkit.broadcast(Component.text(
|
||||
"[DBD] До начала: " + secondsLeft + " сек.",
|
||||
NamedTextColor.YELLOW));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
Bukkit.broadcast(messages.get("lobby.countdown", secondsLeft));
|
||||
}
|
||||
}
|
||||
|
||||
// ActionBar всем (на русском, без прогресс-бара)
|
||||
NamedTextColor barColor = (playerCount >= maxPlayers)
|
||||
? NamedTextColor.GREEN : NamedTextColor.YELLOW;
|
||||
sendActionBarToAll(session,
|
||||
Component.text(">>> Начало через: " + secondsLeft + "с (" + playerCount + "/" + minPlayers + ")", barColor));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
sendActionBarToAll(session, messages.get("lobby.actionbar-waiting", secondsLeft, playerCount, maxPlayers));
|
||||
|
||||
if (secondsLeft <= 0) {
|
||||
started = true;
|
||||
|
|
@ -129,7 +125,8 @@ public class LobbyPhase implements Phase {
|
|||
Player p = bp.getPlayer();
|
||||
if (p != null && p.isOnline()) p.sendActionBar(Component.empty());
|
||||
}
|
||||
Bukkit.broadcast(Component.text("[DBD] Игра начинается!", NamedTextColor.GREEN));
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
Bukkit.broadcast(messages.get("lobby.starting"));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -137,11 +134,10 @@ public class LobbyPhase implements Phase {
|
|||
player.setGameMode(org.bukkit.GameMode.ADVENTURE);
|
||||
session.getPlugin().getLobbyManager().teleportToLobby(player);
|
||||
int playerCount = session.getPlayerCount();
|
||||
int minPlayers = config.getMinPlayers();
|
||||
int maxPlayers = config.getMaxPlayers();
|
||||
// Сообщаем только участникам этой сессии, не всему серверу
|
||||
Component msg = Component.text(
|
||||
"[DBD] " + player.getName() + " присоединился! (" + playerCount + "/" + minPlayers + ")",
|
||||
NamedTextColor.YELLOW);
|
||||
MessagesConfig messages = session.getPlugin().getConfigManager().getMessages();
|
||||
Component msg = messages.get("lobby.player-joined", player.getName(), playerCount, maxPlayers);
|
||||
for (BasePlayer bp : session.getPlayers().values()) {
|
||||
Player p = bp.getPlayer();
|
||||
if (p != null && p.isOnline()) p.sendMessage(msg);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue