From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Blast-MC Date: Sun, 24 Jul 2022 19:37:33 -0400 Subject: [PATCH] Expanded Insomnia API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index c3d6e20a29ab392ce9c1be027fbf6c6e06720efe..0070b39c9b4e6414c83d1863095af7ed93b55fc7 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -197,6 +197,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player { private static final boolean DISABLE_CHANNEL_LIMIT = System.getProperty("paper.disableChannelLimit") != null; // Paper - add a flag to disable the channel limit private long lastSaveTime; // Paper - getLastPlayed replacement API + private boolean bypassesInsomnia = false; // Parchment - Insomnia api + public CraftPlayer(CraftServer server, ServerPlayer entity) { super(server, entity); @@ -3304,4 +3306,33 @@ public class CraftPlayer extends CraftHumanEntity implements Player { return this.spigot; } // Spigot end + + // Parchment start + @Override + public boolean isInsomniac() { + return net.minecraft.world.entity.EntitySelector.IS_INSOMNIAC.test(this.getHandle()); + } + + @Override + public void setBypassInsomnia(boolean val) { + this.bypassesInsomnia = val; + } + + @Override + public boolean doesBypassInsomnia() { + return this.bypassesInsomnia; + } + + @Override + public void setTimeSinceLastRest(int ticks) { + this.getHandle().getStats().setValue(this.getHandle(), net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST), net.minecraft.util.Mth.clamp(ticks, 1, Integer.MAX_VALUE)); + } + + @Override + public int getTimeSinceLastRest() { + return net.minecraft.util.Mth.clamp(this.getHandle().getStats().getValue(net.minecraft.stats.Stats.CUSTOM.get(net.minecraft.stats.Stats.TIME_SINCE_REST)), 1, Integer.MAX_VALUE); + } + // Parchment end + + }