fix allowPermanentBlockBreakExploits config

This commit is contained in:
Lulu13022002
2024-12-18 23:35:47 +01:00
parent c71ada60db
commit 5922e6334b
18 changed files with 31 additions and 50 deletions

View File

@@ -51,7 +51,7 @@
- boolean flag = i == -z || i == z;
+ // Paper start - Perf: iterate over border chunks instead of entire square chunk area
+ final int radius = z;
+ boolean flag = i == -z || i == z; final boolean onBorderAlongZAxis = flag; // Paper - OBFHELPER
+ boolean flag = i == -z || i == z; final boolean onBorderAlongZAxis = flag; // Paper - OBFHELPER
- for (int i1 = -z; i1 <= z; i1++) {
- boolean flag1 = i1 == -z || i1 == z;
@@ -82,7 +82,7 @@
+ long featurePopulationSeed = l;
+ final long configFeatureSeed = level.getMinecraftWorld().paperConfig().featureSeeds.features.getLong(placedFeature.feature());
+ if (configFeatureSeed != -1) {
+ featurePopulationSeed = worldgenRandom.setDecorationSeed(configFeatureSeed, blockPos.getX(), blockPos.getZ()); // See seededrandom.setDecorationSeed from above
+ featurePopulationSeed = worldgenRandom.setDecorationSeed(configFeatureSeed, blockPos.getX(), blockPos.getZ()); // See WorldgenRandom.setDecorationSeed from above
+ }
+ worldgenRandom.setFeatureSeed(featurePopulationSeed, i3, i);
+ // Paper end - Configurable feature seeds

View File

@@ -265,7 +265,7 @@
public boolean isEmpty() {
return false;
}
@@ -711,23 +_,25 @@
@@ -711,23 +_,24 @@
if (this.blockEntity.getType().isValid(blockState)) {
this.ticker.tick(LevelChunk.this.level, this.blockEntity.getBlockPos(), blockState, this.blockEntity);
this.loggedInvalidBlockState = false;
@@ -278,17 +278,15 @@
- LogUtils.defer(this::getPos),
- blockState
- );
- }
+ // Paper start - Remove the Block Entity if it's invalid
+ } else {
+ LevelChunk.this.removeBlockEntity(this.getPos());
+ if (!this.loggedInvalidBlockState) {
+ this.loggedInvalidBlockState = true;
+ LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", new Object[]{LogUtils.defer(this::getType), LogUtils.defer(this::getPos), blockState});
+ LevelChunk.LOGGER.warn("Block entity {} @ {} state {} invalid for ticking:", LogUtils.defer(this::getType), LogUtils.defer(this::getPos), blockState);
+ }
+ // Paper end - Remove the Block Entity if it's invalid
+ }
+
}
profilerFiller.pop();
} catch (Throwable var5) {