Archiviert
13
0

Update from upstream SpigotMC

81e4ab71ca4
b023457499d
dc776bee32b
116e6fc98dc
2b97a3846f2
Dieser Commit ist enthalten in:
Zach Brown 2014-12-12 22:47:57 -06:00
Ursprung b07fd9dae8
Commit 74110558b2
26 geänderte Dateien mit 451 neuen und 441 gelöschten Zeilen

Datei anzeigen

@ -1,4 +1,4 @@
From be6a8aefafe4a6dc34d952b7c0cf860f7136defe Mon Sep 17 00:00:00 2001
From aa9d90078891dc1465e5dcb8de265793a377419e Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 2 Jul 2013 13:07:39 +1000
Subject: [PATCH] POM Changes
@ -6,7 +6,7 @@ Subject: [PATCH] POM Changes
Basic changes to the build system which mark the artifact as Spigot, and the necessary code changes to ensure proper functionality. Also disables the auto updater provided by CraftBukkit as it is useless to us.
diff --git a/pom.xml b/pom.xml
index 8d3f539..74efc8b 100644
index 49f8028..4e6f620 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,12 @@
@ -51,7 +51,7 @@ index 8d3f539..74efc8b 100644
<version>${project.version}</version>
<type>jar</type>
<scope>compile</scope>
@@ -132,21 +139,39 @@
@@ -124,21 +131,39 @@
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
<build>
@ -94,7 +94,7 @@ index 8d3f539..74efc8b 100644
<phase>compile</phase>
<goals>
<goal>gitdescribe</goal>
@@ -163,7 +188,7 @@
@@ -155,7 +180,7 @@
<manifestEntries>
<Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
<Implementation-Title>CraftBukkit</Implementation-Title>
@ -103,7 +103,7 @@ index 8d3f539..74efc8b 100644
<Implementation-Vendor>Bukkit Team</Implementation-Vendor>
<Specification-Title>Bukkit</Specification-Title>
<Specification-Version>${api.version}</Specification-Version>
@@ -196,7 +221,7 @@
@@ -188,7 +213,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>

Datei anzeigen

@ -1,4 +1,4 @@
From aaca00016118455bba4debef407285ea185d2695 Mon Sep 17 00:00:00 2001
From 5d54186471e9e6ed231545bf77a35e765e31f8d0 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 1 Dec 2013 15:10:48 +1100
Subject: [PATCH] mc-dev imports
@ -141,333 +141,343 @@ index 0000000..b1c6ad3
+ }
+}
diff --git a/src/main/java/net/minecraft/server/BiomeDecorator.java b/src/main/java/net/minecraft/server/BiomeDecorator.java
new file mode 100644
index 0000000..3705410
--- /dev/null
+++ b/src/main/java/net/minecraft/server/BiomeDecorator.java
@@ -0,0 +1,322 @@
+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);
+ }
+}
deleted file mode 100644
index e216a0c..0000000
--- a/src/main/java/net/minecraft/server/BiomeDecorator.java
+++ /dev/null
@@ -1,332 +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.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 0000000..8c9ed4c

Datei anzeigen

