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 1da9415f141aabe8df5b82392c142c1f3fd960fb..f8aaccfebf81debf807eb74fb7accaa86d5f1a9e 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -211,6 +211,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); @@ -3530,4 +3532,31 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void setSendViewDistance(final int viewDistance) { this.getHandle().setSendViewDistance(viewDistance); } + + // 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 }