diff --git a/src/main/java/eu/mhsl/minenet/minigames/handler/global/ChatFormatHandler.java b/src/main/java/eu/mhsl/minenet/minigames/handler/global/ChatFormatHandler.java index f548248..94ea02b 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/handler/global/ChatFormatHandler.java +++ b/src/main/java/eu/mhsl/minenet/minigames/handler/global/ChatFormatHandler.java @@ -2,6 +2,8 @@ package eu.mhsl.minenet.minigames.handler.global; import eu.mhsl.minenet.minigames.message.Icon; import eu.mhsl.minenet.minigames.message.type.ChatMessage; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; import net.minestom.server.event.EventListener; import net.minestom.server.event.player.PlayerChatEvent; import org.jetbrains.annotations.NotNull; @@ -14,7 +16,14 @@ public class ChatFormatHandler implements EventListener { @Override public @NotNull Result run(@NotNull PlayerChatEvent event) { - event.setFormattedMessage(new ChatMessage(Icon.CHAT).appendStatic(event.getRawMessage()).build(event.getPlayer())); + NamedTextColor color = event.getPlayer().getPermissionLevel() > 0 ? NamedTextColor.AQUA : NamedTextColor.GRAY; + event.setFormattedMessage( + new ChatMessage(Icon.CHAT) + .appendStatic(Component.text(event.getPlayer().getUsername(), color)) + .appendStatic(Component.text(" > ", NamedTextColor.DARK_GRAY)) + .appendStatic(event.getRawMessage()) + .build(event.getPlayer()) + ); return Result.SUCCESS; } } diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/elytraRace/ElytraRace.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/elytraRace/ElytraRace.java index 2bad52a..1dfffc5 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/elytraRace/ElytraRace.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/elytraRace/ElytraRace.java @@ -133,7 +133,7 @@ public class ElytraRace extends StatelessGame { return; } - this.playerCheckpoints.putIfAbsent(player, new CheckPointData(this.ringSpacing, this.ringSpacing * 2)); + this.playerCheckpoints.putIfAbsent(player, new CheckPointData(0, this.ringSpacing)); if(newPos.z() > this.generatedUntil - this.ringSpacing) { this.generateRing(this.generatedUntil + this.ringSpacing); @@ -224,7 +224,9 @@ public class ElytraRace extends StatelessGame { } private void toCheckpoint(Player p) { + CheckPointData data = this.playerCheckpoints.get(p); Point checkpointPos = this.getRingPositionAtZ(this.playerCheckpoints.get(p).currentCheckpoint); + if(data.currentCheckpoint == 0) checkpointPos = this.getSpawn().add(0, 3, 0); p.setVelocity(Vec.ZERO); p.setFlyingWithElytra(false); p.teleport(Pos.fromPoint(checkpointPos).add(0.5, 0, 0.5)); diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java index 5737e00..86f49ec 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/spaceSnake/SpaceSnake.java @@ -110,7 +110,7 @@ public class SpaceSnake extends StatelessGame { playerMoveEvent.getPlayer().teleport(this.getSpawn()); playerMoveEvent.getPlayer().setGameMode(GameMode.SPECTATOR); long livingPlayers = this.getPlayers().stream() - .filter(p -> this.getScore().hasResult(p)) + .filter(p -> !this.getScore().hasResult(p)) .count(); if(livingPlayers == 1) this.setTimeLimit(10); if(livingPlayers == 0) this.stop(); diff --git a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/stickfight/Stickfight.java b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/stickfight/Stickfight.java index 25d9e55..ea1e1c4 100644 --- a/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/stickfight/Stickfight.java +++ b/src/main/java/eu/mhsl/minenet/minigames/instance/game/stateless/types/stickfight/Stickfight.java @@ -10,6 +10,8 @@ import net.minestom.server.coordinate.Pos; import net.minestom.server.entity.Player; import net.minestom.server.event.player.PlayerMoveEvent; import net.minestom.server.instance.block.Block; +import net.minestom.server.item.ItemStack; +import net.minestom.server.item.Material; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -79,6 +81,9 @@ public class Stickfight extends StatelessGame { this.generateBridge(spawnX, spawnY, spawnZ); } + ItemStack item = ItemStack.of(Material.STICK).withGlowing(true); + players.forEach(player -> player.getInventory().addItemStack(item)); + this.setBlock(0, 50, 0, Block.GOLD_BLOCK); super.start(); } @@ -117,6 +122,7 @@ public class Stickfight extends StatelessGame { player.teleport(this.spawnPoints.get(player)); this.scoreMap.putIfAbsent(player, 0); this.scoreMap.put(player, this.scoreMap.get(player) + 1); + player.setLevel(this.scoreMap.get(player)); } }