@ -1,4 +1,4 @@
From b8c7995e487a20b69ee32985463571acbd2673c5 Mon Sep 17 00:00:00 2001
From dc7886d3fde174339f15c44078985ec3b795054f Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 2 Jun 2013 15:10:56 +1000
Subject: [PATCH] Skeleton API Implementations
@ -6,10 +6,10 @@ Subject: [PATCH] Skeleton API Implementations
This contains the basic, empty implementations for some Spigot-API extensions. They are included early in the patching progress so that compilation will still succeed midway despite the APIs only being provided by subsequent patches.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 075a7fd..38892a0 100644
index b4ad7d1..4c33f5a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1622,4 +1622,14 @@ public final class CraftServer implements Server {
@@ -1626,4 +1626,14 @@ public final class CraftServer implements Server {
public UnsafeValues getUnsafe() {
return CraftMagicNumbers.INSTANCE;
}
@ -124,10 +124,10 @@ index 3b9bfec..e4d0e41 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 661fbae..92a6270 100644
index 78a0ab4..fabaecf 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -667,4 +667,16 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -668,4 +668,16 @@ class CraftMetaItem implements ItemMeta, Repairable {
public final String toString() {
return SerializableMeta.classMap.get(getClass()) + "_META:" + serialize(); // TODO: cry
}

Datei anzeigen

@ -1,4 +1,4 @@
From a63a688407f5d27d053b8fd28e28387ee1a72610 Mon Sep 17 00:00:00 2001
From 5a74d8939260f6782528b1a1cd4c2423122cdce6 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 7 Jul 2013 09:32:53 +1000
Subject: [PATCH] Spigot Configuration
@ -35,7 +35,7 @@ index 29c0a34..424b71d 100644
if (!this.getOnlineMode()) {
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 82343c5..44eb108 100644
index a8aeca1..b15988a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -98,6 +98,7 @@ public abstract class World implements IBlockAccess {
@ -55,10 +55,10 @@ index 82343c5..44eb108 100644
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 38892a0..1f49e1c 100644
index 7968b4b..9da97e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -245,8 +245,10 @@ public final class CraftServer implements Server {
@@ -246,8 +246,10 @@ public final class CraftServer implements Server {
chunkGCLoadThresh = configuration.getInt("chunk-gc.load-threshold");
loadIcon();
@ -71,7 +71,7 @@ index 38892a0..1f49e1c 100644
}
public boolean getCommandBlockOverride(String command) {
@@ -671,6 +673,7 @@ public final class CraftServer implements Server {
@@ -673,6 +675,7 @@ public final class CraftServer implements Server {
logger.log(Level.WARNING, "Failed to load banned-players.json, " + ex.getMessage());
}
@ -79,7 +79,7 @@ index 38892a0..1f49e1c 100644
for (WorldServer world : console.worlds) {
world.worldData.setDifficulty(difficulty);
world.setSpawnFlags(monsters, animals);
@@ -685,11 +688,14 @@ public final class CraftServer implements Server {
@@ -687,11 +690,14 @@ public final class CraftServer implements Server {
} else {
world.ticksPerMonsterSpawns = this.getTicksPerMonsterSpawns();
}

Datei anzeigen

@ -1,4 +1,4 @@
From 069bf84fffb35ff8883c68069e12d68c0e61a2e4 Mon Sep 17 00:00:00 2001
From 0bd6f84fab9a64e161181f3d32009bbbd71aac3a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 10 Jan 2013 00:18:11 -0500
Subject: [PATCH] Spigot Timings
@ -133,7 +133,7 @@ index 424b71d..390c6eb 100644
public boolean ad() {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0682904..4886929 100644
index 7bec05f..5441e8b 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -16,6 +16,7 @@ import org.bukkit.entity.Hanging;
@ -153,7 +153,7 @@ index 0682904..4886929 100644
public int getId() {
return this.id;
}
@@ -378,6 +381,8 @@ public abstract class Entity implements ICommandListener {
@@ -379,6 +382,8 @@ public abstract class Entity implements ICommandListener {
}
public void move(double d0, double d1, double d2) {
@ -162,7 +162,7 @@ index 0682904..4886929 100644
if (this.T) {
this.a(this.getBoundingBox().c(d0, d1, d2));
this.recalcPosition();
@@ -714,6 +719,7 @@ public abstract class Entity implements ICommandListener {
@@ -715,6 +720,7 @@ public abstract class Entity implements ICommandListener {
this.world.methodProfiler.b();
}
@ -584,10 +584,10 @@ index 737b546..c07f9f8 100644
public BiomeMeta a(EnumCreatureType enumcreaturetype, BlockPosition blockposition) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1f49e1c..1f5021f 100644
index 51e4489..5286c1e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1632,6 +1632,11 @@ public final class CraftServer implements Server {
@@ -1636,6 +1636,11 @@ public final class CraftServer implements Server {
private final Spigot spigot = new Spigot()
{

Datei anzeigen

@ -1,4 +1,4 @@
From b2e323897b2d138c4ea2bc5175d6da6e64351024 Mon Sep 17 00:00:00 2001
From 5130e3bfb747db131ecf214bffe52690dbb74132 Mon Sep 17 00:00:00 2001
From: Antony Riley <antony@cyberiantiger.org>
Date: Wed, 27 Mar 2013 01:41:54 +0200
Subject: [PATCH] Close Unloaded Save Files
@ -18,10 +18,10 @@ index f4f72ef..1b03878 100644
public static synchronized RegionFile a(File file, int i, int j) {
File file1 = new File(file, "region");
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1f5021f..d540cd0 100644
index 5286c1e..3175d37 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -947,6 +947,31 @@ public final class CraftServer implements Server {
@@ -951,6 +951,31 @@ public final class CraftServer implements Server {
worlds.remove(world.getName().toLowerCase());
console.worlds.remove(console.worlds.indexOf(handle));

Datei anzeigen

@ -1,14 +1,14 @@
From 81d3cead13e4ec13794d87f99d556aeba5339fb7 Mon Sep 17 00:00:00 2001
From c5bcf08cd6f792110b93c413f1972643024bb9c0 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 18:05:54 +1000
Subject: [PATCH] Allow Disabling of Command TabComplete
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index d540cd0..a770279 100644
index 3175d37..b9cace3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1551,6 +1551,13 @@ public final class CraftServer implements Server {
@@ -1555,6 +1555,13 @@ public final class CraftServer implements Server {
}
public List<String> tabCompleteCommand(Player player, String message) {

Datei anzeigen

@ -1,4 +1,4 @@
From e825b9f61e1063c007b06771c7baaa01f073473e Mon Sep 17 00:00:00 2001
From 21d7a65e1639ca5ae704cdc6a1ad7b4424771f82 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 19:21:58 +1000
Subject: [PATCH] Configurable Messages
@ -23,10 +23,10 @@ index f8bac48..e036bc6 100644
this.b.close(chatcomponenttext);
} else {
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 5979c78..80123ee 100644
index 5ca721b..f76709f 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -378,7 +378,7 @@ public abstract class PlayerList {
@@ -379,7 +379,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, s);
} else if (!this.isWhitelisted(gameprofile)) {
// return "You are not white-listed on this server!";
@ -35,7 +35,7 @@ index 5979c78..80123ee 100644
} else if (getIPBans().isBanned(socketaddress) && !getIPBans().get(socketaddress).hasExpired()) {
IpBanEntry ipbanentry = this.l.get(socketaddress);
@@ -392,7 +392,7 @@ public abstract class PlayerList {
@@ -393,7 +393,7 @@ public abstract class PlayerList {
} else {
// return this.players.size() >= this.maxPlayers ? "The server is full!" : null;
if (this.players.size() >= this.maxPlayers) {
@ -45,10 +45,10 @@ index 5979c78..80123ee 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a770279..f1ec39b 100644
index b9cace3..ce4857d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -625,11 +625,7 @@ public final class CraftServer implements Server {
@@ -627,11 +627,7 @@ public final class CraftServer implements Server {
return true;
}

Datei anzeigen

@ -1,14 +1,14 @@
From 30494ab74e9585b41e4b249b8878b1582dd7c795 Mon Sep 17 00:00:00 2001
From 898268b70af55725aab77f43d0f2a1fb809307aa Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 2 Jul 2013 20:32:49 +1000
Subject: [PATCH] Entity Mount and Dismount Events
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 178a7a6..3227e8b 100644
index 56f71f3..ce0c305 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1543,6 +1543,7 @@ public abstract class Entity implements ICommandListener {
@@ -1544,6 +1544,7 @@ public abstract class Entity implements ICommandListener {
}
}
// CraftBukkit end
@ -16,7 +16,7 @@ index 178a7a6..3227e8b 100644
this.setPositionRotation(this.vehicle.locX, this.vehicle.getBoundingBox().b + (double) this.vehicle.length, this.vehicle.locZ, this.yaw, this.pitch);
this.vehicle.passenger = null;
}
@@ -1577,6 +1578,18 @@ public abstract class Entity implements ICommandListener {
@@ -1578,6 +1579,18 @@ public abstract class Entity implements ICommandListener {
}
}
// CraftBukkit end

Datei anzeigen

@ -1,4 +1,4 @@
From ffef4ba9050f0d22ffae56c417e74fb6194cfa32 Mon Sep 17 00:00:00 2001
From f8664946ba2853b3d8413cf9c6624f515655c48a Mon Sep 17 00:00:00 2001
From: Alex Ciuba <alexciuba@gmail.com>
Date: Tue, 11 Jun 2013 15:23:03 -0400
Subject: [PATCH] Prevent Ghost Players Caused by Plugins
@ -6,10 +6,10 @@ Subject: [PATCH] Prevent Ghost Players Caused by Plugins
Check if the player is still connected after firing event. Fixes BUKKIT-4327
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 80123ee..d94ec46 100644
index f76709f..3b6e4f0 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -505,6 +505,11 @@ public abstract class PlayerList {
@@ -506,6 +506,11 @@ public abstract class PlayerList {
Player respawnPlayer = cserver.getPlayer(entityplayer1);
PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn);
cserver.getPluginManager().callEvent(respawnEvent);

Datei anzeigen

@ -1,4 +1,4 @@
From 5e9d6f4af94cb8f5a4e07cd12bec06b96ee6c027 Mon Sep 17 00:00:00 2001
From 1a7b84867f4ee97511cf7cded475159a1991c7e8 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 1 Dec 2013 18:18:41 +1100
Subject: [PATCH] BungeeCord Support
@ -119,10 +119,10 @@ index 97920b0..0b86011 100644
this.d = EnumProtocol.a(packetdataserializer.e());
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index d94ec46..6357058 100644
index 3b6e4f0..f0d1ada 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -363,7 +363,7 @@ public abstract class PlayerList {
@@ -364,7 +364,7 @@ public abstract class PlayerList {
EntityPlayer entity = new EntityPlayer(server, server.getWorldServer(0), gameprofile, new PlayerInteractManager(server.getWorldServer(0)));
Player player = entity.getBukkitEntity();
@ -132,10 +132,10 @@ index d94ec46..6357058 100644
if (getProfileBans().isBanned(gameprofile) && !getProfileBans().get(gameprofile).hasExpired()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f1ec39b..c79ede5 100644
index ce4857d..5c1cfaa 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -558,7 +558,13 @@ public final class CraftServer implements Server {
@@ -560,7 +560,13 @@ public final class CraftServer implements Server {
@Override
public long getConnectionThrottle() {

Datei anzeigen

@ -1,14 +1,14 @@
From 0be8e93c32cc99e8db29392abc26d3ef465957ce Mon Sep 17 00:00:00 2001
From 5dd51c69a6882437a9c2ca661ee93e1f620be935 Mon Sep 17 00:00:00 2001
From: DerFlash <bte@freenet.de>
Date: Tue, 9 Jul 2013 00:11:12 +0200
Subject: [PATCH] Save ticks lived to nbttag
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 3227e8b..45265c2 100644
index ce0c305..b1b9492 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1197,6 +1197,7 @@ public abstract class Entity implements ICommandListener {
@@ -1198,6 +1198,7 @@ public abstract class Entity implements ICommandListener {
nbttagcompound.setLong("WorldUUIDLeast", this.world.getDataManager().getUUID().getLeastSignificantBits());
nbttagcompound.setLong("WorldUUIDMost", this.world.getDataManager().getUUID().getMostSignificantBits());
nbttagcompound.setInt("Bukkit.updateLevel", CURRENT_LEVEL);
@ -16,7 +16,7 @@ index 3227e8b..45265c2 100644
// CraftBukkit end
if (this.getCustomName() != null && this.getCustomName().length() > 0) {
nbttagcompound.setString("CustomName", this.getCustomName());
@@ -1284,6 +1285,8 @@ public abstract class Entity implements ICommandListener {
@@ -1285,6 +1286,8 @@ public abstract class Entity implements ICommandListener {
if (this instanceof EntityLiving) {
EntityLiving entity = (EntityLiving) this;

Datei anzeigen

@ -1,14 +1,14 @@
From cf8f74feef3d3fbed4cd960837d6fa3c2d2201c6 Mon Sep 17 00:00:00 2001
From 464bde6a73a3569e864b6db724a07019916b3d91 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 23 Dec 2013 14:07:41 +1100
Subject: [PATCH] Warn if PermGen may be insufficient
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 8d127fb..008e037 100644
index 9ffd897..f039fbf 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -155,6 +155,22 @@ public class Main {
@@ -158,6 +158,22 @@ public class Main {
useConsole = false;
}

Datei anzeigen

@ -1,4 +1,4 @@
From 588c3ffb97bfb1db52719d708480c333314ba895 Mon Sep 17 00:00:00 2001
From d80d05b09d60f8a1356996dcb560b07a1ac1867b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 31 Jan 2014 11:18:34 -0500
Subject: [PATCH] Cap Entity Collisions
@ -7,10 +7,10 @@ Limit a single entity to colliding a max of configurable times per tick.
This will alleviate issues where living entities are hoarded in 1x1 pens.
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 1339fd2..94a997f 100644
index c69ae55..c967853 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1058,6 +1058,7 @@ public abstract class Entity implements ICommandListener {
@@ -1059,6 +1059,7 @@ public abstract class Entity implements ICommandListener {
public void d(EntityHuman entityhuman) {}

Datei anzeigen

@ -1,14 +1,14 @@
From e3fe3d63d1ac971bc8db54461b67e38f0445c464 Mon Sep 17 00:00:00 2001
From 76e657bb3daaf6b9eb389359a4efff083b37ba9d Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thethinkofdeath@gmail.com>
Date: Wed, 12 Feb 2014 20:44:14 +0000
Subject: [PATCH] Allow vanilla commands to be the main version of a command
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index dbb3324..55658b6 100644
index a5499a1..5fc0e28 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -315,8 +315,11 @@ public final class CraftServer implements Server {
@@ -316,8 +316,11 @@ public final class CraftServer implements Server {
}
if (type == PluginLoadOrder.POSTWORLD) {
@ -21,7 +21,7 @@ index dbb3324..55658b6 100644
commandMap.registerServerAliases();
loadCustomPermissions();
DefaultPermissions.registerCorePermissions();
@@ -328,10 +331,19 @@ public final class CraftServer implements Server {
@@ -330,10 +333,19 @@ public final class CraftServer implements Server {
pluginManager.disablePlugins();
}

Datei anzeigen

@ -1,14 +1,14 @@
From 928d3c2a993a4eea994e4c46121f546d123277d0 Mon Sep 17 00:00:00 2001
From 99c9a03e1bfae144c9227a0eae7ef8f0d57c0181 Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Sat, 15 Mar 2014 01:30:05 -0400
Subject: [PATCH] Descriptive kick reasons instead of Nope!
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 774fe84..3a68762 100644
index c967853..2cca633 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -207,7 +207,7 @@ public abstract class Entity implements ICommandListener {
@@ -208,7 +208,7 @@ public abstract class Entity implements ICommandListener {
if (f == Float.POSITIVE_INFINITY || f == Float.NEGATIVE_INFINITY) {
if (this instanceof EntityPlayer) {
this.world.getServer().getLogger().warning(this.getName() + " was caught trying to crash the server with an invalid yaw");
@ -17,7 +17,7 @@ index 774fe84..3a68762 100644
}
f = 0;
}
@@ -220,7 +220,7 @@ public abstract class Entity implements ICommandListener {
@@ -221,7 +221,7 @@ public abstract class Entity implements ICommandListener {
if (f1 == Float.POSITIVE_INFINITY || f1 == Float.NEGATIVE_INFINITY) {
if (this instanceof EntityPlayer) {
this.world.getServer().getLogger().warning(this.getName() + " was caught trying to crash the server with an invalid pitch");

Datei anzeigen

@ -1,14 +1,14 @@
From 1e6cd90b02676d7d895fb88ce176e7c8fc3f9984 Mon Sep 17 00:00:00 2001
From caf26ee83d97c36f4985c62cde9b5e78d1a2d99f Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 14 Apr 2014 17:21:24 +1000
Subject: [PATCH] Check for blank OfflinePlayer Names
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index db1465e..50bb2ba 100644
index 6ea7371..31a7a87 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1271,6 +1271,7 @@ public final class CraftServer implements Server {
@@ -1275,6 +1275,7 @@ public final class CraftServer implements Server {
@Deprecated
public OfflinePlayer getOfflinePlayer(String name) {
Validate.notNull(name, "Name cannot be null");

Datei anzeigen

@ -1,14 +1,14 @@
From b952ef7806b987f213f930d93015c537379a5276 Mon Sep 17 00:00:00 2001
From a12d6ee8c2c4b41cc287f1a70803039bd946c313 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 16 Apr 2014 11:14:38 +1000
Subject: [PATCH] Correct Ban Expiration
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 6357058..2d6ddc7 100644
index f0d1ada..82dd862 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -375,7 +375,7 @@ public abstract class PlayerList {
@@ -376,7 +376,7 @@ public abstract class PlayerList {
}
// return s;

Datei anzeigen

@ -1,14 +1,14 @@
From aa05774c3fbd923f3cdc7bcfea204462866323e1 Mon Sep 17 00:00:00 2001
From 57caebbf7c48ff8546e7933ea900bf126c26a421 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 20 Apr 2014 18:58:00 +1000
Subject: [PATCH] Don't special case 'invalid' usernames for UUIDs.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 50bb2ba..899982b 100644
index 31a7a87..8964a18 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1273,11 +1273,6 @@ public final class CraftServer implements Server {
@@ -1277,11 +1277,6 @@ public final class CraftServer implements Server {
Validate.notNull(name, "Name cannot be null");
com.google.common.base.Preconditions.checkArgument( !org.apache.commons.lang.StringUtils.isBlank( name ), "Name cannot be blank" ); // Spigot

Datei anzeigen

@ -1,14 +1,14 @@
From 02509dc7476f72618938ce44287e2dbeec7a17e3 Mon Sep 17 00:00:00 2001
From a8a8ff64e451fbc06f035c5dbe37755bf9620c6f Mon Sep 17 00:00:00 2001
From: ninja <xninja@openmailbox.org>
Date: Tue, 8 Apr 2014 14:05:19 +0200
Subject: [PATCH] Implement PlayerSpawnLocationEvent.
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index c9ef1d6..26e4328 100644
index 82dd862..34ee440 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -35,6 +35,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
@@ -36,6 +36,7 @@ import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.util.Vector;
@ -16,7 +16,7 @@ index c9ef1d6..26e4328 100644
// CraftBukkit end
public abstract class PlayerList {
@@ -98,6 +99,19 @@ public abstract class PlayerList {
@@ -99,6 +100,19 @@ public abstract class PlayerList {
s1 = networkmanager.getSocketAddress().toString();
}

Datei anzeigen

@ -1,4 +1,4 @@
From e4ab8d61ad019d2cfd1021d342d5e367fd8bc51e Mon Sep 17 00:00:00 2001
From ef07b1f5de9476274a7a491bd59ac0a21948fd24 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Wed, 2 Jul 2014 23:35:51 +0100
Subject: [PATCH] Better item validation
@ -64,7 +64,7 @@ index 8b7dc17..5227007 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
index 9a24d2e..d3b5002 100644
index 0c69a3e..6843fac 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java
@@ -20,6 +20,10 @@ import net.minecraft.server.ChatSerializer;
@ -78,7 +78,7 @@ index 9a24d2e..d3b5002 100644
@DelegateDeserialization(SerializableMeta.class)
class CraftMetaBook extends CraftMetaItem implements BookMeta {
static final ItemMetaKey BOOK_TITLE = new ItemMetaKey("title");
@@ -54,11 +58,11 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
@@ -55,11 +59,11 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
super(tag);
if (tag.hasKey(BOOK_TITLE.NBT)) {
@ -91,10 +91,10 @@ index 9a24d2e..d3b5002 100644
+ this.author = limit( tag.getString(BOOK_AUTHOR.NBT), 1024 ); // Spigot
}
if (tag.hasKey(RESOLVED.NBT)) {
@@ -78,7 +82,7 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
if (resolved != null && resolved) {
page = CraftChatMessage.fromComponent(ChatSerializer.a(page));
boolean resolved = false;
@@ -84,7 +88,7 @@ class CraftMetaBook extends CraftMetaItem implements BookMeta {
// Ignore and treat as an old book
}
}
- pageArray[i] = page;
+ pageArray[i] = limit( page, 2048 ); // Spigot
@ -102,7 +102,7 @@ index 9a24d2e..d3b5002 100644
addPage(pageArray);
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 92a6270..8d754d8 100644
index fabaecf..cb6857c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -36,6 +36,10 @@ import com.google.common.base.Strings;
@ -116,7 +116,7 @@ index 92a6270..8d754d8 100644
/**
* Children must include the following:
*
@@ -229,7 +233,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -230,7 +234,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
NBTTagCompound display = tag.getCompound(DISPLAY.NBT);
if (display.hasKey(NAME.NBT)) {
@ -125,7 +125,7 @@ index 92a6270..8d754d8 100644
}
if (display.hasKey(LORE.NBT)) {
@@ -237,7 +241,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -238,7 +242,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
lore = new ArrayList<String>(list.size());
for (int index = 0; index < list.size(); index++) {

Datei anzeigen

@ -1,4 +1,4 @@
From 2c388c7f705c6615e19692e82ccf20a4c47f79a8 Mon Sep 17 00:00:00 2001
From da0947583dc1dbf478a1c04ab155cc3d64136e71 Mon Sep 17 00:00:00 2001
From: Maxim Van de Wynckel <maxim_vdw@hotmail.com>
Date: Wed, 30 Jul 2014 01:19:51 +0200
Subject: [PATCH] Only fetch an online UUID in online mode
@ -12,10 +12,10 @@ You want to store data for player "Test" who never joined. An online UUID is cr
The player Test joins with an offline UUID but that will not match the online UUID of the saved data.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 899982b..57bd4f1 100644
index 8964a18..8b4b580 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1275,8 +1275,14 @@ public final class CraftServer implements Server {
@@ -1279,8 +1279,14 @@ public final class CraftServer implements Server {
OfflinePlayer result = getPlayerExact(name);
if (result == null) {

Datei anzeigen

@ -1,4 +1,4 @@
From 57950764560d04e70e8388db6d6accf8a8de0b05 Mon Sep 17 00:00:00 2001
From 6782704edc90554ab8a70d93f6bec734b6aef1b6 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Thu, 31 Jul 2014 17:48:20 +0100
Subject: [PATCH] Filter attribute modifiers which cause the attribute to go
@ -6,7 +6,7 @@ Subject: [PATCH] Filter attribute modifiers which cause the attribute to go
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 8d754d8..7638832 100644
index cb6857c..b42baa9 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -38,6 +38,8 @@ import com.google.common.collect.ImmutableMap;
@ -18,7 +18,7 @@ index 8d754d8..7638832 100644
// Spigot end
/**
@@ -258,6 +260,123 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -259,6 +261,123 @@ class CraftMetaItem implements ItemMeta, Repairable {
NBTTagList save = null;
NBTTagList nbttaglist = tag.getList(ATTRIBUTES.NBT, 10);

Datei anzeigen

@ -1,14 +1,14 @@
From 142f4098cd2b3118351593dfe155cdfa771a0749 Mon Sep 17 00:00:00 2001
From 5f7fe70ea4af2e1d88a18470ad373e5fd5408067 Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Fri, 15 Aug 2014 18:11:09 -0400
Subject: [PATCH] Remove uneeded validation
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 7638832..e134ace 100644
index b42baa9..d6e4023 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -511,7 +511,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -512,7 +512,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
static void applyEnchantments(Map<Enchantment, Integer> enchantments, NBTTagCompound tag, ItemMetaKey key) {
@ -17,7 +17,7 @@ index 7638832..e134ace 100644
return;
}
@@ -602,7 +602,14 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -603,7 +603,14 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
public boolean removeEnchant(Enchantment ench) {

Datei anzeigen

@ -1,4 +1,4 @@
From 36429dd025bd601b1b681fb79409e8795316c3c8 Mon Sep 17 00:00:00 2001
From 894fbe91ced2095c5776641ff178de748732fadf Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Tue, 19 Aug 2014 11:04:21 +0100
Subject: [PATCH] Skip invalid enchants in CraftMetaItem
@ -8,10 +8,10 @@ CraftMetaItem would add a null enchantment into the enchantment map which causes
NullPointers later
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index e134ace..e8c1a99 100644
index d6e4023..6298d58 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -434,7 +434,11 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -435,7 +435,11 @@ class CraftMetaItem implements ItemMeta, Repairable {
int id = 0xffff & ((NBTTagCompound) ench.get(i)).getShort(ENCHANTMENTS_ID.NBT);
int level = 0xffff & ((NBTTagCompound) ench.get(i)).getShort(ENCHANTMENTS_LVL.NBT);

Datei anzeigen

@ -1,14 +1,14 @@
From 254472845abd1ee3a69b4282b547262ff9d1d474 Mon Sep 17 00:00:00 2001
From 166fdc1c6f2728e48f35b4afc61039261bcb8350 Mon Sep 17 00:00:00 2001
From: libraryaddict <redwarfare@live.com>
Date: Fri, 22 Aug 2014 05:35:16 -0400
Subject: [PATCH] Added isUnbreakable and setUnbreakable to ItemMeta
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index e8c1a99..96b7a07 100644
index 6298d58..a3bc76d 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -203,6 +203,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -204,6 +204,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
static final ItemMetaKey ATTRIBUTES_UUID_HIGH = new ItemMetaKey("UUIDMost");
@Specific(Specific.To.NBT)
static final ItemMetaKey ATTRIBUTES_UUID_LOW = new ItemMetaKey("UUIDLeast");
@ -16,7 +16,7 @@ index e8c1a99..96b7a07 100644
private String displayName;
private List<String> lore;
@@ -228,6 +229,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -229,6 +230,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
this.repairCost = meta.repairCost;
this.attributes = meta.attributes;
@ -24,7 +24,7 @@ index e8c1a99..96b7a07 100644
}
CraftMetaItem(NBTTagCompound tag) {
@@ -420,6 +422,12 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -421,6 +423,12 @@ class CraftMetaItem implements ItemMeta, Repairable {
} else {
attributes = null;
}
@ -37,7 +37,7 @@ index e8c1a99..96b7a07 100644
}
static Map<Enchantment, Integer> buildEnchantments(NBTTagCompound tag, ItemMetaKey key) {
@@ -460,6 +468,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -461,6 +469,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
attributes = null;
@ -51,7 +51,7 @@ index e8c1a99..96b7a07 100644
}
static Map<Enchantment, Integer> buildEnchantments(Map<String, Object> map, ItemMetaKey key) {
@@ -492,6 +507,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -493,6 +508,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
applyEnchantments(enchantments, itemTag, ENCHANTMENTS);
@ -65,7 +65,7 @@ index e8c1a99..96b7a07 100644
if (hasRepairCost()) {
itemTag.setInt(REPAIR.NBT, repairCost);
}
@@ -550,7 +572,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -551,7 +573,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@Overridden
boolean isEmpty() {
@ -74,7 +74,7 @@ index e8c1a99..96b7a07 100644
}
public String getDisplayName() {
@@ -674,7 +696,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -675,7 +697,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
&& (this.hasEnchants() ? that.hasEnchants() && this.enchantments.equals(that.enchantments) : !that.hasEnchants())
&& (this.hasLore() ? that.hasLore() && this.lore.equals(that.lore) : !that.hasLore())
&& (this.hasAttributes() ? that.hasAttributes() && this.attributes.equals(that.attributes) : !that.hasAttributes())
@ -83,7 +83,7 @@ index e8c1a99..96b7a07 100644
}
/**
@@ -700,6 +722,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -701,6 +723,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
hash = 61 * hash + (hasEnchants() ? this.enchantments.hashCode() : 0);
hash = 61 * hash + (hasAttributes() ? this.attributes.hashCode() : 0);
hash = 61 * hash + (hasRepairCost() ? this.repairCost : 0);
@ -91,7 +91,7 @@ index e8c1a99..96b7a07 100644
return hash;
}
@@ -743,6 +766,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -744,6 +767,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
builder.put(REPAIR.BUKKIT, repairCost);
}
@ -105,7 +105,7 @@ index e8c1a99..96b7a07 100644
return builder;
}
@@ -805,6 +835,19 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -806,6 +836,19 @@ class CraftMetaItem implements ItemMeta, Repairable {
// Spigot start
private final Spigot spigot = new Spigot()
{