mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
Add sun related API (#1546)
These methods are used internally throughout the game for things like spawning mobs during day/night only or making them burn in daylight, etc. Now exposed for plugin usage.
This commit is contained in:
parent
69cad796ab
commit
a16ef75bfd
2 changed files with 113 additions and 0 deletions
48
Spigot-API-Patches/0160-Add-sun-related-API.patch
Normal file
48
Spigot-API-Patches/0160-Add-sun-related-API.patch
Normal file
|
@ -0,0 +1,48 @@
|
|||
From 86b386e1158f061a25df7b3b0a5bd56102252ce9 Mon Sep 17 00:00:00 2001
|
||||
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 7 Oct 2018 00:54:15 -0500
|
||||
Subject: [PATCH] Add sun related API
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||
index 7bfe0b68..12c4bdff 100644
|
||||
--- a/src/main/java/org/bukkit/World.java
|
||||
+++ b/src/main/java/org/bukkit/World.java
|
||||
@@ -1204,6 +1204,16 @@ public interface World extends PluginMessageRecipient, Metadatable {
|
||||
*/
|
||||
public void setFullTime(long time);
|
||||
|
||||
+ // Paper start
|
||||
+
|
||||
+ /**
|
||||
+ * Check if it is currently daytime in this world
|
||||
+ *
|
||||
+ * @return True if it is daytime
|
||||
+ */
|
||||
+ public boolean isDayTime();
|
||||
+ // Paper end
|
||||
+
|
||||
/**
|
||||
* Returns whether the world has an ongoing storm.
|
||||
*
|
||||
diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java
|
||||
index 48eddcd3..1b108a4a 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Mob.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Mob.java
|
||||
@@ -13,6 +13,13 @@ public interface Mob extends LivingEntity, Lootable {
|
||||
* @return Pathfinding Manager for this entity
|
||||
*/
|
||||
com.destroystokyo.paper.entity.Pathfinder getPathfinder();
|
||||
+
|
||||
+ /**
|
||||
+ * Check if this mob is exposed to daylight
|
||||
+ *
|
||||
+ * @return True if mob is exposed to daylight
|
||||
+ */
|
||||
+ boolean isInDaylight();
|
||||
// Paper end
|
||||
|
||||
/**
|
||||
--
|
||||
2.19.0
|
||||
|
65
Spigot-Server-Patches/0387-Add-sun-related-API.patch
Normal file
65
Spigot-Server-Patches/0387-Add-sun-related-API.patch
Normal file
|
@ -0,0 +1,65 @@
|
|||
From e5f5534561fd40c2ef90e938c165c549e42a3e04 Mon Sep 17 00:00:00 2001
|
||||
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
||||
Date: Sun, 7 Oct 2018 00:54:21 -0500
|
||||
Subject: [PATCH] Add sun related API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 56542d531..6c84ec964 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -1287,6 +1287,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
return flag;
|
||||
}
|
||||
|
||||
+ public boolean isInDaylight() { return dq(); } // Paper - OBFHELPER
|
||||
protected boolean dq() {
|
||||
if (this.world.L() && !this.world.isClientSide) {
|
||||
float f = this.az();
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index d659ffe9b..9d0b553a0 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -828,6 +828,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
|
||||
}
|
||||
}
|
||||
|
||||
+ public boolean isDayTime() { return L(); } // Paper - OBFHELPER
|
||||
public boolean L() {
|
||||
return this.G < 4;
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 02b6bf299..7a66a4af8 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -542,6 +542,12 @@ public class CraftWorld implements World {
|
||||
}
|
||||
}
|
||||
|
||||
+ // Paper start
|
||||
+ public boolean isDayTime() {
|
||||
+ return getHandle().isDayTime();
|
||||
+ }
|
||||
+ // Paper end
|
||||
+
|
||||
public boolean createExplosion(double x, double y, double z, float power) {
|
||||
return createExplosion(x, y, z, power, false, true);
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
|
||||
index 53c2d154e..40a429942 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
|
||||
@@ -68,4 +68,10 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
|
||||
public long getSeed() {
|
||||
return getHandle().lootTableSeed;
|
||||
}
|
||||
+
|
||||
+ // Paper start
|
||||
+ public boolean isInDaylight() {
|
||||
+ return getHandle().isInDaylight();
|
||||
+ }
|
||||
+ // Paper end
|
||||
}
|
||||
--
|
||||
2.19.0
|
||||
|
Loading…
Reference in a new issue