Files
ParchmentMC/patches/server/0018-Expanded-Insomnia-API.patch
2023-03-19 18:01:04 -04:00

61 lines
2.6 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 7e6b452df1915b1a6ebcc3bfd8f8ace5258fada4..409e17894e61b2a3498f82db3d3e8be9bfaee007 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -76,6 +76,7 @@ import net.minecraft.server.network.ServerGamePacketListenerImpl;
import net.minecraft.server.players.UserWhiteListEntry;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.world.entity.Entity;
+import net.minecraft.world.entity.EntitySelector;
import net.minecraft.world.entity.ai.attributes.AttributeInstance;
import net.minecraft.world.entity.ai.attributes.AttributeMap;
import net.minecraft.world.entity.ai.attributes.Attributes;
@@ -179,6 +180,7 @@ 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 end
+ private boolean bypassesInsomnia = false; // Parchment - Insomnia api
public CraftPlayer(CraftServer server, ServerPlayer entity) {
super(server, entity);
@@ -2007,6 +2009,33 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this;
}
+ // Parchment start
+ @Override
+ public boolean isInsomniac() {
+ return EntitySelector.isInsomniac.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
+
@Override
public ServerPlayer getHandle() {
return (ServerPlayer) entity;