Updated Upstream (Paper & Purpur)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@72e87ab Strip raytracing for EntityLiving#hasLineOfSight Purpur Changes: PurpurMC/Purpur@39bdf3d Updated Upstream (Paper)
This commit is contained in:
@@ -1,2 +1,2 @@
|
|||||||
purpurCommit = 671c31a78762994ead0b11a46e0257d6b9fafd0e
|
purpurCommit = 39bdf3d2e045857f328bd628f785c54be951e9bd
|
||||||
pufferfishCommit = e32a780bcab6821e3804846a63a9153fdeee44f4
|
pufferfishCommit = e32a780bcab6821e3804846a63a9153fdeee44f4
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
group = org.plazmamc.plazma
|
group = org.plazmamc.plazma
|
||||||
version = 1.20.1-R0.1-SNAPSHOT
|
version = 1.20.1-R0.1-SNAPSHOT
|
||||||
|
|
||||||
paperCommit = 33bec7f20a5d3e20d9a8c0a16a1e5276add5d4fb
|
paperCommit = 72e87abc2db813ecd74a323c33a7b9c79b0c67b9
|
||||||
|
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
org.gradle.parallel = true
|
org.gradle.parallel = true
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Sat, 9 Sep 2023 16:24:45 +0000
|
Date: Mon, 11 Sep 2023 01:06:55 +0000
|
||||||
Subject: [PATCH] Pufferfish API Changes
|
Subject: [PATCH] Pufferfish API Changes
|
||||||
|
|
||||||
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Sat, 9 Sep 2023 16:32:10 +0000
|
Date: Mon, 11 Sep 2023 01:08:35 +0000
|
||||||
Subject: [PATCH] Purpur API Changes
|
Subject: [PATCH] Purpur API Changes
|
||||||
|
|
||||||
Original: PurpurMC
|
Original: PurpurMC
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Sat, 9 Sep 2023 16:24:45 +0000
|
Date: Mon, 11 Sep 2023 01:06:55 +0000
|
||||||
Subject: [PATCH] Pufferfish Server Changes
|
Subject: [PATCH] Pufferfish Server Changes
|
||||||
|
|
||||||
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
Original: Kevin Raneri <kevin.raneri@gmail.com>
|
||||||
@@ -2134,7 +2134,7 @@ index 9afc81ccb237c3655d64cdbe8a0db9a4d7791043..aa5cec6d56d7a8e80861aa4c9b4a74ca
|
|||||||
private String descriptionId;
|
private String descriptionId;
|
||||||
@Nullable
|
@Nullable
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index e11d7283662834047b2ff81a2fd25a4263792deb..e07140ef2f4c5b0019550eb3100c724699e7a05c 100644
|
index 7763450e85146d43fcf84d380d0e7a8183d83747..0059ceabaed9c1888a6773efb906e761fd1ca252 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
@@ -142,7 +142,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
||||||
@@ -2195,18 +2195,6 @@ index e11d7283662834047b2ff81a2fd25a4263792deb..e07140ef2f4c5b0019550eb3100c7246
|
|||||||
public boolean onClimbable() {
|
public boolean onClimbable() {
|
||||||
if (this.isSpectator()) {
|
if (this.isSpectator()) {
|
||||||
return false;
|
return false;
|
||||||
@@ -3651,7 +3677,10 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
||||||
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
|
|
||||||
|
|
||||||
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
|
|
||||||
- return vec3d1.distanceToSqr(vec3d) > 128D * 128D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS;
|
|
||||||
+ // Pufferfish start
|
|
||||||
+ //return vec3d1.distanceToSqr(vec3d) > 128D * 128D ? false : this.level().clip(new ClipContext(vec3d, vec3d1, ClipContext.Block.COLLIDER, ClipContext.Fluid.NONE, this)).getType() == HitResult.Type.MISS;
|
|
||||||
+ return vec3d1.distanceToSqr(vec3d) > 128D * 128D ? false : this.level().rayTraceDirect(vec3d, vec3d1, net.minecraft.world.phys.shapes.CollisionContext.of(this)) == net.minecraft.world.phys.BlockHitResult.Type.MISS;
|
|
||||||
+ // Pufferfish end
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
index e2a25c29ec74147b3e66aa0b3deb85a8f6ee53a5..f6eb032897c6d5d16ab5c8c287e49e189c24571c 100644
|
index e2a25c29ec74147b3e66aa0b3deb85a8f6ee53a5..f6eb032897c6d5d16ab5c8c287e49e189c24571c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
@@ -2281,18 +2269,6 @@ index dd1102d5291ef6f18e82400a6d8a0a376cc071e9..e283eb57c25f7de222f9d09dca851169
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
|
||||||
index d4c91e0a0c64fcb7f1145de3f30134cb1f1f8ee6..fe502445a77afe7e3807afae48d7bf03f370e290 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/AcquirePoi.java
|
|
||||||
@@ -47,6 +47,7 @@ public class AcquirePoi {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
mutableLong.setValue(time + 20L + (long)world.getRandom().nextInt(20));
|
|
||||||
+ if (entity.getNavigation().isStuck()) mutableLong.add(200); // Pufferfish - wait an additional 10s to check again if they're stuck
|
|
||||||
PoiManager poiManager = world.getPoiManager();
|
|
||||||
long2ObjectMap.long2ObjectEntrySet().removeIf((entry) -> {
|
|
||||||
return !entry.getValue().isStillValid(time);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java
|
||||||
index 646d9a121d908a2fc3e4e302484dd5cd1bfc6804..e546ecdccde352502e26a8668eaaafe048d6e282 100644
|
index 646d9a121d908a2fc3e4e302484dd5cd1bfc6804..e546ecdccde352502e26a8668eaaafe048d6e282 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java
|
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerPanicTrigger.java
|
||||||
@@ -2492,27 +2468,6 @@ index 1e07febcf7a3dfb281728cc5e3e4f15dd776d7e0..c65ab566c6241dd6a44bd11a449ef0c4
|
|||||||
@Override
|
@Override
|
||||||
protected SoundEvent getAmbientSound() {
|
protected SoundEvent getAmbientSound() {
|
||||||
return SoundEvents.WITHER_AMBIENT;
|
return SoundEvents.WITHER_AMBIENT;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
|
||||||
index 52196431a6538872755344859a0454a0e50c3b6e..80fc7918cb294b0d88a293bd6a920441cb55c3ad 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
|
||||||
@@ -270,10 +270,16 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
|
||||||
if (entityitem.isMergable()) {
|
|
||||||
// Paper Start - Fix items merging through walls
|
|
||||||
if (this.level().paperConfig().fixes.fixItemsMergingThroughWalls) {
|
|
||||||
+ // Pufferfish start - skip the allocations
|
|
||||||
+ /*
|
|
||||||
net.minecraft.world.level.ClipContext rayTrace = new net.minecraft.world.level.ClipContext(this.position(), entityitem.position(),
|
|
||||||
net.minecraft.world.level.ClipContext.Block.COLLIDER, net.minecraft.world.level.ClipContext.Fluid.NONE, this);
|
|
||||||
net.minecraft.world.phys.BlockHitResult rayTraceResult = this.level().clip(rayTrace);
|
|
||||||
if (rayTraceResult.getType() == net.minecraft.world.phys.HitResult.Type.BLOCK) continue;
|
|
||||||
+ */
|
|
||||||
+ if (level().rayTraceDirect(this.position(), entityitem.position(), net.minecraft.world.phys.shapes.CollisionContext.of(this)) ==
|
|
||||||
+ net.minecraft.world.phys.HitResult.Type.BLOCK) continue;
|
|
||||||
+ // Pufferfish end
|
|
||||||
}
|
|
||||||
// Paper End
|
|
||||||
this.tryToMerge(entityitem);
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
index b62457313a1e30aad0c5313d608667b5d3811455..410f10ad93935d1c078447a4596023f367a8e9b7 100644
|
index b62457313a1e30aad0c5313d608667b5d3811455..410f10ad93935d1c078447a4596023f367a8e9b7 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -2801,29 +2756,8 @@ index 2e60bdc44c33d434bfd9ca5bf8f75de799c6768c..565318c2afaa1661ed9963453a6354df
|
|||||||
StackedContents autorecipestackmanager = new StackedContents();
|
StackedContents autorecipestackmanager = new StackedContents();
|
||||||
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
|
autorecipestackmanager.initialize(this); // Paper - better exact choice recipes
|
||||||
int i = 0;
|
int i = 0;
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/BlockGetter.java b/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
||||||
index 0e8746759752b692668886370181aa5db1fd0bb0..58e5ce2afabf480f5dfd9adf43f8fc12666861c6 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/level/BlockGetter.java
|
|
||||||
@@ -68,6 +68,16 @@ public interface BlockGetter extends LevelHeightAccessor {
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Pufferfish start - broken down variant of below rayTraceBlock, used by World#rayTraceDirect
|
|
||||||
+ default net.minecraft.world.phys.BlockHitResult.Type rayTraceBlockDirect(Vec3 vec3d, Vec3 vec3d1, BlockPos blockposition, BlockState iblockdata, net.minecraft.world.phys.shapes.CollisionContext voxelshapecoll) {
|
|
||||||
+ if (iblockdata.isAir()) return null; // Tuinity - optimise air cases
|
|
||||||
+ VoxelShape voxelshape = ClipContext.Block.COLLIDER.get(iblockdata, this, blockposition, voxelshapecoll);
|
|
||||||
+ net.minecraft.world.phys.BlockHitResult movingobjectpositionblock = this.clipWithInteractionOverride(vec3d, vec3d1, blockposition, voxelshape, iblockdata);
|
|
||||||
+
|
|
||||||
+ return movingobjectpositionblock == null ? null : movingobjectpositionblock.getType();
|
|
||||||
+ }
|
|
||||||
+ // Pufferfish end
|
|
||||||
+
|
|
||||||
// CraftBukkit start - moved block handling into separate method for use by Block#rayTrace
|
|
||||||
default BlockHitResult clip(ClipContext raytrace1, BlockPos blockposition) {
|
|
||||||
// Paper start - Prevent raytrace from loading chunks
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index f39ab10c5b0b8d86b579a5b683491204c51db70b..d8d4a1ca2eb062af8b2de4ab44503983587cdd77 100644
|
index 773bfdd3ed457a352b5329f280c0d10297d579ba..5c83d703211725ddc36602bb480545288d6a06d9 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -273,6 +273,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -273,6 +273,17 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
@@ -2858,99 +2792,7 @@ index f39ab10c5b0b8d86b579a5b683491204c51db70b..d8d4a1ca2eb062af8b2de4ab44503983
|
|||||||
this.dimension = resourcekey;
|
this.dimension = resourcekey;
|
||||||
this.isClientSide = flag;
|
this.isClientSide = flag;
|
||||||
if (dimensionmanager.coordinateScale() != 1.0D) {
|
if (dimensionmanager.coordinateScale() != 1.0D) {
|
||||||
@@ -412,6 +430,91 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1003,13 +1021,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ // Pufferfish start - broken down method of raytracing for EntityLiving#hasLineOfSight, replaces IBlockAccess#rayTrace(RayTrace)
|
|
||||||
+ public net.minecraft.world.phys.BlockHitResult.Type rayTraceDirect(net.minecraft.world.phys.Vec3 vec3d, net.minecraft.world.phys.Vec3 vec3d1, net.minecraft.world.phys.shapes.CollisionContext voxelshapecoll) {
|
|
||||||
+ // most of this code comes from IBlockAccess#a(RayTrace, BiFunction, Function), but removes the needless functions
|
|
||||||
+ if (vec3d.equals(vec3d1)) {
|
|
||||||
+ return net.minecraft.world.phys.BlockHitResult.Type.MISS;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ double endX = Mth.lerp(-1.0E-7D, vec3d1.x, vec3d.x);
|
|
||||||
+ double endY = Mth.lerp(-1.0E-7D, vec3d1.y, vec3d.y);
|
|
||||||
+ double endZ = Mth.lerp(-1.0E-7D, vec3d1.z, vec3d.z);
|
|
||||||
+
|
|
||||||
+ double startX = Mth.lerp(-1.0E-7D, vec3d.x, vec3d1.x);
|
|
||||||
+ double startY = Mth.lerp(-1.0E-7D, vec3d.y, vec3d1.y);
|
|
||||||
+ double startZ = Mth.lerp(-1.0E-7D, vec3d.z, vec3d1.z);
|
|
||||||
+
|
|
||||||
+ int currentX = Mth.floor(startX);
|
|
||||||
+ int currentY = Mth.floor(startY);
|
|
||||||
+ int currentZ = Mth.floor(startZ);
|
|
||||||
+
|
|
||||||
+ BlockPos.MutableBlockPos currentBlock = new BlockPos.MutableBlockPos(currentX, currentY, currentZ);
|
|
||||||
+
|
|
||||||
+ LevelChunk chunk = this.getChunkIfLoaded(currentBlock);
|
|
||||||
+ if (chunk == null) {
|
|
||||||
+ return net.minecraft.world.phys.BlockHitResult.Type.MISS;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ net.minecraft.world.phys.BlockHitResult.Type initialCheck = this.rayTraceBlockDirect(vec3d, vec3d1, currentBlock, chunk.getBlockState(currentBlock), voxelshapecoll);
|
|
||||||
+
|
|
||||||
+ if (initialCheck != null) {
|
|
||||||
+ return initialCheck;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ double diffX = endX - startX;
|
|
||||||
+ double diffY = endY - startY;
|
|
||||||
+ double diffZ = endZ - startZ;
|
|
||||||
+
|
|
||||||
+ int xDirection = Mth.sign(diffX);
|
|
||||||
+ int yDirection = Mth.sign(diffY);
|
|
||||||
+ int zDirection = Mth.sign(diffZ);
|
|
||||||
+
|
|
||||||
+ double normalizedX = xDirection == 0 ? Double.MAX_VALUE : (double) xDirection / diffX;
|
|
||||||
+ double normalizedY = yDirection == 0 ? Double.MAX_VALUE : (double) yDirection / diffY;
|
|
||||||
+ double normalizedZ = zDirection == 0 ? Double.MAX_VALUE : (double) zDirection / diffZ;
|
|
||||||
+
|
|
||||||
+ double normalizedXDirection = normalizedX * (xDirection > 0 ? 1.0D - Mth.frac(startX) : Mth.frac(startX));
|
|
||||||
+ double normalizedYDirection = normalizedY * (yDirection > 0 ? 1.0D - Mth.frac(startY) : Mth.frac(startY));
|
|
||||||
+ double normalizedZDirection = normalizedZ * (zDirection > 0 ? 1.0D - Mth.frac(startZ) : Mth.frac(startZ));
|
|
||||||
+
|
|
||||||
+ net.minecraft.world.phys.BlockHitResult.Type result;
|
|
||||||
+
|
|
||||||
+ do {
|
|
||||||
+ if (normalizedXDirection > 1.0D && normalizedYDirection > 1.0D && normalizedZDirection > 1.0D) {
|
|
||||||
+ return net.minecraft.world.phys.BlockHitResult.Type.MISS;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (normalizedXDirection < normalizedYDirection) {
|
|
||||||
+ if (normalizedXDirection < normalizedZDirection) {
|
|
||||||
+ currentX += xDirection;
|
|
||||||
+ normalizedXDirection += normalizedX;
|
|
||||||
+ } else {
|
|
||||||
+ currentZ += zDirection;
|
|
||||||
+ normalizedZDirection += normalizedZ;
|
|
||||||
+ }
|
|
||||||
+ } else if (normalizedYDirection < normalizedZDirection) {
|
|
||||||
+ currentY += yDirection;
|
|
||||||
+ normalizedYDirection += normalizedY;
|
|
||||||
+ } else {
|
|
||||||
+ currentZ += zDirection;
|
|
||||||
+ normalizedZDirection += normalizedZ;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ currentBlock.set(currentX, currentY, currentZ);
|
|
||||||
+ if (chunk.getPos().x != currentBlock.getX() >> 4 || chunk.getPos().z != currentBlock.getZ() >> 4) {
|
|
||||||
+ chunk = this.getChunkIfLoaded(currentBlock);
|
|
||||||
+ if (chunk == null) {
|
|
||||||
+ return net.minecraft.world.phys.BlockHitResult.Type.MISS;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ result = this.rayTraceBlockDirect(vec3d, vec3d1, currentBlock, chunk.getBlockState(currentBlock), voxelshapecoll);
|
|
||||||
+ } while (result == null);
|
|
||||||
+
|
|
||||||
+ return result;
|
|
||||||
+ }
|
|
||||||
+ // Pufferfish end
|
|
||||||
+
|
|
||||||
public boolean isInWorldBounds(BlockPos pos) {
|
|
||||||
return pos.isInsideBuildHeightAndWorldBoundsHorizontal(this); // Paper - use better/optimized check
|
|
||||||
}
|
|
||||||
@@ -919,13 +1022,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
||||||
try {
|
try {
|
||||||
tickConsumer.accept(entity);
|
tickConsumer.accept(entity);
|
||||||
MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick
|
MinecraftServer.getServer().executeMidTickTasks(); // Paper - execute chunk tasks mid tick
|
||||||
@@ -2966,7 +2808,7 @@ index f39ab10c5b0b8d86b579a5b683491204c51db70b..d8d4a1ca2eb062af8b2de4ab44503983
|
|||||||
// Paper end
|
// Paper end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1380,6 +1483,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1464,6 +1482,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProfilerFiller getProfiler() {
|
public ProfilerFiller getProfiler() {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
From: AlphaKR93 <dev@alpha93.kr>
|
From: AlphaKR93 <dev@alpha93.kr>
|
||||||
Date: Sat, 9 Sep 2023 16:32:10 +0000
|
Date: Mon, 11 Sep 2023 01:08:34 +0000
|
||||||
Subject: [PATCH] Purpur Server Changes
|
Subject: [PATCH] Purpur Server Changes
|
||||||
|
|
||||||
Original: PurpurMC
|
Original: PurpurMC
|
||||||
@@ -4794,7 +4794,7 @@ index 759713f7c646aaf1a918c87a2834a1d405385dad..43cdda0cb26c5d5cc9025199eb71673d
|
|||||||
protected ParticleOptions getInkParticle() {
|
protected ParticleOptions getInkParticle() {
|
||||||
return ParticleTypes.GLOW_SQUID_INK;
|
return ParticleTypes.GLOW_SQUID_INK;
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index e07140ef2f4c5b0019550eb3100c724699e7a05c..b84e921d539e300b60b8735cb4f1087d32fa2d41 100644
|
index 0059ceabaed9c1888a6773efb906e761fd1ca252..f1bae6fa9bde0b65ca592d64e9bbb0f6326e3956 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -218,9 +218,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -218,9 +218,9 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
@@ -11143,7 +11143,7 @@ index 18eaccb39a4c81338a8cbebe3de03934913ac2a4..7ad5583f05b608d5a34a33fb77c5bf91
|
|||||||
}
|
}
|
||||||
// Paper end - fix sand duping
|
// Paper end - fix sand duping
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
index 80fc7918cb294b0d88a293bd6a920441cb55c3ad..d045877bfb0f364a43c8448cad21cc39d0565964 100644
|
index b3d809c48b041af03471942213070cc3e0b19f2f..2d9bc2ed2b6afae6e846a6f79bb68adff78e35a7 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
|
||||||
@@ -56,6 +56,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -56,6 +56,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
||||||
@@ -11159,7 +11159,7 @@ index 80fc7918cb294b0d88a293bd6a920441cb55c3ad..d045877bfb0f364a43c8448cad21cc39
|
|||||||
|
|
||||||
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
|
public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
|
||||||
super(type, world);
|
super(type, world);
|
||||||
@@ -358,6 +364,15 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -350,6 +356,15 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
||||||
return false;
|
return false;
|
||||||
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
|
} else if (!this.getItem().getItem().canBeHurtBy(source)) {
|
||||||
return false;
|
return false;
|
||||||
@@ -11175,7 +11175,7 @@ index 80fc7918cb294b0d88a293bd6a920441cb55c3ad..d045877bfb0f364a43c8448cad21cc39
|
|||||||
} else if (this.level().isClientSide) {
|
} else if (this.level().isClientSide) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
@@ -555,6 +570,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
@@ -547,6 +562,12 @@ public class ItemEntity extends Entity implements TraceableEntity {
|
||||||
// com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check
|
// com.google.common.base.Preconditions.checkArgument(!stack.isEmpty(), "Cannot drop air"); // CraftBukkit // Paper - Remove check
|
||||||
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
|
this.getEntityData().set(ItemEntity.DATA_ITEM, stack);
|
||||||
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper
|
this.despawnRate = this.level().paperConfig().entities.spawning.altItemDespawnRate.enabled ? this.level().paperConfig().entities.spawning.altItemDespawnRate.items.getOrDefault(stack.getItem(), this.level().spigotConfig.itemDespawnRate) : this.level().spigotConfig.itemDespawnRate; // Paper
|
||||||
@@ -17556,7 +17556,7 @@ index 8f97c9df726ac20cfce7bdddd5dd4f8c5aa76c35..4932374ab9a3d8582fb0ef024d817ad8
|
|||||||
}
|
}
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0cb805b6d 100644
|
index 5c83d703211725ddc36602bb480545288d6a06d9..80ab17142c34d576409e5fb353ff31db9673b2c0 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -176,6 +176,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
@@ -17635,7 +17635,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
this.generator = gen;
|
this.generator = gen;
|
||||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||||
|
|
||||||
@@ -967,18 +1013,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -966,18 +1012,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void tickBlockEntities() {
|
protected void tickBlockEntities() {
|
||||||
@@ -17659,7 +17659,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
// Spigot start
|
// Spigot start
|
||||||
// Iterator iterator = this.blockEntityTickers.iterator();
|
// Iterator iterator = this.blockEntityTickers.iterator();
|
||||||
int tilesThisCycle = 0;
|
int tilesThisCycle = 0;
|
||||||
@@ -1011,10 +1057,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1010,10 +1056,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
this.blockEntityTickers.removeAll(toRemove);
|
this.blockEntityTickers.removeAll(toRemove);
|
||||||
|
|
||||||
@@ -17672,7 +17672,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
spigotConfig.currentPrimedTnt = 0; // Spigot
|
spigotConfig.currentPrimedTnt = 0; // Spigot
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1207,7 +1253,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1206,7 +1252,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
|
public List<Entity> getEntities(@Nullable Entity except, AABB box, Predicate<? super Entity> predicate) {
|
||||||
@@ -17681,7 +17681,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
List<Entity> list = Lists.newArrayList();
|
List<Entity> list = Lists.newArrayList();
|
||||||
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
|
((ServerLevel)this).getEntityLookup().getEntities(except, box, list, predicate); // Paper - optimise this call
|
||||||
return list;
|
return list;
|
||||||
@@ -1226,7 +1272,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1225,7 +1271,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) {
|
public <T extends Entity> void getEntities(EntityTypeTest<Entity, T> filter, AABB box, Predicate<? super T> predicate, List<? super T> result, int limit) {
|
||||||
@@ -17690,7 +17690,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
// Paper start - optimise this call
|
// Paper start - optimise this call
|
||||||
//TODO use limit
|
//TODO use limit
|
||||||
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
|
if (filter instanceof net.minecraft.world.entity.EntityType entityTypeTest) {
|
||||||
@@ -1483,7 +1529,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1482,7 +1528,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public ProfilerFiller getProfiler() {
|
public ProfilerFiller getProfiler() {
|
||||||
@@ -17699,7 +17699,7 @@ index d8d4a1ca2eb062af8b2de4ab44503983587cdd77..bdb32964524cb2a4398b8d3bedfb03b0
|
|||||||
return (ProfilerFiller) this.profiler.get();
|
return (ProfilerFiller) this.profiler.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1574,4 +1620,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1573,4 +1619,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
@@ -20903,7 +20903,7 @@ index 5e83fabb20bc2b0668cbf48530053ca1bb9092f3..4ffb4046b63cbc140c76721f51c9a7a0
|
|||||||
+ // Purpur end
|
+ // Purpur end
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
index f0ce29d21fe9af803ce4e41b8c037b2ec5d1b124..99dd93c066d4acc177de7f03ae45e491b535f4d1 100644
|
index b25f5931f836fd4d8695120f0bcb7c52deff8583..b473f89c59c0fc080fadd0d4db320895e917fd41 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
@@ -453,7 +453,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -453,7 +453,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
@@ -20942,7 +20942,7 @@ index f0ce29d21fe9af803ce4e41b8c037b2ec5d1b124..99dd93c066d4acc177de7f03ae45e491
|
|||||||
}
|
}
|
||||||
return effects;
|
return effects;
|
||||||
}
|
}
|
||||||
@@ -907,7 +907,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -912,7 +912,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
return EntityCategory.WATER;
|
return EntityCategory.WATER;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -20951,7 +20951,7 @@ index f0ce29d21fe9af803ce4e41b8c037b2ec5d1b124..99dd93c066d4acc177de7f03ae45e491
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1094,4 +1094,32 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -1099,4 +1099,32 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
getHandle().knockback(strength, directionX, directionZ);
|
getHandle().knockback(strength, directionX, directionZ);
|
||||||
};
|
};
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|||||||
@@ -220,10 +220,10 @@ index be7b3fe2dc84493dcde9e185717b0b7c7c2e9822..cfdaa744ff40c8a171ca9b36b305b326
|
|||||||
servergui.runFinalizers();
|
servergui.runFinalizers();
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
index bdb32964524cb2a4398b8d3bedfb03b0cb805b6d..9fb140b3b6a0c621466b85a6ec7df765a4e823b0 100644
|
index 80ab17142c34d576409e5fb353ff31db9673b2c0..32bd43692b701b49776c10d9c4332bb41322b9fa 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||||
@@ -1035,7 +1035,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
@@ -1034,7 +1034,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||||
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(tileTickPosition);
|
TickingBlockEntity tickingblockentity = (TickingBlockEntity) this.blockEntityTickers.get(tileTickPosition);
|
||||||
// Spigot start
|
// Spigot start
|
||||||
if (tickingblockentity == null) {
|
if (tickingblockentity == null) {
|
||||||
@@ -259,10 +259,10 @@ index b08d4a2a74392b1d59b1eeeab3108103d83ad96c..8833a66f43e9a4ac486fa67db9e81470
|
|||||||
private final String bukkitVersion = Versioning.getBukkitVersion();
|
private final String bukkitVersion = Versioning.getBukkitVersion();
|
||||||
private final Logger logger = Logger.getLogger("Minecraft");
|
private final Logger logger = Logger.getLogger("Minecraft");
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
index 99dd93c066d4acc177de7f03ae45e491b535f4d1..9d7965a33db1ce4c294fb06e77d16054d580fd54 100644
|
index b473f89c59c0fc080fadd0d4db320895e917fd41..cdf28d1b5da2f602b020142d5bfc37922e315718 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
@@ -907,7 +907,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -912,7 +912,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
return EntityCategory.WATER;
|
return EntityCategory.WATER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user