Add chat system to TowerRun

This commit is contained in:
2025-04-18 10:07:42 +02:00
parent 2094120150
commit ace567ba33
4 changed files with 60 additions and 33 deletions
+18 -15
View File
@@ -17,20 +17,23 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PREFIX=§eTowerRun§8»§r
PREFIX=§eTowerRun§8§§r
PLAYER_DIED=§c{0} §7died§8!
PLAYER_ESCAPE=§a{0} §7escaped§8!
GAME_START=§aThe game has started§8!
GAME_WIN=§a{0} §7has won the game§8!
GAME_STARTING=§7Starting: §e{0}s§8!
GAME_WAITING=§7Waiting for players§8...
SERVER_STOPPING=§cThe server stops in §e{0}s§8!
SERVER_RESET=§cThe server will be reset in §e{0}s§8!
KEY_NAME=§eKey
KEY_FOUND=§a{0} §7found a key§8!
GAME_TIE=§aThe game ended in a tie§8!
GAME_TIME=§a{0}:{1}
CATCH_UP_WARNING=§4!! §cYou should catch up §4!!
PLAYER_DIED=§c{0} §7died§8!
PLAYER_ESCAPE=§a{0} §7escaped§8!
GAME_START=§aThe game has started§8!
GAME_WIN=§a{0} §7has won the game§8!
GAME_STARTING=§7Starting: §e{0}s§8!
GAME_WAITING=§7Waiting for players§8...
SERVER_STOPPING=§cThe server stops in §e{0}s§8!
SERVER_RESET=§cThe server will be reset in §e{0}s§8!
KEY_NAME=§eKey
KEY_FOUND=§a{0} §7found a key§8!
GAME_TIE=§aThe game ended in a tie§8!
GAME_TIME=§a{0}:{1}
CATCH_UP_WARNING=§4!! §cYou should catch up §4!!
COMMAND_START=§aThe game will start soon§8!
COMMAND_START=§aThe game will start soon§8!
PARTICIPANT_CHAT={0} {1}§8» §7{2}
SPECTATOR_CHAT=§7{0}§8» §7{1}
+13 -13
View File
@@ -17,19 +17,19 @@
# along with this program. If not, see <https://www.gnu.org/licenses/>.
#
PLAYER_DIED=§c{0} §7ist gestorben§8!
PLAYER_ESCAPE=§a{0} §7ist entkommen§8!
GAME_START=§aDas Spiel beginnt§8!
GAME_WIN=§a{0} §7hat das Spiel gewonnen§8!
GAME_STARTING=§7Das Spiel startet in §e{0}s§8!
GAME_WAITING=§7Warte auf weitere Spieler§8...
SERVER_STOPPING=§cDer Server stoppt in §e{0}s§8!
SERVER_RESET=§cDer Server wird in §e{0}s §czurückgesetzt§8!
GAME_TIE=§7Keiner hat gewonnen§8!
PLAYER_DIED=§c{0} §7ist gestorben§8!
PLAYER_ESCAPE=§a{0} §7ist entkommen§8!
GAME_START=§aDas Spiel beginnt§8!
GAME_WIN=§a{0} §7hat das Spiel gewonnen§8!
GAME_STARTING=§7Das Spiel startet in §e{0}s§8!
GAME_WAITING=§7Warte auf weitere Spieler§8...
SERVER_STOPPING=§cDer Server stoppt in §e{0}s§8!
SERVER_RESET=§cDer Server wird in §e{0}s §czur§ckgesetzt§8!
GAME_TIE=§7Keiner hat gewonnen§8!
KEY_NAME=§eSchlüssel
KEY_FOUND=§a{0} §7hat einen Schlüssel gefunden§8!
KEY_NAME=§eSchl§ssel
KEY_FOUND=§a{0} §7hat einen Schl§ssel gefunden§8!
CATCH_UP_WARNING=§4!! §cDu solltest aufholen §4!!
CATCH_UP_WARNING=§4!! §cDu solltest aufholen §4!!
COMMAND_START=§7Das Spiel startet bald§8!
COMMAND_START=§7Das Spiel startet bald§8!
@@ -46,6 +46,10 @@ public class TowerRunGame {
public static final List<TowerRunPlayer> PLAYERS_ESCAPED = new ArrayList<>();
private static final World world = Bukkit.getWorlds().get(0);
public static boolean isEscaped(TowerRunPlayer player) {
return PLAYERS_ESCAPED.contains(player);
}
public static boolean isAlive(TowerRunPlayer player) {
return PLAYERS_ALIVE.contains(player);
}
@@ -19,20 +19,19 @@
package de.steamwar.towerrun.listener;
import de.steamwar.towerrun.TowerRun;
import de.steamwar.towerrun.config.WorldConfig;
import de.steamwar.towerrun.game.TowerRunGame;
import de.steamwar.towerrun.game.TowerRunPlayer;
import de.steamwar.towerrun.state.GameStateBukkitListener;
import de.steamwar.towerrun.state.GameStates;
import lombok.val;
import org.bukkit.Bukkit;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.*;
import java.util.EnumSet;
@@ -67,4 +66,25 @@ public class GlobalListener extends GameStateBukkitListener implements Listener
public void onPlayerRespawn(PlayerRespawnEvent event) {
event.setRespawnLocation(WorldConfig.SPAWN);
}
@EventHandler
public void onAsyncPlayerChat(AsyncPlayerChatEvent event) {
TowerRunPlayer player = TowerRunPlayer.get(event.getPlayer());
if (TowerRunGame.isAlive(player) || TowerRunGame.isEscaped(player)) {
String prefix;
if (TowerRunGame.isAlive(player)) {
if (event.getPlayer().getGameMode() == GameMode.SPECTATOR) {
prefix = "§c☠";
} else {
prefix = "§6❤";
}
} else {
prefix = "§a✔";
}
TowerRun.getMessage().broadcastPrefixless("PARTICIPANT_CHAT", prefix, event.getPlayer().getName(), event.getMessage());
} else {
TowerRun.getMessage().broadcastPrefixless("SPECTATOR_CHAT", event.getPlayer().getName(), event.getMessage());
}
event.setCancelled(true);
}
}