geforkt von Mirrors/Paper
Update from upstream SpigotMC
81e4ab71ca4 b023457499d dc776bee32b 116e6fc98dc 2b97a3846f2
Dieser Commit ist enthalten in:
Ursprung
af1661e8d3
Commit
6e2bd0745f
@ -141,333 +141,343 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/server/BiomeDecorator.java b/src/main/java/net/minecraft/server/BiomeDecorator.java
|
||||
new file mode 100644
|
||||
deleted file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/minecraft/server/BiomeDecorator.java
|
||||
--- a/src/main/java/net/minecraft/server/BiomeDecorator.java
|
||||
+++ /dev/null
|
||||
@@ -0,0 +0,0 @@
|
||||
+package net.minecraft.server;
|
||||
+
|
||||
+import java.util.Random;
|
||||
+
|
||||
+public class BiomeDecorator {
|
||||
+
|
||||
+ protected World a;
|
||||
+ protected Random b;
|
||||
+ protected BlockPosition c;
|
||||
+ protected CustomWorldSettingsFinal d;
|
||||
+ protected WorldGenerator e = new WorldGenClay(4);
|
||||
+ protected WorldGenerator f;
|
||||
+ protected WorldGenerator g;
|
||||
+ protected WorldGenerator h;
|
||||
+ protected WorldGenerator i;
|
||||
+ protected WorldGenerator j;
|
||||
+ protected WorldGenerator k;
|
||||
+ protected WorldGenerator l;
|
||||
+ protected WorldGenerator m;
|
||||
+ protected WorldGenerator n;
|
||||
+ protected WorldGenerator o;
|
||||
+ protected WorldGenerator p;
|
||||
+ protected WorldGenerator q;
|
||||
+ protected WorldGenerator r;
|
||||
+ protected WorldGenFlowers s;
|
||||
+ protected WorldGenerator t;
|
||||
+ protected WorldGenerator u;
|
||||
+ protected WorldGenerator v;
|
||||
+ protected WorldGenerator w;
|
||||
+ protected WorldGenerator x;
|
||||
+ protected WorldGenerator y;
|
||||
+ protected int z;
|
||||
+ protected int A;
|
||||
+ protected int B;
|
||||
+ protected int C;
|
||||
+ protected int D;
|
||||
+ protected int E;
|
||||
+ protected int F;
|
||||
+ protected int G;
|
||||
+ protected int H;
|
||||
+ protected int I;
|
||||
+ protected int J;
|
||||
+ protected int K;
|
||||
+ public boolean L;
|
||||
+
|
||||
+ public BiomeDecorator() {
|
||||
+ this.f = new WorldGenSand(Blocks.SAND, 7);
|
||||
+ this.g = new WorldGenSand(Blocks.GRAVEL, 6);
|
||||
+ this.s = new WorldGenFlowers(Blocks.YELLOW_FLOWER, EnumFlowerVarient.DANDELION);
|
||||
+ this.t = new WorldGenMushrooms(Blocks.BROWN_MUSHROOM);
|
||||
+ this.u = new WorldGenMushrooms(Blocks.RED_MUSHROOM);
|
||||
+ this.v = new WorldGenHugeMushroom();
|
||||
+ this.w = new WorldGenReed();
|
||||
+ this.x = new WorldGenCactus();
|
||||
+ this.y = new WorldGenWaterLily();
|
||||
+ this.B = 2;
|
||||
+ this.C = 1;
|
||||
+ this.H = 1;
|
||||
+ this.I = 3;
|
||||
+ this.J = 1;
|
||||
+ this.L = true;
|
||||
+ }
|
||||
+
|
||||
+ public void a(World world, Random random, BiomeBase biomebase, BlockPosition blockposition) {
|
||||
+ if (this.a != null) {
|
||||
+ throw new RuntimeException("Already decorating");
|
||||
+ } else {
|
||||
+ this.a = world;
|
||||
+ String s = world.getWorldData().getGeneratorOptions();
|
||||
+
|
||||
+ if (s != null) {
|
||||
+ this.d = CustomWorldSettings.a(s).b();
|
||||
+ } else {
|
||||
+ this.d = CustomWorldSettings.a("").b();
|
||||
+ }
|
||||
+
|
||||
+ this.b = random;
|
||||
+ this.c = blockposition;
|
||||
+ this.h = new WorldGenMinable(Blocks.DIRT.getBlockData(), this.d.I);
|
||||
+ this.i = new WorldGenMinable(Blocks.GRAVEL.getBlockData(), this.d.M);
|
||||
+ this.j = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.GRANITE), this.d.Q);
|
||||
+ this.k = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.DIORITE), this.d.U);
|
||||
+ this.l = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.ANDESITE), this.d.Y);
|
||||
+ this.m = new WorldGenMinable(Blocks.COAL_ORE.getBlockData(), this.d.ac);
|
||||
+ this.n = new WorldGenMinable(Blocks.IRON_ORE.getBlockData(), this.d.ag);
|
||||
+ this.o = new WorldGenMinable(Blocks.GOLD_ORE.getBlockData(), this.d.ak);
|
||||
+ this.p = new WorldGenMinable(Blocks.REDSTONE_ORE.getBlockData(), this.d.ao);
|
||||
+ this.q = new WorldGenMinable(Blocks.DIAMOND_ORE.getBlockData(), this.d.as);
|
||||
+ this.r = new WorldGenMinable(Blocks.LAPIS_ORE.getBlockData(), this.d.aw);
|
||||
+ this.a(biomebase);
|
||||
+ this.a = null;
|
||||
+ this.b = null;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ protected void a(BiomeBase biomebase) {
|
||||
+ this.a();
|
||||
+
|
||||
+ int i;
|
||||
+ int j;
|
||||
+ int k;
|
||||
+
|
||||
+ for (i = 0; i < this.I; ++i) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ this.f.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < this.J; ++i) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ this.e.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
+ }
|
||||
+
|
||||
+ for (i = 0; i < this.H; ++i) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ this.g.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
+ }
|
||||
+
|
||||
+ i = this.A;
|
||||
+ if (this.b.nextInt(10) == 0) {
|
||||
+ ++i;
|
||||
+ }
|
||||
+
|
||||
+ int l;
|
||||
+ BlockPosition blockposition;
|
||||
+
|
||||
+ for (j = 0; j < i; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ WorldGenTreeAbstract worldgentreeabstract = biomebase.a(this.b);
|
||||
+
|
||||
+ worldgentreeabstract.e();
|
||||
+ blockposition = this.a.getHighestBlockYAt(this.c.a(k, 0, l));
|
||||
+ if (worldgentreeabstract.generate(this.a, this.b, blockposition)) {
|
||||
+ worldgentreeabstract.a(this.a, this.b, blockposition);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.K; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ this.v.generate(this.a, this.b, this.a.getHighestBlockYAt(this.c.a(k, 0, l)));
|
||||
+ }
|
||||
+
|
||||
+ int i1;
|
||||
+
|
||||
+ for (j = 0; j < this.B; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() + 32);
|
||||
+ blockposition = this.c.a(k, i1, l);
|
||||
+ EnumFlowerVarient enumflowervarient = biomebase.a(this.b, blockposition);
|
||||
+ BlockFlowers blockflowers = enumflowervarient.a().a();
|
||||
+
|
||||
+ if (blockflowers.getMaterial() != Material.AIR) {
|
||||
+ this.s.a(blockflowers, enumflowervarient);
|
||||
+ this.s.generate(this.a, this.b, blockposition);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.C; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ biomebase.b(this.b).generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.D; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ (new WorldGenDeadBush()).generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
+ }
|
||||
+
|
||||
+ j = 0;
|
||||
+
|
||||
+ while (j < this.z) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ blockposition = this.c.a(k, i1, l);
|
||||
+
|
||||
+ while (true) {
|
||||
+ if (blockposition.getY() > 0) {
|
||||
+ BlockPosition blockposition1 = blockposition.down();
|
||||
+
|
||||
+ if (this.a.isEmpty(blockposition1)) {
|
||||
+ blockposition = blockposition1;
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ this.y.generate(this.a, this.b, blockposition);
|
||||
+ ++j;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.E; ++j) {
|
||||
+ if (this.b.nextInt(4) == 0) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ BlockPosition blockposition2 = this.a.getHighestBlockYAt(this.c.a(k, 0, l));
|
||||
+
|
||||
+ this.t.generate(this.a, this.b, blockposition2);
|
||||
+ }
|
||||
+
|
||||
+ if (this.b.nextInt(8) == 0) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ blockposition = this.c.a(k, i1, l);
|
||||
+ this.u.generate(this.a, this.b, blockposition);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (this.b.nextInt(4) == 0) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2);
|
||||
+ this.t.generate(this.a, this.b, this.c.a(j, l, k));
|
||||
+ }
|
||||
+
|
||||
+ if (this.b.nextInt(8) == 0) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2);
|
||||
+ this.u.generate(this.a, this.b, this.c.a(j, l, k));
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.F; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ this.w.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < 10; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ this.w.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
+ }
|
||||
+
|
||||
+ if (this.b.nextInt(32) == 0) {
|
||||
+ j = this.b.nextInt(16) + 8;
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2);
|
||||
+ (new WorldGenPumpkin()).generate(this.a, this.b, this.c.a(j, l, k));
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < this.G; ++j) {
|
||||
+ k = this.b.nextInt(16) + 8;
|
||||
+ l = this.b.nextInt(16) + 8;
|
||||
+ i1 = this.b.nextInt(this.a.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2);
|
||||
+ this.x.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
+ }
|
||||
+
|
||||
+ if (this.L) {
|
||||
+ BlockPosition blockposition3;
|
||||
+
|
||||
+ for (j = 0; j < 50; ++j) {
|
||||
+ blockposition3 = this.c.a(this.b.nextInt(16) + 8, this.b.nextInt(this.b.nextInt(248) + 8), this.b.nextInt(16) + 8);
|
||||
+ (new WorldGenLiquids(Blocks.FLOWING_WATER)).generate(this.a, this.b, blockposition3);
|
||||
+ }
|
||||
+
|
||||
+ for (j = 0; j < 20; ++j) {
|
||||
+ blockposition3 = this.c.a(this.b.nextInt(16) + 8, this.b.nextInt(this.b.nextInt(this.b.nextInt(240) + 8) + 8), this.b.nextInt(16) + 8);
|
||||
+ (new WorldGenLiquids(Blocks.FLOWING_LAVA)).generate(this.a, this.b, blockposition3);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ protected void a(int i, WorldGenerator worldgenerator, int j, int k) {
|
||||
+ int l;
|
||||
+
|
||||
+ if (k < j) {
|
||||
+ l = j;
|
||||
+ j = k;
|
||||
+ k = l;
|
||||
+ } else if (k == j) {
|
||||
+ if (j < 255) {
|
||||
+ ++k;
|
||||
+ } else {
|
||||
+ --j;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ for (l = 0; l < i; ++l) {
|
||||
+ BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k - j) + j, this.b.nextInt(16));
|
||||
+
|
||||
+ worldgenerator.generate(this.a, this.b, blockposition);
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ protected void b(int i, WorldGenerator worldgenerator, int j, int k) {
|
||||
+ for (int l = 0; l < i; ++l) {
|
||||
+ BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k) + this.b.nextInt(k) + j - k, this.b.nextInt(16));
|
||||
+
|
||||
+ worldgenerator.generate(this.a, this.b, blockposition);
|
||||
+ }
|
||||
+
|
||||
+ }
|
||||
+
|
||||
+ protected void a() {
|
||||
+ this.a(this.d.J, this.h, this.d.K, this.d.L);
|
||||
+ this.a(this.d.N, this.i, this.d.O, this.d.P);
|
||||
+ this.a(this.d.V, this.k, this.d.W, this.d.X);
|
||||
+ this.a(this.d.R, this.j, this.d.S, this.d.T);
|
||||
+ this.a(this.d.Z, this.l, this.d.aa, this.d.ab);
|
||||
+ this.a(this.d.ad, this.m, this.d.ae, this.d.af);
|
||||
+ this.a(this.d.ah, this.n, this.d.ai, this.d.aj);
|
||||
+ this.a(this.d.al, this.o, this.d.am, this.d.an);
|
||||
+ this.a(this.d.ap, this.p, this.d.aq, this.d.ar);
|
||||
+ this.a(this.d.at, this.q, this.d.au, this.d.av);
|
||||
+ this.b(this.d.ax, this.r, this.d.ay, this.d.az);
|
||||
+ }
|
||||
+}
|
||||
-package net.minecraft.server;
|
||||
-
|
||||
-import java.util.Random;
|
||||
-
|
||||
-public class BiomeDecorator {
|
||||
-
|
||||
- protected World a;
|
||||
- protected Random b;
|
||||
- protected BlockPosition c;
|
||||
- protected CustomWorldSettingsFinal d;
|
||||
- protected WorldGenerator e = new WorldGenClay(4);
|
||||
- protected WorldGenerator f;
|
||||
- protected WorldGenerator g;
|
||||
- protected WorldGenerator h;
|
||||
- protected WorldGenerator i;
|
||||
- protected WorldGenerator j;
|
||||
- protected WorldGenerator k;
|
||||
- protected WorldGenerator l;
|
||||
- protected WorldGenerator m;
|
||||
- protected WorldGenerator n;
|
||||
- protected WorldGenerator o;
|
||||
- protected WorldGenerator p;
|
||||
- protected WorldGenerator q;
|
||||
- protected WorldGenerator r;
|
||||
- protected WorldGenFlowers s;
|
||||
- protected WorldGenerator t;
|
||||
- protected WorldGenerator u;
|
||||
- protected WorldGenerator v;
|
||||
- protected WorldGenerator w;
|
||||
- protected WorldGenerator x;
|
||||
- protected WorldGenerator y;
|
||||
- protected int z;
|
||||
- protected int A;
|
||||
- protected int B;
|
||||
- protected int C;
|
||||
- protected int D;
|
||||
- protected int E;
|
||||
- protected int F;
|
||||
- protected int G;
|
||||
- protected int H;
|
||||
- protected int I;
|
||||
- protected int J;
|
||||
- protected int K;
|
||||
- public boolean L;
|
||||
-
|
||||
- public BiomeDecorator() {
|
||||
- this.f = new WorldGenSand(Blocks.SAND, 7);
|
||||
- this.g = new WorldGenSand(Blocks.GRAVEL, 6);
|
||||
- this.s = new WorldGenFlowers(Blocks.YELLOW_FLOWER, EnumFlowerVarient.DANDELION);
|
||||
- this.t = new WorldGenMushrooms(Blocks.BROWN_MUSHROOM);
|
||||
- this.u = new WorldGenMushrooms(Blocks.RED_MUSHROOM);
|
||||
- this.v = new WorldGenHugeMushroom();
|
||||
- this.w = new WorldGenReed();
|
||||
- this.x = new WorldGenCactus();
|
||||
- this.y = new WorldGenWaterLily();
|
||||
- this.B = 2;
|
||||
- this.C = 1;
|
||||
- this.H = 1;
|
||||
- this.I = 3;
|
||||
- this.J = 1;
|
||||
- this.L = true;
|
||||
- }
|
||||
-
|
||||
- public void a(World world, Random random, BiomeBase biomebase, BlockPosition blockposition) {
|
||||
- if (this.a != null) {
|
||||
- throw new RuntimeException("Already decorating");
|
||||
- } else {
|
||||
- this.a = world;
|
||||
- String s = world.getWorldData().getGeneratorOptions();
|
||||
-
|
||||
- if (s != null) {
|
||||
- this.d = CustomWorldSettings.a(s).b();
|
||||
- } else {
|
||||
- this.d = CustomWorldSettings.a("").b();
|
||||
- }
|
||||
-
|
||||
- this.b = random;
|
||||
- this.c = blockposition;
|
||||
- this.h = new WorldGenMinable(Blocks.DIRT.getBlockData(), this.d.I);
|
||||
- this.i = new WorldGenMinable(Blocks.GRAVEL.getBlockData(), this.d.M);
|
||||
- this.j = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.GRANITE), this.d.Q);
|
||||
- this.k = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.DIORITE), this.d.U);
|
||||
- this.l = new WorldGenMinable(Blocks.STONE.getBlockData().set(BlockStone.VARIANT, EnumStoneVariant.ANDESITE), this.d.Y);
|
||||
- this.m = new WorldGenMinable(Blocks.COAL_ORE.getBlockData(), this.d.ac);
|
||||
- this.n = new WorldGenMinable(Blocks.IRON_ORE.getBlockData(), this.d.ag);
|
||||
- this.o = new WorldGenMinable(Blocks.GOLD_ORE.getBlockData(), this.d.ak);
|
||||
- this.p = new WorldGenMinable(Blocks.REDSTONE_ORE.getBlockData(), this.d.ao);
|
||||
- this.q = new WorldGenMinable(Blocks.DIAMOND_ORE.getBlockData(), this.d.as);
|
||||
- this.r = new WorldGenMinable(Blocks.LAPIS_ORE.getBlockData(), this.d.aw);
|
||||
- this.a(biomebase);
|
||||
- this.a = null;
|
||||
- this.b = null;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- protected void a(BiomeBase biomebase) {
|
||||
- this.a();
|
||||
-
|
||||
- int i;
|
||||
- int j;
|
||||
- int k;
|
||||
-
|
||||
- for (i = 0; i < this.I; ++i) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- this.f.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
- }
|
||||
-
|
||||
- for (i = 0; i < this.J; ++i) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- this.e.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
- }
|
||||
-
|
||||
- for (i = 0; i < this.H; ++i) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- this.g.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
|
||||
- }
|
||||
-
|
||||
- i = this.A;
|
||||
- if (this.b.nextInt(10) == 0) {
|
||||
- ++i;
|
||||
- }
|
||||
-
|
||||
- int l;
|
||||
- BlockPosition blockposition;
|
||||
-
|
||||
- for (j = 0; j < i; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- WorldGenTreeAbstract worldgentreeabstract = biomebase.a(this.b);
|
||||
-
|
||||
- worldgentreeabstract.e();
|
||||
- blockposition = this.getHighestBlockYAt(this.c.a(k, 0, l)); // CraftBukkit - Prevent crash
|
||||
- if (worldgentreeabstract.generate(this.a, this.b, blockposition)) {
|
||||
- worldgentreeabstract.a(this.a, this.b, blockposition);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.K; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- this.v.generate(this.a, this.b, this.getHighestBlockYAt(this.c.a(k, 0, l ))); // CraftBukkit - Prevent crash
|
||||
- }
|
||||
-
|
||||
- int i1;
|
||||
-
|
||||
- for (j = 0; j < this.B; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() + 32); // CraftBukkit - Prevent crash
|
||||
- blockposition = this.c.a(k, i1, l);
|
||||
- EnumFlowerVarient enumflowervarient = biomebase.a(this.b, blockposition);
|
||||
- BlockFlowers blockflowers = enumflowervarient.a().a();
|
||||
-
|
||||
- if (blockflowers.getMaterial() != Material.AIR) {
|
||||
- this.s.a(blockflowers, enumflowervarient);
|
||||
- this.s.generate(this.a, this.b, blockposition);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.C; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- biomebase.b(this.b).generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.D; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- (new WorldGenDeadBush()).generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
- }
|
||||
-
|
||||
- j = 0;
|
||||
-
|
||||
- while (j < this.z) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- blockposition = this.c.a(k, i1, l);
|
||||
-
|
||||
- while (true) {
|
||||
- if (blockposition.getY() > 0) {
|
||||
- BlockPosition blockposition1 = blockposition.down();
|
||||
-
|
||||
- if (this.a.isEmpty(blockposition1)) {
|
||||
- blockposition = blockposition1;
|
||||
- continue;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- this.y.generate(this.a, this.b, blockposition);
|
||||
- ++j;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.E; ++j) {
|
||||
- if (this.b.nextInt(4) == 0) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- BlockPosition blockposition2 = this.getHighestBlockYAt(this.c.a(k, 0, l)); // CraftBukkit - Prevent crash
|
||||
-
|
||||
- this.t.generate(this.a, this.b, blockposition2);
|
||||
- }
|
||||
-
|
||||
- if (this.b.nextInt(8) == 0) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- blockposition = this.c.a(k, i1, l);
|
||||
- this.u.generate(this.a, this.b, blockposition);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- if (this.b.nextInt(4) == 0) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(this.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- this.t.generate(this.a, this.b, this.c.a(j, l, k));
|
||||
- }
|
||||
-
|
||||
- if (this.b.nextInt(8) == 0) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(this.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- this.u.generate(this.a, this.b, this.c.a(j, l, k));
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.F; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- this.w.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < 10; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- this.w.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
- }
|
||||
-
|
||||
- if (this.b.nextInt(32) == 0) {
|
||||
- j = this.b.nextInt(16) + 8;
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(this.getHighestBlockYAt(this.c.a(j, 0, k)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- (new WorldGenPumpkin()).generate(this.a, this.b, this.c.a(j, l, k));
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < this.G; ++j) {
|
||||
- k = this.b.nextInt(16) + 8;
|
||||
- l = this.b.nextInt(16) + 8;
|
||||
- i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
|
||||
- this.x.generate(this.a, this.b, this.c.a(k, i1, l));
|
||||
- }
|
||||
-
|
||||
- if (this.L) {
|
||||
- BlockPosition blockposition3;
|
||||
-
|
||||
- for (j = 0; j < 50; ++j) {
|
||||
- blockposition3 = this.c.a(this.b.nextInt(16) + 8, this.b.nextInt(this.b.nextInt(248) + 8), this.b.nextInt(16) + 8);
|
||||
- (new WorldGenLiquids(Blocks.FLOWING_WATER)).generate(this.a, this.b, blockposition3);
|
||||
- }
|
||||
-
|
||||
- for (j = 0; j < 20; ++j) {
|
||||
- blockposition3 = this.c.a(this.b.nextInt(16) + 8, this.b.nextInt(this.b.nextInt(this.b.nextInt(240) + 8) + 8), this.b.nextInt(16) + 8);
|
||||
- (new WorldGenLiquids(Blocks.FLOWING_LAVA)).generate(this.a, this.b, blockposition3);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- }
|
||||
-
|
||||
- // CraftBukkit start - The heightMap can be wrong calculated and return Y = 0 which will crash the Server
|
||||
- private BlockPosition getHighestBlockYAt( BlockPosition blockPosition ) {
|
||||
- BlockPosition returnBlockPosition = this.a.getHighestBlockYAt( blockPosition );
|
||||
- if ( returnBlockPosition.getY() == 0 ) {
|
||||
- returnBlockPosition = returnBlockPosition.up( 1 );
|
||||
- }
|
||||
- return returnBlockPosition;
|
||||
- }
|
||||
- // CraftBukkit end
|
||||
-
|
||||
- protected void a(int i, WorldGenerator worldgenerator, int j, int k) {
|
||||
- int l;
|
||||
-
|
||||
- if (k < j) {
|
||||
- l = j;
|
||||
- j = k;
|
||||
- k = l;
|
||||
- } else if (k == j) {
|
||||
- if (j < 255) {
|
||||
- ++k;
|
||||
- } else {
|
||||
- --j;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- for (l = 0; l < i; ++l) {
|
||||
- BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k - j) + j, this.b.nextInt(16));
|
||||
-
|
||||
- worldgenerator.generate(this.a, this.b, blockposition);
|
||||
- }
|
||||
-
|
||||
- }
|
||||
-
|
||||
- protected void b(int i, WorldGenerator worldgenerator, int j, int k) {
|
||||
- for (int l = 0; l < i; ++l) {
|
||||
- BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k) + this.b.nextInt(k) + j - k, this.b.nextInt(16));
|
||||
-
|
||||
- worldgenerator.generate(this.a, this.b, blockposition);
|
||||
- }
|
||||
-
|
||||
- }
|
||||
-
|
||||
- protected void a() {
|
||||
- this.a(this.d.J, this.h, this.d.K, this.d.L);
|
||||
- this.a(this.d.N, this.i, this.d.O, this.d.P);
|
||||
- this.a(this.d.V, this.k, this.d.W, this.d.X);
|
||||
- this.a(this.d.R, this.j, this.d.S, this.d.T);
|
||||
- this.a(this.d.Z, this.l, this.d.aa, this.d.ab);
|
||||
- this.a(this.d.ad, this.m, this.d.ae, this.d.af);
|
||||
- this.a(this.d.ah, this.n, this.d.ai, this.d.aj);
|
||||
- this.a(this.d.al, this.o, this.d.am, this.d.an);
|
||||
- this.a(this.d.ap, this.p, this.d.aq, this.d.ar);
|
||||
- this.a(this.d.at, this.q, this.d.au, this.d.av);
|
||||
- this.b(this.d.ax, this.r, this.d.ay, this.d.az);
|
||||
- }
|
||||
-}
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockAnvil.java b/src/main/java/net/minecraft/server/BlockAnvil.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
|
@ -90,11 +90,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||
- this.author = tag.getString(BOOK_AUTHOR.NBT);
|
||||
+ this.author = limit( tag.getString(BOOK_AUTHOR.NBT), 1024 ); // Spigot
|
||||
}
|
||||
|
||||
if (tag.hasKey(RESOLVED.NBT)) {
|
||||
|
||||
boolean resolved = false;
|
||||
@@ -0,0 +0,0 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
|
||||
if (resolved != null && resolved) {
|
||||
page = CraftChatMessage.fromComponent(ChatSerializer.a(page));
|
||||
// Ignore and treat as an old book
|
||||
}
|
||||
}
|
||||
- pageArray[i] = page;
|
||||
+ pageArray[i] = limit( page, 2048 ); // Spigot
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren