diff options
| author | anhgelus <anhgelus.morhtuuzh@proton.me> | 2024-08-21 23:58:53 +0000 |
|---|---|---|
| committer | anhgelus <anhgelus.morhtuuzh@proton.me> | 2024-08-21 23:58:53 +0000 |
| commit | 56a595e934d711851b1d52a7371e950eaebf3e48 (patch) | |
| tree | 75be4bdf6a311d6042cc37c994e7f851b1568c08 /src/main/java/world | |
| parent | 81aedf5987abcb5c3c0679ea833922a3763d8618 (diff) | |
feat(game): reset heal, food level, saturation, location and weather during the start
Diffstat (limited to 'src/main/java/world')
| -rw-r--r-- | src/main/java/world/anhgelus/molehunt/Game.java | 21 |
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() {
|
