mirror of
https://github.com/PaperMC/Paper.git
synced 2025-02-16 18:31:53 +01:00
fix
This commit is contained in:
parent
92131adaf2
commit
ba53607f83
13 changed files with 161 additions and 40 deletions
|
@ -11,7 +11,7 @@ floating in the air.
|
|||
This can replace many uses of BlockPhysicsEvent
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 924b496aaaa19c7ef69498730725ae9287e46e28..0f4b9b5d3e34b5e08f9ca2f78c5e8bcec9f5a85e 100644
|
||||
index 924b496aaaa19c7ef69498730725ae9287e46e28..aaae30cdef271c85cfb7850b0d811e5f4b8d4874 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -24,6 +24,7 @@ import net.minecraft.core.registries.Registries;
|
||||
|
@ -22,7 +22,15 @@ index 924b496aaaa19c7ef69498730725ae9287e46e28..0f4b9b5d3e34b5e08f9ca2f78c5e8bce
|
|||
import net.minecraft.server.MinecraftServer;
|
||||
import net.minecraft.server.level.FullChunkStatus;
|
||||
import net.minecraft.server.level.ServerLevel;
|
||||
@@ -574,9 +575,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -170,6 +171,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
private int tileTickPosition;
|
||||
public final Map<ServerExplosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
|
||||
public java.util.ArrayDeque<net.minecraft.world.level.block.RedstoneTorchBlock.Toggle> redstoneUpdateInfos; // Paper - Faster redstone torch rapid clock removal; Move from Map in BlockRedstoneTorch to here
|
||||
+ public int expToDrop; // Paper - BlockDestroyEvent
|
||||
|
||||
public CraftWorld getWorld() {
|
||||
return this.world;
|
||||
@@ -574,9 +576,26 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
return false;
|
||||
} else {
|
||||
FluidState fluid = this.getFluidState(pos);
|
||||
|
@ -51,3 +59,116 @@ index 924b496aaaa19c7ef69498730725ae9287e46e28..0f4b9b5d3e34b5e08f9ca2f78c5e8bce
|
|||
}
|
||||
|
||||
if (drop) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java
|
||||
index 4a5badc4bb1e2c29016735e9df93c7ac4d3f363d..c7b5360f4a9fec9567fedbc18409d801f8abcccf 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/BaseRailBlock.java
|
||||
@@ -81,7 +81,18 @@ public abstract class BaseRailBlock extends Block implements SimpleWaterloggedBl
|
||||
if (!world.isClientSide && world.getBlockState(pos).is(this)) {
|
||||
RailShape railShape = state.getValue(this.getShapeProperty());
|
||||
if (shouldBeRemoved(pos, world, railShape)) {
|
||||
- dropResources(state, world, pos);
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ com.destroystokyo.paper.event.block.BlockDestroyEvent event = new com.destroystokyo.paper.event.block.BlockDestroyEvent(org.bukkit.craftbukkit.block.CraftBlock.at(world, pos), world.getFluidState(pos).createLegacyBlock().createCraftBlockData(), state.createCraftBlockData(), 0, true);
|
||||
+ event.setPlayEffect(false);
|
||||
+ if (!event.callEvent())
|
||||
+ return;
|
||||
+ world.expToDrop = event.getExpToDrop();
|
||||
+ if (event.playEffect())
|
||||
+ world.levelEvent(2001, pos, Block.getId(((org.bukkit.craftbukkit.block.data.CraftBlockData) event.getEffectBlock()).getState()));
|
||||
+ if (event.willDrop())
|
||||
+ dropResources(state, world, pos);
|
||||
+ world.expToDrop = 0;
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
world.removeBlock(pos, notify);
|
||||
} else {
|
||||
this.updateState(state, world, pos, sourceBlock);
|
||||
@@ -89,6 +100,13 @@ public abstract class BaseRailBlock extends Block implements SimpleWaterloggedBl
|
||||
}
|
||||
}
|
||||
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ @Override
|
||||
+ public int getExpDrop(final BlockState iblockdata, final net.minecraft.server.level.ServerLevel worldserver, final BlockPos blockposition, final net.minecraft.world.item.ItemStack itemstack, final boolean flag) {
|
||||
+ return worldserver.expToDrop;
|
||||
+ }
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
+
|
||||
private static boolean shouldBeRemoved(BlockPos pos, Level world, RailShape shape) {
|
||||
if (!canSupportRigidBlock(world, pos.below())) {
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/DiodeBlock.java b/src/main/java/net/minecraft/world/level/block/DiodeBlock.java
|
||||
index aa1e81f349831473163c1f1814e89e3c602afc15..5c7f4fe7a5d589b7d03fe63c84d869b01456f341 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/DiodeBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/DiodeBlock.java
|
||||
@@ -98,7 +98,18 @@ public abstract class DiodeBlock extends HorizontalDirectionalBlock {
|
||||
} else {
|
||||
BlockEntity tileentity = state.hasBlockEntity() ? world.getBlockEntity(pos) : null;
|
||||
|
||||
- dropResources(state, world, pos, tileentity);
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ com.destroystokyo.paper.event.block.BlockDestroyEvent event = new com.destroystokyo.paper.event.block.BlockDestroyEvent(org.bukkit.craftbukkit.block.CraftBlock.at(world, pos), world.getFluidState(pos).createLegacyBlock().createCraftBlockData(), state.createCraftBlockData(), 0, true);
|
||||
+ event.setPlayEffect(false);
|
||||
+ if (!event.callEvent())
|
||||
+ return;
|
||||
+ world.expToDrop = event.getExpToDrop();
|
||||
+ if (event.playEffect())
|
||||
+ world.levelEvent(2001, pos, Block.getId(((org.bukkit.craftbukkit.block.data.CraftBlockData) event.getEffectBlock()).getState()));
|
||||
+ if (event.willDrop())
|
||||
+ dropResources(state, world, pos, tileentity);;
|
||||
+ world.expToDrop = 0;
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
world.removeBlock(pos, false);
|
||||
Direction[] aenumdirection = Direction.values();
|
||||
int i = aenumdirection.length;
|
||||
@@ -112,6 +123,13 @@ public abstract class DiodeBlock extends HorizontalDirectionalBlock {
|
||||
}
|
||||
}
|
||||
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ @Override
|
||||
+ public int getExpDrop(final BlockState iblockdata, final ServerLevel worldserver, final BlockPos blockposition, final ItemStack itemstack, final boolean flag) {
|
||||
+ return worldserver.expToDrop;
|
||||
+ }
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
+
|
||||
protected void checkTickOnNeighbor(Level world, BlockPos pos, BlockState state) {
|
||||
if (!this.isLocked(world, pos, state)) {
|
||||
boolean flag = (Boolean) state.getValue(DiodeBlock.POWERED);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java b/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java
|
||||
index 6561e24087dc2b9975f2ee7a3737d453354e4fcc..1e2d82e29d22d291644a5bc9a7dc97d1ccf92f53 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/RedStoneWireBlock.java
|
||||
@@ -365,13 +365,31 @@ public class RedStoneWireBlock extends Block {
|
||||
if (state.canSurvive(world, pos)) {
|
||||
this.updatePowerStrength(world, pos, state, wireOrientation, false);
|
||||
} else {
|
||||
- dropResources(state, world, pos);
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ com.destroystokyo.paper.event.block.BlockDestroyEvent event = new com.destroystokyo.paper.event.block.BlockDestroyEvent(org.bukkit.craftbukkit.block.CraftBlock.at(world, pos), world.getFluidState(pos).createLegacyBlock().createCraftBlockData(), state.createCraftBlockData(), 0, true);
|
||||
+ event.setPlayEffect(false);
|
||||
+ if (!event.callEvent())
|
||||
+ return;
|
||||
+ world.expToDrop = event.getExpToDrop();
|
||||
+ if (event.playEffect())
|
||||
+ world.levelEvent(2001, pos, Block.getId(((org.bukkit.craftbukkit.block.data.CraftBlockData) event.getEffectBlock()).getState()));
|
||||
+ if (event.willDrop())
|
||||
+ dropResources(state, world, pos);
|
||||
+ world.expToDrop = 0;
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
world.removeBlock(pos, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+ // Paper start - BlockDestroyEvent
|
||||
+ @Override
|
||||
+ public int getExpDrop(final BlockState iblockdata, final net.minecraft.server.level.ServerLevel worldserver, final BlockPos blockposition, final net.minecraft.world.item.ItemStack itemstack, final boolean flag) {
|
||||
+ return worldserver.expToDrop;
|
||||
+ }
|
||||
+ // Paper end - BlockDestroyEvent
|
||||
+
|
||||
private static boolean useExperimentalEvaluator(Level world) {
|
||||
return world.enabledFeatures().contains(FeatureFlags.REDSTONE_EXPERIMENTS);
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to
|
|||
just do a get call since the value can never be null.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 0f4b9b5d3e34b5e08f9ca2f78c5e8bcec9f5a85e..1e22ee380237a33c506316e3cfe3f6efb7f9ae4a 100644
|
||||
index aaae30cdef271c85cfb7850b0d811e5f4b8d4874..583fd67f4f26e2a6fe98fad02dd81c7f1497d2bf 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -865,9 +865,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -866,9 +866,12 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
@Nullable
|
||||
public BlockEntity getBlockEntity(BlockPos blockposition, boolean validate) {
|
||||
|
|
|
@ -21,10 +21,10 @@ index f58069f0c9d836cb33f3ea09c562708951a91797..91fb83761885752743adb53cc9ed30dd
|
|||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 71e9c1504d4b85ffb695401974748d56fefb66e6..9536e127ff4d45ca59b74fe0f3dbde9a18c04f42 100644
|
||||
index f128e7ced45736de04f836a32deb31b53dfe3834..5a19741c43d494ba2c0fe2f18dbbf4a0d4e5e166 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -179,6 +179,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -180,6 +180,13 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
public CraftServer getCraftServer() {
|
||||
return (CraftServer) Bukkit.getServer();
|
||||
}
|
||||
|
|
|
@ -10,10 +10,10 @@ chunks did get inlined, but the standard CPS.getChunkAt
|
|||
method was not inlined.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 9536e127ff4d45ca59b74fe0f3dbde9a18c04f42..9afc0eaaca5ab7b6445d90ce53e31a6ae76f8848 100644
|
||||
index 5a19741c43d494ba2c0fe2f18dbbf4a0d4e5e166..1d8a796bdf0183c90a1a2cef460385b8dda1d37f 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -350,7 +350,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -351,7 +351,14 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
@Override
|
||||
public final LevelChunk getChunk(int chunkX, int chunkZ) { // Paper - final to help inline
|
||||
|
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Warn on plugins accessing faraway chunks
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 9afc0eaaca5ab7b6445d90ce53e31a6ae76f8848..f0c2187a92de633a1d4cc7e71ff62cbe30ce8774 100644
|
||||
index 1d8a796bdf0183c90a1a2cef460385b8dda1d37f..92195b486e76fd188de27c7787b3d39bca3c2492 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -337,7 +337,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -338,7 +338,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
}
|
||||
|
||||
private static boolean isInWorldBoundsHorizontal(BlockPos pos) {
|
||||
|
|
|
@ -22,10 +22,10 @@ index 44cc12a3338b5f0448c88192c8674cd36531db34..d59120f0304823361cc4112f55833239
|
|||
itemstack.consume(1, entityhuman);
|
||||
return InteractionResult.SUCCESS;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index f0c2187a92de633a1d4cc7e71ff62cbe30ce8774..18c011c1943867dbc4abee338b03b9be499876dd 100644
|
||||
index 92195b486e76fd188de27c7787b3d39bca3c2492..8e5a3f3fce0300df8419b0b0fdda9eb0391f4bff 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -550,17 +550,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -551,17 +551,18 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// CraftBukkit start
|
||||
iblockdata1.updateIndirectNeighbourShapes(this, blockposition, k, j - 1); // Don't call an event for the old block to limit event spam
|
||||
CraftWorld world = ((ServerLevel) this).getWorld();
|
||||
|
|
|
@ -7,10 +7,10 @@ This causes spawnAfterBreak to spawn xp by default, removing the need to manuall
|
|||
For classes that use custom xp amounts, they can drop the resources with disabling
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 18c011c1943867dbc4abee338b03b9be499876dd..01fbefdbed48ab85481c811cca532c91860626f7 100644
|
||||
index 8e5a3f3fce0300df8419b0b0fdda9eb0391f4bff..a9788e49f5640b63c3eaf69d63ca7614ddba0b90 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -615,7 +615,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -616,7 +616,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
if (drop) {
|
||||
BlockEntity tileentity = iblockdata.hasBlockEntity() ? this.getBlockEntity(pos) : null;
|
||||
|
||||
|
|
|
@ -5,10 +5,10 @@ Subject: [PATCH] Per world ticks per spawn settings
|
|||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 01fbefdbed48ab85481c811cca532c91860626f7..083b72ebacfbba22af2230fb69b311aeee62cb6a 100644
|
||||
index a9788e49f5640b63c3eaf69d63ca7614ddba0b90..bc774c827eeed539fcb559a6e13a4333e42610c9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -185,6 +185,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -186,6 +186,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
return this.getChunkIfLoaded(chunkX, chunkZ) != null;
|
||||
}
|
||||
// Paper end - Use getChunkIfLoadedImmediately
|
||||
|
@ -24,7 +24,7 @@ index 01fbefdbed48ab85481c811cca532c91860626f7..083b72ebacfbba22af2230fb69b311ae
|
|||
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
@@ -198,7 +207,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -199,7 +208,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// CraftBukkit Ticks things
|
||||
for (SpawnCategory spawnCategory : SpawnCategory.values()) {
|
||||
if (CraftSpawnCategory.isValidForLimits(spawnCategory)) {
|
||||
|
|
|
@ -13,10 +13,10 @@ A config is provided if you rather let players use these exploits, and let
|
|||
them destroy the worlds End Portals and get on top of the nether easy.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 083b72ebacfbba22af2230fb69b311aeee62cb6a..ba4006bc7dc31d10f37023cba7995a9621796f73 100644
|
||||
index bc774c827eeed539fcb559a6e13a4333e42610c9..967ff561366d7dff5474d15001343eec2bda46a9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -445,6 +445,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -446,6 +446,10 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
public boolean setBlock(BlockPos pos, BlockState state, int flags, int maxUpdateDepth) {
|
||||
// CraftBukkit start - tree generation
|
||||
if (this.captureTreeGeneration) {
|
||||
|
|
|
@ -29,10 +29,10 @@ index 2f2bcc1b9b32e58bf70ae6c171177ceb333ed6cd..d7afddd1d961495f0b50302a8da0a70f
|
|||
this.x = x;
|
||||
this.y = y;
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 96f18fa8fb5eb856a95e94a42504c00046eb491a..a124a360f45cd71810b8253ce266d52145b6f83b 100644
|
||||
index 7ef3a32a1b4f78c15b0669419168273cd8d4f22b..a344d6738b3678f7b9daa8523731114846d21252 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -339,7 +339,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -340,7 +340,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// Paper end
|
||||
|
||||
public boolean isInWorldBounds(BlockPos pos) {
|
||||
|
|
|
@ -1170,7 +1170,7 @@ index a20e5f896cfbd0a3e60b741562194e30257449c1..7097d87dead028c8dd44cefc97694bad
|
|||
}
|
||||
// Paper end - Send empty chunk
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 128bda0d2a690a69b41325a1bb9a2b924cc883cc..078088a854d466e66411d25d6dd6bcc536db78f3 100644
|
||||
index 06ede24807d3a339452cde31d2a7a42b2c8e451b..483cb7d9cd73d7ac870b6d5b4271735e754bdded 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -172,6 +172,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
@ -1181,7 +1181,7 @@ index 128bda0d2a690a69b41325a1bb9a2b924cc883cc..078088a854d466e66411d25d6dd6bcc5
|
|||
public static BlockPos lastPhysicsProblem; // Spigot
|
||||
private org.spigotmc.TickLimiter entityLimiter;
|
||||
private org.spigotmc.TickLimiter tileLimiter;
|
||||
@@ -205,7 +206,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -206,7 +207,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
|
||||
|
@ -1190,7 +1190,7 @@ index 128bda0d2a690a69b41325a1bb9a2b924cc883cc..078088a854d466e66411d25d6dd6bcc5
|
|||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||
this.generator = gen;
|
||||
@@ -285,6 +286,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -286,6 +287,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// CraftBukkit end
|
||||
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
|
||||
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
|
||||
|
@ -1198,7 +1198,7 @@ index 128bda0d2a690a69b41325a1bb9a2b924cc883cc..078088a854d466e66411d25d6dd6bcc5
|
|||
}
|
||||
|
||||
// Paper start - Cancel hit for vanished players
|
||||
@@ -485,6 +487,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -486,6 +488,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// CraftBukkit end
|
||||
|
||||
BlockState iblockdata1 = chunk.setBlockState(pos, state, (flags & 64) != 0, (flags & 1024) == 0); // CraftBukkit custom NO_PLACE flag
|
||||
|
@ -1598,7 +1598,7 @@ index 5fc9e8e969debb3e15ed474b36a1c48b086d0449..f65cc95ab28e8a3b21eac2b16bd9ebe9
|
|||
private static final byte[] EMPTY_LIGHT = new byte[2048];
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 694eacb7d3ffd28fe7684139554113e58be1ebfa..f3ec7e48f0c1ff3476886a7d64cc0dcc4edeab5f 100644
|
||||
index 3303c796c5990be4566dbad783f96e7970b06e31..02ee599dff305d63b44c724a2f6807d91362f675 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -2692,7 +2692,7 @@ public final class CraftServer implements Server {
|
||||
|
|
|
@ -28416,7 +28416,7 @@ index 50040c497a819cd1229042ab3cb057d34a32cacc..1f9c436a632e4f110be61cf76fcfc3b7
|
|||
+ // Paper end - block counting
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index e5466be840ef32e4fa17c0e9446c4d0b30a56e26..88543de6e51acbe76b89aef4a84de20337d616e4 100644
|
||||
index 0b7aea178cd6097a7dfefd1435b70333c6a2e0ff..6cdb0460c2d232f022ee6ea8dcbe4dcb69b63c75 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -175,7 +175,7 @@ import org.bukkit.event.player.PlayerTeleportEvent;
|
||||
|
@ -29465,7 +29465,7 @@ index e185a33b5b1f8e8e0a0e666b24ba3e9186a8a7ff..5d7a6e4b73f032db356e7ec369b15001
|
|||
|
||||
// Paper start - Affects Spawning API
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7af287af67 100644
|
||||
index 483cb7d9cd73d7ac870b6d5b4271735e754bdded..10328f7e37fe0e6bbc842c13773643d4791adc5a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -83,6 +83,7 @@ import net.minecraft.world.level.storage.LevelData;
|
||||
|
@ -29485,7 +29485,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
|
||||
public static final Codec<ResourceKey<Level>> RESOURCE_KEY_CODEC = ResourceKey.codec(Registries.DIMENSION);
|
||||
public static final ResourceKey<Level> OVERWORLD = ResourceKey.create(Registries.DIMENSION, ResourceLocation.withDefaultNamespace("overworld"));
|
||||
@@ -206,7 +207,639 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -207,7 +208,639 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
|
||||
|
@ -30125,7 +30125,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||
this.generator = gen;
|
||||
@@ -287,6 +920,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -288,6 +921,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
this.entityLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.entityMaxTickTime);
|
||||
this.tileLimiter = new org.spigotmc.TickLimiter(this.spigotConfig.tileMaxTickTime);
|
||||
this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
||||
|
@ -30133,7 +30133,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
}
|
||||
|
||||
// Paper start - Cancel hit for vanished players
|
||||
@@ -556,7 +1190,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -557,7 +1191,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
this.setBlocksDirty(blockposition, iblockdata1, iblockdata2);
|
||||
}
|
||||
|
||||
|
@ -30142,7 +30142,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
this.sendBlockUpdated(blockposition, iblockdata1, iblockdata, i);
|
||||
}
|
||||
|
||||
@@ -819,6 +1453,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -820,6 +1454,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// Iterator<TickingBlockEntity> iterator = this.blockEntityTickers.iterator();
|
||||
boolean flag = this.tickRateManager().runsNormally();
|
||||
|
||||
|
@ -30151,7 +30151,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
int tilesThisCycle = 0;
|
||||
var toRemove = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<TickingBlockEntity>(); // Paper - Fix MC-117075; use removeAll
|
||||
toRemove.add(null); // Paper - Fix MC-117075
|
||||
@@ -834,6 +1470,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -835,6 +1471,11 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
// Spigot end
|
||||
} else if (flag && this.shouldTickBlocksAt(tickingblockentity.getPos())) {
|
||||
tickingblockentity.tick();
|
||||
|
@ -30163,7 +30163,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
}
|
||||
}
|
||||
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
||||
@@ -854,12 +1495,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -855,12 +1496,20 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
entity.discard(org.bukkit.event.entity.EntityRemoveEvent.Cause.DISCARD);
|
||||
// Paper end - Prevent block entity and entity crashes
|
||||
}
|
||||
|
@ -30185,7 +30185,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
}
|
||||
// Paper end - Option to prevent armor stands from doing entity lookups
|
||||
|
||||
@@ -911,7 +1560,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -912,7 +1561,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
}
|
||||
// Paper end - Perf: Optimize capturedTileEntities lookup
|
||||
// CraftBukkit end
|
||||
|
@ -30194,7 +30194,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
}
|
||||
|
||||
public void setBlockEntity(BlockEntity blockEntity) {
|
||||
@@ -1003,26 +1652,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1004,26 +1653,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
Profiler.get().incrementCounter("getEntities");
|
||||
List<Entity> list = Lists.newArrayList();
|
||||
|
||||
|
@ -30227,7 +30227,7 @@ index 078088a854d466e66411d25d6dd6bcc536db78f3..86cd6e1b8f68dd0564ee2a7c60f02d7a
|
|||
}
|
||||
|
||||
@Override
|
||||
@@ -1037,36 +1675,94 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1038,36 +1676,94 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
this.getEntities(filter, box, predicate, result, Integer.MAX_VALUE);
|
||||
}
|
||||
|
||||
|
@ -35994,7 +35994,7 @@ index f65cc95ab28e8a3b21eac2b16bd9ebe97e56e571..0074bc0e7147dc3a8c538e796f14ac9b
|
|||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index f3ec7e48f0c1ff3476886a7d64cc0dcc4edeab5f..ca92d377a774ee46d13e108c528ce78941f906ec 100644
|
||||
index 02ee599dff305d63b44c724a2f6807d91362f675..97ebe3852f34b88e727083b539d94de62dc1ca80 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1432,7 +1432,7 @@ public final class CraftServer implements Server {
|
||||
|
|
|
@ -327,10 +327,10 @@ index d6e942aca1bcc769c390504a4119d6619872c4d4..9b706276dc5b5f55b966c5472c6c4e86
|
|||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 86cd6e1b8f68dd0564ee2a7c60f02d7af287af67..022de445bbbb869c38be4972c98dcf1c665539ec 100644
|
||||
index 10328f7e37fe0e6bbc842c13773643d4791adc5a..dbabd10b3a12f65b5e535c55143f98fe0104a24a 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -1488,6 +1488,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
@@ -1489,6 +1489,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
||||
try {
|
||||
tickConsumer.accept(entity);
|
||||
} catch (Throwable throwable) {
|
||||
|
|
Loading…
Add table
Reference in a new issue