mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-02-16 20:32:32 +01:00
Updated Upstream and Sidestream(s) (Paper/Tuinity/Airplane/Empirecraft/Origami)
Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Paper Changes: 0daded2f2 Add more line of sight methods (#5749) 8fd4e70db Improve seed based feature search to not load chunk (#5760) 7ad8498c3 Make item validations configurable (#5775) 3673d6758 Fix Cannot be adventure component serialized when the legacy component is null (#5754) afb0748a2 [Auto] Updated Upstream (Bukkit) 7d751ad8d Fix dangerous end portal logic (#5776) 12716324d Do not tick Chunk TickS for every chunk Tuinity Changes: 2683c77 Use area map for nearby players in mob spawning (#283) Airplane Changes: 2be99de Toggle for DEAR 3485304 Updated Upstream (Tuinity) Empirecraft Changes: 33438474 Refine FurnaceExtractEvent patch Origami Changes: 35c6a27 Re-add removed patch for MC-2025 a19a185 Fix missing particles
This commit is contained in:
parent
81a7115055
commit
13f96b5086
@ -79,7 +79,6 @@ # Patches
|
||||
| server | Fix Log4j Warning | snoopdoooggyttv | |
|
||||
| server | Fix NPE in pickup logic for arrow | Spottedleaf | |
|
||||
| server | Fix chunks refusing to unload at low TPS | Spottedleaf | |
|
||||
| server | Fix dangerous end portal logic | Spottedleaf | |
|
||||
| server | Fix exp drop of zombie pigmen (MC-56653) | Phoenix616 | |
|
||||
| server | Fix incorrect isRealPlayer init | Spottedleaf | |
|
||||
| server | Fix lead fall dmg config | tr7zw | |
|
||||
|
2
Paper
2
Paper
@ -1 +1 @@
|
||||
Subproject commit af1a50993f3f80328bed775b25f008c7056c0e33
|
||||
Subproject commit 0daded2f25184b45fcc0be6ea86b63492df96024
|
@ -55,7 +55,7 @@ index cc566784c7dd21cc2c44e0f351347f657e57ddcf..e9e7fcf2b63febe2a7d055826fabb86b
|
||||
return d0 == 0.0D ? 0 : (d0 > 0.0D ? 1 : -1);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 33f689b1c9f4c00969fbdd8ddb21901637afb81c..785c210414ca11584bc51087616845f0d5badc91 100644
|
||||
index 2ff3297fb8c0e4f8c969ba2727eecb7fe06525c4..cfd2b2607be0d30ece36d1dd51178fb667018dcc 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -111,6 +111,7 @@ import net.minecraft.world.phys.AxisAlignedBB;
|
||||
@ -66,10 +66,10 @@ index 33f689b1c9f4c00969fbdd8ddb21901637afb81c..785c210414ca11584bc51087616845f0
|
||||
import net.minecraft.world.scores.ScoreboardTeam;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -3101,7 +3102,7 @@ public abstract class EntityLiving extends Entity {
|
||||
Vec3D vec3d = new Vec3D(this.locX(), this.getHeadY(), this.locZ());
|
||||
@@ -3102,7 +3103,7 @@ public abstract class EntityLiving extends Entity {
|
||||
Vec3D vec3d1 = new Vec3D(entity.locX(), entity.getHeadY(), entity.locZ());
|
||||
|
||||
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
|
||||
- return this.world.rayTrace(new RayTrace(vec3d, vec3d1, RayTrace.BlockCollisionOption.COLLIDER, RayTrace.FluidCollisionOption.NONE, this)).getType() == MovingObjectPosition.EnumMovingObjectType.MISS;
|
||||
+ return this.world.rayTraceDirect(vec3d, vec3d1, VoxelShapeCollision.a(this)) == MovingObjectPosition.EnumMovingObjectType.MISS; // Airplane - use direct method
|
||||
}
|
||||
@ -109,7 +109,7 @@ index e612e1d30f76e217b1aa23488ab025adce048f57..6109d59c02d0c7877e213213c6aec6f8
|
||||
default MovingObjectPositionBlock rayTraceBlock(RayTrace raytrace1, BlockPosition blockposition) {
|
||||
// Paper start - Prevent raytrace from loading chunks
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index 276b1f0c9c9af7db31fba9be0593ae9def540caf..6ab528223682d57bec1cdbd383acd8ab06904e4a 100644
|
||||
index cb8064df7e9f1b8b4d4292486e2193680d83663c..37da32675f0c00c793cd137c9a7305932cefb705 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -69,6 +69,8 @@ import net.minecraft.world.level.saveddata.maps.WorldMap;
|
||||
@ -121,7 +121,7 @@ index 276b1f0c9c9af7db31fba9be0593ae9def540caf..6ab528223682d57bec1cdbd383acd8ab
|
||||
import net.minecraft.world.phys.shapes.OperatorBoolean;
|
||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||
import net.minecraft.world.phys.shapes.VoxelShapeCollision;
|
||||
@@ -387,6 +389,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -385,6 +387,91 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index fe040615ff03478a20cdf8376f89a6b7d100ba61..207a9c3928aad7c6e89a120b54d87e003ebd232c 100644
|
||||
index 1b86c032fde3409cb89b849b9ba094af82cd9269..0718b80ac82a1cf00519c30c6d2ef78fe3914c71 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1000,6 +1000,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -20,7 +20,7 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 785c210414ca11584bc51087616845f0d5badc91..c6d551ad958711dec777902f02c9f5dadac26ff8 100644
|
||||
index cfd2b2607be0d30ece36d1dd51178fb667018dcc..c782a51340cdcae3837d1ab7563c45a075310317 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -910,11 +910,13 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -27,14 +27,14 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
index ab019b577002677a4ce788106f8e5a1d7757a2ae..0e452ea9c5d098326d22a20aa67e423f85843db7 100644
|
||||
index ab019b577002677a4ce788106f8e5a1d7757a2ae..5077e70e4f408814b1072ceb45c52a322a7662d2 100644
|
||||
--- a/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -47,4 +47,36 @@ public class AirplaneConfig {
|
||||
@@ -47,4 +47,37 @@ public class AirplaneConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+
|
||||
+ public static boolean dearEnabled;
|
||||
+ public static int startDistance;
|
||||
+ public static int startDistanceSquared;
|
||||
+ public static int maximumActivationPrio;
|
||||
@ -46,6 +46,7 @@ index ab019b577002677a4ce788106f8e5a1d7757a2ae..0e452ea9c5d098326d22a20aa67e423f
|
||||
+ private static void dynamicActivationRange() {
|
||||
+ config.setComment("activation-range", "Optimizes how entities act when", "they're far away from the player");
|
||||
+
|
||||
+ dearEnabled = config.getBoolean("activation-range.enabled", true);
|
||||
+ startDistance = config.getInt("activation-range.start-distance", 12,
|
||||
+ "This value determines how far away an entity has to be",
|
||||
+ "from the player to start being effected by DEAR.");
|
||||
@ -68,7 +69,7 @@ index ab019b577002677a4ce788106f8e5a1d7757a2ae..0e452ea9c5d098326d22a20aa67e423f
|
||||
+
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index c3d4eda866016c4ac08d4c5d771e39dcac5a3a60..21f8e6b6dd123675d59cca20935d7048f6c98b23 100644
|
||||
index dc562eecac56c6e71c7ad0293507879ca6b04586..e921602fd4f7a86b38c4d09d9cedf5074f1a8508 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -289,6 +289,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@ -82,7 +83,7 @@ index c3d4eda866016c4ac08d4c5d771e39dcac5a3a60..21f8e6b6dd123675d59cca20935d7048
|
||||
public float getBukkitYaw() {
|
||||
return this.yaw;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
index 7ba59ff9a7ed39bf69c46973a85f874c43134dc1..7582b91a24253473b2770d4e1bf053446238643c 100644
|
||||
index 7ba59ff9a7ed39bf69c46973a85f874c43134dc1..c67138e6a4dcbe823e894f6bb948742bfb8f9943 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
@@ -201,10 +201,10 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
@ -90,11 +91,11 @@ index 7ba59ff9a7ed39bf69c46973a85f874c43134dc1..7582b91a24253473b2770d4e1bf05344
|
||||
public void inactiveTick() {
|
||||
super.inactiveTick();
|
||||
- if (this.goalSelector.inactiveTick()) {
|
||||
+ if (this.goalSelector.inactiveTick(this.activatedPriority)) { // Airplane - pass activated priroity
|
||||
+ if (this.goalSelector.inactiveTick(this.activatedPriority, true)) { // Airplane - pass activated priroity
|
||||
this.goalSelector.doTick();
|
||||
}
|
||||
- if (this.targetSelector.inactiveTick()) {
|
||||
+ if (this.targetSelector.inactiveTick(this.activatedPriority)) { // Airplane - pass activated priority
|
||||
+ if (this.targetSelector.inactiveTick(this.activatedPriority, true)) { // Airplane - pass activated priority
|
||||
this.targetSelector.doTick();
|
||||
}
|
||||
}
|
||||
@ -102,26 +103,27 @@ index 7ba59ff9a7ed39bf69c46973a85f874c43134dc1..7582b91a24253473b2770d4e1bf05344
|
||||
this.bo.a();
|
||||
this.world.getMethodProfiler().exit();
|
||||
this.world.getMethodProfiler().enter("targetSelector");
|
||||
+ if (this.targetSelector.inactiveTick(this.activatedPriority)) // Airplane - use this to alternate ticking
|
||||
+ if (this.targetSelector.inactiveTick(this.activatedPriority, false)) // Airplane - use this to alternate ticking
|
||||
this.targetSelector.doTick();
|
||||
this.world.getMethodProfiler().exit();
|
||||
this.world.getMethodProfiler().enter("goalSelector");
|
||||
+ if (this.goalSelector.inactiveTick(this.activatedPriority)) // Airplane - use this to alternate ticking
|
||||
+ if (this.goalSelector.inactiveTick(this.activatedPriority, false)) // Airplane - use this to alternate ticking
|
||||
this.goalSelector.doTick();
|
||||
this.world.getMethodProfiler().exit();
|
||||
this.world.getMethodProfiler().enter("navigation");
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
index 637928664f8c7b1c694a234e507c20724294e450..02e8288473138dcea008d6157318758e8d7ee3be 100644
|
||||
index 637928664f8c7b1c694a234e507c20724294e450..502f710e1b04d186c539a04b43379bdcd494b0e5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
@@ -44,9 +44,14 @@ public class PathfinderGoalSelector {
|
||||
@@ -44,9 +44,15 @@ public class PathfinderGoalSelector {
|
||||
}
|
||||
|
||||
// Paper start
|
||||
- public boolean inactiveTick() {
|
||||
- incRate();
|
||||
- return getCurRate() % getTickRate() == 0;
|
||||
+ public boolean inactiveTick(int tickRate) { // Airplane - take tick rate
|
||||
+ public boolean inactiveTick(int tickRate, boolean inactive) { // Airplane - take tick rate
|
||||
+ if (inactive && !gg.airplane.AirplaneConfig.dearEnabled) tickRate = 4; // reset to Paper's
|
||||
+ tickRate = Math.min(tickRate, getTickRate()); // Airplane
|
||||
+ if (this.curRate++ % tickRate != 0) { // Airplane - use tick rate / increment curRate every tick
|
||||
+ //incRate();
|
||||
@ -200,7 +202,7 @@ index 85374ac8f5460790de03b47d7c3ce19ed5596afe..ccb568a5e8501ac5e8901ef3a270cc87
|
||||
if (this.bF) {
|
||||
this.bF = false;
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 5c2eaca0bc63c7880ee928aba6a24761737aa649..8b36ca5062f8e0e8bd58aa506e91704a747de81b 100644
|
||||
index 5c2eaca0bc63c7880ee928aba6a24761737aa649..0c86a93a34fdbb65365e81915ac9f54df4dde88b 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -47,6 +47,9 @@ import net.minecraft.world.entity.schedule.Activity;
|
||||
@ -231,17 +233,21 @@ index 5c2eaca0bc63c7880ee928aba6a24761737aa649..8b36ca5062f8e0e8bd58aa506e91704a
|
||||
{
|
||||
// Paper start
|
||||
Entity[] rawData = chunk.entities.getRawData();
|
||||
@@ -249,6 +252,15 @@ public class ActivationRange
|
||||
@@ -249,6 +252,19 @@ public class ActivationRange
|
||||
//for ( Entity entity : (Collection<Entity>) slice )
|
||||
// Paper end
|
||||
{
|
||||
+ // Airplane start
|
||||
+ Vec3D entityVec = entity.getPositionVector();
|
||||
+ double diffX = playerVec.x - entityVec.x, diffY = playerVec.y - entityVec.y, diffZ = playerVec.z - entityVec.z;
|
||||
+ int squaredDistance = (int) (diffX * diffX + diffY * diffY + diffZ * diffZ);
|
||||
+ entity.activatedPriority = squaredDistance > gg.airplane.AirplaneConfig.startDistanceSquared ?
|
||||
+ Math.max(1, Math.min(squaredDistance >> gg.airplane.AirplaneConfig.activationDistanceMod, gg.airplane.AirplaneConfig.maximumActivationPrio)) :
|
||||
+ 1;
|
||||
+ if (gg.airplane.AirplaneConfig.dearEnabled) {
|
||||
+ Vec3D entityVec = entity.getPositionVector();
|
||||
+ double diffX = playerVec.x - entityVec.x, diffY = playerVec.y - entityVec.y, diffZ = playerVec.z - entityVec.z;
|
||||
+ int squaredDistance = (int) (diffX * diffX + diffY * diffY + diffZ * diffZ);
|
||||
+ entity.activatedPriority = squaredDistance > gg.airplane.AirplaneConfig.startDistanceSquared ?
|
||||
+ Math.max(1, Math.min(squaredDistance >> gg.airplane.AirplaneConfig.activationDistanceMod, gg.airplane.AirplaneConfig.maximumActivationPrio)) :
|
||||
+ 1;
|
||||
+ } else {
|
||||
+ entity.activatedPriority = 1;
|
||||
+ }
|
||||
+ // Airplane end
|
||||
+
|
||||
if (MinecraftServer.currentTick > entity.activatedTick) {
|
||||
|
@ -53,7 +53,7 @@ index e993b1849beb60515c51ee4f37617faab63ca223..4d7b5d47ab6bd3b1408811c3b9c157b1
|
||||
boolean flag1 = iblockdata.getFluid().a((Tag) TagsFluid.WATER);
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/SpawnerCreature.java b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
index d497006f05f79015cd791849888832bb53f4a414..d98526785ff2fa3b72e8ffffcb89a57a2203a5c8 100644
|
||||
index 9b55da1f4d40ae36b2d2b8e7b3b18989dc4f6006..ab6812698757c05c2e923006d4e3370a7d6c4e03 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
@@ -415,7 +415,10 @@ public final class SpawnerCreature {
|
||||
|
@ -38,10 +38,10 @@ index 9cac82f2655c55b7374c7b23b1c65cb9958627e2..cb633e69891a57571b7e112eb8556ffa
|
||||
|
||||
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
index 0e452ea9c5d098326d22a20aa67e423f85843db7..7ec84ef1d1cbb1fabf4c590a2f2c1da3cc181010 100644
|
||||
index 5077e70e4f408814b1072ceb45c52a322a7662d2..94c18e824695af69e39288195cc2fa83a13029d6 100644
|
||||
--- a/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -79,4 +79,27 @@ public class AirplaneConfig {
|
||||
@@ -80,4 +80,27 @@ public class AirplaneConfig {
|
||||
dynamicHoglinBehavior = config.getBoolean("behavior-activation.hoglin", true);
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Skip copying unloading tile entities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index 6ab528223682d57bec1cdbd383acd8ab06904e4a..3abea117b29e57013fb556855ef9def023069bf9 100644
|
||||
index 37da32675f0c00c793cd137c9a7305932cefb705..3c9d27900fe3b6cf7e8eb4df42e1758f507894b1 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -106,7 +106,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@ -17,7 +17,7 @@ index 6ab528223682d57bec1cdbd383acd8ab06904e4a..3abea117b29e57013fb556855ef9def0
|
||||
public final Thread serverThread;
|
||||
private final boolean debugWorld;
|
||||
private int d;
|
||||
@@ -995,12 +995,17 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -993,12 +993,17 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
gameprofilerfiller.enter("blockEntities");
|
||||
timings.tileEntityTick.startTiming(); // Spigot
|
||||
if (!this.tileEntityListUnload.isEmpty()) {
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Skip creating hashset for entity track range
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 21f8e6b6dd123675d59cca20935d7048f6c98b23..1ea76604a375b60aa2b93af6c562151030907b1c 100644
|
||||
index e921602fd4f7a86b38c4d09d9cedf5074f1a8508..9f2079b88c5e93a73ccb9c3c9ccbce5960241924 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -319,10 +319,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Cache climbing check for activation
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index c6d551ad958711dec777902f02c9f5dadac26ff8..a49dbcffecc971f797651984cb72c455d40f9331 100644
|
||||
index c782a51340cdcae3837d1ab7563c45a075310317..e5372dfc25f99c63a66acdf085d6ae2a7c2102fa 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -1745,6 +1745,19 @@ public abstract class EntityLiving extends Entity {
|
||||
@ -29,10 +29,10 @@ index c6d551ad958711dec777902f02c9f5dadac26ff8..a49dbcffecc971f797651984cb72c455
|
||||
return this.world.getType(this.getChunkCoordinates());
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
index 8b36ca5062f8e0e8bd58aa506e91704a747de81b..94910bf0c53c79588c55b89e4a023273d6c859ef 100644
|
||||
index 0c86a93a34fdbb65365e81915ac9f54df4dde88b..b9c675ecae8fd87cca3c7475f4901c9d5529ac6b 100644
|
||||
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
||||
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
||||
@@ -309,7 +309,7 @@ public class ActivationRange
|
||||
@@ -313,7 +313,7 @@ public class ActivationRange
|
||||
if ( entity instanceof EntityLiving )
|
||||
{
|
||||
EntityLiving living = (EntityLiving) entity;
|
||||
|
@ -8,10 +8,10 @@ entities this starts adding up more than it should, and it's already
|
||||
fairly optimized. Just starts being slow when you have 30k entities.
|
||||
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
index 7ec84ef1d1cbb1fabf4c590a2f2c1da3cc181010..c9e00334655ccd273ba108a541ed1cb0633f69b7 100644
|
||||
index 94c18e824695af69e39288195cc2fa83a13029d6..a673eaad4cd80287e8a357f8c45b2add156ff0b9 100644
|
||||
--- a/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -102,4 +102,13 @@ public class AirplaneConfig {
|
||||
@@ -103,4 +103,13 @@ public class AirplaneConfig {
|
||||
}
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ index 7ec84ef1d1cbb1fabf4c590a2f2c1da3cc181010..c9e00334655ccd273ba108a541ed1cb0
|
||||
+
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityInsentient.java b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
index 7582b91a24253473b2770d4e1bf053446238643c..892bfadbb1e7d09996df61aaee2cab74187f73d0 100644
|
||||
index c67138e6a4dcbe823e894f6bb948742bfb8f9943..0f0bf91a3d01c0eb841db81ac441cf5936a2cdfe 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityInsentient.java
|
||||
@@ -774,8 +774,15 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] Config to disable method profiler
|
||||
|
||||
|
||||
diff --git a/src/main/java/gg/airplane/AirplaneConfig.java b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
index c9e00334655ccd273ba108a541ed1cb0633f69b7..65adf3ceda012c8cfdea675c40e2bb27d34ebac7 100644
|
||||
index a673eaad4cd80287e8a357f8c45b2add156ff0b9..6fc23a85ddd66a69b83684cdb602b6a312e9d72b 100644
|
||||
--- a/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
+++ b/src/main/java/gg/airplane/AirplaneConfig.java
|
||||
@@ -111,4 +111,13 @@ public class AirplaneConfig {
|
||||
@@ -112,4 +112,13 @@ public class AirplaneConfig {
|
||||
}
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ index 6f90a4182e008b49a4b3328e569311382e4bec0d..1472bbdac9b545c97368df03672b975a
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index 3abea117b29e57013fb556855ef9def023069bf9..f8d11a1f0337acf60f2d9f94bd4bbbf6eb77c6de 100644
|
||||
index 3c9d27900fe3b6cf7e8eb4df42e1758f507894b1..cf1b190a1d9175b872c65d2ea69a9187346520e4 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -18,6 +18,7 @@ import java.util.function.Consumer;
|
||||
@ -50,7 +50,7 @@ index 3abea117b29e57013fb556855ef9def023069bf9..f8d11a1f0337acf60f2d9f94bd4bbbf6
|
||||
import net.minecraft.CrashReport;
|
||||
import net.minecraft.CrashReportSystemDetails;
|
||||
import net.minecraft.ReportedException;
|
||||
@@ -1815,6 +1816,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -1813,6 +1814,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
}
|
||||
|
||||
public GameProfilerFiller getMethodProfiler() {
|
||||
|
@ -46,7 +46,7 @@ index 0000000000000000000000000000000000000000..36eea0acd815e08e0be10bf55541ea0b
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
index 02e8288473138dcea008d6157318758e8d7ee3be..697e666a027d5e2ace7d0758909be5a658c480d2 100644
|
||||
index 502f710e1b04d186c539a04b43379bdcd494b0e5..0c56094b962c7c6e6ab3bf49d2efdcec7faed1c6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/goal/PathfinderGoalSelector.java
|
||||
@@ -28,7 +28,7 @@ public class PathfinderGoalSelector {
|
||||
@ -58,7 +58,7 @@ index 02e8288473138dcea008d6157318758e8d7ee3be..697e666a027d5e2ace7d0758909be5a6
|
||||
private final Supplier<GameProfilerFiller> e;
|
||||
private final EnumSet<PathfinderGoal.Type> f = EnumSet.noneOf(PathfinderGoal.Type.class); // Paper unused, but dummy to prevent plugins from crashing as hard. Theyll need to support paper in a special case if this is super important, but really doesn't seem like it would be.
|
||||
private final OptimizedSmallEnumSet<PathfinderGoal.Type> goalTypes = new OptimizedSmallEnumSet<>(PathfinderGoal.Type.class); // Paper - remove streams from pathfindergoalselector
|
||||
@@ -85,8 +85,11 @@ public class PathfinderGoalSelector {
|
||||
@@ -86,8 +86,11 @@ public class PathfinderGoalSelector {
|
||||
|
||||
gameprofilerfiller.enter("goalCleanup");
|
||||
// Paper start - remove streams from pathfindergoalselector
|
||||
@ -72,7 +72,7 @@ index 02e8288473138dcea008d6157318758e8d7ee3be..697e666a027d5e2ace7d0758909be5a6
|
||||
if (!wrappedGoal.g()) {
|
||||
continue;
|
||||
}
|
||||
@@ -105,8 +108,10 @@ public class PathfinderGoalSelector {
|
||||
@@ -106,8 +109,10 @@ public class PathfinderGoalSelector {
|
||||
gameprofilerfiller.exit();
|
||||
gameprofilerfiller.enter("goalUpdate");
|
||||
// Paper start - remove streams from pathfindergoalselector
|
||||
@ -85,7 +85,7 @@ index 02e8288473138dcea008d6157318758e8d7ee3be..697e666a027d5e2ace7d0758909be5a6
|
||||
if (wrappedGoal.g()) {
|
||||
continue;
|
||||
}
|
||||
@@ -149,8 +154,11 @@ public class PathfinderGoalSelector {
|
||||
@@ -150,8 +155,11 @@ public class PathfinderGoalSelector {
|
||||
gameprofilerfiller.exit();
|
||||
gameprofilerfiller.enter("goalTick");
|
||||
// Paper start - remove streams from pathfindergoalselector
|
||||
|
@ -5,12 +5,12 @@ Subject: [PATCH] Use raw iterator where possible
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 207a9c3928aad7c6e89a120b54d87e003ebd232c..06864951af539e22f6e459c0f0c097b7c2fb929b 100644
|
||||
index 0718b80ac82a1cf00519c30c6d2ef78fe3914c71..e31766151450ffa44937feb728f6368e61acd2cd 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1033,10 +1033,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
//Collections.shuffle(list); // Paper
|
||||
@@ -1034,10 +1034,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
// Paper - moved up
|
||||
this.world.timings.chunkTicks.startTiming(); // Paper
|
||||
// Tuinity start - optimise chunk tick iteration
|
||||
- com.tuinity.tuinity.util.maplist.IteratorSafeOrderedReferenceSet.Iterator<Chunk> iterator = this.entityTickingChunks.iterator();
|
||||
+ // Airplane start - use raw iterator
|
||||
@ -24,7 +24,7 @@ index 207a9c3928aad7c6e89a120b54d87e003ebd232c..06864951af539e22f6e459c0f0c097b7
|
||||
PlayerChunk playerchunk = chunk.playerChunk;
|
||||
if (playerchunk != null) { // make sure load event has been called along with the load logic we put there
|
||||
// Tuinity end - optimise chunk tick iteration
|
||||
@@ -1064,10 +1066,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1065,10 +1067,12 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -36,5 +36,5 @@ index 207a9c3928aad7c6e89a120b54d87e003ebd232c..06864951af539e22f6e459c0f0c097b7
|
||||
}
|
||||
+ // Airplane end
|
||||
// Tuinity end - optimise chunk tick iteration
|
||||
this.world.timings.chunkTicks.stopTiming(); // Paper
|
||||
this.world.getMethodProfiler().enter("customSpawners");
|
||||
if (flag1) {
|
||||
|
@ -6,10 +6,10 @@ Subject: [PATCH] Swaps the predicate order of collision
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 1ea76604a375b60aa2b93af6c562151030907b1c..939f042c7c5abc0c71880b61d6ebf8bd1d4d5c8f 100644
|
||||
index 9f2079b88c5e93a73ccb9c3c9ccbce5960241924..814cd9d46917cee21e3c715b62e82fa2e4547e33 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1776,8 +1776,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1775,8 +1775,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
public void pickup(EntityHuman entityhuman) {}
|
||||
|
||||
public void collide(Entity entity) {
|
||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] dont load chunks for physics
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index f8d11a1f0337acf60f2d9f94bd4bbbf6eb77c6de..8505b8e35d0870aae675850583a6e9ccc9df5a4d 100644
|
||||
index cf1b190a1d9175b872c65d2ea69a9187346520e4..704ccbc73e5d1221587bae4780d0f48676014479 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -832,7 +832,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -830,7 +830,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
public void neighborChanged(BlockPosition pos, Block blockIn, BlockPosition fromPos) { a(pos, blockIn, fromPos); } // Paper - OBFHELPER
|
||||
public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
|
||||
if (!this.isClientSide) {
|
||||
|
@ -129,7 +129,7 @@ index 0000000000000000000000000000000000000000..fe7330fabe386966c2d203a190a00a78
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index 8505b8e35d0870aae675850583a6e9ccc9df5a4d..a4d0102e0020d62de3affdd819001c08202e0616 100644
|
||||
index 704ccbc73e5d1221587bae4780d0f48676014479..313d27714b98c58627d1ce247bf63384929a746f 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -159,6 +159,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@ -141,7 +141,7 @@ index 8505b8e35d0870aae675850583a6e9ccc9df5a4d..a4d0102e0020d62de3affdd819001c08
|
||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||
public static BlockPosition lastPhysicsProblem; // Spigot
|
||||
private org.spigotmc.TickLimiter entityLimiter;
|
||||
@@ -257,6 +259,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -255,6 +257,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, final DimensionManager dimensionmanager, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName()); // Spigot
|
||||
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Don't wake up entities when damage event is cancelled
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index a49dbcffecc971f797651984cb72c455d40f9331..42f4aaeeceb628007ded00353fd26aa461f39ea9 100644
|
||||
index e5372dfc25f99c63a66acdf085d6ae2a7c2102fa..ee2922d68cb1970c7b3b0b4b03d870a46ff63d71 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -1208,9 +1208,12 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -8,10 +8,10 @@ Add per player no-tick, tick, and send view distances.
|
||||
Also add send view distance to World.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
|
||||
index a1496fe00a2d5ba6c1af054d4327f868b2cd7344..6ca9aa2c438810b5537dc196b3fd89b0750b3d67 100644
|
||||
index f66ec2dfdc64871f8b752bf44086954300804f08..8efc8e0db687e1506eee2b19466ec917ba4edcdc 100644
|
||||
--- a/src/main/java/org/bukkit/World.java
|
||||
+++ b/src/main/java/org/bukkit/World.java
|
||||
@@ -3631,6 +3631,26 @@ public interface World extends PluginMessageRecipient, Metadatable, net.kyori.ad
|
||||
@@ -3639,6 +3639,26 @@ public interface World extends PluginMessageRecipient, Metadatable, net.kyori.ad
|
||||
* @param viewDistance view distance in [2, 32]
|
||||
*/
|
||||
void setNoTickViewDistance(int viewDistance);
|
||||
|
@ -2066,7 +2066,7 @@ index da66369c63e60e6e0328392b2eb98579613be63e..200ec8ad168e5b5e3672a4284e851b06
|
||||
midTickLoadChunks(); // Paper
|
||||
} catch (Throwable throwable) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index c5e54c519e1f686761faa53b5e9579c514a65332..e9b236bb95985ba0806a3d27d705ac61bce55ea5 100644
|
||||
index 4a71f9a8a57ed123b31c725a8bd5f94ab0e2174d..f660cc2bfd420fcdea6ded9ad1e34263ed6657d6 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -137,7 +137,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@ -2531,7 +2531,7 @@ index f68a252378a94c8fcab622d2d89d738aceab45a4..afee018d10d0dbc31f1201477084e315
|
||||
public WorldServer(MinecraftServer minecraftserver, Executor executor, Convertable.ConversionSession convertable_conversionsession, IWorldDataServer iworlddataserver, ResourceKey<World> resourcekey, DimensionManager dimensionmanager, WorldLoadListener worldloadlistener, ChunkGenerator chunkgenerator, boolean flag, long i, List<MobSpawner> list, boolean flag1, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
|
||||
super(iworlddataserver, resourcekey, dimensionmanager, minecraftserver::getMethodProfiler, false, flag, i, gen, env, executor); // Paper pass executor
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 6fdcd96fd75cd63d769b012827519f554af4cf54..91fbda3edc0034ed356ad7559552e3acc5d4736d 100644
|
||||
index 8ef41182056052686055b7eb88ab19c161e84ed4..62687478c8a8213bde78e8cf7d85b923f2ec840a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -299,6 +299,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
@ -172,10 +172,10 @@ index 3644e8b24b082e17752ef52934625416130aaa08..4dfc1101d5fc78630ef8b816e8f84f55
|
||||
|
||||
for (java.util.Iterator<Entry<ArraySetSorted<Ticket<?>>>> iterator = this.tickets.long2ObjectEntrySet().fastIterator(); iterator.hasNext();) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index e9b236bb95985ba0806a3d27d705ac61bce55ea5..c5038aa66703484a9243579ba4a6c92d138fc388 100644
|
||||
index f660cc2bfd420fcdea6ded9ad1e34263ed6657d6..e9ada3d51470c34eef8915efdf5f64d58b491041 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1223,6 +1223,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1225,6 +1225,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
||||
@Override
|
||||
protected boolean executeNext() {
|
||||
|
@ -247,10 +247,10 @@ index 3c804c7b20a14ea6e510810e2be10c1cc89ff5c1..47da7efffde2e6d63c1a064b950abf81
|
||||
return new TicketType<>(s, comparator, 0L);
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 9d858f91828d6c2787ff1dc677a247bcab172701..bc18949c18fb1c8b85d44aff1a3255900013bab7 100644
|
||||
index 02198dbe9e80c2990e8a09b2b763748dae727a03..9948af982f4965bcbbbfa2362e20575823b39361 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -505,6 +505,7 @@ public class CraftWorld implements World {
|
||||
@@ -516,6 +516,7 @@ public class CraftWorld implements World {
|
||||
org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot
|
||||
if (isChunkLoaded(x, z)) {
|
||||
world.getChunkProvider().removeTicket(TicketType.PLUGIN, new ChunkCoordIntPair(x, z), 0, Unit.INSTANCE); // Paper
|
||||
|
@ -35,10 +35,10 @@ index 5aa558bd05c4ab735730263f220478c36a4ba0fd..6473b951788a3ecbeee4811ea0288ff4
|
||||
}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index bc18949c18fb1c8b85d44aff1a3255900013bab7..c15777178657d3db16de7237c7ed2127c331166a 100644
|
||||
index 9948af982f4965bcbbbfa2362e20575823b39361..d312d316ddb7ed59ad918ef2582f98e055c486c3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -342,6 +342,14 @@ public class CraftWorld implements World {
|
||||
@@ -353,6 +353,14 @@ public class CraftWorld implements World {
|
||||
this.generator = gen;
|
||||
|
||||
environment = env;
|
||||
|
@ -119,10 +119,10 @@ index ed3d4753eb6005337fc13a24021f138da5704a7f..64b9e420d8590e541cfad0881b9dc1fa
|
||||
|
||||
public void a(Entity entity, Entity entity1) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 91fbda3edc0034ed356ad7559552e3acc5d4736d..2eddfed1768d0a8a882cbaaf5f17e555c513c71a 100644
|
||||
index 62687478c8a8213bde78e8cf7d85b923f2ec840a..745445a45ca583395b32bfba8326ee6c27d45212 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -691,7 +691,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -722,7 +722,39 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return this.onGround;
|
||||
}
|
||||
|
||||
@ -162,7 +162,7 @@ index 91fbda3edc0034ed356ad7559552e3acc5d4736d..2eddfed1768d0a8a882cbaaf5f17e555
|
||||
if (this.noclip) {
|
||||
this.a(this.getBoundingBox().c(vec3d));
|
||||
this.recalcPosition();
|
||||
@@ -835,6 +867,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -866,6 +898,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
||||
this.world.getMethodProfiler().exit();
|
||||
}
|
||||
@ -176,7 +176,7 @@ index 91fbda3edc0034ed356ad7559552e3acc5d4736d..2eddfed1768d0a8a882cbaaf5f17e555
|
||||
}
|
||||
|
||||
protected BlockPosition ap() {
|
||||
@@ -3408,12 +3447,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3440,12 +3479,16 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return this.locBlock;
|
||||
}
|
||||
|
||||
@ -193,7 +193,7 @@ index 91fbda3edc0034ed356ad7559552e3acc5d4736d..2eddfed1768d0a8a882cbaaf5f17e555
|
||||
}
|
||||
|
||||
public void setMot(double d0, double d1, double d2) {
|
||||
@@ -3468,7 +3511,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3500,7 +3543,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
// Paper end
|
||||
if (this.loc.x != d0 || this.loc.y != d1 || this.loc.z != d2) {
|
||||
|
@ -196,7 +196,7 @@ index 80341dabd8932dbfab980ab78e95d06c53fabe94..594d6683b4bf74b83d44675e58a7d036
|
||||
// Spigot Start
|
||||
CrashReport crashreport;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index c5038aa66703484a9243579ba4a6c92d138fc388..e38e507ccc26058b4f4d2e8fe061188525e7ac92 100644
|
||||
index e9ada3d51470c34eef8915efdf5f64d58b491041..09d4e187bfcc779d054f3420d30c84e676981ddc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -918,7 +918,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@ -226,16 +226,16 @@ index c5038aa66703484a9243579ba4a6c92d138fc388..e38e507ccc26058b4f4d2e8fe0611885
|
||||
this.p = spawnercreature_d;
|
||||
this.world.getMethodProfiler().exit();
|
||||
//List<PlayerChunk> list = Lists.newArrayList(this.playerChunkMap.f()); // Paper
|
||||
@@ -1029,7 +1031,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
this.world.timings.chunkTicks.startTiming(); // Spigot // Paper
|
||||
@@ -1030,7 +1032,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
//this.world.timings.chunkTicks.startTiming(); // Spigot // Paper
|
||||
this.world.a(chunk, k);
|
||||
this.world.timings.chunkTicks.stopTiming(); // Spigot // Paper
|
||||
//this.world.timings.chunkTicks.stopTiming(); // Spigot // Paper
|
||||
- if (chunksTicked[0]++ % 10 == 0) this.world.getMinecraftServer().midTickLoadChunks(); // Paper
|
||||
+ if ((++ticked & 1) == 0) MinecraftServer.getServer().executeMidTickTasks(); // Tuinity - exec chunk tasks during world tick
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1185,41 +1187,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1187,41 +1189,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
ChunkProviderServer.this.world.getMethodProfiler().c("runTask");
|
||||
super.executeTask(runnable);
|
||||
}
|
||||
|
@ -22,10 +22,10 @@ With this change I could get all 200 on at 0ms ping.
|
||||
So in general this patch should reduce Netty I/O thread load.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index e38e507ccc26058b4f4d2e8fe061188525e7ac92..ff883a306a138c2940d3de6ec46dfeb9d98e5b93 100644
|
||||
index 09d4e187bfcc779d054f3420d30c84e676981ddc..858d35283997afa8ef4afbe61c8bba8747f4effa 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1047,7 +1047,25 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1049,7 +1049,25 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
this.world.getMethodProfiler().exit();
|
||||
}
|
||||
|
||||
|
@ -19,7 +19,7 @@ This patch also reverts incorrect use(s) of the class by paper.
|
||||
any exception thrown from it.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index ff883a306a138c2940d3de6ec46dfeb9d98e5b93..bc8114715f09496efa8aec8426c53542fd444c12 100644
|
||||
index 858d35283997afa8ef4afbe61c8bba8747f4effa..a691b60f5573701c17f8744d86f45dbf94c95de1 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -199,9 +199,9 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -11,12 +11,12 @@ Less crammed entities are likely to show significantly less benefit.
|
||||
Effectively, this patch optimises crammed entity situations.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 2eddfed1768d0a8a882cbaaf5f17e555c513c71a..710b2aaa43de0d5079371d99c2ad86d3271e54ee 100644
|
||||
index 745445a45ca583395b32bfba8326ee6c27d45212..b5119308f16c79a0111d41f800446e40ed42a80e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -322,6 +322,41 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -353,6 +353,41 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
// Paper end - optimise entity tracking
|
||||
// Paper end - make end portalling safe
|
||||
|
||||
+ // Tuinity start
|
||||
+ /**
|
||||
@ -56,7 +56,7 @@ index 2eddfed1768d0a8a882cbaaf5f17e555c513c71a..710b2aaa43de0d5079371d99c2ad86d3
|
||||
public Entity(EntityTypes<?> entitytypes, World world) {
|
||||
this.id = Entity.entityCount.incrementAndGet();
|
||||
this.passengers = Lists.newArrayList();
|
||||
@@ -2094,11 +2129,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -2125,11 +2160,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return EnumInteractionResult.PASS;
|
||||
}
|
||||
|
||||
|
@ -261,7 +261,7 @@ index 594d6683b4bf74b83d44675e58a7d036d7572f61..7317a64269b8ce2a30117ebb23acfe98
|
||||
long endTime = System.nanoTime();
|
||||
long remaining = (TICK_TIME - (endTime - lastTick)) - catchupTime;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 558af73ac16550ee6964c4dce681a404633b2552..96ad066d6ed6359fd514c631cc3d51ec7234e6c7 100644
|
||||
index 75bcfb3a2b4a104aeebb2fe3298714b2e5b569d2..f29cad4905d21190149b740e958768135e067a93 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -371,7 +371,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@ -552,7 +552,7 @@ index 90776231b1faffb11e4394f555f336ca248e3004..db8f0d8b63cbefffcd010568cbfab1ea
|
||||
}
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f4a41820f 100644
|
||||
index b5119308f16c79a0111d41f800446e40ed42a80e..4115cd420ed18a0de91ebce9ba6f6504ca42aa7d 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -228,7 +228,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@ -564,7 +564,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
public boolean noclip;
|
||||
public float I;
|
||||
protected final Random random;
|
||||
@@ -786,7 +786,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -817,7 +817,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
// Paper end
|
||||
|
||||
vec3d = this.a(vec3d, enummovetype);
|
||||
@ -573,7 +573,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
|
||||
if (vec3d1.g() > 1.0E-7D) {
|
||||
this.a(this.getBoundingBox().c(vec3d1));
|
||||
@@ -877,7 +877,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -908,7 +908,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
try {
|
||||
@ -582,7 +582,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
} catch (Throwable throwable) {
|
||||
CrashReport crashreport = CrashReport.a(throwable, "Checking entity block collision");
|
||||
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being checked for collision");
|
||||
@@ -889,11 +889,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -920,11 +920,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
float f2 = this.getBlockSpeedFactor();
|
||||
|
||||
this.setMot(this.getMot().d((double) f2, 1.0D, (double) f2));
|
||||
@ -595,7 +595,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
|
||||
if (this.aG() && this.isBurning()) {
|
||||
this.playSound(SoundEffects.ENTITY_GENERIC_EXTINGUISH_FIRE, 0.7F, 1.6F + (this.random.nextFloat() - this.random.nextFloat()) * 0.4F);
|
||||
@@ -989,6 +985,137 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1020,6 +1016,137 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return d0;
|
||||
}
|
||||
|
||||
@ -733,7 +733,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
private Vec3D g(Vec3D vec3d) {
|
||||
AxisAlignedBB axisalignedbb = this.getBoundingBox();
|
||||
VoxelShapeCollision voxelshapecollision = VoxelShapeCollision.a(this);
|
||||
@@ -1024,6 +1151,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1055,6 +1182,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return vec3d1;
|
||||
}
|
||||
|
||||
@ -741,7 +741,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
public static double c(Vec3D vec3d) {
|
||||
return vec3d.x * vec3d.x + vec3d.z * vec3d.z;
|
||||
}
|
||||
@@ -1136,18 +1264,34 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1167,18 +1295,34 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
protected void checkBlockCollisions() {
|
||||
@ -779,7 +779,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
try {
|
||||
iblockdata.a(this.world, blockposition_mutableblockposition, this);
|
||||
this.a(iblockdata);
|
||||
@@ -1161,6 +1305,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1192,6 +1336,11 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -791,7 +791,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2119,9 +2268,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -2150,9 +2299,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
float f1 = this.size.width * 0.8F;
|
||||
AxisAlignedBB axisalignedbb = AxisAlignedBB.g((double) f1, 0.10000000149011612D, (double) f1).d(this.locX(), this.getHeadY(), this.locZ());
|
||||
|
||||
@ -803,7 +803,7 @@ index 710b2aaa43de0d5079371d99c2ad86d3271e54ee..0cb2306e97e50f6cac308cec1e67348f
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2129,10 +2278,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -2160,10 +2309,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return EnumInteractionResult.PASS;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Reduce allocation rate from crammed entities
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 2657dd71213455e2da3a4ff4d338a33896ffe855..33f689b1c9f4c00969fbdd8ddb21901637afb81c 100644
|
||||
index b7b07b652b29e6f84f87fc92add99ce68f8bbd09..2ff3297fb8c0e4f8c969ba2727eecb7fe06525c4 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2973,7 +2973,11 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Optimise chunk tick iteration
|
||||
Use a dedicated list of entity ticking chunks to reduce the cost
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index bc8114715f09496efa8aec8426c53542fd444c12..3560ac0c554b8e60c1bc961766bcf942ba6dd963 100644
|
||||
index a691b60f5573701c17f8744d86f45dbf94c95de1..8d08bd4fb759218706f65c4620d26865d85b14d0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -47,6 +47,12 @@ import net.minecraft.world.level.storage.WorldData;
|
||||
@ -22,10 +22,10 @@ index bc8114715f09496efa8aec8426c53542fd444c12..3560ac0c554b8e60c1bc961766bcf942
|
||||
public class ChunkProviderServer extends IChunkProvider {
|
||||
|
||||
private static final List<ChunkStatus> b = ChunkStatus.a(); public static final List<ChunkStatus> getPossibleChunkStatuses() { return ChunkProviderServer.b; } // Paper - OBFHELPER
|
||||
@@ -1007,19 +1013,23 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
//List<PlayerChunk> list = Lists.newArrayList(this.playerChunkMap.f()); // Paper
|
||||
@@ -1008,19 +1014,23 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
//Collections.shuffle(list); // Paper
|
||||
// Paper - moved up
|
||||
this.world.timings.chunkTicks.startTiming(); // Paper
|
||||
- final int[] chunksTicked = {0}; this.playerChunkMap.forEachVisibleChunk((playerchunk) -> { // Paper - safe iterator incase chunk loads, also no wrapping
|
||||
- Optional<Chunk> optional = ((Either) playerchunk.a().getNow(PlayerChunk.UNLOADED_CHUNK)).left();
|
||||
-
|
||||
@ -54,7 +54,7 @@ index bc8114715f09496efa8aec8426c53542fd444c12..3560ac0c554b8e60c1bc961766bcf942
|
||||
ChunkCoordIntPair chunkcoordintpair = playerchunk.i();
|
||||
|
||||
if (!this.playerChunkMap.isOutsideOfRange(playerchunk, chunkcoordintpair, false)) { // Paper - optimise isOutsideOfRange
|
||||
@@ -1035,7 +1045,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1036,7 +1046,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -64,6 +64,6 @@ index bc8114715f09496efa8aec8426c53542fd444c12..3560ac0c554b8e60c1bc961766bcf942
|
||||
+ iterator.finishedIterating();
|
||||
+ }
|
||||
+ // Tuinity end - optimise chunk tick iteration
|
||||
this.world.timings.chunkTicks.stopTiming(); // Paper
|
||||
this.world.getMethodProfiler().enter("customSpawners");
|
||||
if (flag1) {
|
||||
try (co.aikar.timings.Timing ignored = this.world.timings.miscMobSpawning.startTiming()) { // Paper - timings
|
||||
|
@ -6,10 +6,10 @@ Subject: [PATCH] Revert getChunkAt(Async) retaining chunks for long periods of
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index c15777178657d3db16de7237c7ed2127c331166a..e6ea687478a8f7282569a79e4fc29d967cbae7ef 100644
|
||||
index d312d316ddb7ed59ad918ef2582f98e055c486c3..638f6415382ab40d026ec89fd19cc1a7dd2c3e86 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -423,14 +423,7 @@ public class CraftWorld implements World {
|
||||
@@ -434,14 +434,7 @@ public class CraftWorld implements World {
|
||||
|
||||
@Override
|
||||
public Chunk getChunkAt(int x, int z) {
|
||||
@ -25,7 +25,7 @@ index c15777178657d3db16de7237c7ed2127c331166a..e6ea687478a8f7282569a79e4fc29d96
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@@ -2659,7 +2652,7 @@ public class CraftWorld implements World {
|
||||
@@ -2670,7 +2663,7 @@ public class CraftWorld implements World {
|
||||
}
|
||||
return this.world.getChunkProvider().getChunkAtAsynchronously(x, z, gen, urgent).thenComposeAsync((either) -> {
|
||||
net.minecraft.world.level.chunk.Chunk chunk = (net.minecraft.world.level.chunk.Chunk) either.left().orElse(null);
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Prevent unload() calls removing tickets for sync loads
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 3560ac0c554b8e60c1bc961766bcf942ba6dd963..aa673cf8a11c17faaa1520eaa9329200453a53ff 100644
|
||||
index 8d08bd4fb759218706f65c4620d26865d85b14d0..918187226b725125b55c0e3804c2cfec02ae0b3b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -734,6 +734,8 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -19,7 +19,7 @@ index 9d64fffd10ce21a26541198b0c2fd8f0c77f47f1..67980e1dc186c0b458eca9f00acfea7d
|
||||
private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index aa673cf8a11c17faaa1520eaa9329200453a53ff..9d26ca0ed8a8ad33091ee5b649289f2fae6c6f74 100644
|
||||
index 918187226b725125b55c0e3804c2cfec02ae0b3b..e98d266fe7ff1d7c417c3d7b634314451b959e4b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -840,6 +840,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -8,7 +8,7 @@ Sync loading the chunk at this stage would cause it to load
|
||||
older data, as well as screwing our region state.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 9d26ca0ed8a8ad33091ee5b649289f2fae6c6f74..d1fa4602f2f443c19ff69bfbd39cacdb4cbaf2a3 100644
|
||||
index e98d266fe7ff1d7c417c3d7b634314451b959e4b..334bf09b83172c9a092f7054125f3d871bafcfe2 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -840,6 +840,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -26,7 +26,7 @@ index 37c3617979da7839ad89883d9800c14c34e8b19b..e3dc57282a559f783c027780740e8089
|
||||
// Paper end - optimise isOutsideOfRange
|
||||
// Paper start - optimize chunk status progression without jumping through thread pool
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index aaf6668050e754cddb977f3bc0897a5df71ac696..76993a8601b251ecce2880820cf5a00496c17f19 100644
|
||||
index aaf6668050e754cddb977f3bc0897a5df71ac696..13956f6645ae5a0c19ff3f002a76005193db849b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -250,6 +250,12 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@ -34,7 +34,7 @@ index aaf6668050e754cddb977f3bc0897a5df71ac696..76993a8601b251ecce2880820cf5a004
|
||||
public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerViewDistanceNoTickMap;
|
||||
// Paper end - no-tick view distance
|
||||
+ // Tuinity start - optimise checkDespawn
|
||||
+ public static final int GENERAL_AREA_MAP_SQUARE_RADIUS = 38;
|
||||
+ public static final int GENERAL_AREA_MAP_SQUARE_RADIUS = 40;
|
||||
+ public static final double GENERAL_AREA_MAP_ACCEPTABLE_SEARCH_RANGE = 16.0 * (GENERAL_AREA_MAP_SQUARE_RADIUS - 1);
|
||||
+ public static final double GENERAL_AREA_MAP_ACCEPTABLE_SEARCH_RANGE_SQUARED = GENERAL_AREA_MAP_ACCEPTABLE_SEARCH_RANGE * GENERAL_AREA_MAP_ACCEPTABLE_SEARCH_RANGE;
|
||||
+ public final com.destroystokyo.paper.util.misc.PlayerAreaMap playerGeneralAreaMap;
|
||||
@ -286,7 +286,7 @@ index 7c9ed41ae67bce0e5e45b9c091180ca3c99668fc..a7f2304acf8ee0a15d6eae8c42060e00
|
||||
Iterator iterator = this.getPlayers().iterator();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/SpawnerCreature.java b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
index 24771c3522ea74ac12058591137eafc21adf3762..b3c73c6b4cffa20813355c5f2132fe3eaa134007 100644
|
||||
index 24771c3522ea74ac12058591137eafc21adf3762..70c110e7e04352edc687dc39f7d939460a4c1e96 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
@@ -250,7 +250,7 @@ public final class SpawnerCreature {
|
||||
@ -294,7 +294,7 @@ index 24771c3522ea74ac12058591137eafc21adf3762..b3c73c6b4cffa20813355c5f2132fe3e
|
||||
double d0 = (double) l + 0.5D;
|
||||
double d1 = (double) i1 + 0.5D;
|
||||
- EntityHuman entityhuman = worldserver.a(d0, (double) i, d1, -1.0D, false);
|
||||
+ EntityHuman entityhuman = worldserver.a(d0, (double) i, d1, 576.0D, false); // Tuinity - copied from below method for range, for the love of god we do not need to fucking find the closet player outside of this range - limiting range lets us use the distance map
|
||||
+ EntityHuman entityhuman = (!(ichunkaccess instanceof Chunk)) ? worldserver.a(d0, (double) i, d1, -1.0D, false) : ((Chunk)ichunkaccess).findNearestPlayer(d0, i, d1, 576.0D, net.minecraft.world.entity.IEntitySelector.notSpectator()); // Tuinity - use chunk's player cache to optimize search in range
|
||||
|
||||
if (entityhuman != null) {
|
||||
double d2 = entityhuman.h(d0, (double) i, d1);
|
||||
@ -308,13 +308,13 @@ index 24771c3522ea74ac12058591137eafc21adf3762..b3c73c6b4cffa20813355c5f2132fe3e
|
||||
} else if (worldserver.getSpawn().a((IPosition) (new Vec3D((double) blockposition_mutableblockposition.getX() + 0.5D, (double) blockposition_mutableblockposition.getY(), (double) blockposition_mutableblockposition.getZ() + 0.5D)), 24.0D)) {
|
||||
return false;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index cd15f9b17f7fb01428196dba5c50259217b5ad2c..dedcdba593d15b1e2f880ae9eaa00eb6edcd03cf 100644
|
||||
index cd15f9b17f7fb01428196dba5c50259217b5ad2c..c77b00f30e8edbfcebdc48363de4d5a346abc690 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -192,6 +192,65 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -191,6 +191,63 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
});
|
||||
}
|
||||
// Paper end - fix and optimise world upgrading
|
||||
|
||||
+ // Tuinity start - optimise checkDespawn
|
||||
+ public final List<EntityPlayer> getNearbyPlayers(@Nullable Entity source, double sourceX, double sourceY, double sourceZ, double maxRange, @Nullable Predicate<Entity> predicate) {
|
||||
+ Chunk chunk;
|
||||
@ -371,12 +371,10 @@ index cd15f9b17f7fb01428196dba5c50259217b5ad2c..dedcdba593d15b1e2f880ae9eaa00eb6
|
||||
+ public @Nullable EntityHuman a(double d0, double d1, double d2, double d3, @Nullable Predicate<Entity> predicate) {
|
||||
+ return this.getNearestPlayer(null, d0, d1, d2, d3, predicate);
|
||||
+ }
|
||||
+
|
||||
+ // Tuinity end - optimise checkDespawn
|
||||
+
|
||||
|
||||
protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, final DimensionManager dimensionmanager, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env, java.util.concurrent.Executor executor) { // Paper
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName()); // Spigot
|
||||
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getName(), this.spigotConfig); // Paper
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/Chunk.java b/src/main/java/net/minecraft/world/level/chunk/Chunk.java
|
||||
index eb1e4a6c89b79fa1e2ec367eba441970c694f2d1..86d326d40a2957a12dc800560487af4bd272cdcb 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/Chunk.java
|
||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] Remove streams for villager AI
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 0cb2306e97e50f6cac308cec1e67348f4a41820f..4a96fc355b3e69ebd6b0b7dea1d687d722f5b810 100644
|
||||
index 4115cd420ed18a0de91ebce9ba6f6504ca42aa7d..0db18127cc1abbd4d6ffa1d3a019aba9549b09a5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1681,6 +1681,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1712,6 +1712,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return d3 * d3 + d4 * d4 + d5 * d5;
|
||||
}
|
||||
|
||||
|
@ -7,7 +7,7 @@ The executor returned is finalizable and of course
|
||||
that causes issues.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 76993a8601b251ecce2880820cf5a00496c17f19..19fe7b6a60d2f445bec738484c4ef93f73a4acc8 100644
|
||||
index 13956f6645ae5a0c19ff3f002a76005193db849b..dd70595423e9e39c4ab2d82dfd821280154198c2 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -410,9 +410,10 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
@ -22,10 +22,10 @@ index e50731723d266ba65b2163df2e935afb8b013a93..a6736d15282715d920bab85eb92074cd
|
||||
}
|
||||
value.append("},");
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index e6ea687478a8f7282569a79e4fc29d967cbae7ef..12e17315040de205b51ec254cd919b51682c0442 100644
|
||||
index 638f6415382ab40d026ec89fd19cc1a7dd2c3e86..8e259ccad6a494e6a1aaa455bc7a69739de537ab 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -720,6 +720,30 @@ public class CraftWorld implements World {
|
||||
@@ -731,6 +731,30 @@ public class CraftWorld implements World {
|
||||
return ret.entrySet().stream().collect(ImmutableMap.toImmutableMap(Map.Entry::getKey, (entry) -> entry.getValue().build()));
|
||||
}
|
||||
|
||||
|
@ -6,10 +6,10 @@ Subject: [PATCH] Copy passenger list in enderTeleportTo
|
||||
Fixes https://github.com/Spottedleaf/Tuinity/issues/208
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 4a96fc355b3e69ebd6b0b7dea1d687d722f5b810..505340573c584c5c1970cc2b910af0a3f368fa3c 100644
|
||||
index 0db18127cc1abbd4d6ffa1d3a019aba9549b09a5..14e7d217cd98b671a2946f269edbbe77451e1cf7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3176,7 +3176,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3208,7 +3208,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
this.recursiveStream().forEach((entity) -> {
|
||||
worldserver.chunkCheck(entity);
|
||||
entity.az = true;
|
||||
|
@ -4260,7 +4260,7 @@ index 9050ff7180f63c1f5756570446c4d0a8cc767779..9dd0f34aaede93ce4fdff9b41f76166e
|
||||
this.d &= ~(1 << k);
|
||||
if (nibblearray != null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 96ad066d6ed6359fd514c631cc3d51ec7234e6c7..89bd6b1c98e64b0db98d1abc21f308147a8eb6a9 100644
|
||||
index f29cad4905d21190149b740e958768135e067a93..2c97d8b8fcad6e955876c8953f918146cae234dd 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -671,6 +671,185 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@ -4864,7 +4864,7 @@ index e3dc57282a559f783c027780740e8089e022c838..41a9202fac9fce3bf8cf08682d054548
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 19fe7b6a60d2f445bec738484c4ef93f73a4acc8..cd9328c8f4d9e28556c8cdd64a5e9aa5cc134aad 100644
|
||||
index dd70595423e9e39c4ab2d82dfd821280154198c2..d7d3ef4afe663a2eb53665dd7d9d1c8d9ccf66f4 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -1256,7 +1256,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
@ -8,7 +8,7 @@ Instead, only iterate over navigators in the current region that are
|
||||
eligible for repathing.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index cd9328c8f4d9e28556c8cdd64a5e9aa5cc134aad..d3a5e0ecef162b02f652fcc2b909073ea61c15b4 100644
|
||||
index d7d3ef4afe663a2eb53665dd7d9d1c8d9ccf66f4..ec1690305894ba013e5df97e4243d541b595b7c0 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -353,17 +353,82 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
@ -25,7 +25,7 @@ index 4ee7070364a8989eece4fa4237b529926821f9c9..f22ab98d2e250081df8949be8a997370
|
||||
this.a(Long.MAX_VALUE, i, j, flag);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index d3a5e0ecef162b02f652fcc2b909073ea61c15b4..9d701dfd86e29815d8960beebae363e50c15fbc9 100644
|
||||
index ec1690305894ba013e5df97e4243d541b595b7c0..1f8df65410c089bcbb5b55530eacb0188c25fc23 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -982,6 +982,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
@ -10,7 +10,7 @@ chunk future to complete. We can simply schedule to the immediate
|
||||
executor to get this effect, rather than the main mailbox.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 9d701dfd86e29815d8960beebae363e50c15fbc9..043047514af477593c83e7474bd4f18cff2e3af1 100644
|
||||
index 1f8df65410c089bcbb5b55530eacb0188c25fc23..cb1d81d605870f782dc5f35c20735b0ec6d96934 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -1657,9 +1657,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
@ -8,7 +8,7 @@ just so players riding horses or whatever can be seen at the
|
||||
configured player range.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 043047514af477593c83e7474bd4f18cff2e3af1..bc04262937474fd039c079318c7349b6e7aeefa4 100644
|
||||
index cb1d81d605870f782dc5f35c20735b0ec6d96934..6fadeddc7aada2a7319a428258c622408b2266a9 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -217,7 +217,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@ -30,7 +30,7 @@ index 043047514af477593c83e7474bd4f18cff2e3af1..bc04262937474fd039c079318c7349b6
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 505340573c584c5c1970cc2b910af0a3f368fa3c..6b6abf401cc7c7c79ffb472c35550596fc8e55b5 100644
|
||||
index 14e7d217cd98b671a2946f269edbbe77451e1cf7..dc562eecac56c6e71c7ad0293507879ca6b04586 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -317,8 +317,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
@ -10,7 +10,7 @@ to be unloaded will simply be unloaded next tick, rather than
|
||||
immediately.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index d1fa4602f2f443c19ff69bfbd39cacdb4cbaf2a3..4934d0872af5c9cf6be640bad1f46298ad984337 100644
|
||||
index 334bf09b83172c9a092f7054125f3d871bafcfe2..0bef938bc07d17a9fb0a550219be40ccf559aded 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -926,6 +926,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
|
@ -9,10 +9,10 @@ chunk through it. This should also be OK from a leak prevention/
|
||||
state desync POV because the TE is getting unloaded anyways.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 89bd6b1c98e64b0db98d1abc21f308147a8eb6a9..922e1c48580943d9322c72f5445da39c2bc6c173 100644
|
||||
index 2c97d8b8fcad6e955876c8953f918146cae234dd..5785397ffc9a041e3e09174cd718ed7f415bdc3f 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -1742,6 +1742,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@@ -1743,6 +1743,17 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
this.playerConnection.sendPacket(new PacketPlayOutCloseWindow(this.activeContainer.windowId));
|
||||
this.o();
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Remove chunk lookup & lambda allocation from counting mobs
|
||||
The chunk lookup doesn't look cheap.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 4934d0872af5c9cf6be640bad1f46298ad984337..9e96376a1d710c0ba7a763868b23fc586253e1a8 100644
|
||||
index 0bef938bc07d17a9fb0a550219be40ccf559aded..3d2e6771cf5887ffa62259239fabf7934781271f 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -1016,9 +1016,9 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@ -22,7 +22,7 @@ index 4934d0872af5c9cf6be640bad1f46298ad984337..9e96376a1d710c0ba7a763868b23fc58
|
||||
// Paper end
|
||||
this.world.timings.countNaturalMobs.stopTiming(); // Paper - timings
|
||||
diff --git a/src/main/java/net/minecraft/world/level/SpawnerCreature.java b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
index b3c73c6b4cffa20813355c5f2132fe3eaa134007..d497006f05f79015cd791849888832bb53f4a414 100644
|
||||
index 70c110e7e04352edc687dc39f7d939460a4c1e96..9b55da1f4d40ae36b2d2b8e7b3b18989dc4f6006 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
|
||||
@@ -64,9 +64,9 @@ public final class SpawnerCreature {
|
||||
|
@ -7,7 +7,7 @@ Reference2BooleanOpenHashMap is going to have
|
||||
better lookups than HashMap.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index bc04262937474fd039c079318c7349b6e7aeefa4..25992b13a0212e51012eb9e208f2b762b643bf57 100644
|
||||
index 6fadeddc7aada2a7319a428258c622408b2266a9..4b53d12872a0e1665e62d0be85a1c47aefb3601a 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -103,6 +103,7 @@ import net.minecraft.world.level.storage.WorldDataServer;
|
||||
|
@ -1203,7 +1203,7 @@ index c474ee61d98772a2852c44dec1c4a1037472ed2c..ad90735b5daa658cdd5467eadcb29183
|
||||
class b extends ChunkMap {
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
index 9e96376a1d710c0ba7a763868b23fc586253e1a8..fe040615ff03478a20cdf8376f89a6b7d100ba61 100644
|
||||
index 3d2e6771cf5887ffa62259239fabf7934781271f..1b86c032fde3409cb89b849b9ba094af82cd9269 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
|
||||
@@ -946,6 +946,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@ -1214,7 +1214,7 @@ index 9e96376a1d710c0ba7a763868b23fc586253e1a8..fe040615ff03478a20cdf8376f89a6b7
|
||||
this.tickChunks();
|
||||
this.world.timings.chunks.stopTiming(); // Paper - timings
|
||||
this.world.timings.doChunkUnload.startTiming(); // Spigot
|
||||
@@ -1241,6 +1242,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@@ -1243,6 +1244,7 @@ public class ChunkProviderServer extends IChunkProvider {
|
||||
@Override
|
||||
protected boolean executeNext() {
|
||||
com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Cannot execute chunk tasks off-main thread");// Tuinity
|
||||
@ -1223,7 +1223,7 @@ index 9e96376a1d710c0ba7a763868b23fc586253e1a8..fe040615ff03478a20cdf8376f89a6b7
|
||||
try {
|
||||
boolean execChunkTask = com.destroystokyo.paper.io.chunk.ChunkTaskManager.pollChunkWaitQueue() || ChunkProviderServer.this.world.asyncChunkTaskManager.pollNextChunkTask(); // Paper
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 922e1c48580943d9322c72f5445da39c2bc6c173..32e400632ec1e61374f772c6262580f84a5b2288 100644
|
||||
index 5785397ffc9a041e3e09174cd718ed7f415bdc3f..c813077455a463dd558076d1d7474829f76b905a 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -262,7 +262,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@ -1265,7 +1265,7 @@ index a8edac296cbdb053bca4b56a890c3e9e5544d3a6..d9b134302f739efd93f50e93c8730b47
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 25992b13a0212e51012eb9e208f2b762b643bf57..7e24be3a16560c93863c2624a413e8dd7f98c5b4 100644
|
||||
index 4b53d12872a0e1665e62d0be85a1c47aefb3601a..c6c34babd618d201bab26eb9e9edaa6e68d510bf 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -236,20 +236,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@ -1289,7 +1289,7 @@ index 25992b13a0212e51012eb9e208f2b762b643bf57..7e24be3a16560c93863c2624a413e8dd
|
||||
+ public final com.tuinity.tuinity.chunk.PlayerChunkLoader playerChunkManager = new com.tuinity.tuinity.chunk.PlayerChunkLoader(this, this.pooledLinkedPlayerHashSets); // Tuinity - replace chunk loader
|
||||
// Paper end - no-tick view distance
|
||||
// Tuinity start - optimise checkDespawn
|
||||
public static final int GENERAL_AREA_MAP_SQUARE_RADIUS = 38;
|
||||
public static final int GENERAL_AREA_MAP_SQUARE_RADIUS = 40;
|
||||
@@ -268,24 +255,14 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
com.destroystokyo.paper.util.misc.PlayerAreaMap trackMap = this.playerEntityTrackerTrackMaps[i];
|
||||
int trackRange = this.entityTrackerTrackRanges[i];
|
||||
@ -1616,7 +1616,7 @@ index c296fcf80c2f3f210fa020416973ec8d5db541ba..07160de8725787551df327c0790b2d6e
|
||||
double deltaX = this.locX() - player.locX();
|
||||
double deltaZ = this.locZ() - player.locZ();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
index 229eabe0510e6c3660236ed0fb3e80d41074642c..930fc752ec0a988b17bc556cd428161638a14f27 100644
|
||||
index 635b1493eeb6c13cc5ef489bd747ac557bc131d8..3cfe3173f710fc54ec77a47a9cbb8f5ff6a6f0b6 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
@@ -264,9 +264,9 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
|
||||
@ -1648,10 +1648,10 @@ index f74685a7cdb905af8e9712ca8597e7ed3dc8b120..feedbd8c97c1b1c56eaff359e6a94069
|
||||
double deltaZ = soundPos.getZ() - player.locZ();
|
||||
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index dedcdba593d15b1e2f880ae9eaa00eb6edcd03cf..276b1f0c9c9af7db31fba9be0593ae9def540caf 100644
|
||||
index c77b00f30e8edbfcebdc48363de4d5a346abc690..cb8064df7e9f1b8b4d4292486e2193680d83663c 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -615,7 +615,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -613,7 +613,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
this.notify(blockposition, iblockdata1, iblockdata, i);
|
||||
// Paper start - per player view distance - allow block updates for non-ticking chunks in player view distance
|
||||
// if copied from above
|
||||
@ -1750,10 +1750,10 @@ index 3fe1508b091e1fd0325eae50138d02fa6445c9ff..a19a26a88f247d359354902efeece992
|
||||
return new Vec3D((double) baseblockposition.getX() + 0.5D, (double) baseblockposition.getY() + 0.5D, (double) baseblockposition.getZ() + 0.5D);
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 12e17315040de205b51ec254cd919b51682c0442..3f9be0d2d6be83893b8835acfec93d2c1e28ed3d 100644
|
||||
index 8e259ccad6a494e6a1aaa455bc7a69739de537ab..bae07ab043040c1f242271d58fc2f611c403ed46 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -2701,14 +2701,14 @@ public class CraftWorld implements World {
|
||||
@@ -2712,14 +2712,14 @@ public class CraftWorld implements World {
|
||||
throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]");
|
||||
}
|
||||
PlayerChunkMap chunkMap = getHandle().getChunkProvider().playerChunkMap;
|
||||
@ -1770,7 +1770,7 @@ index 12e17315040de205b51ec254cd919b51682c0442..3f9be0d2d6be83893b8835acfec93d2c
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -2717,11 +2717,22 @@ public class CraftWorld implements World {
|
||||
@@ -2728,11 +2728,22 @@ public class CraftWorld implements World {
|
||||
throw new IllegalArgumentException("View distance " + viewDistance + " is out of range of [2, 32]");
|
||||
}
|
||||
PlayerChunkMap chunkMap = getHandle().getChunkProvider().playerChunkMap;
|
||||
|
@ -22,7 +22,7 @@ index 848eb25ed0640db61a0f28bc26ddabd0444e9ed4..ec2b9995f1bf0f6cf029df7bfac526c2
|
||||
continue;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
index 7e24be3a16560c93863c2624a413e8dd7f98c5b4..4df1be8091af0ed9d3403f217b481645e24020e8 100644
|
||||
index c6c34babd618d201bab26eb9e9edaa6e68d510bf..d827e18d8c3b9b5869dbb1e233f415ba0efb7c1b 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
|
||||
@@ -116,8 +116,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@ -166,7 +166,7 @@ index 7e24be3a16560c93863c2624a413e8dd7f98c5b4..4df1be8091af0ed9d3403f217b481645
|
||||
|
||||
protected PlayerChunkMap.a e() {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 3f9be0d2d6be83893b8835acfec93d2c1e28ed3d..4f296f09562fb269db4137efd325e2c258f4b90b 100644
|
||||
index bae07ab043040c1f242271d58fc2f611c403ed46..3b6b1f3229b07c84d99db652e01661bcc78368fd 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -298,7 +298,7 @@ public class CraftWorld implements World {
|
||||
@ -187,7 +187,7 @@ index 3f9be0d2d6be83893b8835acfec93d2c1e28ed3d..4f296f09562fb269db4137efd325e2c2
|
||||
if (chunkHolder.getChunk() != null) {
|
||||
++ret;
|
||||
}
|
||||
@@ -471,13 +471,16 @@ public class CraftWorld implements World {
|
||||
@@ -482,13 +482,16 @@ public class CraftWorld implements World {
|
||||
public Chunk[] getLoadedChunks() {
|
||||
// Paper start
|
||||
if (Thread.currentThread() != world.getMinecraftWorld().serverThread) {
|
||||
|
@ -1,101 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
||||
Date: Tue, 1 Jun 2021 15:35:31 -0700
|
||||
Subject: [PATCH] Fix dangerous end portal logic
|
||||
|
||||
End portals could teleport entities during move calls. Stupid
|
||||
logic given the caller will never expect that kind of thing,
|
||||
and will result in all kinds of dupes.
|
||||
|
||||
Move the tick logic into the post tick, where portaling was
|
||||
designed to happen in the first place.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 6b6abf401cc7c7c79ffb472c35550596fc8e55b5..c3d4eda866016c4ac08d4c5d771e39dcac5a3a60 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -370,6 +370,38 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
// Tuinity end
|
||||
|
||||
+ // Tuinity start - make end portalling safe
|
||||
+ public BlockPosition portalBlock;
|
||||
+ public WorldServer portalWorld;
|
||||
+ public void tickEndPortal() {
|
||||
+ BlockPosition pos = this.portalBlock;
|
||||
+ WorldServer world = this.portalWorld;
|
||||
+ this.portalBlock = null;
|
||||
+ this.portalWorld = null;
|
||||
+
|
||||
+ if (pos == null || world == null || world != this.world) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (this.isPassenger() || this.isVehicle() || !this.canPortal() || this.dead || !this.valid || !this.isAlive()) {
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ ResourceKey<World> resourcekey = world.getTypeKey() == DimensionManager.THE_END ? World.OVERWORLD : World.THE_END; // CraftBukkit - SPIGOT-6152: send back to main overworld in custom ends
|
||||
+ WorldServer worldserver = world.getMinecraftServer().getWorldServer(resourcekey);
|
||||
+
|
||||
+ org.bukkit.event.entity.EntityPortalEnterEvent event = new org.bukkit.event.entity.EntityPortalEnterEvent(this.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), pos.getX(), pos.getY(), pos.getZ()));
|
||||
+ event.callEvent();
|
||||
+
|
||||
+ if (this instanceof EntityPlayer) {
|
||||
+ ((EntityPlayer)this).b(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
|
||||
+ return;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+ this.b(worldserver);
|
||||
+ }
|
||||
+ // Tuinity end - make end portalling safe
|
||||
+
|
||||
public Entity(EntityTypes<?> entitytypes, World world) {
|
||||
this.id = Entity.entityCount.incrementAndGet();
|
||||
this.passengers = Lists.newArrayList();
|
||||
@@ -2541,6 +2573,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
this.E();
|
||||
+ this.tickEndPortal(); // Tuinity - make end portalling safe
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
index 930fc752ec0a988b17bc556cd428161638a14f27..c056c4c09297602c1fb3c1040ac2ab0ec4c0139b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/boss/wither/EntityWither.java
|
||||
@@ -603,7 +603,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
|
||||
|
||||
@Override
|
||||
public boolean canPortal() {
|
||||
- return canPortal; // Paper
|
||||
+ return super.canPortal() && canPortal; // Paper // Tuinity - ensure super is called
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BlockEnderPortal.java b/src/main/java/net/minecraft/world/level/block/BlockEnderPortal.java
|
||||
index ed916f69747b44b75eb06db4cf27adaf5e47fd1e..2ad7d6809beff6b5a36b32ba29d05447139a415e 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BlockEnderPortal.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BlockEnderPortal.java
|
||||
@@ -52,16 +52,10 @@ public class BlockEnderPortal extends BlockTileEntity {
|
||||
// return; // CraftBukkit - always fire event in case plugins wish to change it
|
||||
}
|
||||
|
||||
- // CraftBukkit start - Entity in portal
|
||||
- EntityPortalEnterEvent event = new EntityPortalEnterEvent(entity.getBukkitEntity(), new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()));
|
||||
- world.getServer().getPluginManager().callEvent(event);
|
||||
-
|
||||
- if (entity instanceof EntityPlayer) {
|
||||
- ((EntityPlayer) entity).b(worldserver, PlayerTeleportEvent.TeleportCause.END_PORTAL);
|
||||
- return;
|
||||
- }
|
||||
- // CraftBukkit end
|
||||
- entity.b(worldserver);
|
||||
+ // Tuinity start - move all of this logic into portal tick
|
||||
+ entity.portalWorld = ((WorldServer)world);
|
||||
+ entity.portalBlock = blockposition.immutableCopy();
|
||||
+ // Tuinity end - move all of this logic into portal tick
|
||||
}
|
||||
|
||||
}
|
@ -6,7 +6,7 @@ Subject: [PATCH] Suspected plugins report
|
||||
Added "Suspected Plugins" to Watchdog, crash reports and exception messages
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
index d1c35e4cf778070f8d18bbe0af8d423334c6dfbf..d87c8e97a4a73f8df1f5badc7bdfea18a54e406b 100644
|
||||
index 0e25119564dfa9cb12f3c5dc5f653d7f2c147a9d..747494010c85bded946451375d38b36c85f72986 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
@@ -577,7 +577,11 @@ public final class SimplePluginManager implements PluginManager {
|
||||
@ -35,7 +35,7 @@ index d1c35e4cf778070f8d18bbe0af8d423334c6dfbf..d87c8e97a4a73f8df1f5badc7bdfea18
|
||||
if (!(event instanceof ServerExceptionEvent)) { // We don't want to cause an endless event loop
|
||||
callEvent(new ServerExceptionEvent(new ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event)));
|
||||
}
|
||||
@@ -922,4 +930,10 @@ public final class SimplePluginManager implements PluginManager {
|
||||
@@ -923,4 +931,10 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
|
@ -60,7 +60,7 @@ index 5936075251ef3d6dda3e93866009d0e996598698..b10b1960260d89b5e5c7b960f5bc18ec
|
||||
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities));
|
||||
playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 42f4aaeeceb628007ded00353fd26aa461f39ea9..21010824d1c343e5a58cce7fb602bd04783a89d1 100644
|
||||
index ee2922d68cb1970c7b3b0b4b03d870a46ff63d71..1c1ad06fe8699fbcf922cede825cdfdc65ba6a21 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -362,6 +362,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -59,7 +59,7 @@ index 9a008acd3e6dd5522d163dfbe09c611f6f717d4e..a088b8f84f01ce3863ae949f4cd3d7ae
|
||||
}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 21010824d1c343e5a58cce7fb602bd04783a89d1..2ed7ad2e7f29c5d6f1b753c8e36c6ccb8486a85e 100644
|
||||
index 1c1ad06fe8699fbcf922cede825cdfdc65ba6a21..8ca4765005271fbb234a9f1512045acaa1bf4f92 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -3001,7 +3001,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Modify default configs
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
index efc1e42d606e1c9feb1a4871c0714933ae92a1b2..496fb544239262b0fc7594d37751c350d8815b0c 100644
|
||||
index 7acf077bc131af718c7548cc29deef558c04e463..2690504fa53edd3e899100957e1f9da109830057 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
@@ -201,7 +201,7 @@ public class PaperConfig {
|
||||
@ -18,10 +18,10 @@ index efc1e42d606e1c9feb1a4871c0714933ae92a1b2..496fb544239262b0fc7594d37751c350
|
||||
TimingsManager.privacy = getBoolean("timings.server-name-privacy", false);
|
||||
TimingsManager.hiddenConfigs = getList("timings.hidden-config-entries", Lists.newArrayList("database", "settings.bungeecord-addresses", "settings.velocity-support.secret"));
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index 1a368df78feb4afdf522527af5ed1652afffcd15..56fa8844daf94f007a51ad7ae3f8307706e66f60 100644
|
||||
index 5c91c007691efeea1d4383efcd1ca06990d0660c..f64c805cba64350996238228aa0f8fd6e8fa17c7 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -633,7 +633,7 @@ public class PaperWorldConfig {
|
||||
@@ -635,7 +635,7 @@ public class PaperWorldConfig {
|
||||
}
|
||||
|
||||
public boolean cooldownHopperWhenFull = true;
|
||||
|
@ -65,7 +65,7 @@ index 8078e4f5b79eaada03508265ba6b81db636e822a..b2d26289a6f501b093ec229394f75864
|
||||
};
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 2ed7ad2e7f29c5d6f1b753c8e36c6ccb8486a85e..96f34b5d02a7cd97432161f979d6c10b0a2abd63 100644
|
||||
index 8ca4765005271fbb234a9f1512045acaa1bf4f92..92447667f53b86c3a7b0f5f462ba37ffd3007dc8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -2708,10 +2708,12 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Optimize TileEntity load/unload
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index a4d0102e0020d62de3affdd819001c08202e0616..b3b15c9f7e4bcce74a9232dd689e932db83b85be 100644
|
||||
index 313d27714b98c58627d1ce247bf63384929a746f..b8156023746bda827f19f4e972c3bdb56340f046 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -105,8 +105,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
|
@ -5,10 +5,10 @@ Subject: [PATCH] Fix lead fall dmg config
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 939f042c7c5abc0c71880b61d6ebf8bd1d4d5c8f..8300252d84c86668cec58b390dc0aa8c41b5413d 100644
|
||||
index 814cd9d46917cee21e3c715b62e82fa2e4547e33..30168844c52d57ab20abd6a1592aabfa658f714a 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -1452,6 +1452,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1451,6 +1451,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
this.fallDistance = 0.0F;
|
||||
} else if (d0 < 0.0D) {
|
||||
this.fallDistance = (float) ((double) this.fallDistance - d0);
|
||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] Configurable criterion triggers
|
||||
This patch adds toggles for three criterion triggers that are called every tick. These can be very unnecessary, and especially in the case of CriterionTriggerEnterBlock, quite heavy.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 32e400632ec1e61374f772c6262580f84a5b2288..7bae97fb0a4bda34a6edeb8699ff62b81b751d62 100644
|
||||
index c813077455a463dd558076d1d7474829f76b905a..742d802d63963778454e41e5b19a3d889c544efc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -577,6 +577,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
|
@ -108,10 +108,10 @@ index 69a982832489fc78fd46418341bdcba1e2be69e9..7bcaa5be42383cd1f1cfce6457c235a8
|
||||
ChatComponentText chatcomponenttext = new ChatComponentText("Internal server error");
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index b3b15c9f7e4bcce74a9232dd689e932db83b85be..93df6da952081969f280462d7515e28782a794f0 100644
|
||||
index b8156023746bda827f19f4e972c3bdb56340f046..5166c78fe1db631a988b6567932e1be685ebb19c 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -1051,6 +1051,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -1049,6 +1049,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
// Paper start - Prevent tile entity and entity crashes
|
||||
String msg = "TileEntity threw exception at " + tileentity.getWorld().getWorld().getName() + ":" + tileentity.getPosition().getX() + "," + tileentity.getPosition().getY() + "," + tileentity.getPosition().getZ();
|
||||
System.err.println(msg);
|
||||
|
@ -42,7 +42,7 @@ index 0000000000000000000000000000000000000000..0d99f3b4930045632d88fa4acb3b8159
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/server/level/EntityPlayer.java b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
index 7bae97fb0a4bda34a6edeb8699ff62b81b751d62..6c8698914231107ce395c6ac42f0f951030da50a 100644
|
||||
index 742d802d63963778454e41e5b19a3d889c544efc..13264b642a065dbbf908cef0a0f086ee666b24c7 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/EntityPlayer.java
|
||||
@@ -654,6 +654,8 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
||||
@ -70,7 +70,7 @@ index 861c834e9bfa653e78bc884d5a9712b990a7b632..49b8048de109625f82988ad3baad7708
|
||||
public static final BlockPosition a = new BlockPosition(100, 50, 0);
|
||||
private static final Logger LOGGER = LogManager.getLogger();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d71658e9d5 100644
|
||||
index 30168844c52d57ab20abd6a1592aabfa658f714a..3475e74ad2a3d9cf6088e51e55c50bcac28e00b5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -141,9 +141,12 @@ import org.bukkit.event.entity.EntityPoseChangeEvent;
|
||||
@ -86,7 +86,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
// CraftBukkit start
|
||||
private static final int CURRENT_LEVEL = 2;
|
||||
public boolean preserveMotion = true; // Paper - keep initial motion on first setPositionRotation
|
||||
@@ -828,6 +831,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -827,6 +830,12 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
// Tuinity end - detailed watchdog information
|
||||
public void move(EnumMoveType enummovetype, Vec3D vec3d) {
|
||||
@ -99,7 +99,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
// Tuinity start - detailed watchdog information
|
||||
com.tuinity.tuinity.util.TickThread.ensureTickThread("Cannot move an entity off-main");
|
||||
synchronized (this.posLock) {
|
||||
@@ -878,7 +887,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -877,7 +886,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
this.v = vec3d.y != vec3d1.y;
|
||||
this.onGround = this.v && vec3d.y < 0.0D;
|
||||
BlockPosition blockposition = this.ap();
|
||||
@ -108,7 +108,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
|
||||
this.a(vec3d1.y, this.onGround, iblockdata, blockposition);
|
||||
Vec3D vec3d2 = this.getMot();
|
||||
@@ -992,9 +1001,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -991,9 +1000,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
int k = MathHelper.floor(this.loc.z);
|
||||
BlockPosition blockposition = new BlockPosition(i, j, k);
|
||||
|
||||
@ -120,7 +120,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
Block block = iblockdata.getBlock();
|
||||
|
||||
if (block.a((Tag) TagsBlock.FENCES) || block.a((Tag) TagsBlock.WALLS) || block instanceof BlockFenceGate) {
|
||||
@@ -1006,17 +1015,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1005,17 +1014,21 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
protected float getBlockJumpFactor() {
|
||||
@ -146,7 +146,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
}
|
||||
|
||||
protected BlockPosition as() {
|
||||
@@ -1361,7 +1374,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1360,7 +1373,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
for (int i = blockposition.getX(); i <= blockposition1.getX(); ++i) {
|
||||
// Tuinity end - reorder iteration to more cache aware
|
||||
blockposition_mutableblockposition.d(i, j, k);
|
||||
@ -155,7 +155,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
|
||||
// Tuinity start - move fire checking in here - reuse getType from this method
|
||||
if (checkFire) {
|
||||
@@ -1397,7 +1410,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1396,7 +1409,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
||||
protected void b(BlockPosition blockposition, IBlockData iblockdata) {
|
||||
if (!iblockdata.getMaterial().isLiquid()) {
|
||||
@ -164,7 +164,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
SoundEffectType soundeffecttype = iblockdata1.a(Blocks.SNOW) ? iblockdata1.getStepSound() : iblockdata.getStepSound();
|
||||
|
||||
this.playSound(soundeffecttype.getStepSound(), soundeffecttype.getVolume() * 0.15F, soundeffecttype.getPitch());
|
||||
@@ -1488,7 +1501,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1487,7 +1500,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
||||
public final boolean isInBubbleColumn() { return k(); } // Paper - OBFHELPER
|
||||
private boolean k() {
|
||||
@ -173,7 +173,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
}
|
||||
|
||||
public boolean isInWaterOrRain() {
|
||||
@@ -1559,7 +1572,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1558,7 +1571,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
BlockPosition blockposition = new BlockPosition(this.locX(), d0, this.locZ());
|
||||
@ -182,7 +182,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
Iterator iterator = TagsFluid.b().iterator();
|
||||
|
||||
Tag tag;
|
||||
@@ -1617,7 +1630,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1616,7 +1629,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
protected IBlockData aN() {
|
||||
@ -191,7 +191,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
}
|
||||
|
||||
public boolean aO() {
|
||||
@@ -1629,7 +1642,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -1628,7 +1641,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
int j = MathHelper.floor(this.locY() - 0.20000000298023224D);
|
||||
int k = MathHelper.floor(this.locZ());
|
||||
BlockPosition blockposition = new BlockPosition(i, j, k);
|
||||
@ -200,7 +200,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
|
||||
if (iblockdata.h() != EnumRenderType.INVISIBLE) {
|
||||
Vec3D vec3d = this.getMot();
|
||||
@@ -2863,7 +2876,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -2862,7 +2875,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
EnumDirection enumdirection1 = aenumdirection[j];
|
||||
|
||||
blockposition_mutableblockposition.a((BaseBlockPosition) blockposition, enumdirection1);
|
||||
@ -209,7 +209,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
double d4 = vec3d.a(enumdirection1.n());
|
||||
double d5 = enumdirection1.e() == EnumDirection.EnumAxisDirection.POSITIVE ? 1.0D - d4 : d4;
|
||||
|
||||
@@ -3077,14 +3090,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3076,14 +3089,14 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
|
||||
return (ShapeDetectorShape) this.findOrCreatePortal(worldserver, blockposition, flag2, event.getSearchRadius(), event.getCanCreatePortal(), event.getCreationRadius()).map((blockutil_rectangle) -> {
|
||||
// CraftBukkit end
|
||||
@ -226,7 +226,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
});
|
||||
|
||||
vec3d = this.a(enumdirection_enumaxis, blockutil_rectangle1);
|
||||
@@ -3439,6 +3452,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3438,6 +3451,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
}
|
||||
|
||||
public boolean cl() {
|
||||
@ -234,7 +234,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
boolean flag = this.au;
|
||||
|
||||
this.au = false;
|
||||
@@ -3637,7 +3651,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -3636,7 +3650,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
for (int i2 = k; i2 < l; ++i2) {
|
||||
for (int j2 = i1; j2 < j1; ++j2) {
|
||||
blockposition_mutableblockposition.d(l1, i2, j2);
|
||||
@ -244,7 +244,7 @@ index 8300252d84c86668cec58b390dc0aa8c41b5413d..b3762831a4eb1ad81083212739e339d7
|
||||
if (fluid.a(tag)) {
|
||||
double d2 = (double) ((float) i2 + fluid.getHeight(this.world, blockposition_mutableblockposition));
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd670c8639c4 100644
|
||||
index 92447667f53b86c3a7b0f5f462ba37ffd3007dc8..4de845117c06915943d517bdab7fcc3651589dcf 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -139,6 +139,7 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
||||
@ -342,7 +342,7 @@ index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd67
|
||||
|
||||
f = this.onGround ? f5 * 0.91F : 0.91F;
|
||||
Vec3D vec3d6 = this.a(vec3d, f5);
|
||||
@@ -3501,7 +3504,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -3502,7 +3505,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
while (!flag2 && blockposition.getY() > 0) {
|
||||
BlockPosition blockposition1 = blockposition.down();
|
||||
@ -351,7 +351,7 @@ index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd67
|
||||
|
||||
if (iblockdata.getMaterial().isSolid()) {
|
||||
flag2 = true;
|
||||
@@ -3613,7 +3616,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -3614,7 +3617,7 @@ public abstract class EntityLiving extends Entity {
|
||||
this.stopRiding();
|
||||
}
|
||||
|
||||
@ -360,7 +360,7 @@ index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd67
|
||||
|
||||
if (iblockdata.getBlock() instanceof BlockBed) {
|
||||
this.world.setTypeAndData(blockposition, (IBlockData) iblockdata.set(BlockBed.OCCUPIED, true), 3);
|
||||
@@ -3632,7 +3635,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -3633,7 +3636,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
private boolean x() {
|
||||
return (Boolean) this.getBedPosition().map((blockposition) -> {
|
||||
@ -369,7 +369,7 @@ index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd67
|
||||
}).orElse(false);
|
||||
}
|
||||
|
||||
@@ -3642,7 +3645,7 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -3643,7 +3646,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
||||
this.world.getClass();
|
||||
optional.filter(world::isLoaded).ifPresent((blockposition) -> {
|
||||
@ -379,7 +379,7 @@ index 96f34b5d02a7cd97432161f979d6c10b0a2abd63..f37094c158ec564133008d5cf195fd67
|
||||
if (iblockdata.getBlock() instanceof BlockBed) {
|
||||
this.world.setTypeAndData(blockposition, (IBlockData) iblockdata.set(BlockBed.OCCUPIED, false), 3);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index 93df6da952081969f280462d7515e28782a794f0..a5dd3b71f9b96047826d01002dbad718c463500c 100644
|
||||
index 5166c78fe1db631a988b6567932e1be685ebb19c..2276b90a35e9f823cc20f622f4ee7ad923eefec3 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -96,7 +96,9 @@ import org.bukkit.craftbukkit.block.data.CraftBlockData;
|
||||
|
@ -6,7 +6,7 @@ Subject: [PATCH] lithium entity
|
||||
Co-authored-by: Hugo Planque <hookwood01@gmail.com>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
index f37094c158ec564133008d5cf195fd670c8639c4..769f520fb180f8b7091a63c67ca41c8d17d5976e 100644
|
||||
index 4de845117c06915943d517bdab7fcc3651589dcf..a0d1d98135cfea5b2afa2b68a1ab95aa46b8f485 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
|
||||
@@ -276,6 +276,9 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -270,10 +270,10 @@ index b95115aca72ba0cf6451096ddbd8b50a8f3bb5c6..0afb8c643cb3e5938e12183c6132797d
|
||||
int j = i - 1;
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index b3762831a4eb1ad81083212739e339d71658e9d5..8833551cd73eb04e2621db4b70ac2fcd22a206fd 100644
|
||||
index 3475e74ad2a3d9cf6088e51e55c50bcac28e00b5..198d22377a9fc3d6601a078cd2fa4294a6b2987b 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -2683,6 +2683,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
@@ -2682,6 +2682,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
|
||||
return this.isSneaking();
|
||||
}
|
||||
|
||||
|
@ -621,7 +621,7 @@ index 0000000000000000000000000000000000000000..4e765ab19ffb300b6c810333b2dc7976
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
|
||||
index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71edcd2fa82 100644
|
||||
index 2276b90a35e9f823cc20f622f4ee7ad923eefec3..32d2145222093797bec994f5c96d94863739915d 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/World.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/World.java
|
||||
@@ -97,8 +97,11 @@ import org.bukkit.event.block.BlockPhysicsEvent;
|
||||
@ -656,7 +656,7 @@ index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71e
|
||||
public final Thread serverThread;
|
||||
private final boolean debugWorld;
|
||||
private int d;
|
||||
@@ -332,6 +343,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
@@ -330,6 +341,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
this.keepSpawnInMemory = this.paperConfig.keepSpawnInMemory; // Paper
|
||||
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
|
||||
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
|
||||
@ -665,7 +665,7 @@ index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71e
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@@ -996,6 +1009,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
@@ -994,6 +1007,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
|
||||
}
|
||||
|
||||
@ -681,7 +681,7 @@ index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71e
|
||||
public void tickBlockEntities() {
|
||||
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
|
||||
|
||||
@@ -1018,11 +1040,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
@@ -1016,11 +1038,19 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
|
||||
this.tickingTileEntities = true;
|
||||
// Spigot start
|
||||
@ -701,7 +701,7 @@ index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71e
|
||||
// Spigot start
|
||||
if (tileentity == null) {
|
||||
getServer().getLogger().severe("Spigot has detected a null entity and has removed it, preventing a crash");
|
||||
@@ -1060,8 +1090,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
@@ -1058,8 +1088,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
throwable.printStackTrace();
|
||||
getServer().getPluginManager().callEvent(new ServerExceptionEvent(new ServerInternalException(msg, throwable)));
|
||||
// Paper end
|
||||
@ -711,7 +711,7 @@ index a5dd3b71f9b96047826d01002dbad718c463500c..324342f57249be6a37d7ad10a326a71e
|
||||
continue;
|
||||
// Paper end
|
||||
// Spigot start
|
||||
@@ -1074,8 +1103,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
@@ -1072,8 +1101,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable, NonBlocki
|
||||
|
||||
if (tileentity.isRemoved()) {
|
||||
// Spigot start
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 8c5012517e30804bf6376f56625c2ef569c8a15a
|
||||
Subproject commit 2be99de1879d77f697c89bb4f9941753b794422e
|
@ -1 +1 @@
|
||||
Subproject commit 0e568e7c3a42a130443bb08f641094e5613fce52
|
||||
Subproject commit 33438474421589039cc384be99b5584bfdce487b
|
@ -1 +1 @@
|
||||
Subproject commit d0cdf967180ef028c9ba7a8c5b9f5239588892fb
|
||||
Subproject commit 35c6a27557ee1f61bc2d432c7b8e5d11f81d3962
|
@ -1 +1 @@
|
||||
Subproject commit f7c42491a092c2dbd2d4736dd9713dc29c0bc099
|
||||
Subproject commit 2683c775cc9b25ca8bfc0c9b04bbffea6c5fa9fd
|
@ -1 +1 @@
|
||||
8c5012517e30804bf6376f56625c2ef569c8a15a
|
||||
2be99de1879d77f697c89bb4f9941753b794422e
|
@ -1 +1 @@
|
||||
0e568e7c3a42a130443bb08f641094e5613fce52
|
||||
33438474421589039cc384be99b5584bfdce487b
|
@ -1 +1 @@
|
||||
d0cdf967180ef028c9ba7a8c5b9f5239588892fb
|
||||
35c6a27557ee1f61bc2d432c7b8e5d11f81d3962
|
@ -1 +1 @@
|
||||
f7c42491a092c2dbd2d4736dd9713dc29c0bc099
|
||||
2683c775cc9b25ca8bfc0c9b04bbffea6c5fa9fd
|
Loading…
Reference in New Issue
Block a user