mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-19 14:59:25 +00:00
backport fixes
This commit is contained in:
@@ -20,6 +20,18 @@ index 2baa4dc93bcc448ce65bae50ca39d41e562e2211..a0cad0bdb8245b19f4ff983245d61d7b
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 46adbe6ccf1e4291e33a52a6612f624558c18f96..d90341ff814bb2b14867b7d9a401ae9672076f5b 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -367,6 +367,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
org.purpurmc.purpur.task.BossBarTask.startAll(); // Purpur - Implement TPSBar
|
||||
if (org.purpurmc.purpur.PurpurConfig.beeCountPayload) org.purpurmc.purpur.task.BeehiveTask.instance().register(); // Purpur - Give bee counts in beehives to Purpur clients
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableAsyncSpawning) mobSpawnExecutor.start(); // DivineMC - Pufferfish: Optimize mob spawning
|
||||
return true;
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 75c8ce32e68f92e20201e9c243f46f2be716eac8..bf680624bc6c618dfa0eeeb74c103ff6716fd27e 100644
|
||||
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||
|
||||
@@ -333,7 +333,7 @@ index 3836d60ce84fb26f30a609486a5755d3fd1c94f1..1aab02441e4dfa7703963855d77bb918
|
||||
}
|
||||
} else if (this.visible.remove(advancementHolder)) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 46adbe6ccf1e4291e33a52a6612f624558c18f96..374abd7e1502edefb78cd6451a36c3b8ad6d8f8f 100644
|
||||
index d90341ff814bb2b14867b7d9a401ae9672076f5b..f61470206e2c689187f37b44eda0d1942ac3bbc4 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -218,6 +218,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -1355,10 +1355,10 @@ index 6f25be39103cd0bb26bc365d9599b9846c6fe133..24f13e2b0b694ff4dd01aeea876ef874
|
||||
LevelChunkSection section = this.getSection(this.getSectionIndex(y));
|
||||
boolean hasOnlyAir = section.hasOnlyAir();
|
||||
diff --git a/net/minecraft/world/level/entity/EntityTickList.java b/net/minecraft/world/level/entity/EntityTickList.java
|
||||
index c89701d7bdc9b889038d3c52f2232fb17624b113..f2ba43b92b0d0356a97069fd427f9fa446d6c007 100644
|
||||
index c89701d7bdc9b889038d3c52f2232fb17624b113..cc47fbb5b95370aadcd43ea296e46a0aedd925f7 100644
|
||||
--- a/net/minecraft/world/level/entity/EntityTickList.java
|
||||
+++ b/net/minecraft/world/level/entity/EntityTickList.java
|
||||
@@ -11,16 +11,31 @@ import net.minecraft.world.entity.Entity;
|
||||
@@ -11,25 +11,67 @@ import net.minecraft.world.entity.Entity;
|
||||
public class EntityTickList {
|
||||
public final ca.spottedleaf.moonrise.common.list.IteratorSafeOrderedReferenceSet<net.minecraft.world.entity.Entity> entities = new ca.spottedleaf.moonrise.common.list.IteratorSafeOrderedReferenceSet<>(); // Paper - rewrite chunk system
|
||||
|
||||
@@ -1382,15 +1382,46 @@ index c89701d7bdc9b889038d3c52f2232fb17624b113..f2ba43b92b0d0356a97069fd427f9fa4
|
||||
public void add(Entity entity) {
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking) ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(entity, "Asynchronous entity ticklist addition"); // DivineMC - Parallel world ticking
|
||||
this.ensureActiveIsNotIterated();
|
||||
this.entities.add(entity); // Paper - rewrite chunk system
|
||||
- this.entities.add(entity); // Paper - rewrite chunk system
|
||||
+ // DivineMC start - Parallel world ticking
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking) {
|
||||
+ synchronized (this.entities) {
|
||||
+ this.entities.add(entity);
|
||||
+ }
|
||||
+ } else {
|
||||
+ this.entities.add(entity); // Paper - rewrite chunk system
|
||||
+ }
|
||||
+ // DivineMC end - Parallel world ticking
|
||||
}
|
||||
|
||||
public void remove(Entity entity) {
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking) ca.spottedleaf.moonrise.common.util.TickThread.ensureTickThread(entity, "Asynchronous entity ticklist removal"); // DivineMC - Parallel world ticking
|
||||
this.ensureActiveIsNotIterated();
|
||||
this.entities.remove(entity); // Paper - rewrite chunk system
|
||||
- this.entities.remove(entity); // Paper - rewrite chunk system
|
||||
+ // DivineMC start - Parallel world ticking
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking) {
|
||||
+ synchronized (this.entities) {
|
||||
+ if (this.entities.contains(entity)) {
|
||||
+ this.entities.remove(entity);
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ this.entities.remove(entity); // Paper - rewrite chunk system
|
||||
+ }
|
||||
+ // DivineMC end - Parallel world ticking
|
||||
}
|
||||
@@ -30,6 +45,7 @@ public class EntityTickList {
|
||||
|
||||
public boolean contains(Entity entity) {
|
||||
- return this.entities.contains(entity); // Paper - rewrite chunk system
|
||||
+ // DivineMC start - Parallel world ticking
|
||||
+ if (org.bxteam.divinemc.config.DivineConfig.AsyncCategory.enableParallelWorldTicking) {
|
||||
+ synchronized (this.entities) {
|
||||
+ return this.entities.contains(entity);
|
||||
+ }
|
||||
+ } else {
|
||||
+ return this.entities.contains(entity); // Paper - rewrite chunk system
|
||||
+ }
|
||||
+ // DivineMC end - Parallel world ticking
|
||||
}
|
||||
|
||||
public void forEach(Consumer<Entity> entity) {
|
||||
|
||||
Reference in New Issue
Block a user