aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authoranhgelus <anhgelus.morhtuuzh@proton.me>2024-08-21 23:58:53 +0000
committeranhgelus <anhgelus.morhtuuzh@proton.me>2024-08-21 23:58:53 +0000
commit56a595e934d711851b1d52a7371e950eaebf3e48 (patch)
tree75be4bdf6a311d6042cc37c994e7f851b1568c08 /src/main
parent81aedf5987abcb5c3c0679ea833922a3763d8618 (diff)
feat(game): reset heal, food level, saturation, location and weather during the start
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/world/anhgelus/molehunt/Game.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/world/anhgelus/molehunt/Game.java b/src/main/java/world/anhgelus/molehunt/Game.java
index 537055c..199f4d4 100644
--- a/src/main/java/world/anhgelus/molehunt/Game.java
+++ b/src/main/java/world/anhgelus/molehunt/Game.java
@@ -1,5 +1,6 @@
package world.anhgelus.molehunt;
+import net.minecraft.entity.LivingEntity;
import net.minecraft.network.packet.s2c.play.OverlayMessageS2CPacket;
import net.minecraft.network.packet.s2c.play.SubtitleS2CPacket;
import net.minecraft.network.packet.s2c.play.TitleFadeS2CPacket;
@@ -39,8 +40,14 @@ public class Game {
players.remove(r);
}
- server.getGameRules().get(GameRules.SHOW_DEATH_MESSAGES).set(false, server);
- server.getGameRules().get(GameRules.ANNOUNCE_ADVANCEMENTS).set(false, server);
+ final var gamerules = server.getGameRules();
+ // immutable gamerules
+ gamerules.get(GameRules.SHOW_DEATH_MESSAGES).set(false, server);
+ gamerules.get(GameRules.ANNOUNCE_ADVANCEMENTS).set(false, server);
+ // gamerules for the start
+ gamerules.get(GameRules.DO_IMMEDIATE_RESPAWN).set(true, server);
+ gamerules.get(GameRules.DO_ENTITY_DROPS).set(false, server);
+ playerManager.getPlayerList().forEach(LivingEntity::kill);
final var title = new TitleS2CPacket(Text.of("You are..."));
final var timing = new TitleFadeS2CPacket(20, 40, 20);
@@ -59,8 +66,18 @@ public class Game {
} else {
p.networkHandler.sendPacket(new TitleS2CPacket(Text.of("Not the Mole!")));
}
+ // reset health and food level
+ p.setHealth(p.getMaxHealth());
+ p.getHungerManager().setFoodLevel(20);
+ p.getHungerManager().setSaturationLevel(5.0f);
});
+ // reset gamerules after the start
+ gamerules.get(GameRules.DO_IMMEDIATE_RESPAWN).set(false, server);
+ gamerules.get(GameRules.DO_ENTITY_DROPS).set(true, server);
+ // reset time and weather
server.getOverworld().setTimeOfDay(0);
+ server.getOverworld().resetWeather();
+
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {