Files
ParchmentMC/patches/server/0017-Expanded-Insomnia-API.patch
Blast-MC 88ca112d35 1.20.4
2023-12-15 20:21:25 -05:00

54 lines
2.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Blast-MC <cjblanton2@gmail.com>
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
+
+
}