aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLéo Kosman <leo.kosman@proton.me>2024-08-22 22:54:58 +0200
committerGitHub <noreply@github.com>2024-08-22 22:54:58 +0200
commit4e286cb30e0b65c3f09763ad86e1b0d9dfd84d80 (patch)
tree35ca90fb2604c7f81b72be2372c61be678b488ee /src
parentdc17a97ff6a6bab748d7bd3062481bb5dac6d85f (diff)
parent7dc2ddcbb808d9dba78f806b0b1138cc9a9c8bbb (diff)
Merge branch 'main' into feat/hide-timer
Diffstat (limited to 'src')
-rw-r--r--src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java3
-rw-r--r--src/main/java/world/anhgelus/molehunt/Game.java26
-rw-r--r--src/main/resources/assets/molehunt/icon.pngbin0 -> 35896 bytes
3 files changed, 17 insertions, 12 deletions
diff --git a/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java b/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java
index d7795dd..7996c49 100644
--- a/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java
+++ b/src/client/java/world/anhgelus/molehunt/client/mixin/NoNametags.java
@@ -11,11 +11,10 @@ import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(EntityRenderer.class)
-public abstract class NoNametags<T extends Entity> {
+public class NoNametags<T extends Entity> {
@Inject(at = @At("HEAD"), method = "render", cancellable = true)
private void renderLabelOrNot(T entity, float yaw, float tickDelta, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, CallbackInfo ci) {
if (!(entity instanceof PlayerEntity)) return;
-
ci.cancel();
}
} \ No newline at end of file
diff --git a/src/main/java/world/anhgelus/molehunt/Game.java b/src/main/java/world/anhgelus/molehunt/Game.java
index 9c3910b..bf0f294 100644
--- a/src/main/java/world/anhgelus/molehunt/Game.java
+++ b/src/main/java/world/anhgelus/molehunt/Game.java
@@ -7,6 +7,7 @@ import net.minecraft.network.packet.s2c.play.TitleS2CPacket;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.network.ServerPlayerEntity;
import net.minecraft.text.Text;
+import net.minecraft.text.TextContent;
import net.minecraft.world.GameMode;
import net.minecraft.world.GameRules;
import world.anhgelus.molehunt.utils.TimeUtils;
@@ -34,9 +35,10 @@ public class Game {
}
public void start() {
+ if (started) return;
final int n = (server.getCurrentPlayerCount() - server.getCurrentPlayerCount() % 4)/4;
final var playerManager = server.getPlayerManager();
- final var players = playerManager.getPlayerList();
+ final var players = new ArrayList<>(playerManager.getPlayerList());
for (int i = 0; i < n; i++) {
final var r = ThreadLocalRandom.current().nextInt(0, players.size());
final var mole = players.get(r);
@@ -53,7 +55,7 @@ public class Game {
gamerules.get(GameRules.DO_IMMEDIATE_RESPAWN).set(true, server);
gamerules.get(GameRules.DO_ENTITY_DROPS).set(false, server);
- final var title = new TitleS2CPacket(Text.of("You are..."));
+ final var title = new TitleS2CPacket(Text.of("§eYou are..."));
playerManager.getPlayerList().forEach(p -> {
p.kill();
p.networkHandler.sendPacket(timing);
@@ -69,10 +71,10 @@ public class Game {
playerManager.getPlayerList().forEach(p -> {
p.networkHandler.sendPacket(timing);
if (moles.contains(p)) {
- p.networkHandler.sendPacket(new TitleS2CPacket(Text.of("The Mole!")));
- p.networkHandler.sendPacket(new SubtitleS2CPacket(Text.of("Get the list of moles with /molehunt moles")));
+ p.networkHandler.sendPacket(new TitleS2CPacket(Text.of("§cThe Mole!")));
+ p.networkHandler.sendPacket(new SubtitleS2CPacket(Text.of("§6get the list of moles with /molehunt moles")));
} else {
- p.networkHandler.sendPacket(new TitleS2CPacket(Text.of("Not the Mole!")));
+ p.networkHandler.sendPacket(new TitleS2CPacket(Text.of("§aNot the Mole!")));
}
// reset health and food level
p.setHealth(p.getMaxHealth());
@@ -119,7 +121,7 @@ public class Game {
timer = new Timer();
started = false;
final var pm = server.getPlayerManager();
- final var winnerSuspense = new TitleS2CPacket(Text.of("And the winners are..."));
+ final var winnerSuspense = new TitleS2CPacket(Text.of("§eAnd the winners are..."));
pm.getPlayerList().forEach(p -> {
p.networkHandler.sendPacket(timing);
p.networkHandler.sendPacket(winnerSuspense);
@@ -130,11 +132,11 @@ public class Game {
public void run() {
TitleS2CPacket winner;
if (gameWonByMoles()) {
- winner = new TitleS2CPacket(Text.of("The Moles!"));
+ winner = new TitleS2CPacket(Text.of("§cThe Moles!"));
} else {
- winner = new TitleS2CPacket(Text.of("The survivors!"));
+ winner = new TitleS2CPacket(Text.of("§aNot the Mole!"));
}
- pm.sendToAll(new SubtitleS2CPacket(Text.of("The moles were " + getMolesAsString())));
+ pm.sendToAll(new SubtitleS2CPacket(Text.of("§6Moles were " + getMolesAsString())));
pm.sendToAll(winner);
pm.sendToAll(timing);
}
@@ -158,7 +160,11 @@ public class Game {
}
public String getMolesAsString() {
- return moles.stream().map(ServerPlayerEntity::getDisplayName).filter(Objects::nonNull).map(Text::toString).collect(Collectors.joining(", "));
+ return moles.stream()
+ .map(ServerPlayerEntity::getDisplayName)
+ .filter(Objects::nonNull)
+ .map(Text::getString)
+ .collect(Collectors.joining(", "));
}
public boolean isAMole(ServerPlayerEntity player) {
diff --git a/src/main/resources/assets/molehunt/icon.png b/src/main/resources/assets/molehunt/icon.png
new file mode 100644
index 0000000..315d580
--- /dev/null
+++ b/src/main/resources/assets/molehunt/icon.png
Binary files differ