Update from upstream SpigotMC

81e4ab71ca4
b023457499d
dc776bee32b
116e6fc98dc
2b97a3846f2
This commit is contained in:
Zach Brown
2014-12-12 22:47:57 -06:00
parent af1661e8d3
commit 6e2bd0745f
2 changed files with 339 additions and 329 deletions

View File

@@ -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 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 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
--- /dev/null --- a/src/main/java/net/minecraft/server/BiomeDecorator.java
+++ b/src/main/java/net/minecraft/server/BiomeDecorator.java +++ /dev/null
@@ -0,0 +0,0 @@ @@ -0,0 +0,0 @@
+package net.minecraft.server; -package net.minecraft.server;
+ -
+import java.util.Random; -import java.util.Random;
+ -
+public class BiomeDecorator { -public class BiomeDecorator {
+ -
+ protected World a; - protected World a;
+ protected Random b; - protected Random b;
+ protected BlockPosition c; - protected BlockPosition c;
+ protected CustomWorldSettingsFinal d; - protected CustomWorldSettingsFinal d;
+ protected WorldGenerator e = new WorldGenClay(4); - protected WorldGenerator e = new WorldGenClay(4);
+ protected WorldGenerator f; - protected WorldGenerator f;
+ protected WorldGenerator g; - protected WorldGenerator g;
+ protected WorldGenerator h; - protected WorldGenerator h;
+ protected WorldGenerator i; - protected WorldGenerator i;
+ protected WorldGenerator j; - protected WorldGenerator j;
+ protected WorldGenerator k; - protected WorldGenerator k;
+ protected WorldGenerator l; - protected WorldGenerator l;
+ protected WorldGenerator m; - protected WorldGenerator m;
+ protected WorldGenerator n; - protected WorldGenerator n;
+ protected WorldGenerator o; - protected WorldGenerator o;
+ protected WorldGenerator p; - protected WorldGenerator p;
+ protected WorldGenerator q; - protected WorldGenerator q;
+ protected WorldGenerator r; - protected WorldGenerator r;
+ protected WorldGenFlowers s; - protected WorldGenFlowers s;
+ protected WorldGenerator t; - protected WorldGenerator t;
+ protected WorldGenerator u; - protected WorldGenerator u;
+ protected WorldGenerator v; - protected WorldGenerator v;
+ protected WorldGenerator w; - protected WorldGenerator w;
+ protected WorldGenerator x; - protected WorldGenerator x;
+ protected WorldGenerator y; - protected WorldGenerator y;
+ protected int z; - protected int z;
+ protected int A; - protected int A;
+ protected int B; - protected int B;
+ protected int C; - protected int C;
+ protected int D; - protected int D;
+ protected int E; - protected int E;
+ protected int F; - protected int F;
+ protected int G; - protected int G;
+ protected int H; - protected int H;
+ protected int I; - protected int I;
+ protected int J; - protected int J;
+ protected int K; - protected int K;
+ public boolean L; - public boolean L;
+ -
+ public BiomeDecorator() { - public BiomeDecorator() {
+ this.f = new WorldGenSand(Blocks.SAND, 7); - this.f = new WorldGenSand(Blocks.SAND, 7);
+ this.g = new WorldGenSand(Blocks.GRAVEL, 6); - this.g = new WorldGenSand(Blocks.GRAVEL, 6);
+ this.s = new WorldGenFlowers(Blocks.YELLOW_FLOWER, EnumFlowerVarient.DANDELION); - this.s = new WorldGenFlowers(Blocks.YELLOW_FLOWER, EnumFlowerVarient.DANDELION);
+ this.t = new WorldGenMushrooms(Blocks.BROWN_MUSHROOM); - this.t = new WorldGenMushrooms(Blocks.BROWN_MUSHROOM);
+ this.u = new WorldGenMushrooms(Blocks.RED_MUSHROOM); - this.u = new WorldGenMushrooms(Blocks.RED_MUSHROOM);
+ this.v = new WorldGenHugeMushroom(); - this.v = new WorldGenHugeMushroom();
+ this.w = new WorldGenReed(); - this.w = new WorldGenReed();
+ this.x = new WorldGenCactus(); - this.x = new WorldGenCactus();
+ this.y = new WorldGenWaterLily(); - this.y = new WorldGenWaterLily();
+ this.B = 2; - this.B = 2;
+ this.C = 1; - this.C = 1;
+ this.H = 1; - this.H = 1;
+ this.I = 3; - this.I = 3;
+ this.J = 1; - this.J = 1;
+ this.L = true; - this.L = true;
+ } - }
+ -
+ public void a(World world, Random random, BiomeBase biomebase, BlockPosition blockposition) { - public void a(World world, Random random, BiomeBase biomebase, BlockPosition blockposition) {
+ if (this.a != null) { - if (this.a != null) {
+ throw new RuntimeException("Already decorating"); - throw new RuntimeException("Already decorating");
+ } else { - } else {
+ this.a = world; - this.a = world;
+ String s = world.getWorldData().getGeneratorOptions(); - String s = world.getWorldData().getGeneratorOptions();
+ -
+ if (s != null) { - if (s != null) {
+ this.d = CustomWorldSettings.a(s).b(); - this.d = CustomWorldSettings.a(s).b();
+ } else { - } else {
+ this.d = CustomWorldSettings.a("").b(); - this.d = CustomWorldSettings.a("").b();
+ } - }
+ -
+ this.b = random; - this.b = random;
+ this.c = blockposition; - this.c = blockposition;
+ this.h = new WorldGenMinable(Blocks.DIRT.getBlockData(), this.d.I); - this.h = new WorldGenMinable(Blocks.DIRT.getBlockData(), this.d.I);
+ this.i = new WorldGenMinable(Blocks.GRAVEL.getBlockData(), this.d.M); - 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.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.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.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.m = new WorldGenMinable(Blocks.COAL_ORE.getBlockData(), this.d.ac);
+ this.n = new WorldGenMinable(Blocks.IRON_ORE.getBlockData(), this.d.ag); - this.n = new WorldGenMinable(Blocks.IRON_ORE.getBlockData(), this.d.ag);
+ this.o = new WorldGenMinable(Blocks.GOLD_ORE.getBlockData(), this.d.ak); - this.o = new WorldGenMinable(Blocks.GOLD_ORE.getBlockData(), this.d.ak);
+ this.p = new WorldGenMinable(Blocks.REDSTONE_ORE.getBlockData(), this.d.ao); - this.p = new WorldGenMinable(Blocks.REDSTONE_ORE.getBlockData(), this.d.ao);
+ this.q = new WorldGenMinable(Blocks.DIAMOND_ORE.getBlockData(), this.d.as); - this.q = new WorldGenMinable(Blocks.DIAMOND_ORE.getBlockData(), this.d.as);
+ this.r = new WorldGenMinable(Blocks.LAPIS_ORE.getBlockData(), this.d.aw); - this.r = new WorldGenMinable(Blocks.LAPIS_ORE.getBlockData(), this.d.aw);
+ this.a(biomebase); - this.a(biomebase);
+ this.a = null; - this.a = null;
+ this.b = null; - this.b = null;
+ } - }
+ } - }
+ -
+ protected void a(BiomeBase biomebase) { - protected void a(BiomeBase biomebase) {
+ this.a(); - this.a();
+ -
+ int i; - int i;
+ int j; - int j;
+ int k; - int k;
+ -
+ for (i = 0; i < this.I; ++i) { - for (i = 0; i < this.I; ++i) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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))); - this.f.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
+ } - }
+ -
+ for (i = 0; i < this.J; ++i) { - for (i = 0; i < this.J; ++i) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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))); - this.e.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
+ } - }
+ -
+ for (i = 0; i < this.H; ++i) { - for (i = 0; i < this.H; ++i) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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))); - this.g.generate(this.a, this.b, this.a.r(this.c.a(j, 0, k)));
+ } - }
+ -
+ i = this.A; - i = this.A;
+ if (this.b.nextInt(10) == 0) { - if (this.b.nextInt(10) == 0) {
+ ++i; - ++i;
+ } - }
+ -
+ int l; - int l;
+ BlockPosition blockposition; - BlockPosition blockposition;
+ -
+ for (j = 0; j < i; ++j) { - for (j = 0; j < i; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = this.b.nextInt(16) + 8; - l = this.b.nextInt(16) + 8;
+ WorldGenTreeAbstract worldgentreeabstract = biomebase.a(this.b); - WorldGenTreeAbstract worldgentreeabstract = biomebase.a(this.b);
+ -
+ worldgentreeabstract.e(); - worldgentreeabstract.e();
+ blockposition = this.a.getHighestBlockYAt(this.c.a(k, 0, l)); - blockposition = this.getHighestBlockYAt(this.c.a(k, 0, l)); // CraftBukkit - Prevent crash
+ if (worldgentreeabstract.generate(this.a, this.b, blockposition)) { - if (worldgentreeabstract.generate(this.a, this.b, blockposition)) {
+ worldgentreeabstract.a(this.a, this.b, blockposition); - worldgentreeabstract.a(this.a, this.b, blockposition);
+ } - }
+ } - }
+ -
+ for (j = 0; j < this.K; ++j) { - for (j = 0; j < this.K; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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))); - this.v.generate(this.a, this.b, this.getHighestBlockYAt(this.c.a(k, 0, l ))); // CraftBukkit - Prevent crash
+ } - }
+ -
+ int i1; - int i1;
+ -
+ for (j = 0; j < this.B; ++j) { - for (j = 0; j < this.B; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() + 32); // CraftBukkit - Prevent crash
+ blockposition = this.c.a(k, i1, l); - blockposition = this.c.a(k, i1, l);
+ EnumFlowerVarient enumflowervarient = biomebase.a(this.b, blockposition); - EnumFlowerVarient enumflowervarient = biomebase.a(this.b, blockposition);
+ BlockFlowers blockflowers = enumflowervarient.a().a(); - BlockFlowers blockflowers = enumflowervarient.a().a();
+ -
+ if (blockflowers.getMaterial() != Material.AIR) { - if (blockflowers.getMaterial() != Material.AIR) {
+ this.s.a(blockflowers, enumflowervarient); - this.s.a(blockflowers, enumflowervarient);
+ this.s.generate(this.a, this.b, blockposition); - this.s.generate(this.a, this.b, blockposition);
+ } - }
+ } - }
+ -
+ for (j = 0; j < this.C; ++j) { - for (j = 0; j < this.C; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - 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)); - biomebase.b(this.b).generate(this.a, this.b, this.c.a(k, i1, l));
+ } - }
+ -
+ for (j = 0; j < this.D; ++j) { - for (j = 0; j < this.D; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - 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)); - (new WorldGenDeadBush()).generate(this.a, this.b, this.c.a(k, i1, l));
+ } - }
+ -
+ j = 0; - j = 0;
+ -
+ while (j < this.z) { - while (j < this.z) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
+ blockposition = this.c.a(k, i1, l); - blockposition = this.c.a(k, i1, l);
+ -
+ while (true) { - while (true) {
+ if (blockposition.getY() > 0) { - if (blockposition.getY() > 0) {
+ BlockPosition blockposition1 = blockposition.down(); - BlockPosition blockposition1 = blockposition.down();
+ -
+ if (this.a.isEmpty(blockposition1)) { - if (this.a.isEmpty(blockposition1)) {
+ blockposition = blockposition1; - blockposition = blockposition1;
+ continue; - continue;
+ } - }
+ } - }
+ -
+ this.y.generate(this.a, this.b, blockposition); - this.y.generate(this.a, this.b, blockposition);
+ ++j; - ++j;
+ break; - break;
+ } - }
+ } - }
+ -
+ for (j = 0; j < this.E; ++j) { - for (j = 0; j < this.E; ++j) {
+ if (this.b.nextInt(4) == 0) { - if (this.b.nextInt(4) == 0) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = this.b.nextInt(16) + 8; - l = this.b.nextInt(16) + 8;
+ BlockPosition blockposition2 = this.a.getHighestBlockYAt(this.c.a(k, 0, l)); - BlockPosition blockposition2 = this.getHighestBlockYAt(this.c.a(k, 0, l)); // CraftBukkit - Prevent crash
+ -
+ this.t.generate(this.a, this.b, blockposition2); - this.t.generate(this.a, this.b, blockposition2);
+ } - }
+ -
+ if (this.b.nextInt(8) == 0) { - if (this.b.nextInt(8) == 0) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - i1 = this.b.nextInt(this.getHighestBlockYAt(this.c.a(k, 0, l)).getY() * 2); // CraftBukkit - Prevent crash
+ blockposition = this.c.a(k, i1, l); - blockposition = this.c.a(k, i1, l);
+ this.u.generate(this.a, this.b, blockposition); - this.u.generate(this.a, this.b, blockposition);
+ } - }
+ } - }
+ -
+ if (this.b.nextInt(4) == 0) { - if (this.b.nextInt(4) == 0) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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); - 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)); - this.t.generate(this.a, this.b, this.c.a(j, l, k));
+ } - }
+ -
+ if (this.b.nextInt(8) == 0) { - if (this.b.nextInt(8) == 0) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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); - 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)); - this.u.generate(this.a, this.b, this.c.a(j, l, k));
+ } - }
+ -
+ for (j = 0; j < this.F; ++j) { - for (j = 0; j < this.F; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - 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)); - this.w.generate(this.a, this.b, this.c.a(k, i1, l));
+ } - }
+ -
+ for (j = 0; j < 10; ++j) { - for (j = 0; j < 10; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - 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)); - this.w.generate(this.a, this.b, this.c.a(k, i1, l));
+ } - }
+ -
+ if (this.b.nextInt(32) == 0) { - if (this.b.nextInt(32) == 0) {
+ j = this.b.nextInt(16) + 8; - j = this.b.nextInt(16) + 8;
+ k = 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); - 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)); - (new WorldGenPumpkin()).generate(this.a, this.b, this.c.a(j, l, k));
+ } - }
+ -
+ for (j = 0; j < this.G; ++j) { - for (j = 0; j < this.G; ++j) {
+ k = this.b.nextInt(16) + 8; - k = this.b.nextInt(16) + 8;
+ l = 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); - 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)); - this.x.generate(this.a, this.b, this.c.a(k, i1, l));
+ } - }
+ -
+ if (this.L) { - if (this.L) {
+ BlockPosition blockposition3; - BlockPosition blockposition3;
+ -
+ for (j = 0; j < 50; ++j) { - 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); - 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); - (new WorldGenLiquids(Blocks.FLOWING_WATER)).generate(this.a, this.b, blockposition3);
+ } - }
+ -
+ for (j = 0; j < 20; ++j) { - 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); - 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); - (new WorldGenLiquids(Blocks.FLOWING_LAVA)).generate(this.a, this.b, blockposition3);
+ } - }
+ } - }
+ -
+ } - }
+ -
+ protected void a(int i, WorldGenerator worldgenerator, int j, int k) { - // CraftBukkit start - The heightMap can be wrong calculated and return Y = 0 which will crash the Server
+ int l; - private BlockPosition getHighestBlockYAt( BlockPosition blockPosition ) {
+ - BlockPosition returnBlockPosition = this.a.getHighestBlockYAt( blockPosition );
+ if (k < j) { - if ( returnBlockPosition.getY() == 0 ) {
+ l = j; - returnBlockPosition = returnBlockPosition.up( 1 );
+ j = k; - }
+ k = l; - return returnBlockPosition;
+ } else if (k == j) { - }
+ if (j < 255) { - // CraftBukkit end
+ ++k; -
+ } else { - protected void a(int i, WorldGenerator worldgenerator, int j, int k) {
+ --j; - int l;
+ } -
+ } - if (k < j) {
+ - l = j;
+ for (l = 0; l < i; ++l) { - j = k;
+ BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k - j) + j, this.b.nextInt(16)); - k = l;
+ - } else if (k == j) {
+ worldgenerator.generate(this.a, this.b, blockposition); - if (j < 255) {
+ } - ++k;
+ - } else {
+ } - --j;
+ - }
+ 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)); - 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); -
+ } - worldgenerator.generate(this.a, this.b, blockposition);
+ - }
+ } -
+ - }
+ protected void a() { -
+ this.a(this.d.J, this.h, this.d.K, this.d.L); - protected void b(int i, WorldGenerator worldgenerator, int j, int k) {
+ this.a(this.d.N, this.i, this.d.O, this.d.P); - for (int l = 0; l < i; ++l) {
+ this.a(this.d.V, this.k, this.d.W, this.d.X); - BlockPosition blockposition = this.c.a(this.b.nextInt(16), this.b.nextInt(k) + this.b.nextInt(k) + j - k, this.b.nextInt(16));
+ 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); - worldgenerator.generate(this.a, this.b, blockposition);
+ 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); - protected void a() {
+ this.b(this.d.ax, this.r, this.d.ay, this.d.az); - 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 diff --git a/src/main/java/net/minecraft/server/BlockAnvil.java b/src/main/java/net/minecraft/server/BlockAnvil.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000

View File

@@ -90,11 +90,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
- this.author = tag.getString(BOOK_AUTHOR.NBT); - this.author = tag.getString(BOOK_AUTHOR.NBT);
+ this.author = limit( tag.getString(BOOK_AUTHOR.NBT), 1024 ); // Spigot + 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 { @@ -0,0 +0,0 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
if (resolved != null && resolved) { // Ignore and treat as an old book
page = CraftChatMessage.fromComponent(ChatSerializer.a(page)); }
} }
- pageArray[i] = page; - pageArray[i] = page;
+ pageArray[i] = limit( page, 2048 ); // Spigot + pageArray[i] = limit( page, 2048 ); // Spigot