geforkt von Mirrors/Paper
654b792caf
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes:a339310c
#755: Fix NPE when calling getInventory() for virtual EnderChests2577f9bf
Increase outdated build delay1dabfdc8
#754: Fix pre-1.16 serialized SkullMeta being broken on 1.16+, losing textures
90 Zeilen
5.0 KiB
Diff
90 Zeilen
5.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Byteflux <byte@byteflux.net>
|
|
Date: Wed, 2 Mar 2016 02:17:54 -0600
|
|
Subject: [PATCH] Generator Settings
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index aaa7ff2c861005618f3b2ab8f960a5199fd678ce..6a102f56316b50c1993890d225b0eb4d619452c1 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -556,4 +556,9 @@ public class PaperWorldConfig {
|
|
private void perPlayerMobSpawns() {
|
|
perPlayerMobSpawns = getBoolean("per-player-mob-spawns", false);
|
|
}
|
|
+
|
|
+ public boolean generateFlatBedrock;
|
|
+ private void generatorSettings() {
|
|
+ generateFlatBedrock = getBoolean("generator-settings.flat-bedrock", false);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java b/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java
|
|
index 24befd3222e73cdd5853aac502a22387b1fdf81a..4741d28aec73ffa1d5a9f60a4086eac3375c83b1 100644
|
|
--- a/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java
|
|
+++ b/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java
|
|
@@ -374,8 +374,8 @@ public final class ChunkGeneratorAbstract extends ChunkGenerator {
|
|
int i = ichunkaccess.getPos().d();
|
|
int j = ichunkaccess.getPos().e();
|
|
GeneratorSettingBase generatorsettingbase = (GeneratorSettingBase) this.h.get();
|
|
- int k = generatorsettingbase.f();
|
|
- int l = this.x - 1 - generatorsettingbase.e();
|
|
+ int k = generatorsettingbase.f(); final int floorHeight = k; // Paper
|
|
+ int l = this.x - 1 - generatorsettingbase.e(); final int roofHeight = l; // Paper
|
|
boolean flag = true;
|
|
boolean flag1 = l + 4 >= 0 && l < this.x;
|
|
boolean flag2 = k + 4 >= 0 && k < this.x;
|
|
@@ -389,7 +389,7 @@ public final class ChunkGeneratorAbstract extends ChunkGenerator {
|
|
|
|
if (flag1) {
|
|
for (i1 = 0; i1 < 5; ++i1) {
|
|
- if (i1 <= random.nextInt(5)) {
|
|
+ if (i1 <= (ichunkaccess.generateFlatBedrock() ? roofHeight : random.nextInt(5))) { // Paper - Configurable flat bedrock roof
|
|
ichunkaccess.setType(blockposition_mutableblockposition.d(blockposition.getX(), l - i1, blockposition.getZ()), Blocks.BEDROCK.getBlockData(), false);
|
|
}
|
|
}
|
|
@@ -397,7 +397,7 @@ public final class ChunkGeneratorAbstract extends ChunkGenerator {
|
|
|
|
if (flag2) {
|
|
for (i1 = 4; i1 >= 0; --i1) {
|
|
- if (i1 <= random.nextInt(5)) {
|
|
+ if (i1 <= (ichunkaccess.generateFlatBedrock() ? floorHeight : random.nextInt(5))) { // Paper - Configurable flat bedrock floor
|
|
ichunkaccess.setType(blockposition_mutableblockposition.d(blockposition.getX(), k + i1, blockposition.getZ()), Blocks.BEDROCK.getBlockData(), false);
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/IChunkAccess.java b/src/main/java/net/minecraft/server/IChunkAccess.java
|
|
index 887366f4c2ab608974113e75760b58c47f2afa00..180b6b58dc5663158db84b6f1257591439b48c31 100644
|
|
--- a/src/main/java/net/minecraft/server/IChunkAccess.java
|
|
+++ b/src/main/java/net/minecraft/server/IChunkAccess.java
|
|
@@ -12,6 +12,18 @@ import org.apache.logging.log4j.LogManager;
|
|
|
|
public interface IChunkAccess extends IBlockAccess, IStructureAccess {
|
|
|
|
+ // Paper start
|
|
+ default boolean generateFlatBedrock() {
|
|
+ if (this instanceof ProtoChunk) {
|
|
+ return ((ProtoChunk)this).world.paperConfig.generateFlatBedrock;
|
|
+ } else if (this instanceof Chunk) {
|
|
+ return ((Chunk)this).world.paperConfig.generateFlatBedrock;
|
|
+ } else {
|
|
+ return false;
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
IBlockData getType(final int x, final int y, final int z); // Paper
|
|
@Nullable
|
|
IBlockData setType(BlockPosition blockposition, IBlockData iblockdata, boolean flag);
|
|
diff --git a/src/main/java/net/minecraft/server/ProtoChunk.java b/src/main/java/net/minecraft/server/ProtoChunk.java
|
|
index 912c5187a08e972fc9455aed33278387a83f03f2..5b0cd414ca1949ab53b289f7159f18da07d21f14 100644
|
|
--- a/src/main/java/net/minecraft/server/ProtoChunk.java
|
|
+++ b/src/main/java/net/minecraft/server/ProtoChunk.java
|
|
@@ -46,7 +46,7 @@ public class ProtoChunk implements IChunkAccess {
|
|
private long s;
|
|
private final Map<WorldGenStage.Features, BitSet> t;
|
|
private volatile boolean u;
|
|
- private final World world; // Paper - Anti-Xray - Add world
|
|
+ final World world; // Paper - Anti-Xray - Add world // Paper - private -> default
|
|
|
|
// Paper start - Anti-Xray - Add world
|
|
@Deprecated public ProtoChunk(ChunkCoordIntPair chunkcoordintpair, ChunkConverter chunkconverter) { this(chunkcoordintpair, chunkconverter, null); } // Notice for updates: Please make sure this constructor isn't used anywhere
|