Update PaperSpigot to Minecraft 1.8.3

This commit is contained in:
Zach Brown 2015-03-07 19:16:09 -06:00
parent d049872b83
commit 78fa2af57a
44 changed files with 1023 additions and 864 deletions

View File

@ -1,11 +1,11 @@
From 75be04f38d3f75ac21ecad2bf1ee949e419247da Mon Sep 17 00:00:00 2001 From 64c05befc1e1204e32698b10f45283dad6affb62 Mon Sep 17 00:00:00 2001
From: Zach Brown <Zbob750@live.com> From: Zach Brown <Zbob750@live.com>
Date: Tue, 6 Jan 2015 22:12:31 -0600 Date: Tue, 6 Jan 2015 22:12:31 -0600
Subject: [PATCH] POM changes Subject: [PATCH] POM changes
diff --git a/pom.xml b/pom.xml diff --git a/pom.xml b/pom.xml
index 44aa858..5981842 100644 index 3e52a20..20a2cc9 100644
--- a/pom.xml --- a/pom.xml
+++ b/pom.xml +++ b/pom.xml
@@ -4,18 +4,18 @@ @@ -4,18 +4,18 @@
@ -24,7 +24,7 @@ index 44aa858..5981842 100644
- <artifactId>spigot-api</artifactId> - <artifactId>spigot-api</artifactId>
+ <groupId>org.github.paperspigot</groupId> + <groupId>org.github.paperspigot</groupId>
+ <artifactId>paperspigot-api</artifactId> + <artifactId>paperspigot-api</artifactId>
<version>1.8-R0.1-SNAPSHOT</version> <version>1.8.3-R0.1-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
- <name>Spigot-API</name> - <name>Spigot-API</name>

View File

@ -1,11 +1,11 @@
From e7cac10d2cbd228ba6715da4592dcf78ba0a0303 Mon Sep 17 00:00:00 2001 From c65b3c8564cbf825621c13279504c5e98625fd0c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 12 Jan 2015 11:21:04 -0600 Date: Sat, 7 Mar 2015 19:16:09 -0600
Subject: [PATCH] POM changes Subject: [PATCH] POM Changes
diff --git a/pom.xml b/pom.xml diff --git a/pom.xml b/pom.xml
index bcd3a30..003caf1 100644 index 1c4f56e..4f7f9cf 100644
--- a/pom.xml --- a/pom.xml
+++ b/pom.xml +++ b/pom.xml
@@ -1,12 +1,12 @@ @@ -1,12 +1,12 @@
@ -17,7 +17,7 @@ index bcd3a30..003caf1 100644
+ <groupId>org.github.paperspigot</groupId> + <groupId>org.github.paperspigot</groupId>
+ <artifactId>paperspigot</artifactId> + <artifactId>paperspigot</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<version>1.8-R0.1-SNAPSHOT</version> <version>1.8.3-R0.1-SNAPSHOT</version>
- <name>Spigot</name> - <name>Spigot</name>
- <url>http://www.spigotmc.org</url> - <url>http://www.spigotmc.org</url>
+ <name>PaperSpigot</name> + <name>PaperSpigot</name>
@ -25,7 +25,7 @@ index bcd3a30..003caf1 100644
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -21,16 +21,16 @@ @@ -21,8 +21,8 @@
</properties> </properties>
<parent> <parent>
@ -36,8 +36,9 @@ index bcd3a30..003caf1 100644
<version>dev-SNAPSHOT</version> <version>dev-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath> <relativePath>../pom.xml</relativePath>
</parent> </parent>
@@ -34,8 +34,8 @@
<dependencies> <version>3.0.3</version>
</dependency>
<dependency> <dependency>
- <groupId>org.spigotmc</groupId> - <groupId>org.spigotmc</groupId>
- <artifactId>spigot-api</artifactId> - <artifactId>spigot-api</artifactId>

View File

@ -1,14 +1,14 @@
From 43c2e536c0f107384894b535ab02e25fef71d9a8 Mon Sep 17 00:00:00 2001 From bc080a4a08b6df777ec3b59a04af73905bf5180f Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 12 Jul 2014 19:32:01 -0500 Date: Sat, 12 Jul 2014 19:32:01 -0500
Subject: [PATCH] PaperSpigot config files Subject: [PATCH] PaperSpigot config files
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 2806f1e..2e38fec 100644 index 86ff385..b80ffe5 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java --- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java +++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -131,6 +131,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer @@ -178,6 +178,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
org.spigotmc.SpigotConfig.init(); org.spigotmc.SpigotConfig.init();
org.spigotmc.SpigotConfig.registerCommands(); org.spigotmc.SpigotConfig.registerCommands();
// Spigot end // Spigot end
@ -20,10 +20,10 @@ index 2806f1e..2e38fec 100644
DedicatedServer.LOGGER.info("Generating keypair"); DedicatedServer.LOGGER.info("Generating keypair");
this.a(MinecraftEncryption.b()); this.a(MinecraftEncryption.b());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c50aa62..ac11b9a 100644 index 34d3697..31df781 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -192,6 +192,8 @@ public abstract class World implements IBlockAccess { @@ -158,6 +158,8 @@ public abstract class World implements IBlockAccess {
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -32,16 +32,16 @@ index c50aa62..ac11b9a 100644
public final SpigotTimings.WorldTimingsHandler timings; // Spigot public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public CraftWorld getWorld() { public CraftWorld getWorld() {
@@ -208,6 +210,7 @@ public abstract class World implements IBlockAccess { @@ -174,6 +176,7 @@ public abstract class World implements IBlockAccess {
protected World(IDataManager idatamanager, WorldData worlddata, WorldProvider worldprovider, MethodProfiler methodprofiler, boolean flag, ChunkGenerator gen, org.bukkit.World.Environment env) { protected World(IDataManager idatamanager, WorldData worlddata, WorldProvider worldprovider, MethodProfiler methodprofiler, boolean flag, ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
+ this.paperSpigotConfig = new org.github.paperspigot.PaperSpigotWorldConfig( worlddata.getName() ); // PaperSpigot + this.paperSpigotConfig = new org.github.paperspigot.PaperSpigotWorldConfig( worlddata.getName() ); // PaperSpigot
this.generator = gen; this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env); this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit if (gen != null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index d7e3919..d67d3d4 100644 index 6174417..b5bf0ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -693,6 +693,7 @@ public final class CraftServer implements Server { @@ -693,6 +693,7 @@ public final class CraftServer implements Server {
@ -69,7 +69,7 @@ index d7e3919..d67d3d4 100644
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
new file mode 100644 new file mode 100644
index 0000000..7ea1617 index 0000000..fa41614
--- /dev/null --- /dev/null
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -0,0 +1,140 @@ @@ -0,0 +1,140 @@
@ -297,5 +297,5 @@ index 0000000..f3bc3aa
+ } + }
+} +}
-- --
2.2.2 1.9.1

View File

@ -1,22 +1,26 @@
From 246d917ad943f9e6fb6e3c8fa248bddfe37ec50f Mon Sep 17 00:00:00 2001 From 3ac4aa5507b3eb96cbd4ce5d01a25c391475f834 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 27 Nov 2014 23:53:56 -0600 Date: Sat, 7 Mar 2015 19:44:29 -0600
Subject: [PATCH] mc-dev imports Subject: [PATCH] mc-dev imports
diff --git a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java diff --git a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java
new file mode 100644 new file mode 100644
index 0000000..063177d index 0000000..0d108eb
--- /dev/null --- /dev/null
+++ b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java +++ b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java
@@ -0,0 +1,120 @@ @@ -0,0 +1,597 @@
+package net.minecraft.server; +package net.minecraft.server;
+ +
+import com.google.common.collect.Lists;
+import java.util.Iterator;
+import java.util.List;
+
+public abstract class BlockMinecartTrackAbstract extends Block { +public abstract class BlockMinecartTrackAbstract extends Block {
+ +
+ protected final boolean a; + protected final boolean a;
+ +
+ public static boolean d(World world, BlockPosition blockposition) { + public static boolean e(World world, BlockPosition blockposition) {
+ return d(world.getType(blockposition)); + return d(world.getType(blockposition));
+ } + }
+ +
@ -48,9 +52,9 @@ index 0000000..063177d
+ +
+ public void updateShape(IBlockAccess iblockaccess, BlockPosition blockposition) { + public void updateShape(IBlockAccess iblockaccess, BlockPosition blockposition) {
+ IBlockData iblockdata = iblockaccess.getType(blockposition); + IBlockData iblockdata = iblockaccess.getType(blockposition);
+ EnumTrackPosition enumtrackposition = iblockdata.getBlock() == this ? (EnumTrackPosition) iblockdata.get(this.l()) : null; + EnumTrackPosition blockminecarttrackabstract_enumtrackposition = iblockdata.getBlock() == this ? (EnumTrackPosition) iblockdata.get(this.n()) : null;
+ +
+ if (enumtrackposition != null && enumtrackposition.c()) { + if (blockminecarttrackabstract_enumtrackposition != null && blockminecarttrackabstract_enumtrackposition.c()) {
+ this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.625F, 1.0F); + this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.625F, 1.0F);
+ } else { + } else {
+ this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F); + this.a(0.0F, 0.0F, 0.0F, 1.0F, 0.125F, 1.0F);
@ -67,7 +71,7 @@ index 0000000..063177d
+ } + }
+ +
+ public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) { + public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) {
+ if (!world.isStatic) { + if (!world.isClientSide) {
+ iblockdata = this.a(world, blockposition, iblockdata, true); + iblockdata = this.a(world, blockposition, iblockdata, true);
+ if (this.a) { + if (this.a) {
+ this.doPhysics(world, blockposition, iblockdata, this); + this.doPhysics(world, blockposition, iblockdata, this);
@ -77,21 +81,21 @@ index 0000000..063177d
+ } + }
+ +
+ public void doPhysics(World world, BlockPosition blockposition, IBlockData iblockdata, Block block) { + public void doPhysics(World world, BlockPosition blockposition, IBlockData iblockdata, Block block) {
+ if (!world.isStatic) { + if (!world.isClientSide) {
+ EnumTrackPosition enumtrackposition = (EnumTrackPosition) iblockdata.get(this.l()); + EnumTrackPosition blockminecarttrackabstract_enumtrackposition = (EnumTrackPosition) iblockdata.get(this.n());
+ boolean flag = false; + boolean flag = false;
+ +
+ if (!World.a((IBlockAccess) world, blockposition.down())) { + if (!World.a((IBlockAccess) world, blockposition.down())) {
+ flag = true; + flag = true;
+ } + }
+ +
+ if (enumtrackposition == EnumTrackPosition.ASCENDING_EAST && !World.a((IBlockAccess) world, blockposition.east())) { + if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.ASCENDING_EAST && !World.a((IBlockAccess) world, blockposition.east())) {
+ flag = true; + flag = true;
+ } else if (enumtrackposition == EnumTrackPosition.ASCENDING_WEST && !World.a((IBlockAccess) world, blockposition.west())) { + } else if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.ASCENDING_WEST && !World.a((IBlockAccess) world, blockposition.west())) {
+ flag = true; + flag = true;
+ } else if (enumtrackposition == EnumTrackPosition.ASCENDING_NORTH && !World.a((IBlockAccess) world, blockposition.north())) { + } else if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.ASCENDING_NORTH && !World.a((IBlockAccess) world, blockposition.north())) {
+ flag = true; + flag = true;
+ } else if (enumtrackposition == EnumTrackPosition.ASCENDING_SOUTH && !World.a((IBlockAccess) world, blockposition.south())) { + } else if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.ASCENDING_SOUTH && !World.a((IBlockAccess) world, blockposition.south())) {
+ flag = true; + flag = true;
+ } + }
+ +
@ -108,16 +112,16 @@ index 0000000..063177d
+ protected void b(World world, BlockPosition blockposition, IBlockData iblockdata, Block block) {} + protected void b(World world, BlockPosition blockposition, IBlockData iblockdata, Block block) {}
+ +
+ protected IBlockData a(World world, BlockPosition blockposition, IBlockData iblockdata, boolean flag) { + protected IBlockData a(World world, BlockPosition blockposition, IBlockData iblockdata, boolean flag) {
+ return world.isStatic ? iblockdata : (new MinecartTrackLogic(this, world, blockposition, iblockdata)).a(world.isBlockIndirectlyPowered(blockposition), flag).b(); + return world.isClientSide ? iblockdata : (new MinecartTrackLogic(world, blockposition, iblockdata)).a(world.isBlockIndirectlyPowered(blockposition), flag).b();
+ } + }
+ +
+ public int i() { + public int k() {
+ return 0; + return 0;
+ } + }
+ +
+ public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) { + public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) {
+ super.remove(world, blockposition, iblockdata); + super.remove(world, blockposition, iblockdata);
+ if (((EnumTrackPosition) iblockdata.get(this.l())).c()) { + if (((EnumTrackPosition) iblockdata.get(this.n())).c()) {
+ world.applyPhysics(blockposition.up(), this); + world.applyPhysics(blockposition.up(), this);
+ } + }
+ +
@ -128,14 +132,487 @@ index 0000000..063177d
+ +
+ } + }
+ +
+ public abstract IBlockState l(); + public abstract IBlockState<EnumTrackPosition> n();
+
+ static class SyntheticClass_1 {
+
+ static final int[] a = new int[EnumTrackPosition.values().length];
+
+ static {
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.NORTH_SOUTH.ordinal()] = 1;
+ } catch (NoSuchFieldError nosuchfielderror) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.EAST_WEST.ordinal()] = 2;
+ } catch (NoSuchFieldError nosuchfielderror1) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.ASCENDING_EAST.ordinal()] = 3;
+ } catch (NoSuchFieldError nosuchfielderror2) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.ASCENDING_WEST.ordinal()] = 4;
+ } catch (NoSuchFieldError nosuchfielderror3) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.ASCENDING_NORTH.ordinal()] = 5;
+ } catch (NoSuchFieldError nosuchfielderror4) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.ASCENDING_SOUTH.ordinal()] = 6;
+ } catch (NoSuchFieldError nosuchfielderror5) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.SOUTH_EAST.ordinal()] = 7;
+ } catch (NoSuchFieldError nosuchfielderror6) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.SOUTH_WEST.ordinal()] = 8;
+ } catch (NoSuchFieldError nosuchfielderror7) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.NORTH_WEST.ordinal()] = 9;
+ } catch (NoSuchFieldError nosuchfielderror8) {
+ ;
+ }
+
+ try {
+ SyntheticClass_1.a[EnumTrackPosition.NORTH_EAST.ordinal()] = 10;
+ } catch (NoSuchFieldError nosuchfielderror9) {
+ ;
+ }
+
+ }
+ }
+
+ public static enum EnumTrackPosition implements INamable {
+
+ NORTH_SOUTH(0, "north_south"), EAST_WEST(1, "east_west"), ASCENDING_EAST(2, "ascending_east"), ASCENDING_WEST(3, "ascending_west"), ASCENDING_NORTH(4, "ascending_north"), ASCENDING_SOUTH(5, "ascending_south"), SOUTH_EAST(6, "south_east"), SOUTH_WEST(7, "south_west"), NORTH_WEST(8, "north_west"), NORTH_EAST(9, "north_east");
+
+ private static final EnumTrackPosition[] k = new EnumTrackPosition[values().length];
+ private final int l;
+ private final String m;
+
+ private EnumTrackPosition(int i, String s) {
+ this.l = i;
+ this.m = s;
+ }
+
+ public int a() {
+ return this.l;
+ }
+
+ public String toString() {
+ return this.m;
+ }
+
+ public boolean c() {
+ return this == EnumTrackPosition.ASCENDING_NORTH || this == EnumTrackPosition.ASCENDING_EAST || this == EnumTrackPosition.ASCENDING_SOUTH || this == EnumTrackPosition.ASCENDING_WEST;
+ }
+
+ public static EnumTrackPosition a(int i) {
+ if (i < 0 || i >= EnumTrackPosition.k.length) {
+ i = 0;
+ }
+
+ return EnumTrackPosition.k[i];
+ }
+
+ public String getName() {
+ return this.m;
+ }
+
+ static {
+ EnumTrackPosition[] ablockminecarttrackabstract_enumtrackposition = values();
+ int i = ablockminecarttrackabstract_enumtrackposition.length;
+
+ for (int j = 0; j < i; ++j) {
+ EnumTrackPosition blockminecarttrackabstract_enumtrackposition = ablockminecarttrackabstract_enumtrackposition[j];
+
+ EnumTrackPosition.k[blockminecarttrackabstract_enumtrackposition.a()] = blockminecarttrackabstract_enumtrackposition;
+ }
+
+ }
+ }
+
+ public class MinecartTrackLogic {
+
+ private final World b;
+ private final BlockPosition c;
+ private final BlockMinecartTrackAbstract d;
+ private IBlockData e;
+ private final boolean f;
+ private final List<BlockPosition> g = Lists.newArrayList();
+
+ public MinecartTrackLogic(World world, BlockPosition blockposition, IBlockData iblockdata) {
+ this.b = world;
+ this.c = blockposition;
+ this.e = iblockdata;
+ this.d = (BlockMinecartTrackAbstract) iblockdata.getBlock();
+ EnumTrackPosition blockminecarttrackabstract_enumtrackposition = (EnumTrackPosition) iblockdata.get(BlockMinecartTrackAbstract.this.n());
+
+ this.f = this.d.a;
+ this.a(blockminecarttrackabstract_enumtrackposition);
+ }
+
+ private void a(EnumTrackPosition blockminecarttrackabstract_enumtrackposition) {
+ this.g.clear();
+ switch (SyntheticClass_1.a[blockminecarttrackabstract_enumtrackposition.ordinal()]) {
+ case 1:
+ this.g.add(this.c.north());
+ this.g.add(this.c.south());
+ break;
+
+ case 2:
+ this.g.add(this.c.west());
+ this.g.add(this.c.east());
+ break;
+
+ case 3:
+ this.g.add(this.c.west());
+ this.g.add(this.c.east().up());
+ break;
+
+ case 4:
+ this.g.add(this.c.west().up());
+ this.g.add(this.c.east());
+ break;
+
+ case 5:
+ this.g.add(this.c.north().up());
+ this.g.add(this.c.south());
+ break;
+
+ case 6:
+ this.g.add(this.c.north());
+ this.g.add(this.c.south().up());
+ break;
+
+ case 7:
+ this.g.add(this.c.east());
+ this.g.add(this.c.south());
+ break;
+
+ case 8:
+ this.g.add(this.c.west());
+ this.g.add(this.c.south());
+ break;
+
+ case 9:
+ this.g.add(this.c.west());
+ this.g.add(this.c.north());
+ break;
+
+ case 10:
+ this.g.add(this.c.east());
+ this.g.add(this.c.north());
+ }
+
+ }
+
+ private void c() {
+ for (int i = 0; i < this.g.size(); ++i) {
+ MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic = this.b((BlockPosition) this.g.get(i));
+
+ if (blockminecarttrackabstract_minecarttracklogic != null && blockminecarttrackabstract_minecarttracklogic.a(this)) {
+ this.g.set(i, blockminecarttrackabstract_minecarttracklogic.c);
+ } else {
+ this.g.remove(i--);
+ }
+ }
+
+ }
+
+ private boolean a(BlockPosition blockposition) {
+ return BlockMinecartTrackAbstract.e(this.b, blockposition) || BlockMinecartTrackAbstract.e(this.b, blockposition.up()) || BlockMinecartTrackAbstract.e(this.b, blockposition.down());
+ }
+
+ private MinecartTrackLogic b(BlockPosition blockposition) {
+ IBlockData iblockdata = this.b.getType(blockposition);
+
+ if (BlockMinecartTrackAbstract.d(iblockdata)) {
+ return BlockMinecartTrackAbstract.this.new MinecartTrackLogic(this.b, blockposition, iblockdata);
+ } else {
+ BlockPosition blockposition1 = blockposition.up();
+
+ iblockdata = this.b.getType(blockposition1);
+ if (BlockMinecartTrackAbstract.d(iblockdata)) {
+ return BlockMinecartTrackAbstract.this.new MinecartTrackLogic(this.b, blockposition1, iblockdata);
+ } else {
+ blockposition1 = blockposition.down();
+ iblockdata = this.b.getType(blockposition1);
+ return BlockMinecartTrackAbstract.d(iblockdata) ? BlockMinecartTrackAbstract.this.new MinecartTrackLogic(this.b, blockposition1, iblockdata) : null;
+ }
+ }
+ }
+
+ private boolean a(MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic) {
+ return this.c(blockminecarttrackabstract_minecarttracklogic.c);
+ }
+
+ private boolean c(BlockPosition blockposition) {
+ for (int i = 0; i < this.g.size(); ++i) {
+ BlockPosition blockposition1 = (BlockPosition) this.g.get(i);
+
+ if (blockposition1.getX() == blockposition.getX() && blockposition1.getZ() == blockposition.getZ()) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ protected int a() {
+ int i = 0;
+ Iterator iterator = EnumDirection.EnumDirectionLimit.HORIZONTAL.iterator();
+
+ while (iterator.hasNext()) {
+ EnumDirection enumdirection = (EnumDirection) iterator.next();
+
+ if (this.a(this.c.shift(enumdirection))) {
+ ++i;
+ }
+ }
+
+ return i;
+ }
+
+ private boolean b(MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic) {
+ return this.a(blockminecarttrackabstract_minecarttracklogic) || this.g.size() != 2;
+ }
+
+ private void c(MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic) {
+ this.g.add(blockminecarttrackabstract_minecarttracklogic.c);
+ BlockPosition blockposition = this.c.north();
+ BlockPosition blockposition1 = this.c.south();
+ BlockPosition blockposition2 = this.c.west();
+ BlockPosition blockposition3 = this.c.east();
+ boolean flag = this.c(blockposition);
+ boolean flag1 = this.c(blockposition1);
+ boolean flag2 = this.c(blockposition2);
+ boolean flag3 = this.c(blockposition3);
+ EnumTrackPosition blockminecarttrackabstract_enumtrackposition = null;
+
+ if (flag || flag1) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_SOUTH;
+ }
+
+ if (flag2 || flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.EAST_WEST;
+ }
+
+ if (!this.f) {
+ if (flag1 && flag3 && !flag && !flag2) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_EAST;
+ }
+
+ if (flag1 && flag2 && !flag && !flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_WEST;
+ }
+
+ if (flag && flag2 && !flag1 && !flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_WEST;
+ }
+
+ if (flag && flag3 && !flag1 && !flag2) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_EAST;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.NORTH_SOUTH) {
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_NORTH;
+ }
+
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition1.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_SOUTH;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.EAST_WEST) {
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition3.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_EAST;
+ }
+
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition2.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_WEST;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == null) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_SOUTH;
+ }
+
+ this.e = this.e.set(this.d.n(), blockminecarttrackabstract_enumtrackposition);
+ this.b.setTypeAndData(this.c, this.e, 3);
+ }
+
+ private boolean d(BlockPosition blockposition) {
+ MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic = this.b(blockposition);
+
+ if (blockminecarttrackabstract_minecarttracklogic == null) {
+ return false;
+ } else {
+ blockminecarttrackabstract_minecarttracklogic.c();
+ return blockminecarttrackabstract_minecarttracklogic.b(this);
+ }
+ }
+
+ public MinecartTrackLogic a(boolean flag, boolean flag1) {
+ BlockPosition blockposition = this.c.north();
+ BlockPosition blockposition1 = this.c.south();
+ BlockPosition blockposition2 = this.c.west();
+ BlockPosition blockposition3 = this.c.east();
+ boolean flag2 = this.d(blockposition);
+ boolean flag3 = this.d(blockposition1);
+ boolean flag4 = this.d(blockposition2);
+ boolean flag5 = this.d(blockposition3);
+ EnumTrackPosition blockminecarttrackabstract_enumtrackposition = null;
+
+ if ((flag2 || flag3) && !flag4 && !flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_SOUTH;
+ }
+
+ if ((flag4 || flag5) && !flag2 && !flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.EAST_WEST;
+ }
+
+ if (!this.f) {
+ if (flag3 && flag5 && !flag2 && !flag4) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_EAST;
+ }
+
+ if (flag3 && flag4 && !flag2 && !flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_WEST;
+ }
+
+ if (flag2 && flag4 && !flag3 && !flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_WEST;
+ }
+
+ if (flag2 && flag5 && !flag3 && !flag4) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_EAST;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == null) {
+ if (flag2 || flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_SOUTH;
+ }
+
+ if (flag4 || flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.EAST_WEST;
+ }
+
+ if (!this.f) {
+ if (flag) {
+ if (flag3 && flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_EAST;
+ }
+
+ if (flag4 && flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_WEST;
+ }
+
+ if (flag5 && flag2) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_EAST;
+ }
+
+ if (flag2 && flag4) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_WEST;
+ }
+ } else {
+ if (flag2 && flag4) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_WEST;
+ }
+
+ if (flag5 && flag2) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_EAST;
+ }
+
+ if (flag4 && flag3) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_WEST;
+ }
+
+ if (flag3 && flag5) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.SOUTH_EAST;
+ }
+ }
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.NORTH_SOUTH) {
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_NORTH;
+ }
+
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition1.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_SOUTH;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == EnumTrackPosition.EAST_WEST) {
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition3.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_EAST;
+ }
+
+ if (BlockMinecartTrackAbstract.e(this.b, blockposition2.up())) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.ASCENDING_WEST;
+ }
+ }
+
+ if (blockminecarttrackabstract_enumtrackposition == null) {
+ blockminecarttrackabstract_enumtrackposition = EnumTrackPosition.NORTH_SOUTH;
+ }
+
+ this.a(blockminecarttrackabstract_enumtrackposition);
+ this.e = this.e.set(this.d.n(), blockminecarttrackabstract_enumtrackposition);
+ if (flag1 || this.b.getType(this.c) != this.e) {
+ this.b.setTypeAndData(this.c, this.e, 3);
+
+ for (int i = 0; i < this.g.size(); ++i) {
+ MinecartTrackLogic blockminecarttrackabstract_minecarttracklogic = this.b((BlockPosition) this.g.get(i));
+
+ if (blockminecarttrackabstract_minecarttracklogic != null) {
+ blockminecarttrackabstract_minecarttracklogic.c();
+ if (blockminecarttrackabstract_minecarttracklogic.b(this)) {
+ blockminecarttrackabstract_minecarttracklogic.c(this);
+ }
+ }
+ }
+ }
+
+ return this;
+ }
+
+ public IBlockData b() {
+ return this.e;
+ }
+ }
+} +}
diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java
new file mode 100644 new file mode 100644
index 0000000..a4b50fe index 0000000..451a0bb
--- /dev/null --- /dev/null
+++ b/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java
@@ -0,0 +1,94 @@ @@ -0,0 +1,90 @@
+package net.minecraft.server; +package net.minecraft.server;
+ +
+public class ItemBlock extends Item { +public class ItemBlock extends Item {
@ -155,9 +632,7 @@ index 0000000..a4b50fe
+ IBlockData iblockdata = world.getType(blockposition); + IBlockData iblockdata = world.getType(blockposition);
+ Block block = iblockdata.getBlock(); + Block block = iblockdata.getBlock();
+ +
+ if (block == Blocks.SNOW_LAYER && ((Integer) iblockdata.get(BlockSnow.LAYERS)).intValue() < 1) { + if (!block.a(world, blockposition)) {
+ enumdirection = EnumDirection.UP;
+ } else if (!block.f(world, blockposition)) {
+ blockposition = blockposition.shift(enumdirection); + blockposition = blockposition.shift(enumdirection);
+ } + }
+ +
@ -165,8 +640,6 @@ index 0000000..a4b50fe
+ return false; + return false;
+ } else if (!entityhuman.a(blockposition, enumdirection, itemstack)) { + } else if (!entityhuman.a(blockposition, enumdirection, itemstack)) {
+ return false; + return false;
+ } else if (blockposition.getY() == 255 && this.a.getMaterial().isBuildable()) {
+ return false;
+ } else if (world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) { + } else if (world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) {
+ int i = this.filterData(itemstack.getData()); + int i = this.filterData(itemstack.getData());
+ IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman); + IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman);
@ -248,43 +721,6 @@ index 0000000..620685a
+ return this.id == MobEffectList.WEAKNESS.id ? (double) (-0.5F * (float) (i + 1)) : 1.3D * (double) (i + 1); + return this.id == MobEffectList.WEAKNESS.id ? (double) (-0.5F * (float) (i + 1)) : 1.3D * (double) (i + 1);
+ } + }
+} +}
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java b/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
new file mode 100644
index 0000000..985e437
--- /dev/null
+++ b/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
@@ -0,0 +1,31 @@
+package net.minecraft.server;
+
+public class PacketPlayOutPlayerListHeaderFooter implements Packet {
+
+ private IChatBaseComponent a;
+ private IChatBaseComponent b;
+
+ public PacketPlayOutPlayerListHeaderFooter() {}
+
+ public PacketPlayOutPlayerListHeaderFooter(IChatBaseComponent ichatbasecomponent) {
+ this.a = ichatbasecomponent;
+ }
+
+ public void a(PacketDataSerializer packetdataserializer) {
+ this.a = packetdataserializer.d();
+ this.b = packetdataserializer.d();
+ }
+
+ public void b(PacketDataSerializer packetdataserializer) {
+ packetdataserializer.a(this.a);
+ packetdataserializer.a(this.b);
+ }
+
+ public void a(PacketListenerPlayOut packetlistenerplayout) {
+ packetlistenerplayout.a(this);
+ }
+
+ public void a(PacketListener packetlistener) {
+ this.a((PacketListenerPlayOut) packetlistener);
+ }
+}
diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
new file mode 100644 new file mode 100644
index 0000000..794cdc8 index 0000000..794cdc8
@ -380,7 +816,7 @@ index 0000000..794cdc8
+} +}
diff --git a/src/main/java/net/minecraft/server/TileEntityLightDetector.java b/src/main/java/net/minecraft/server/TileEntityLightDetector.java diff --git a/src/main/java/net/minecraft/server/TileEntityLightDetector.java b/src/main/java/net/minecraft/server/TileEntityLightDetector.java
new file mode 100644 new file mode 100644
index 0000000..7b6f8ae index 0000000..f75e2de
--- /dev/null --- /dev/null
+++ b/src/main/java/net/minecraft/server/TileEntityLightDetector.java +++ b/src/main/java/net/minecraft/server/TileEntityLightDetector.java
@@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
@ -391,10 +827,10 @@ index 0000000..7b6f8ae
+ public TileEntityLightDetector() {} + public TileEntityLightDetector() {}
+ +
+ public void c() { + public void c() {
+ if (this.world != null && !this.world.isStatic && this.world.getTime() % 20L == 0L) { + if (this.world != null && !this.world.isClientSide && this.world.getTime() % 20L == 0L) {
+ this.e = this.w(); + this.e = this.w();
+ if (this.e instanceof BlockDaylightDetector) { + if (this.e instanceof BlockDaylightDetector) {
+ ((BlockDaylightDetector) this.e).d(this.world, this.position); + ((BlockDaylightDetector) this.e).f(this.world, this.position);
+ } + }
+ } + }
+ +

View File

@ -1,16 +1,16 @@
From 748dbbdcd8b0f5a6cda6d1e4366c361324f20676 Mon Sep 17 00:00:00 2001 From 85b439d4648ae4766f5c54754219b5fd0ea315ac Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 00:35:56 -0600 Date: Sat, 7 Mar 2015 19:50:01 -0600
Subject: [PATCH] Vanished players don't have rights Subject: [PATCH] Vanished players don't have rights
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index ead7eef..a77ebfe 100644 index 46f6374..6aa8cad 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java --- a/src/main/java/net/minecraft/server/EntityArrow.java
+++ b/src/main/java/net/minecraft/server/EntityArrow.java +++ b/src/main/java/net/minecraft/server/EntityArrow.java
@@ -221,6 +221,14 @@ public class EntityArrow extends Entity implements IProjectile { @@ -220,6 +220,14 @@ public class EntityArrow extends Entity implements IProjectile {
float f2;
float f3; float f3;
float f4;
+ // PaperSpigot start - Allow arrows to fly through vanished players the shooter can't see + // PaperSpigot start - Allow arrows to fly through vanished players the shooter can't see
+ if (movingobjectposition != null && movingobjectposition.entity instanceof EntityPlayer && shooter != null && shooter instanceof EntityPlayer) { + if (movingobjectposition != null && movingobjectposition.entity instanceof EntityPlayer && shooter != null && shooter instanceof EntityPlayer) {
@ -22,12 +22,12 @@ index ead7eef..a77ebfe 100644
+ +
if (movingobjectposition != null) { if (movingobjectposition != null) {
org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // CraftBukkit - Call event org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); // CraftBukkit - Call event
if (movingobjectposition.entity != null) {
diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
index ce3e628..005e995 100644 index d4e5971..fbcb6ac 100644
--- a/src/main/java/net/minecraft/server/EntityProjectile.java --- a/src/main/java/net/minecraft/server/EntityProjectile.java
+++ b/src/main/java/net/minecraft/server/EntityProjectile.java +++ b/src/main/java/net/minecraft/server/EntityProjectile.java
@@ -146,6 +146,14 @@ public abstract class EntityProjectile extends Entity implements IProjectile { @@ -147,6 +147,14 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
} }
} }
@ -40,15 +40,15 @@ index ce3e628..005e995 100644
+ // PaperSpigot end + // PaperSpigot end
+ +
if (movingobjectposition != null) { if (movingobjectposition != null) {
if (movingobjectposition.type == EnumMovingObjectType.BLOCK && this.world.getType(movingobjectposition.a()).getBlock() == Blocks.PORTAL) { if (movingobjectposition.type == MovingObjectPosition.EnumMovingObjectType.BLOCK && this.world.getType(movingobjectposition.a()).getBlock() == Blocks.PORTAL) {
this.aq(); this.d(movingobjectposition.a());
diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java
index a4b50fe..14ea66d 100644 index 451a0bb..24601c7 100644
--- a/src/main/java/net/minecraft/server/ItemBlock.java --- a/src/main/java/net/minecraft/server/ItemBlock.java
+++ b/src/main/java/net/minecraft/server/ItemBlock.java +++ b/src/main/java/net/minecraft/server/ItemBlock.java
@@ -29,7 +29,7 @@ public class ItemBlock extends Item { @@ -25,7 +25,7 @@ public class ItemBlock extends Item {
return false; return false;
} else if (blockposition.getY() == 255 && this.a.getMaterial().isBuildable()) { } else if (!entityhuman.a(blockposition, enumdirection, itemstack)) {
return false; return false;
- } else if (world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) { - } else if (world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) {
+ } else if (world.a(this.a, blockposition, false, enumdirection, entityhuman, itemstack)) { // PaperSpigot - Pass entityhuman instead of null + } else if (world.a(this.a, blockposition, false, enumdirection, entityhuman, itemstack)) { // PaperSpigot - Pass entityhuman instead of null
@ -56,10 +56,10 @@ index a4b50fe..14ea66d 100644
IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman); IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e071cbf..6b77fda 100644 index 31df781..4838e84 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1670,6 +1670,14 @@ public abstract class World implements IBlockAccess { @@ -1671,6 +1671,13 @@ public abstract class World implements IBlockAccess {
for (int i = 0; i < list.size(); ++i) { for (int i = 0; i < list.size(); ++i) {
Entity entity1 = (Entity) list.get(i); Entity entity1 = (Entity) list.get(i);
@ -69,11 +69,10 @@ index e071cbf..6b77fda 100644
+ continue; + continue;
+ } + }
+ } + }
+ // PaperSpigot end
+ +
if (!entity1.dead && entity1.k && entity1 != entity && (entity == null || entity.vehicle != entity1 && entity.passenger != entity1)) { if (!entity1.dead && entity1.k && entity1 != entity && (entity == null || entity.vehicle != entity1 && entity.passenger != entity1)) {
return false; return false;
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,30 +1,27 @@
From c09702cef82655997b7ace1787a8ee295b1f7211 Mon Sep 17 00:00:00 2001 From 0105ce07d38b5554882c5c8293218219baf01c74 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 00:08:37 -0600 Date: Sat, 7 Mar 2015 19:57:50 -0600
Subject: [PATCH] Allow undead horse types to be leashed Subject: [PATCH] Allow undead horse types to be leashed
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
index 50e9292..0bcf8c9 100644 index 688099f..d1d45b6 100644
--- a/src/main/java/net/minecraft/server/EntityHorse.java --- a/src/main/java/net/minecraft/server/EntityHorse.java
+++ b/src/main/java/net/minecraft/server/EntityHorse.java +++ b/src/main/java/net/minecraft/server/EntityHorse.java
@@ -173,7 +173,13 @@ public class EntityHorse extends EntityAnimal implements IInventoryListener { @@ -179,6 +179,11 @@ public class EntityHorse extends EntityAnimal implements IInventoryListener {
} }
public boolean ca() { public boolean cb() {
- return !this.cP() && super.ca();
+ // PaperSpigot start - Configurable undead horse leashing + // PaperSpigot start - Configurable undead horse leashing
+ if (this.world.paperSpigotConfig.allowUndeadHorseLeashing) { + if (this.world.paperSpigotConfig.allowUndeadHorseLeashing) {
+ return super.ca(); + return super.cb();
+ } else {
+ return !this.cP() && super.ca();
+ } + }
+ // PaperSpigot end + // PaperSpigot end
return !this.cR() && super.cb();
} }
protected void n(float f) {
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index f3bc3aa..b9d1afe 100644 index f3bc3aa..0b47234 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -74,4 +74,11 @@ public class PaperSpigotWorldConfig @@ -74,4 +74,11 @@ public class PaperSpigotWorldConfig
@ -35,7 +32,7 @@ index f3bc3aa..b9d1afe 100644
+ public boolean allowUndeadHorseLeashing; + public boolean allowUndeadHorseLeashing;
+ private void allowUndeadHorseLeashing() + private void allowUndeadHorseLeashing()
+ { + {
+ allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", true ); + allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", false );
+ log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing ); + log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing );
+ } + }
} }

View File

@ -1,29 +1,29 @@
From 2475b727707230bcf5e97c384ce2e5c512392afa Mon Sep 17 00:00:00 2001 From 6b5d69ae84764c2a11f03c5fd257486181017987 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 00:41:04 -0600 Date: Sat, 7 Mar 2015 20:20:29 -0600
Subject: [PATCH] Configurable squid spawn ranges Subject: [PATCH] Configurable squid spawn ranges
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index ee93dfe..0868017 100644 index 511bec7..31996b4 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java --- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java +++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -145,7 +145,8 @@ public class EntitySquid extends EntityWaterAnimal { @@ -141,7 +141,8 @@ public class EntitySquid extends EntityWaterAnimal {
} }
public boolean bQ() { public boolean bR() {
- return this.locY > 45.0D && this.locY < 63.0D && super.bQ(); - return this.locY > 45.0D && this.locY < (double) this.world.F() && super.bR();
+ // PaperSpigot - Configurable squid spawn range + // PaperSpigot - Configurable squid spawn range
+ return this.locY > this.world.paperSpigotConfig.squidMinSpawnHeight && this.locY < this.world.paperSpigotConfig.squidMaxSpawnHeight && super.bQ(); + return this.locY > this.world.paperSpigotConfig.squidMinSpawnHeight && this.locY < (double) this.world.paperSpigotConfig.squidMaxSpawnHeight && super.bR();
} }
public void b(float f, float f1, float f2) { public void b(float f, float f1, float f2) {
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index b9d1afe..f6b0349 100644 index 0b47234..f3bbac8 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -81,4 +81,13 @@ public class PaperSpigotWorldConfig @@ -81,4 +81,13 @@ public class PaperSpigotWorldConfig
allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", true ); allowUndeadHorseLeashing = getBoolean( "allow-undead-horse-leashing", false );
log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing ); log( "Allow undead horse types to be leashed: " + allowUndeadHorseLeashing );
} }
+ +
@ -33,9 +33,9 @@ index b9d1afe..f6b0349 100644
+ { + {
+ squidMinSpawnHeight = getDouble( "squid-spawn-height.minimum", 45.0D ); + squidMinSpawnHeight = getDouble( "squid-spawn-height.minimum", 45.0D );
+ squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D ); + squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D );
+ log( "Squids will spawn between Y: " + squidMinSpawnHeight + " and Y: " + squidMaxSpawnHeight); + log( "Squids will spawn between Y: " + squidMinSpawnHeight + " and Y: " + squidMaxSpawnHeight );
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,38 +1,38 @@
From 490c255eaa142d4712b7fb492d7ccb0fca59d408 Mon Sep 17 00:00:00 2001 From 9b9c2851ddafd52f5e631de7ec1be02a35ad64e1 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 00:45:14 -0600 Date: Sat, 7 Mar 2015 20:27:02 -0600
Subject: [PATCH] Configurable damage multiplier for PvP blocking Subject: [PATCH] Configurable damage multiplier for PvP blocking
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 00aa03d..876cf4e 100644 index d73395a..9dce3ac 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java --- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -862,7 +862,7 @@ public abstract class EntityHuman extends EntityLiving { @@ -861,7 +861,7 @@ public abstract class EntityHuman extends EntityLiving {
// CraftBukkit end // CraftBukkit end
if (!this.isInvulnerable(damagesource)) { if (!this.isInvulnerable(damagesource)) {
if (!damagesource.ignoresArmor() && this.isBlocking() && f > 0.0F) { if (!damagesource.ignoresArmor() && this.isBlocking() && f > 0.0F) {
- f = (1.0F + f) * 0.5F; - f = (1.0F + f) * 0.5F;
+ f = (1.0F + f) * this.world.paperSpigotConfig.playerBlockingDamageMultiplier; // PaperSpigot - Configurable damage multiplier for blocking + f = (1.0F + f) * this.world.paperSpigotConfig.playerBlockingDamageMultiplier; // PaperSpigot - Configurable damage multiplier for blocking;
} }
f = this.applyArmorModifier(damagesource, f); f = this.applyArmorModifier(damagesource, f);
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index f6b0349..5cda463 100644 index f3bbac8..2a84879 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -90,4 +90,11 @@ public class PaperSpigotWorldConfig @@ -90,4 +90,11 @@ public class PaperSpigotWorldConfig
squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D ); squidMaxSpawnHeight = getDouble( "squid-spawn-height.maximum", 63.0D );
log( "Squids will spawn between Y: " + squidMinSpawnHeight + " and Y: " + squidMaxSpawnHeight); log( "Squids will spawn between Y: " + squidMinSpawnHeight + " and Y: " + squidMaxSpawnHeight );
} }
+ +
+ public float playerBlockingDamageMultiplier; + public float playerBlockingDamageMultiplier;
+ private void playerBlockingDamageMultiplier() + private void playerBlockingDamageMultiplier()
+ { + {
+ playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F ); + playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F );
+ log( "Player blocking damage multiplier set to " + playerBlockingDamageMultiplier); + log( "Player blocking damage multiplier set to " + playerBlockingDamageMultiplier );
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From 381b93978d20e3a2aa75108b6bd18c00dd4152d1 Mon Sep 17 00:00:00 2001 From 5ac0e55838b5e0bf667cc3759af1e2744eea2a2a Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 00:55:17 -0600 Date: Sat, 7 Mar 2015 20:32:13 -0600
Subject: [PATCH] Configurable cactus and reed natural growth heights Subject: [PATCH] Configurable cactus and reed natural growth heights
diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java diff --git a/src/main/java/net/minecraft/server/BlockCactus.java b/src/main/java/net/minecraft/server/BlockCactus.java
index d9f6e0b..d0b1bcf 100644 index 488e5c2..ddc2135 100644
--- a/src/main/java/net/minecraft/server/BlockCactus.java --- a/src/main/java/net/minecraft/server/BlockCactus.java
+++ b/src/main/java/net/minecraft/server/BlockCactus.java +++ b/src/main/java/net/minecraft/server/BlockCactus.java
@@ -26,7 +26,7 @@ public class BlockCactus extends Block { @@ -26,7 +26,7 @@ public class BlockCactus extends Block {
@ -13,12 +13,12 @@ index d9f6e0b..d0b1bcf 100644
} }
- if (i < 3) { - if (i < 3) {
+ if (i < world.paperSpigotConfig.cactusMaxHeight) { // PaperSpigot - Configurable max growth height for cactus blocks + if (i < world.paperSpigotConfig.cactusMaxHeight) { // PaperSpigot - Configurable max growth height for cactus blocks) {
int j = ((Integer) iblockdata.get(BlockCactus.AGE)).intValue(); int j = ((Integer) iblockdata.get(BlockCactus.AGE)).intValue();
if (j >= (byte) range(3, (world.growthOdds / world.spigotConfig.cactusModifier * 15) + 0.5F, 15)) { // Spigot if (j >= (byte) range(3, (world.growthOdds / world.spigotConfig.cactusModifier * 15) + 0.5F, 15)) { // Spigot
diff --git a/src/main/java/net/minecraft/server/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java diff --git a/src/main/java/net/minecraft/server/BlockReed.java b/src/main/java/net/minecraft/server/BlockReed.java
index 27b7f81..d04de80 100644 index d00067d..337f2c4 100644
--- a/src/main/java/net/minecraft/server/BlockReed.java --- a/src/main/java/net/minecraft/server/BlockReed.java
+++ b/src/main/java/net/minecraft/server/BlockReed.java +++ b/src/main/java/net/minecraft/server/BlockReed.java
@@ -25,7 +25,7 @@ public class BlockReed extends Block { @@ -25,7 +25,7 @@ public class BlockReed extends Block {
@ -26,17 +26,17 @@ index 27b7f81..d04de80 100644
} }
- if (i < 3) { - if (i < 3) {
+ if (i < world.paperSpigotConfig.reedMaxHeight) { // PaperSpigot - Configurable max growth height for reed blocks + if (i < world.paperSpigotConfig.reedMaxHeight) { // PaperSpigot - Configurable max growth height for reed blocks) {
int j = ((Integer) iblockdata.get(BlockReed.AGE)).intValue(); int j = ((Integer) iblockdata.get(BlockReed.AGE)).intValue();
if (j >= (byte) range(3, (world.growthOdds / world.spigotConfig.caneModifier * 15) + 0.5F, 15)) { // Spigot if (j >= (byte) range(3, (world.growthOdds / world.spigotConfig.caneModifier * 15) + 0.5F, 15)) { // Spigot
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 5cda463..0878ea7 100644 index 2a84879..c8b428c 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -97,4 +97,13 @@ public class PaperSpigotWorldConfig @@ -97,4 +97,13 @@ public class PaperSpigotWorldConfig
playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F ); playerBlockingDamageMultiplier = getFloat( "player-blocking-damage-multiplier", 0.5F );
log( "Player blocking damage multiplier set to " + playerBlockingDamageMultiplier); log( "Player blocking damage multiplier set to " + playerBlockingDamageMultiplier );
} }
+ +
+ public int cactusMaxHeight; + public int cactusMaxHeight;
@ -45,9 +45,9 @@ index 5cda463..0878ea7 100644
+ { + {
+ cactusMaxHeight = getInt( "max-growth-height.cactus", 3 ); + cactusMaxHeight = getInt( "max-growth-height.cactus", 3 );
+ reedMaxHeight = getInt( "max-growth-height.reeds", 3 ); + reedMaxHeight = getInt( "max-growth-height.reeds", 3 );
+ log( "Max height for cactus growth " + cactusMaxHeight + ". Max height for reed growth " + reedMaxHeight); + log( "Max height for cactus growth " + cactusMaxHeight + ". Max height for reed growth " + reedMaxHeight );
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,25 +1,24 @@
From f372b0402915aab3c5069327ff9e5e0a337a3978 Mon Sep 17 00:00:00 2001 From 3a58172910a843143496837f4de1a5185c337360 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 01:01:51 -0600 Date: Sat, 7 Mar 2015 20:41:55 -0600
Subject: [PATCH] Configurable baby zombie movement speed Subject: [PATCH] Configurable baby zombie movement speed
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 3e6a101..b2d9e67 100644 index 2c0c74c..e915f68 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java --- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java +++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -16,7 +16,8 @@ public class EntityZombie extends EntityMonster { @@ -16,7 +16,7 @@ public class EntityZombie extends EntityMonster {
protected static final IAttribute b = (new AttributeRanged((IAttribute) null, "zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance"); protected static final IAttribute a = (new AttributeRanged((IAttribute) null, "zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).a("Spawn Reinforcements Chance");
private static final UUID c = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836"); private static final UUID b = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836");
- private static final AttributeModifier bk = new AttributeModifier(EntityZombie.c, "Baby speed boost", 0.5D, 1); - private static final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", 0.5D, 1);
+ // PaperSpigot - Configurable baby zombie movement speed + private static final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", org.github.paperspigot.PaperSpigotConfig.babyZombieMovementSpeed, 1); // PaperSpigot - Configurable baby zombie movement speed
+ private static final AttributeModifier bk = new AttributeModifier(EntityZombie.c, "Baby speed boost", org.github.paperspigot.PaperSpigotConfig.babyZombieMovementSpeed, 1); private final PathfinderGoalBreakDoor bm = new PathfinderGoalBreakDoor(this);
private final PathfinderGoalBreakDoor bl = new PathfinderGoalBreakDoor(this); private int bn;
private int bm; private boolean bo = false;
private boolean bn = false;
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
index 7ea1617..f4acbb3 100644 index fa41614..c2003a3 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -137,4 +137,10 @@ public class PaperSpigotConfig @@ -137,4 +137,10 @@ public class PaperSpigotConfig
@ -30,9 +29,9 @@ index 7ea1617..f4acbb3 100644
+ public static double babyZombieMovementSpeed; + public static double babyZombieMovementSpeed;
+ private static void babyZombieMovementSpeed() + private static void babyZombieMovementSpeed()
+ { + {
+ babyZombieMovementSpeed = getDouble( "settings.baby-zombie-movement-speed", 0.5D); // Player moves at 0.1F, for reference + babyZombieMovementSpeed = getDouble( "settings.baby-zombie-movement-speed", 0.5D ); // Player moves at 0.1F, for reference
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,24 +1,25 @@
From 63fd30acfedd9886f2cd0baf86f8d335dd1199e2 Mon Sep 17 00:00:00 2001 From 28494b41113a7159f6ef4c828238c0492225dd89 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 5 Aug 2014 17:39:04 -0500 Date: Sat, 7 Mar 2015 20:46:54 -0600
Subject: [PATCH] Ability to disable asynccatcher Subject: [PATCH] Ability to disable asynccatcher
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
index f4acbb3..2cc159b 100644 index c2003a3..57363d5 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -143,4 +143,13 @@ public class PaperSpigotConfig @@ -143,4 +143,14 @@ public class PaperSpigotConfig
{ {
babyZombieMovementSpeed = getDouble( "settings.baby-zombie-movement-speed", 0.5D); // Player moves at 0.1F, for reference babyZombieMovementSpeed = getDouble( "settings.baby-zombie-movement-speed", 0.5D ); // Player moves at 0.1F, for reference
} }
+ +
+ public static boolean asyncCatcherFeature; + public static boolean asyncCatcherFeature;
+ private static void asyncCatcherFeature() + private static void asyncCatcherFeature()
+ { + {
+ asyncCatcherFeature = getBoolean( "settings.async-plugin-bad-magic-catcher", true ); + asyncCatcherFeature = getBoolean( "settings.async-plugin-bad-magic-catcher", true );
+ if (!asyncCatcherFeature) { + if ( !asyncCatcherFeature )
+ Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this may be bad depending on your plugins" ); + {
+ Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this is not recommended and may cause issues" );
+ } + }
+ } + }
} }
@ -36,5 +37,5 @@ index 4b3aa85..f7e8d16 100644
public static void catchOp(String reason) public static void catchOp(String reason)
{ {
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,28 +1,27 @@
From 47f9adf94abdfcb6fefd5a2efbbf3bcb172a2027 Mon Sep 17 00:00:00 2001 From 4be2389b6d3bd729c67031f327b9aaa8612d3838 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv> From: Iceee <andrew@opticgaming.tv>
Date: Fri, 28 Nov 2014 01:21:27 -0600 Date: Sat, 7 Mar 2015 20:49:31 -0600
Subject: [PATCH] Fix redstone lag issues Subject: [PATCH] Fix redstone lag issues
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index a61655f..34fd259 100644 index 22e4b10..29dcd9e 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java --- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -590,6 +590,8 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -598,6 +598,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
if (i != this.L.size()) { if (i != this.L.size()) {
throw new IllegalStateException("TickNextTick list out of synch"); throw new IllegalStateException("TickNextTick list out of synch");
} else { } else {
+ // PaperSpigot start - Fix redstone lag issues + // PaperSpigot start - No, stop doing this, it affects things like redstone
+ /* + /*
if (i > 1000) { if (i > 1000) {
// CraftBukkit start - If the server has too much to process over time, try to alleviate that // CraftBukkit start - If the server has too much to process over time, try to alleviate that
if (i > 20 * 1000) { if (i > 20 * 1000) {
@@ -598,7 +600,12 @@ public class WorldServer extends World implements IAsyncTaskHandler { @@ -606,7 +608,11 @@ public class WorldServer extends World implements IAsyncTaskHandler {
i = 1000; i = 1000;
} }
// CraftBukkit end // CraftBukkit end
+ } */ + */
+
+ if (i > 10000) { + if (i > 10000) {
+ i = 10000; + i = 10000;
} }
@ -31,5 +30,5 @@ index a61655f..34fd259 100644
this.methodProfiler.a("cleaning"); this.methodProfiler.a("cleaning");
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,31 +1,31 @@
From 62b4352fcbd5d30e516fa3f016beaee2bf5b860f Mon Sep 17 00:00:00 2001 From 0d6c8bb4db762171aa4466e1d26a2b285fdc23df Mon Sep 17 00:00:00 2001
From: T00thpick1 <t00thpick1dirko@gmail.com> From: T00thpick1 <t00thpick1dirko@gmail.com>
Date: Fri, 28 Nov 2014 01:25:45 -0600 Date: Sat, 7 Mar 2015 20:54:33 -0600
Subject: [PATCH] Do not remove player in world change Subject: [PATCH] Do not remove player in world change
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 7466eec..9e9bccf 100644 index c7d26ce..d93b00c 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java --- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -474,7 +474,7 @@ public abstract class PlayerList { @@ -507,7 +507,7 @@ public abstract class PlayerList {
entityplayer.u().getTracker().untrackPlayer(entityplayer); entityplayer.u().getTracker().untrackPlayer(entityplayer);
// entityplayer.u().getTracker().untrackEntity(entityplayer); // CraftBukkit // entityplayer.u().getTracker().untrackEntity(entityplayer); // CraftBukkit
entityplayer.u().getPlayerChunkMap().removePlayer(entityplayer); entityplayer.u().getPlayerChunkMap().removePlayer(entityplayer);
- this.players.remove(entityplayer); - this.players.remove(entityplayer);
+ // this.players.remove(entityplayer); // PaperSpigot - Fixes BUKKIT-4561, BUKKIT-4082, and BUKKIT-2094 + //this.players.remove(entityplayer); // PaperSpigot - Don't remove player in world change. Fixes BUKKIT-4561, BUKKIT-4082, and BUKKIT-2094
this.server.getWorldServer(entityplayer.dimension).removeEntity(entityplayer); this.server.getWorldServer(entityplayer.dimension).removeEntity(entityplayer);
BlockPosition blockposition = entityplayer.getBed(); BlockPosition blockposition = entityplayer.getBed();
boolean flag1 = entityplayer.isRespawnForced(); boolean flag1 = entityplayer.isRespawnForced();
@@ -568,7 +568,7 @@ public abstract class PlayerList { @@ -601,7 +601,7 @@ public abstract class PlayerList {
if (!entityplayer.playerConnection.isDisconnected()) { if (!entityplayer.playerConnection.isDisconnected()) {
worldserver.getPlayerChunkMap().addPlayer(entityplayer1); worldserver.getPlayerChunkMap().addPlayer(entityplayer1);
worldserver.addEntity(entityplayer1); - worldserver.addEntity(entityplayer1);
- this.players.add(entityplayer1); + //worldserver.addEntity(entityplayer1); // PaperSpigot - Don't remove player in world change. Fixes BUKKIT-4561, BUKKIT-4082, and BUKKIT-2094
+ //this.players.add(entityplayer1); // PaperSpigot - Fixes BUKKIT-4561, BUKKIT-4082, and BUKKIT-2094 this.players.add(entityplayer1);
this.f.put(entityplayer1.getUniqueID(), entityplayer1); this.j.put(entityplayer1.getUniqueID(), entityplayer1);
} }
// Added from changeDimension
-- --
2.2.2 1.9.1

View File

@ -1,30 +1,29 @@
From 2cd548a4147654425d101a8a112cc59fe6f9314d Mon Sep 17 00:00:00 2001 From 0ecae352d8b5b7e106d8473acb4677f553bcc50c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 01:29:35 -0600 Date: Sat, 7 Mar 2015 21:00:13 -0600
Subject: [PATCH] Configurable fishing time ranges Subject: [PATCH] Configurable fishing time ranges
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index b1a6daf..e94c4c7 100644 index c2bfb1f..28d698d 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java --- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java +++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -324,7 +324,8 @@ public class EntityFishingHook extends Entity { @@ -331,7 +331,7 @@ public class EntityFishingHook extends Entity {
this.av = MathHelper.nextInt(this.random, 20, 80); this.ax = MathHelper.nextInt(this.random, 20, 80);
} }
} else { } else {
- this.au = MathHelper.nextInt(this.random, 100, 900); - this.aw = MathHelper.nextInt(this.random, 100, 900);
+ // PaperSpigot - Configurable fishing tick range + this.aw = MathHelper.nextInt(this.random, this.world.paperSpigotConfig.fishingMinTicks, this.world.paperSpigotConfig.fishingMaxTicks); // PaperSpigot - Configurable fishing tick range
+ this.au = MathHelper.nextInt(this.random, this.world.paperSpigotConfig.fishingMinTicks, this.world.paperSpigotConfig.fishingMaxTicks); this.aw -= EnchantmentManager.h(this.owner) * 20 * 5;
this.au -= EnchantmentManager.h(this.owner) * 20 * 5;
} }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 0878ea7..b67b856 100644 index c8b428c..1d8448c 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -106,4 +106,12 @@ public class PaperSpigotWorldConfig @@ -106,4 +106,12 @@ public class PaperSpigotWorldConfig
reedMaxHeight = getInt( "max-growth-height.reeds", 3 ); reedMaxHeight = getInt( "max-growth-height.reeds", 3 );
log( "Max height for cactus growth " + cactusMaxHeight + ". Max height for reed growth " + reedMaxHeight); log( "Max height for cactus growth " + cactusMaxHeight + ". Max height for reed growth " + reedMaxHeight );
} }
+ +
+ public int fishingMinTicks; + public int fishingMinTicks;
@ -36,5 +35,5 @@ index 0878ea7..b67b856 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From d31ec5cfef234a997563a3c58639f8bd6830bfdf Mon Sep 17 00:00:00 2001 From e9811e3e812eb16f55045df9e643d1dc302d7a1c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 29 Jun 2014 13:32:36 -0500 Date: Sat, 7 Mar 2015 21:03:06 -0600
Subject: [PATCH] Allow nerfed mobs to jump Subject: [PATCH] Allow nerfed mobs to jump
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 214c0ca..196b45a 100644 index 134897a..b580217 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java --- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -454,6 +454,12 @@ public abstract class EntityInsentient extends EntityLiving { @@ -454,6 +454,12 @@ public abstract class EntityInsentient extends EntityLiving {
@ -22,5 +22,5 @@ index 214c0ca..196b45a 100644
} }
// Spigot End // Spigot End
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,14 +1,14 @@
From 0f98d5f5793dde56cee3130d5d418e28d2412fdb Mon Sep 17 00:00:00 2001 From c153d5c158a9b9f8c11469555ac1fc8967dea55d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 28 Nov 2014 01:33:25 -0600 Date: Sat, 7 Mar 2015 21:07:10 -0600
Subject: [PATCH] Toggle for player interact limiter Subject: [PATCH] Toggle for player interact limiter
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index a09e793..a7c629b 100644 index 7f5044d..a5f86d3 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java --- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -626,7 +626,8 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList @@ -636,7 +636,8 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList
PlayerConnectionUtils.ensureMainThread(packetplayinblockplace, this, this.player.u()); PlayerConnectionUtils.ensureMainThread(packetplayinblockplace, this, this.player.u());
WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension); WorldServer worldserver = this.minecraftServer.getWorldServer(this.player.dimension);
boolean throttled = false; boolean throttled = false;
@ -19,11 +19,11 @@ index a09e793..a7c629b 100644
} else if ( packetplayinblockplace.timestamp - lastPlace >= 30 || lastPlace == -1 ) } else if ( packetplayinblockplace.timestamp - lastPlace >= 30 || lastPlace == -1 )
{ {
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
index 2cc159b..25a94a6 100644 index bff794a..02c4004 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -152,4 +152,13 @@ public class PaperSpigotConfig @@ -153,4 +153,14 @@ public class PaperSpigotConfig
Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this may be bad depending on your plugins" ); Bukkit.getLogger().log( Level.INFO, "Disabling async plugin bad ju-ju catcher, this is not recommended and may cause issues" );
} }
} }
+ +
@ -31,11 +31,12 @@ index 2cc159b..25a94a6 100644
+ private static void interactLimitEnabled() + private static void interactLimitEnabled()
+ { + {
+ interactLimitEnabled = getBoolean( "settings.limit-player-interactions", true ); + interactLimitEnabled = getBoolean( "settings.limit-player-interactions", true );
+ if (!interactLimitEnabled) { + if ( !interactLimitEnabled )
+ {
+ Bukkit.getLogger().log( Level.INFO, "Disabling player interaction limiter, your server may be more vulnerable to malicious users" ); + Bukkit.getLogger().log( Level.INFO, "Disabling player interaction limiter, your server may be more vulnerable to malicious users" );
+ } + }
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,27 +1,27 @@
From 3a70598613bfb2b290ff383bd1f0a91fc012c4e0 Mon Sep 17 00:00:00 2001 From ec63672d6c3a3879d5ddaefb117a3310961478ee Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com> From: gsand <gsandowns@gmail.com>
Date: Fri, 28 Nov 2014 01:41:54 -0600 Date: Sat, 7 Mar 2015 21:35:14 -0600
Subject: [PATCH] Player Exhaustion Multipliers Subject: [PATCH] Player Exhaustion Multipliers
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 9a19752..32d678d 100644 index 66e099f..df7e8e8 100644
--- a/src/main/java/net/minecraft/server/Block.java --- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java +++ b/src/main/java/net/minecraft/server/Block.java
@@ -525,7 +525,7 @@ public class Block { @@ -566,7 +566,7 @@ public class Block {
public void a(World world, EntityHuman entityhuman, BlockPosition blockposition, IBlockData iblockdata, TileEntity tileentity) { public void a(World world, EntityHuman entityhuman, BlockPosition blockposition, IBlockData iblockdata, TileEntity tileentity) {
entityhuman.b(StatisticList.MINE_BLOCK_COUNT[getId(this)]); entityhuman.b(StatisticList.MINE_BLOCK_COUNT[getId(this)]);
- entityhuman.applyExhaustion(0.025F); - entityhuman.applyExhaustion(0.025F);
+ entityhuman.applyExhaustion(world.paperSpigotConfig.blockBreakExhaustion); // PaperSpigot - Configurable block break exhaustion + entityhuman.applyExhaustion(world.paperSpigotConfig.blockBreakExhaustion); // PaperSpigot - Configurable block break exhaustion
if (this.G() && EnchantmentManager.hasSilkTouchEnchantment(entityhuman)) { if (this.I() && EnchantmentManager.hasSilkTouchEnchantment(entityhuman)) {
ItemStack itemstack = this.i(iblockdata); ItemStack itemstack = this.i(iblockdata);
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 876cf4e..2bc2ef6 100644 index 9dce3ac..e7fd331 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java --- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1371,13 +1371,13 @@ public abstract class EntityHuman extends EntityLiving { @@ -1370,13 +1370,13 @@ public abstract class EntityHuman extends EntityLiving {
i = Math.round(MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F); i = Math.round(MathHelper.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F);
if (i > 0) { if (i > 0) {
this.a(StatisticList.p, i); this.a(StatisticList.p, i);
@ -35,10 +35,10 @@ index 876cf4e..2bc2ef6 100644
- this.applyExhaustion(0.015F * (float) i * 0.01F); - this.applyExhaustion(0.015F * (float) i * 0.01F);
+ this.applyExhaustion(world.paperSpigotConfig.playerSwimmingExhaustion * (float) i * 0.01F); // PaperSpigot - Configurable swimming (diving) exhaustion + this.applyExhaustion(world.paperSpigotConfig.playerSwimmingExhaustion * (float) i * 0.01F); // PaperSpigot - Configurable swimming (diving) exhaustion
} }
} else if (this.j_()) { } else if (this.k_()) {
if (d1 > 0.0D) { if (d1 > 0.0D) {
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index b67b856..1b8683a 100644 index b7afd3e..ac2f470 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -114,4 +114,12 @@ public class PaperSpigotWorldConfig @@ -114,4 +114,12 @@ public class PaperSpigotWorldConfig
@ -48,12 +48,12 @@ index b67b856..1b8683a 100644
+ +
+ public float blockBreakExhaustion; + public float blockBreakExhaustion;
+ public float playerSwimmingExhaustion; + public float playerSwimmingExhaustion;
+ private void exhaustionValues () + private void exhaustionValues()
+ { + {
+ blockBreakExhaustion = getFloat( "player-exhaustion.block-break", 0.025F ); + blockBreakExhaustion = getFloat( "player-exhaustion.block-break", 0.025F );
+ playerSwimmingExhaustion = getFloat("player-exhaustion.swimming", 0.015F ); + playerSwimmingExhaustion = getFloat( "player-exhaustion.swimming", 0.015F );
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From 149b5f2a1899cf88e34c194342b625fbc7f54eac Mon Sep 17 00:00:00 2001 From 288bc1583961b89530659d9e968bac8fea1cb02e Mon Sep 17 00:00:00 2001
From: Suddenly <suddenly@suddenly.coffee> From: Suddenly <suddenly@suddenly.coffee>
Date: Fri, 28 Nov 2014 01:49:53 -0600 Date: Sat, 7 Mar 2015 21:40:48 -0600
Subject: [PATCH] Add configurable despawn distances for living entities Subject: [PATCH] Add configurable despawn distances for living entities
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 196b45a..71d4249 100644 index b580217..4f49ed0 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java --- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -432,13 +432,13 @@ public abstract class EntityInsentient extends EntityLiving { @@ -432,13 +432,13 @@ public abstract class EntityInsentient extends EntityLiving {
@ -17,30 +17,21 @@ index 196b45a..71d4249 100644
this.die(); this.die();
} }
- if (this.aO > 600 && this.random.nextInt(800) == 0 && d3 > 1024.0D) { // CraftBukkit - remove isTypeNotPersistent() check - if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d3 > 1024.0D) { // CraftBukkit - remove isTypeNotPersistent() check
+ if (this.aO > 600 && this.random.nextInt(800) == 0 && d3 > this.world.paperSpigotConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // PaperSpigot - custom despawn distances + if (this.ticksFarFromPlayer > 600 && this.random.nextInt(800) == 0 && d3 > this.world.paperSpigotConfig.softDespawnDistance) { // CraftBukkit - remove isTypeNotPersistent() check // PaperSpigot - custom despawn distance
this.die(); this.die();
- } else if (d3 < 1024.0D) { - } else if (d3 < 1024.0D) {
+ } else if (d3 < this.world.paperSpigotConfig.softDespawnDistance) { // PaperSpigot - custom despawn distances + } else if (d3 < this.world.paperSpigotConfig.softDespawnDistance) { // PaperSpigot - custom despawn distances
this.aO = 0; this.ticksFarFromPlayer = 0;
} }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 1b8683a..522a214 100644 index ac2f470..0bdfa44 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -103,7 +103,7 @@ public class PaperSpigotWorldConfig
private void blockGrowthHeight()
{
cactusMaxHeight = getInt( "max-growth-height.cactus", 3 );
- reedMaxHeight = getInt( "max-growth-height.reeds", 3 );
+ reedMaxHeight = getInt("max-growth-height.reeds", 3);
log( "Max height for cactus growth " + cactusMaxHeight + ". Max height for reed growth " + reedMaxHeight);
}
@@ -122,4 +122,21 @@ public class PaperSpigotWorldConfig @@ -122,4 +122,21 @@ public class PaperSpigotWorldConfig
blockBreakExhaustion = getFloat( "player-exhaustion.block-break", 0.025F ); blockBreakExhaustion = getFloat( "player-exhaustion.block-break", 0.025F );
playerSwimmingExhaustion = getFloat("player-exhaustion.swimming", 0.015F ); playerSwimmingExhaustion = getFloat( "player-exhaustion.swimming", 0.015F );
} }
+ +
+ public int softDespawnDistance; + public int softDespawnDistance;
@ -50,7 +41,7 @@ index 1b8683a..522a214 100644
+ softDespawnDistance = getInt( "despawn-ranges.soft", 32 ); // 32^2 = 1024, Minecraft Default + softDespawnDistance = getInt( "despawn-ranges.soft", 32 ); // 32^2 = 1024, Minecraft Default
+ hardDespawnDistance = getInt( "despawn-ranges.hard", 128 ); // 128^2 = 16384, Minecraft Default; + hardDespawnDistance = getInt( "despawn-ranges.hard", 128 ); // 128^2 = 16384, Minecraft Default;
+ +
+ if ( softDespawnDistance > hardDespawnDistance) { + if ( softDespawnDistance > hardDespawnDistance ) {
+ softDespawnDistance = hardDespawnDistance; + softDespawnDistance = hardDespawnDistance;
+ } + }
+ +
@ -61,5 +52,5 @@ index 1b8683a..522a214 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,23 +1,23 @@
From da87cfffb5d8d8c4d73a35760ededba300fc1c2c Mon Sep 17 00:00:00 2001 From 2b22e3d08ec2571481e97963d548e3c7a0c854d7 Mon Sep 17 00:00:00 2001
From: Dmck2b <itallhappenedverysuddenly@gmail.com> From: Dmck2b <itallhappenedverysuddenly@gmail.com>
Date: Fri, 28 Nov 2014 01:53:14 -0600 Date: Sat, 7 Mar 2015 21:50:40 -0600
Subject: [PATCH] Allow for toggling of spawn chunks Subject: [PATCH] Allow for toggling of spawn chunks
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f85700f..60cdf2e 100644 index 4838e84..3523abf 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -219,6 +219,7 @@ public abstract class World implements IBlockAccess { @@ -230,6 +230,7 @@ public abstract class World implements IBlockAccess {
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit });
this.ticksPerMonsterSpawns = this.getServer().getTicksPerMonsterSpawns(); // CraftBukkit this.getServer().addWorld(this.world);
// CraftBukkit end // CraftBukkit end
+ this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot + this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot
// Spigot start timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
this.chunkTickRadius = (byte) ( ( this.getServer().getViewDistance() < 7 ) ? this.getServer().getViewDistance() : 7 ); this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.chunkTickList = new gnu.trove.map.hash.TLongShortHashMap( spigotConfig.chunksPerTick * 5, 0.7f, Long.MIN_VALUE, Short.MIN_VALUE ); this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 522a214..00303dc 100644 index 7ad9bb3..8d707f7 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -139,4 +139,11 @@ public class PaperSpigotWorldConfig @@ -139,4 +139,11 @@ public class PaperSpigotWorldConfig
@ -33,5 +33,5 @@ index 522a214..00303dc 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,12 +1,12 @@
From a0cbd2c7aa88d123844823389a1542ebb9f3851e Mon Sep 17 00:00:00 2001 From 1926d5b0e32bea76d0dc80f0ff385a308e99265d Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Fri, 28 Nov 2014 02:03:43 -0600 Date: Sat, 7 Mar 2015 22:03:47 -0600
Subject: [PATCH] Drop falling block entities that are above the specified Subject: [PATCH] Drop falling block entities that are above the specified
height height
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index fd78677..81a5dc9 100644 index ce91553..ef93776 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -69,6 +69,17 @@ public class EntityFallingBlock extends Entity { @@ -69,6 +69,17 @@ public class EntityFallingBlock extends Entity {
@ -28,10 +28,10 @@ index fd78677..81a5dc9 100644
this.motY *= 0.9800000190734863D; this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D; this.motZ *= 0.9800000190734863D;
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 00303dc..4b384bf 100644 index b740016..4cf8676 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -146,4 +146,13 @@ public class PaperSpigotWorldConfig @@ -146,4 +146,14 @@ public class PaperSpigotWorldConfig
keepSpawnInMemory = getBoolean( "keep-spawn-loaded", true ); keepSpawnInMemory = getBoolean( "keep-spawn-loaded", true );
log( "Keep spawn chunk loaded: " + keepSpawnInMemory ); log( "Keep spawn chunk loaded: " + keepSpawnInMemory );
} }
@ -40,11 +40,12 @@ index 00303dc..4b384bf 100644
+ private void fallingBlockheightNerf() + private void fallingBlockheightNerf()
+ { + {
+ fallingBlockHeightNerf = getInt( "falling-block-height-nerf", 0 ); + fallingBlockHeightNerf = getInt( "falling-block-height-nerf", 0 );
+ if (fallingBlockHeightNerf != 0) { + if ( fallingBlockHeightNerf != 0 )
+ log( "Falling Block Height Limit set to Y: " + fallingBlockHeightNerf); + {
+ log( "Falling Block Height Limit set to Y: " + fallingBlockHeightNerf );
+ } + }
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From 54b9feb9bc83830fb78462796e18eef583566b32 Mon Sep 17 00:00:00 2001 From 0c31964584bae44bf1ebae9887513715c45f2d3d Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Fri, 28 Nov 2014 02:31:02 -0600 Date: Sat, 7 Mar 2015 22:17:03 -0600
Subject: [PATCH] Configurable speed for water flowing over lava Subject: [PATCH] Configurable speed for water flowing over lava
diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java diff --git a/src/main/java/net/minecraft/server/BlockFlowing.java b/src/main/java/net/minecraft/server/BlockFlowing.java
index 5184715..bc4cee5 100644 index 842a27a..449b12f 100644
--- a/src/main/java/net/minecraft/server/BlockFlowing.java --- a/src/main/java/net/minecraft/server/BlockFlowing.java
+++ b/src/main/java/net/minecraft/server/BlockFlowing.java +++ b/src/main/java/net/minecraft/server/BlockFlowing.java
@@ -35,7 +35,7 @@ public class BlockFlowing extends BlockFluids { @@ -35,7 +35,7 @@ public class BlockFlowing extends BlockFluids {
@ -17,7 +17,7 @@ index 5184715..bc4cee5 100644
int k; int k;
if (i > 0) { if (i > 0) {
@@ -259,8 +259,23 @@ public class BlockFlowing extends BlockFluids { @@ -259,8 +259,22 @@ public class BlockFlowing extends BlockFluids {
public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) { public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) {
if (!this.e(world, blockposition, iblockdata)) { if (!this.e(world, blockposition, iblockdata)) {
@ -32,7 +32,6 @@ index 5184715..bc4cee5 100644
+ */ + */
+ public int getFlowSpeed(World world, BlockPosition blockposition) { + public int getFlowSpeed(World world, BlockPosition blockposition) {
+ if (this.getMaterial() == Material.WATER && ( + if (this.getMaterial() == Material.WATER && (
+ // TODO: Double check that this does what I think it does
+ world.getType(blockposition.north(1)).getBlock().getMaterial() == Material.LAVA || + world.getType(blockposition.north(1)).getBlock().getMaterial() == Material.LAVA ||
+ world.getType(blockposition.south(1)).getBlock().getMaterial() == Material.LAVA || + world.getType(blockposition.south(1)).getBlock().getMaterial() == Material.LAVA ||
+ world.getType(blockposition.west(1)).getBlock().getMaterial() == Material.LAVA || + world.getType(blockposition.west(1)).getBlock().getMaterial() == Material.LAVA ||
@ -43,11 +42,11 @@ index 5184715..bc4cee5 100644
+ } + }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 4b384bf..3b55750 100644 index 4cf8676..e415e15 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -155,4 +155,11 @@ public class PaperSpigotWorldConfig @@ -156,4 +156,11 @@ public class PaperSpigotWorldConfig
log( "Falling Block Height Limit set to Y: " + fallingBlockHeightNerf); log( "Falling Block Height Limit set to Y: " + fallingBlockHeightNerf );
} }
} }
+ +
@ -59,5 +58,5 @@ index 4b384bf..3b55750 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,28 +1,28 @@
From 2562f17c456e63f56623f6d936a4bc4cb762892f Mon Sep 17 00:00:00 2001 From 531e69345a9a1546a0a517891ba5cf0df3ecd9c5 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com> From: Jedediah Smith <jedediah@silencegreys.com>
Date: Fri, 28 Nov 2014 03:31:21 -0600 Date: Sat, 7 Mar 2015 22:52:21 -0600
Subject: [PATCH] Player affects spawning API Subject: [PATCH] Player affects spawning API
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 2bc2ef6..0199856 100644 index e7fd331..4aa8096 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java --- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java +++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -61,6 +61,7 @@ public abstract class EntityHuman extends EntityLiving { @@ -61,6 +61,7 @@ public abstract class EntityHuman extends EntityLiving {
private final GameProfile bF; private final GameProfile bH;
private boolean bG = false; private boolean bI = false;
public EntityFishingHook hookedFish; public EntityFishingHook hookedFish;
+ public boolean affectsSpawning = true; // PaperSpigot + public boolean affectsSpawning = true; // PaperSpigot
// CraftBukkit start // CraftBukkit start
public boolean fauxSleeping; public boolean fauxSleeping;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 71d4249..438ec3b 100644 index 4f49ed0..c0d1c13 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java --- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java +++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -424,7 +424,7 @@ public abstract class EntityInsentient extends EntityLiving { @@ -424,7 +424,7 @@ public abstract class EntityInsentient extends EntityLiving {
if (this.persistent) { if (this.persistent) {
this.aO = 0; this.ticksFarFromPlayer = 0;
} else { } else {
- EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D); - EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D);
+ EntityHuman entityhuman = this.world.findNearbyPlayerWhoAffectsSpawning(this, -1.0D); // PaperSpigot - Affects Spawning API + EntityHuman entityhuman = this.world.findNearbyPlayerWhoAffectsSpawning(this, -1.0D); // PaperSpigot - Affects Spawning API
@ -30,21 +30,20 @@ index 71d4249..438ec3b 100644
if (entityhuman != null) { if (entityhuman != null) {
double d0 = entityhuman.locX - this.locX; double d0 = entityhuman.locX - this.locX;
diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java diff --git a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
index 67273f7..3571ead 100644 index df71db5..00754cd 100644
--- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java --- a/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
+++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java +++ b/src/main/java/net/minecraft/server/MobSpawnerAbstract.java
@@ -52,7 +52,8 @@ public abstract class MobSpawnerAbstract { @@ -52,7 +52,7 @@ public abstract class MobSpawnerAbstract {
private boolean g() { private boolean g() {
BlockPosition blockposition = this.b(); BlockPosition blockposition = this.b();
- return this.a().isPlayerNearby((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange); - return this.a().isPlayerNearby((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange);
+ // PaperSpigot - Affects Spawning API + return this.a().isPlayerNearbyWhoAffectsSpawning((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange); // PaperSpigot - Affects Spawning API
+ return this.a().isPlayerNearbyWhoAffectsSpawning((double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, (double) this.requiredPlayerRange);
} }
public void c() { public void c() {
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 43954b3..932a572 100644 index aeb0a44..7df5b84 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java --- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java +++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -52,7 +52,7 @@ public final class SpawnerCreature { @@ -52,7 +52,7 @@ public final class SpawnerCreature {
@ -56,49 +55,54 @@ index 43954b3..932a572 100644
int l = MathHelper.floor(entityhuman.locX / 16.0D); int l = MathHelper.floor(entityhuman.locX / 16.0D);
j = MathHelper.floor(entityhuman.locZ / 16.0D); j = MathHelper.floor(entityhuman.locZ / 16.0D);
@@ -156,7 +156,8 @@ public final class SpawnerCreature { @@ -156,7 +156,7 @@ public final class SpawnerCreature {
float f = (float) j3 + 0.5F; float f = (float) j3 + 0.5F;
float f1 = (float) l3 + 0.5F; float f1 = (float) l3 + 0.5F;
- if (!worldserver.isPlayerNearby((double) f, (double) k3, (double) f1, 24.0D) && blockposition.c((double) f, (double) k3, (double) f1) >= 576.0D) { - if (!worldserver.isPlayerNearby((double) f, (double) k3, (double) f1, 24.0D) && blockposition.c((double) f, (double) k3, (double) f1) >= 576.0D) {
+ // PaperSpigot - Affects Spawning API + if (!worldserver.isPlayerNearbyWhoAffectsSpawning((double) f, (double) k3, (double) f1, 24.0D) && blockposition.c((double) f, (double) k3, (double) f1) >= 576.0D) { // PaperSpigot - Affects Spawning API
+ if (!worldserver.isPlayerNearbyWhoAffectsSpawning((double) f, (double) k3, (double) f1, 24.0D) && blockposition.c((double) f, (double) k3, (double) f1) >= 576.0D) { if (biomebase_biomemeta == null) {
if (biomemeta == null) { biomebase_biomemeta = worldserver.a(enumcreaturetype, blockposition2);
biomemeta = worldserver.a(enumcreaturetype, blockposition2); if (biomebase_biomemeta == null) {
if (biomemeta == null) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 76da3e6..4e1d779 100644 index 3523abf..d8464b2 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -2,14 +2,13 @@ package net.minecraft.server; @@ -3119,4 +3119,50 @@ public abstract class World implements IBlockAccess {
import com.google.common.base.Predicate; return k >= -short0 && k <= short0 && l >= -short0 && l <= short0 && this.keepSpawnInMemory; // CraftBukkit - Added 'this.keepSpawnInMemory'
import com.google.common.collect.Lists;
-import com.google.common.collect.Sets;
+
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
-import java.util.Set;
import java.util.UUID;
import java.util.concurrent.Callable;
@@ -17,7 +16,6 @@ import java.util.concurrent.Callable;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockState;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
-import org.bukkit.craftbukkit.util.LongHashSet;
import org.bukkit.craftbukkit.SpigotTimings; // Spigot
import org.bukkit.generator.ChunkGenerator;
import org.bukkit.craftbukkit.CraftServer;
@@ -2770,6 +2768,50 @@ public abstract class World implements IBlockAccess {
return false;
} }
+
+ // PaperSpigot start - Affects spawning API + // PaperSpigot start - Modified methods for affects spawning
+ public EntityHuman findNearbyPlayerWhoAffectsSpawning(Entity entity, double d0) {
+ return this.findNearbyPlayerWhoAffectsSpawning(entity.locX, entity.locY, entity.locZ, d0);
+ }
+
+ public EntityHuman findNearbyPlayerWhoAffectsSpawning(double d0, double d1, double d2, double d3) {
+ double d4 = -1.0D;
+ EntityHuman entityhuman = null;
+
+ for (int i = 0; i < this.players.size(); ++i) {
+ EntityHuman entityhuman1 = (EntityHuman) this.players.get(i);
+ // CraftBukkit start - Fixed an NPE
+ if (entityhuman1 == null || entityhuman1.dead || !entityhuman1.affectsSpawning) {
+ continue;
+ }
+ // CraftBukkit end
+
+ if (IEntitySelector.d.apply(entityhuman1)) {
+ double d5 = entityhuman1.e(d0, d1, d2);
+
+ if ((d3 < 0.0D || d5 < d3 * d3) && (d4 == -1.0D || d5 < d4)) {
+ d4 = d5;
+ entityhuman = entityhuman1;
+ }
+ }
+ }
+
+ return entityhuman;
+ }
+
+ public boolean isPlayerNearbyWhoAffectsSpawning(double d0, double d1, double d2, double d3) { + public boolean isPlayerNearbyWhoAffectsSpawning(double d0, double d1, double d2, double d3) {
+ for (int i = 0; i < this.players.size(); ++i) { + for (int i = 0; i < this.players.size(); ++i) {
+ EntityHuman entityhuman = (EntityHuman) this.players.get(i); + EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@ -114,58 +118,30 @@ index 76da3e6..4e1d779 100644
+ +
+ return false; + return false;
+ } + }
+ }
+ public EntityHuman findNearbyPlayerWhoAffectsSpawning(Entity entity, double radius) {
+ return this.findNearbyPlayerWhoAffectsSpawning(entity.locX, entity.locY, entity.locZ, radius);
+ }
+
+ public EntityHuman findNearbyPlayerWhoAffectsSpawning(double x, double y, double z, double radius) {
+ double nearestRadius = - 1.0D;
+ EntityHuman entityHuman = null;
+
+ for (int i = 0; i < this.players.size(); ++i) {
+ EntityHuman nearestPlayer = (EntityHuman) this.players.get(i);
+
+ if (nearestPlayer == null || nearestPlayer.dead || !nearestPlayer.affectsSpawning) {
+ continue;
+ }
+
+ double distance = nearestPlayer.e(x, y, z);
+
+ if ((radius < 0.0D || distance < radius * radius) && (nearestRadius == -1.0D || distance < nearestRadius)) {
+ nearestRadius = distance;
+ entityHuman = nearestPlayer;
+ }
+ }
+
+ return entityHuman;
+ }
+ // PaperSpigot end
+
public EntityHuman a(String s) {
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index c81d5d2..942a6ab 100644 index 8091b4e..571e066 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1443,6 +1443,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1443,6 +1443,18 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
packet.components = components; packet.components = components;
getHandle().playerConnection.sendPacket(packet); getHandle().playerConnection.sendPacket(packet);
} }
+ +
+ // PaperSpigot start - Add affects spawning API + // PaperSpigot start - Implement affects spawning API
+ public void setAffectsSpawning(boolean affects) { + @Override
+ getHandle().affectsSpawning = affects;
+ }
+
+ public boolean getAffectsSpawning() { + public boolean getAffectsSpawning() {
+ return getHandle().affectsSpawning; + return getHandle().affectsSpawning;
+ } + }
+
+ @Override
+ public void setAffectsSpawning(boolean affects) {
+ getHandle().affectsSpawning = affects;
+ }
+ // PaperSpigot end + // PaperSpigot end
}; };
public Player.Spigot spigot() public Player.Spigot spigot()
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,15 +1,15 @@
From 8a53e3c8579c132d53f8d85f5fc2df322450374f Mon Sep 17 00:00:00 2001 From c655d292ef72c3ba8482b9579f0bd498f43604ee Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 19 Aug 2014 14:21:37 -0500 Date: Sat, 7 Mar 2015 22:55:25 -0600
Subject: [PATCH] Show 'PaperSpigot' in client crashes, server lists, and Subject: [PATCH] Show 'PaperSpigot' in client crashes, server lists, and
Mojang stats Mojang stats
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7e91511..fbc2e61 100644 index e211647..ac8d1a7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1060,7 +1060,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs @@ -1018,7 +1018,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
} }
public String getServerModName() { public String getServerModName() {
@ -19,5 +19,5 @@ index 7e91511..fbc2e61 100644
public CrashReport b(CrashReport crashreport) { public CrashReport b(CrashReport crashreport) {
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,6 +1,6 @@
From f0a774c60ae25b1dfec79c60c95843f5d3418982 Mon Sep 17 00:00:00 2001 From dc843ffc9374210bbdbef3871117c59e8aa2cf2e Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 19 Aug 2014 14:25:40 -0500 Date: Sat, 7 Mar 2015 22:57:07 -0600
Subject: [PATCH] RIP metrics Subject: [PATCH] RIP metrics
@ -687,5 +687,5 @@ index c03388d..eeb1aec 100644
static void readConfig(Class<?> clazz, Object instance) static void readConfig(Class<?> clazz, Object instance)
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,30 +1,30 @@
From d9c73f504f132d34904c1445fa9391823b96c3d3 Mon Sep 17 00:00:00 2001 From 5b559214f1d5f55103d9e166d05e8e19abe6c3f7 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Fri, 28 Nov 2014 03:43:14 -0600 Date: Sun, 8 Mar 2015 01:06:14 -0600
Subject: [PATCH] Remove invalid mob spawner tile entities Subject: [PATCH] Remove invalid mob spawner tile entities
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index b76b446..2d99252 100644 index 5794345..76b0e65 100644
--- a/src/main/java/net/minecraft/server/Chunk.java --- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -756,6 +756,11 @@ public class Chunk { @@ -776,6 +776,11 @@ public class Chunk {
this.world.triggerHoppersList.add(tileentity); tileentity.D();
} this.tileEntities.put(blockposition, tileentity);
// Spigot end // CraftBukkit start
+ // PaperSpigot start - Remove invalid mob spawner Tile Entities + // PaperSpigot start - Remove invalid mob spawner tile entities
+ } else if (this.world.paperSpigotConfig.removeInvalidMobSpawnerTEs && tileentity instanceof TileEntityMobSpawner && + } else if (this.world.paperSpigotConfig.removeInvalidMobSpawnerTEs && tileentity instanceof TileEntityMobSpawner &&
+ org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getType(blockposition)) != org.bukkit.Material.MOB_SPAWNER) { + org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getType(blockposition)) != org.bukkit.Material.MOB_SPAWNER) {
+ this.tileEntities.remove(blockposition); + this.tileEntities.remove(blockposition);
+ // PaperSpigot end + // PaperSpigot end
// CraftBukkit start
} else { } else {
System.out.println("Attempted to place a tile entity (" + tileentity + ") at " + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ() System.out.println("Attempted to place a tile entity (" + tileentity + ") at " + tileentity.position.getX() + "," + tileentity.position.getY() + "," + tileentity.position.getZ()
+ " (" + org.bukkit.craftbukkit.util.CraftMagicNumbers.getMaterial(getType(blockposition)) + ") where there was no entity tile!");
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 3b55750..59a9387 100644 index 41a80da..31dedce 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -162,4 +162,11 @@ public class PaperSpigotWorldConfig @@ -163,4 +163,11 @@ public class PaperSpigotWorldConfig
waterOverLavaFlowSpeed = getInt( "water-over-lava-flow-speed", 5 ); waterOverLavaFlowSpeed = getInt( "water-over-lava-flow-speed", 5 );
log( "Water over lava flow speed: " + waterOverLavaFlowSpeed ); log( "Water over lava flow speed: " + waterOverLavaFlowSpeed );
} }
@ -37,5 +37,5 @@ index 3b55750..59a9387 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,18 +1,18 @@
From 6592278669315ae213de6950d84a5adb7a01456f Mon Sep 17 00:00:00 2001 From aa360f67f1544600d0efc94ae896e6e328abd1de Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 28 Nov 2014 04:14:14 -0600 Date: Sun, 8 Mar 2015 01:56:22 -0600
Subject: [PATCH] Optimize TileEntity Ticking Subject: [PATCH] Optimize TileEntity Ticking
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 7cf38ea..76cdc7e 100644 index a829555..2118c08 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java --- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -56,6 +56,12 @@ public abstract class TileEntity { @@ -21,6 +21,12 @@ public abstract class TileEntity {
} private int h;
// Spigot end protected Block e;
+ // PaperSpigot start - Optimized TileEntity Tick changes + // PaperSpigot start - Optimized TileEntity tick changes
+ private static int tileEntityCounter = 0; + private static int tileEntityCounter = 0;
+ public boolean isAdded = false; + public boolean isAdded = false;
+ public int tileId = tileEntityCounter++; + public int tileId = tileEntityCounter++;
@ -22,7 +22,7 @@ index 7cf38ea..76cdc7e 100644
this.position = BlockPosition.ZERO; this.position = BlockPosition.ZERO;
this.h = -1; this.h = -1;
diff --git a/src/main/java/net/minecraft/server/TileEntityBeacon.java b/src/main/java/net/minecraft/server/TileEntityBeacon.java diff --git a/src/main/java/net/minecraft/server/TileEntityBeacon.java b/src/main/java/net/minecraft/server/TileEntityBeacon.java
index 6bfde41..35d82ab 100644 index da43134..88e4fa9 100644
--- a/src/main/java/net/minecraft/server/TileEntityBeacon.java --- a/src/main/java/net/minecraft/server/TileEntityBeacon.java
+++ b/src/main/java/net/minecraft/server/TileEntityBeacon.java +++ b/src/main/java/net/minecraft/server/TileEntityBeacon.java
@@ -48,7 +48,7 @@ public class TileEntityBeacon extends TileEntityContainer implements IUpdatePlay @@ -48,7 +48,7 @@ public class TileEntityBeacon extends TileEntityContainer implements IUpdatePlay
@ -30,25 +30,25 @@ index 6bfde41..35d82ab 100644
public void c() { public void c() {
- if (this.world.getTime() % 80L == 0L) { - if (this.world.getTime() % 80L == 0L) {
+ if (true || this.world.getTime() % 80L == 0L) { // PaperSpigot - controlled by Improved Tick Handling + if (true || this.world.getTime() % 80L == 0L) { // PaperSpigot - Controlled by improved tick handling
this.m(); this.m();
} }
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
index 7444f4f..0f29365 100644 index a2bd9e1..8af9e32 100644
--- a/src/main/java/net/minecraft/server/TileEntityChest.java --- a/src/main/java/net/minecraft/server/TileEntityChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java +++ b/src/main/java/net/minecraft/server/TileEntityChest.java
@@ -246,7 +246,7 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye @@ -246,7 +246,7 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
++this.n; ++this.n;
float f; float f;
- if (!this.world.isStatic && this.l != 0 && (this.n + i + j + k) % 200 == 0) { - if (!this.world.isClientSide && this.l != 0 && (this.n + i + j + k) % 200 == 0) {
+ if (!this.world.isStatic && this.l != 0 && (this.n + i + j + k) % 10 == 0) { // PaperSpigot Reduced 200 -> 10 interval due to reduced tick rate from Improved Tick Handling + if (!this.world.isClientSide && this.l != 0 && (this.n + i + j + k) % 10 == 0) { // PaperSpigot - Reduced 200 -> 10 due to reduced interval from improved tick handling
this.l = 0; this.l = 0;
f = 5.0F; f = 5.0F;
List list = this.world.a(EntityHuman.class, new AxisAlignedBB((double) ((float) i - f), (double) ((float) j - f), (double) ((float) k - f), (double) ((float) (i + 1) + f), (double) ((float) (j + 1) + f), (double) ((float) (k + 1) + f))); List list = this.world.a(EntityHuman.class, new AxisAlignedBB((double) ((float) i - f), (double) ((float) j - f), (double) ((float) k - f), (double) ((float) (i + 1) + f), (double) ((float) (j + 1) + f), (double) ((float) (k + 1) + f)));
diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
index 794cdc8..218b801 100644 index 794cdc8..f712885 100644
--- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java --- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java +++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
@@ -10,7 +10,7 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis @@ -10,7 +10,7 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis
@ -56,85 +56,72 @@ index 794cdc8..218b801 100644
public void c() { public void c() {
- if (++this.h % 20 * 4 == 0) { - if (++this.h % 20 * 4 == 0) {
+ if (++this.h % 4 == 0) { // PaperSpigot Reduced (20 * 4) -> 4 interval due to reduced tick rate from Improved Tick Handling + if (++this.h % 4 == 0) { // PaperSpigot - Reduced (20 * 4) -> 4 interval due to reduced tick rate from improved tick handling
this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g); this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g);
} }
diff --git a/src/main/java/net/minecraft/server/TileEntityLightDetector.java b/src/main/java/net/minecraft/server/TileEntityLightDetector.java diff --git a/src/main/java/net/minecraft/server/TileEntityLightDetector.java b/src/main/java/net/minecraft/server/TileEntityLightDetector.java
index 7b6f8ae..c6b593f 100644 index f75e2de..7119612 100644
--- a/src/main/java/net/minecraft/server/TileEntityLightDetector.java --- a/src/main/java/net/minecraft/server/TileEntityLightDetector.java
+++ b/src/main/java/net/minecraft/server/TileEntityLightDetector.java +++ b/src/main/java/net/minecraft/server/TileEntityLightDetector.java
@@ -5,7 +5,7 @@ public class TileEntityLightDetector extends TileEntity implements IUpdatePlayer @@ -5,7 +5,7 @@ public class TileEntityLightDetector extends TileEntity implements IUpdatePlayer
public TileEntityLightDetector() {} public TileEntityLightDetector() {}
public void c() { public void c() {
- if (this.world != null && !this.world.isStatic && this.world.getTime() % 20L == 0L) { - if (this.world != null && !this.world.isClientSide && this.world.getTime() % 20L == 0L) {
+ if (this.world != null && !this.world.isStatic /*&& this.world.getTime() % 20L == 0L*/) { // PaperSpigot - interval controlled by Improved Tick Handling + if (this.world != null && !this.world.isClientSide /*&& this.world.getTime() % 20L == 0L*/) { // PaperSpigot - interval controlled by improved tick handling
this.e = this.w(); this.e = this.w();
if (this.e instanceof BlockDaylightDetector) { if (this.e instanceof BlockDaylightDetector) {
((BlockDaylightDetector) this.e).d(this.world, this.position); ((BlockDaylightDetector) this.e).f(this.world, this.position);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 4e1d779..7622a92 100644 index d8464b2..6fb32a2 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -3,13 +3,7 @@ package net.minecraft.server; @@ -62,7 +62,7 @@ public abstract class World implements IBlockAccess {
import com.google.common.base.Predicate;
import com.google.common.collect.Lists;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Random;
-import java.util.UUID;
+import java.util.*;
import java.util.concurrent.Callable;
// CraftBukkit start
@@ -59,7 +53,7 @@ public abstract class World implements IBlockAccess {
// Spigot end // Spigot end
protected final List g = Lists.newArrayList(); protected final List<Entity> g = Lists.newArrayList();
public final List h = Lists.newArrayList(); public final List<TileEntity> h = Lists.newArrayList();
- public final List tileEntityList = Lists.newArrayList(); - public final List<TileEntity> tileEntityList = Lists.newArrayList();
+ public final Set tileEntityList = new org.github.paperspigot.WorldTileEntityList(this); // PaperSpigot + public final Set<TileEntity> tileEntityList = new org.github.paperspigot.WorldTileEntityList(this); // PaperSpigot
private final List a = Lists.newArrayList(); private final List<TileEntity> b = Lists.newArrayList();
private final List b = Lists.newArrayList(); private final List<TileEntity> c = Lists.newArrayList();
public final List players = Lists.newArrayList(); public final List<EntityHuman> players = Lists.newArrayList();
@@ -133,8 +127,8 @@ public abstract class World implements IBlockAccess { @@ -135,8 +135,10 @@ public abstract class World implements IBlockAccess {
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation; public static String blockLocation;
public List<TileEntity> triggerHoppersList = new ArrayList<TileEntity>(); // Spigot, When altHopperTicking, tile entities being added go through here.
private org.spigotmc.TickLimiter entityLimiter; private org.spigotmc.TickLimiter entityLimiter;
- private org.spigotmc.TickLimiter tileLimiter; - private org.spigotmc.TickLimiter tileLimiter;
- private int tileTickPosition; - private int tileTickPosition;
+ //private org.spigotmc.TickLimiter tileLimiter; // PaperSpigot - Disable Spigot's TE handling in favor of our own + // PaperSpigot start - Disable Spigot's TE handling in favor of our own
+ //private int tileTickPosition; // PaperSpigot - Disable Spigot's TE handling in favor of our own + //private org.spigotmc.TickLimiter tileLimiter;
+ //private int tileTickPosition;
+ // PaperSpigot end
public static long chunkToKey(int x, int z) public static long chunkToKey(int x, int z)
{ {
@@ -240,7 +234,7 @@ public abstract class World implements IBlockAccess { @@ -233,7 +235,7 @@ public abstract class World implements IBlockAccess {
this.getServer().addWorld(this.world); // CraftBukkit this.keepSpawnInMemory = this.paperSpigotConfig.keepSpawnInMemory; // PaperSpigot
timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime); this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
- this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); - this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
+ //this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); // PaperSpigot - Disable Spigot's TE handling in favor of our own + //this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime); // PaperSpigot - Disable Spigot's TE handling in favor of our own
} }
public World b() { public World b() {
@@ -1463,7 +1457,12 @@ public abstract class World implements IBlockAccess { @@ -1467,6 +1469,12 @@ public abstract class World implements IBlockAccess {
}
// CraftBukkit end // CraftBukkit end
this.initializeHoppers(); // Spigot - Initializes hoppers which have been added recently. + // PaperSpigot start - Return to previous behavior, theoretically tile entity ticks should no longer be long enough for this to be an issue
+ // PaperSpigot Start - Return to previous behavior, theoretically tile entity ticks should no longer be long enough for this to be an issue
+ Iterator iterator = this.tileEntityList.iterator(); + Iterator iterator = this.tileEntityList.iterator();
+
+ while (iterator.hasNext()) { + while (iterator.hasNext()) {
+ TileEntity tileentity = (TileEntity) iterator.next(); + TileEntity tileentity = (TileEntity) iterator.next();
+ /* + /*
// Spigot start // Spigot start
int tilesThisCycle = 0; int tilesThisCycle = 0;
for (tileLimiter.initTick(); for (tileLimiter.initTick();
@@ -1471,10 +1470,12 @@ public abstract class World implements IBlockAccess { @@ -1474,10 +1482,12 @@ public abstract class World implements IBlockAccess {
tileTickPosition++, tilesThisCycle++) { tileTickPosition++, tilesThisCycle++) {
tileTickPosition = (tileTickPosition < tileEntityList.size()) ? tileTickPosition : 0; tileTickPosition = (tileTickPosition < tileEntityList.size()) ? tileTickPosition : 0;
TileEntity tileentity = (TileEntity) this.tileEntityList.get(tileTickPosition); TileEntity tileentity = (TileEntity) this.tileEntityList.get(tileTickPosition);
@ -148,7 +135,7 @@ index 4e1d779..7622a92 100644
continue; continue;
} }
// Spigot end // Spigot end
@@ -1502,7 +1503,7 @@ public abstract class World implements IBlockAccess { @@ -1505,7 +1515,7 @@ public abstract class World implements IBlockAccess {
} }
if (tileentity.x()) { if (tileentity.x()) {
@ -159,10 +146,10 @@ index 4e1d779..7622a92 100644
this.getChunkAtWorldCoords(tileentity.getPosition()).e(tileentity.getPosition()); this.getChunkAtWorldCoords(tileentity.getPosition()).e(tileentity.getPosition());
diff --git a/src/main/java/org/github/paperspigot/WorldTileEntityList.java b/src/main/java/org/github/paperspigot/WorldTileEntityList.java diff --git a/src/main/java/org/github/paperspigot/WorldTileEntityList.java b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
new file mode 100644 new file mode 100644
index 0000000..1a53e94 index 0000000..5af5dcc
--- /dev/null --- /dev/null
+++ b/src/main/java/org/github/paperspigot/WorldTileEntityList.java +++ b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
@@ -0,0 +1,175 @@ @@ -0,0 +1,168 @@
+package org.github.paperspigot; +package org.github.paperspigot;
+ +
+import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.ArrayListMultimap;
@ -182,9 +169,7 @@ index 0000000..1a53e94
+ // Use -1 for no ticking + // Use -1 for no ticking
+ // These TE's have empty tick methods, doing nothing. Never bother ticking them. + // These TE's have empty tick methods, doing nothing. Never bother ticking them.
+ for (Class<? extends TileEntity> ignored : new Class[]{ + for (Class<? extends TileEntity> ignored : new Class[]{
+ TileEntityChest.class, // PaperSpigot - Don't tick chests either + BlockJukeBox.TileEntityRecordPlayer.class,
+ TileEntityEnderChest.class, // PaperSpigot - Don't tick chests either
+ TileEntityRecordPlayer.class,
+ TileEntityDispenser.class, + TileEntityDispenser.class,
+ TileEntityDropper.class, + TileEntityDropper.class,
+ TileEntitySign.class, + TileEntitySign.class,
@ -201,11 +186,6 @@ index 0000000..1a53e94
+ // does findPlayer lookup, so this helps performance to slow down + // does findPlayer lookup, so this helps performance to slow down
+ put(TileEntityEnchantTable.class, 20); + put(TileEntityEnchantTable.class, 20);
+ +
+ // Slow things down that players won't notice due to craftbukkit "wall time" patches.
+ // These need to be investigated further before they can be safely used here
+ //put(TileEntityFurnace.class, 20);
+ //put(TileEntityBrewingStand.class, 10);
+
+ // Vanilla controlled values - These are checks already done in vanilla, so don't tick on ticks we know + // Vanilla controlled values - These are checks already done in vanilla, so don't tick on ticks we know
+ // won't do anything anyways + // won't do anything anyways
+ put(TileEntityBeacon.class, 80); + put(TileEntityBeacon.class, 80);
@ -340,5 +320,5 @@ index 0000000..1a53e94
+} +}
\ No newline at end of file \ No newline at end of file
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,13 +1,11 @@
From e82339befdcab7f8c3956e3ff9f6c0d2d8785f93 Mon Sep 17 00:00:00 2001 From 3c8a5a4a7370224e942ade00b02f474f9eae7f48 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv> From: Iceee <andrew@opticgaming.tv>
Date: Fri, 28 Nov 2014 11:56:55 -0600 Date: Sun, 8 Mar 2015 03:16:39 -0500
Subject: [PATCH] Move sound handling out of the chest tick loop Subject: [PATCH] Move sound handling out of the chest tick loop
This allows us to disable ticking chests and enderchests without any
noticeable difference to players
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
index 0f29365..f61a43d 100644 index 8af9e32..d30f2f8 100644
--- a/src/main/java/net/minecraft/server/TileEntityChest.java --- a/src/main/java/net/minecraft/server/TileEntityChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java +++ b/src/main/java/net/minecraft/server/TileEntityChest.java
@@ -12,13 +12,13 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye @@ -12,13 +12,13 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
@ -34,37 +32,34 @@ index 0f29365..f61a43d 100644
} }
public void c() { public void c() {
+ // PaperSpigot start - Move chest sounds out of tick loop - TileEntity Tick Improvements + // PaperSpigot - Move chest sounds out of the tick loop
+ /* + /*
this.m(); this.m();
int i = this.position.getX(); int i = this.position.getX();
int j = this.position.getY(); int j = this.position.getY();
@@ -318,6 +320,8 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye @@ -318,7 +320,8 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
this.j = 0.0F; this.j = 0.0F;
} }
} }
-
+ */ + */
+ // PaperSpigot end + // PaperSpigot end
} }
@@ -340,6 +344,32 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye public boolean c(int i, int j) {
@@ -339,6 +342,28 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
++this.l; ++this.l;
if (this.world == null) return; // CraftBukkit if (this.world == null) return; // CraftBukkit
+ +
+ // PaperSpigot - Move chest open sound out of the tick loop + // PaperSpigot start - Move chest open sound out of the tick loop
+ this.m(); + this.m();
+ +
+ if (this.l > 0 && this.j == 0.0F && this.f == null && this.h == null) { + if (this.l > 0 && this.j == 0.0F && this.f == null && this.h == null) {
+ this.j = 0.7F; + this.j = 0.7F;
+ +
+ int locX = this.position.getX(); + double d0 = (double) this.position.getZ() + 0.5D;
+ int locY = this.position.getY(); + double d1 = (double) this.position.getX() + 0.5D;
+ int locZ = this.position.getZ();
+
+ double d0 = (double) locZ + 0.5D;
+ double d1 = (double) locX + 0.5D;
+ +
+ if (this.i != null) { + if (this.i != null) {
+ d0 += 0.5D; + d0 += 0.5D;
@ -74,25 +69,20 @@ index 0f29365..f61a43d 100644
+ d1 += 0.5D; + d1 += 0.5D;
+ } + }
+ +
+ this.world.makeSound(d1, (double) locY + 0.5D, d0, "random.chestopen", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + this.world.makeSound(d1, (double) this.position.getY() + 0.5D, d0, "random.chestopen", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ } + }
+ // PaperSpigot end + // PaperSpigot end
+ +
this.world.playBlockAction(this.position, this.w(), 1, this.l); this.world.playBlockAction(this.position, this.w(), 1, this.l);
// CraftBukkit start - Call redstone event // CraftBukkit start - Call redstone event
@@ -363,6 +393,39 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye @@ -361,6 +386,33 @@ public class TileEntityChest extends TileEntityContainer implements IUpdatePlaye
int oldPower = Math.max(0, Math.min(15, this.l)); // CraftBukkit - Get power before new viewer is added
--this.l; --this.l;
if (this.world == null) return; // CraftBukkit if (this.world == null) return; // CraftBukkit
+ +
+ // PaperSpigot start - Move chest close sound handling out of the tick loop + // PaperSpigot start - Move chest close sound handling out of the tick loop
+ if (this.l == 0 && this.j > 0.0F || this.l > 0 && this.j < 1.0F) { + if (this.l == 0 && this.j > 0.0F || this.l > 0 && this.j < 1.0F) {
+ int locX = this.position.getX();
+ int locY = this.position.getY();
+ int locZ = this.position.getZ();
+ float f1 = this.j;
+
+ float f = 0.1F; + float f = 0.1F;
+ +
+ if (this.l > 0) { + if (this.l > 0) {
@ -101,8 +91,8 @@ index 0f29365..f61a43d 100644
+ this.j -= f; + this.j -= f;
+ } + }
+ +
+ double d0 = (double) locX + 0.5D; + double d0 = (double) this.getPosition().getX() + 0.5D;
+ double d2 = (double) locZ + 0.5D; + double d2 = (double) this.getPosition().getZ() + 0.5D;
+ +
+ if (this.i != null) { + if (this.i != null) {
+ d2 += 0.5D; + d2 += 0.5D;
@ -112,17 +102,16 @@ index 0f29365..f61a43d 100644
+ d0 += 0.5D; + d0 += 0.5D;
+ } + }
+ +
+ this.world.makeSound(d0, (double) locY + 0.5D, d2, "random.chestclosed", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F); + this.world.makeSound(d0, (double) this.getPosition().getY() + 0.5D, d2, "random.chestclosed", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+
+ this.j = 0.0F; + this.j = 0.0F;
+ } + }
+ // PaperSpigot end + // PaperSpigot end
+ +
this.world.playBlockAction(this.position, this.w(), 1, this.l); this.world.playBlockAction(this.position, this.w(), 1, this.l);
// CraftBukkit start - Call redstone event // CraftBukkit start - Call redstone event
diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
index 218b801..15600ca 100644 index f712885..d2ef4c4 100644
--- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java --- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java +++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
@@ -2,14 +2,16 @@ package net.minecraft.server; @@ -2,14 +2,16 @@ package net.minecraft.server;
@ -139,21 +128,22 @@ index 218b801..15600ca 100644
public TileEntityEnderChest() {} public TileEntityEnderChest() {}
public void c() { public void c() {
+ // PaperSpigot - Move enderchest sound handling out of the tick loop + // PaperSpigot start - Move enderchest sound handling out of the tick loop
+ /* + /*
if (++this.h % 4 == 0) { // PaperSpigot Reduced (20 * 4) -> 4 interval due to reduced tick rate from Improved Tick Handling if (++this.h % 4 == 0) { // PaperSpigot - Reduced (20 * 4) -> 4 interval due to reduced tick rate from improved tick handling
this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g); this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g);
} }
@@ -54,6 +56,8 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis @@ -54,7 +56,8 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis
this.a = 0.0F; this.a = 0.0F;
} }
} }
-
+ */ + */
+ // PaperSpigot end + // PaperSpigot end
} }
@@ -73,11 +77,43 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis public boolean c(int i, int j) {
@@ -73,11 +76,34 @@ public class TileEntityEnderChest extends TileEntity implements IUpdatePlayerLis
public void b() { public void b() {
++this.g; ++this.g;
@ -162,14 +152,10 @@ index 218b801..15600ca 100644
+ if (this.g > 0 && this.a == 0.0F) { + if (this.g > 0 && this.a == 0.0F) {
+ this.a = 0.7F; + this.a = 0.7F;
+ +
+ int locX = this.position.getX(); + double d1 = (double) this.getPosition().getX() + 0.5D;
+ int locY = this.position.getY(); + double d0 = (double) this.getPosition().getZ() + 0.5D;
+ int locZ = this.position.getZ();
+ +
+ double d1 = (double) locX + 0.5D; + this.world.makeSound(d1, (double) this.getPosition().getY() + 0.5D, d0, "random.chestopen", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ double d0 = (double) locZ + 0.5D;
+
+ this.world.makeSound(d1, (double) locY + 0.5D, d0, "random.chestopen", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ } + }
+ // PaperSpigot end + // PaperSpigot end
+ +
@ -181,15 +167,10 @@ index 218b801..15600ca 100644
+ +
+ // PaperSpigot start - Move enderchest close sounds out of the tick loop + // PaperSpigot start - Move enderchest close sounds out of the tick loop
+ if (this.g == 0 && this.a > 0.0F || this.g > 0 && this.a < 1.0F) { + if (this.g == 0 && this.a > 0.0F || this.g > 0 && this.a < 1.0F) {
+ int locX = this.position.getX(); + double d0 = (double) this.getPosition().getX() + 0.5D;
+ int locY = this.position.getY(); + double d2 = (double) this.getPosition().getZ() + 0.5D;
+ int locZ = this.position.getZ();
+
+ double d0 = (double) locX + 0.5D;
+ double d2 = (double) locZ + 0.5D;
+
+ this.world.makeSound(d0, (double) locY + 0.5D, d2, "random.chestclosed", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ +
+ this.world.makeSound(d0, (double) this.getPosition().getY() + 0.5D, d2, "random.chestclosed", 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.a = 0.0F; + this.a = 0.0F;
+ } + }
+ // PaperSpigot end + // PaperSpigot end
@ -197,6 +178,21 @@ index 218b801..15600ca 100644
this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g); this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g);
} }
diff --git a/src/main/java/org/github/paperspigot/WorldTileEntityList.java b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
index 5af5dcc..693f75c 100644
--- a/src/main/java/org/github/paperspigot/WorldTileEntityList.java
+++ b/src/main/java/org/github/paperspigot/WorldTileEntityList.java
@@ -26,7 +26,9 @@ public class WorldTileEntityList extends HashSet<TileEntity> {
TileEntityCommand.class,
TileEntitySkull.class,
TileEntityComparator.class,
- TileEntityFlowerPot.class
+ TileEntityFlowerPot.class,
+ TileEntityChest.class,
+ TileEntityEnderChest.class
}) {
put(ignored, -1);
}
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,15 +1,15 @@
From 9d9bcf820969779811228b510941018104dae591 Mon Sep 17 00:00:00 2001 From 6442bb1cb89024243a3a5192ec4e93f4be114a81 Mon Sep 17 00:00:00 2001
From: Iceee <andrew@opticgaming.tv> From: Iceee <andrew@opticgaming.tv>
Date: Fri, 28 Nov 2014 12:11:03 -0600 Date: Sun, 8 Mar 2015 03:34:15 -0500
Subject: [PATCH] Remove specific entities that fly through an unloaded chunk Subject: [PATCH] Remove certain entities that fly through unloaded chunks
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index dfb4299..4848e09 100644 index d6bef0b..1470c21 100644
--- a/src/main/java/net/minecraft/server/Entity.java --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java
@@ -112,6 +112,7 @@ public abstract class Entity implements ICommandListener { @@ -114,6 +114,7 @@ public abstract class Entity implements ICommandListener {
private final CommandObjectiveExecutor as; private final CommandObjectiveExecutor au;
public boolean valid; // CraftBukkit public boolean valid; // CraftBukkit
public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only
+ public boolean inUnloadedChunk = false; // PaperSpigot - Remove entities in unloaded chunks + public boolean inUnloadedChunk = false; // PaperSpigot - Remove entities in unloaded chunks
@ -17,16 +17,16 @@ index dfb4299..4848e09 100644
// Spigot start // Spigot start
public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getEntityTimings(this); // Spigot public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getEntityTimings(this); // Spigot
diff --git a/src/main/java/net/minecraft/server/EntityEnderPearl.java b/src/main/java/net/minecraft/server/EntityEnderPearl.java diff --git a/src/main/java/net/minecraft/server/EntityEnderPearl.java b/src/main/java/net/minecraft/server/EntityEnderPearl.java
index 6fd43da..3c103c7 100644 index 929a66e..4ebed9c 100644
--- a/src/main/java/net/minecraft/server/EntityEnderPearl.java --- a/src/main/java/net/minecraft/server/EntityEnderPearl.java
+++ b/src/main/java/net/minecraft/server/EntityEnderPearl.java +++ b/src/main/java/net/minecraft/server/EntityEnderPearl.java
@@ -26,6 +26,12 @@ public class EntityEnderPearl extends EntityProjectile { @@ -30,6 +30,12 @@ public class EntityEnderPearl extends EntityProjectile {
movingobjectposition.entity.damageEntity(DamageSource.projectile(this, entityliving), 0.0F); movingobjectposition.entity.damageEntity(DamageSource.projectile(this, entityliving), 0.0F);
} }
+ // PaperSpigot start - Remove entities in unloaded chunks + // PaperSpigot start - Remove entities in unloaded chunks
+ if (inUnloadedChunk && world.paperSpigotConfig.removeUnloadedEnderPearls) { + if (this.inUnloadedChunk && world.paperSpigotConfig.removeUnloadedEnderPearls) {
+ die(); + this.die();
+ } + }
+ // PaperSpigot end + // PaperSpigot end
+ +
@ -34,7 +34,7 @@ index 6fd43da..3c103c7 100644
this.world.addParticle(EnumParticle.PORTAL, this.locX, this.locY + this.random.nextDouble() * 2.0D, this.locZ, this.random.nextGaussian(), 0.0D, this.random.nextGaussian(), new int[0]); this.world.addParticle(EnumParticle.PORTAL, this.locX, this.locY + this.random.nextDouble() * 2.0D, this.locZ, this.random.nextGaussian(), 0.0D, this.random.nextGaussian(), new int[0]);
} }
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index 81a5dc9..336e575 100644 index ef93776..5931e1d 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java --- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java +++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -70,6 +70,12 @@ public class EntityFallingBlock extends Entity { @@ -70,6 +70,12 @@ public class EntityFallingBlock extends Entity {
@ -51,7 +51,7 @@ index 81a5dc9..336e575 100644
if (this.world.paperSpigotConfig.fallingBlockHeightNerf != 0 && this.locY > this.world.paperSpigotConfig.fallingBlockHeightNerf) { if (this.world.paperSpigotConfig.fallingBlockHeightNerf != 0 && this.locY > this.world.paperSpigotConfig.fallingBlockHeightNerf) {
if (this.dropItem) { if (this.dropItem) {
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 3621faf..287039c 100644 index 2d22327..50423eb 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -47,6 +47,14 @@ public class EntityTNTPrimed extends Entity { @@ -47,6 +47,14 @@ public class EntityTNTPrimed extends Entity {
@ -70,10 +70,10 @@ index 3621faf..287039c 100644
this.motY *= 0.9800000190734863D; this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D; this.motZ *= 0.9800000190734863D;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7622a92..e2988a0 100644 index 6fb32a2..698e3d9 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1158,6 +1158,7 @@ public abstract class World implements IBlockAccess { @@ -1174,6 +1174,7 @@ public abstract class World implements IBlockAccess {
{ {
if ( !this.isChunkLoaded( chunkx, chunkz, true ) ) if ( !this.isChunkLoaded( chunkx, chunkz, true ) )
{ {
@ -81,7 +81,7 @@ index 7622a92..e2988a0 100644
continue; continue;
} }
int cz = chunkz << 4; int cz = chunkz << 4;
@@ -1591,6 +1592,14 @@ public abstract class World implements IBlockAccess { @@ -1603,6 +1604,14 @@ public abstract class World implements IBlockAccess {
if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { if (!org.spigotmc.ActivationRange.checkIfActive(entity)) {
entity.ticksLived++; entity.ticksLived++;
entity.inactiveTick(); entity.inactiveTick();
@ -89,7 +89,7 @@ index 7622a92..e2988a0 100644
+ if (entity instanceof EntityEnderPearl || (!this.isChunkLoaded(i, j, true) && + if (entity instanceof EntityEnderPearl || (!this.isChunkLoaded(i, j, true) &&
+ (entity instanceof EntityFallingBlock && this.paperSpigotConfig.removeUnloadedFallingBlocks) || + (entity instanceof EntityFallingBlock && this.paperSpigotConfig.removeUnloadedFallingBlocks) ||
+ (entity instanceof EntityTNTPrimed && this.paperSpigotConfig.removeUnloadedTNTEntities))) { + (entity instanceof EntityTNTPrimed && this.paperSpigotConfig.removeUnloadedTNTEntities))) {
+ entity.inUnloadedChunk = true; + entity.inUnloadedChunk = true;
+ entity.die(); + entity.die();
+ } + }
+ // PaperSpigot end + // PaperSpigot end
@ -97,10 +97,10 @@ index 7622a92..e2988a0 100644
entity.tickTimer.startTiming(); // Spigot entity.tickTimer.startTiming(); // Spigot
// CraftBukkit end // CraftBukkit end
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index 59a9387..cffb145 100644 index 31dedce..ac02b90 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -169,4 +169,14 @@ public class PaperSpigotWorldConfig @@ -170,4 +170,14 @@ public class PaperSpigotWorldConfig
removeInvalidMobSpawnerTEs = getBoolean( "remove-invalid-mob-spawner-tile-entities", true ); removeInvalidMobSpawnerTEs = getBoolean( "remove-invalid-mob-spawner-tile-entities", true );
log( "Remove invalid mob spawner tile entities: " + removeInvalidMobSpawnerTEs ); log( "Remove invalid mob spawner tile entities: " + removeInvalidMobSpawnerTEs );
} }
@ -116,5 +116,5 @@ index 59a9387..cffb145 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From eb2be3ee1ac1079e5023e8b9de83f4e86bb9b5a9 Mon Sep 17 00:00:00 2001 From 8e9936e9bb7d39767e2f08ffacec8ab5bd0876f2 Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com> From: gsand <gsandowns@gmail.com>
Date: Fri, 28 Nov 2014 12:23:02 -0600 Date: Sun, 8 Mar 2015 03:41:33 -0500
Subject: [PATCH] Configurable strength and weakness effect modifiers Subject: [PATCH] Configurable strength and weakness effect modifiers
diff --git a/src/main/java/net/minecraft/server/MobEffectAttackDamage.java b/src/main/java/net/minecraft/server/MobEffectAttackDamage.java diff --git a/src/main/java/net/minecraft/server/MobEffectAttackDamage.java b/src/main/java/net/minecraft/server/MobEffectAttackDamage.java
index 620685a..175503b 100644 index 620685a..3411b78 100644
--- a/src/main/java/net/minecraft/server/MobEffectAttackDamage.java --- a/src/main/java/net/minecraft/server/MobEffectAttackDamage.java
+++ b/src/main/java/net/minecraft/server/MobEffectAttackDamage.java +++ b/src/main/java/net/minecraft/server/MobEffectAttackDamage.java
@@ -7,6 +7,7 @@ public class MobEffectAttackDamage extends MobEffectList { @@ -7,6 +7,7 @@ public class MobEffectAttackDamage extends MobEffectList {
@ -14,14 +14,14 @@ index 620685a..175503b 100644
public double a(int i, AttributeModifier attributemodifier) { public double a(int i, AttributeModifier attributemodifier) {
- return this.id == MobEffectList.WEAKNESS.id ? (double) (-0.5F * (float) (i + 1)) : 1.3D * (double) (i + 1); - return this.id == MobEffectList.WEAKNESS.id ? (double) (-0.5F * (float) (i + 1)) : 1.3D * (double) (i + 1);
+ // PaperSpigot - Configurable modifiers for strength and weakness effects + // PaperSpigot - Configurable modifiers for strength and weakness effects
+ return this.id == MobEffectList.WEAKNESS.id ? (double) (org.github.paperspigot.PaperSpigotConfig.weaknessEffectModifier * (float) (i + 1)) : org.github.paperspigot.PaperSpigotConfig.strengthEffectModifier * (double) (i + 1); + return this.id == MobEffectList.WEAKNESS.id ? (double) (org.github.paperspigot.PaperSpigotConfig.weaknessEffectModifier * (float) (i + 1)) : org.github.paperspigot.PaperSpigotConfig.strengthEffectModifier * (double) i + 1;
} }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
index 25a94a6..a7b18e4 100644 index 02c4004..c57f83b 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -161,4 +161,12 @@ public class PaperSpigotConfig @@ -163,4 +163,12 @@ public class PaperSpigotConfig
Bukkit.getLogger().log( Level.INFO, "Disabling player interaction limiter, your server may be more vulnerable to malicious users" ); Bukkit.getLogger().log( Level.INFO, "Disabling player interaction limiter, your server may be more vulnerable to malicious users" );
} }
} }
@ -35,5 +35,5 @@ index 25a94a6..a7b18e4 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,14 +1,14 @@
From 713d5992f6f6777bd71ea4a98295c757aa98b81e Mon Sep 17 00:00:00 2001 From 343facd4d7480a320e76434e3861d45bae4b4b41 Mon Sep 17 00:00:00 2001
From: Dmck2b <suddenly@suddenly.coffee> From: Dmck2b <suddenly@suddenly.coffee>
Date: Fri, 28 Nov 2014 12:30:47 -0600 Date: Sun, 8 Mar 2015 03:45:49 -0500
Subject: [PATCH] Temporary fix for rails dupe Subject: [PATCH] Temporary fix for rails dupe
diff --git a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java diff --git a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java
index 063177d..f1e299f 100644 index 0d108eb..3f34eac 100644
--- a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java --- a/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java
+++ b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java +++ b/src/main/java/net/minecraft/server/BlockMinecartTrackAbstract.java
@@ -84,8 +84,12 @@ public abstract class BlockMinecartTrackAbstract extends Block { @@ -88,8 +88,12 @@ public abstract class BlockMinecartTrackAbstract extends Block {
} }
if (flag) { if (flag) {
@ -24,5 +24,5 @@ index 063177d..f1e299f 100644
this.b(world, blockposition, iblockdata, block); this.b(world, blockposition, iblockdata, block);
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,6 +1,6 @@
From 26e30543319472acad2768609c97c4ee485e30d4 Mon Sep 17 00:00:00 2001 From 4c9d2a549ef6b87993ae719b2f6d412014ef0093 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 28 Nov 2014 12:48:26 -0600 Date: Sun, 8 Mar 2015 03:47:32 -0500
Subject: [PATCH] Further improve server tick loop Subject: [PATCH] Further improve server tick loop
Improves how the catchup buffer is handled, allowing it to roll both ways Improves how the catchup buffer is handled, allowing it to roll both ways
@ -12,10 +12,10 @@ Previous implementation did not calculate TPS correctly.
Switch to a realistic rolling average and factor in std deviation as an extra reporting variable Switch to a realistic rolling average and factor in std deviation as an extra reporting variable
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index fbc2e61..43567fc 100644 index ac8d1a7..d9c386e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java --- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -113,17 +113,11 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs @@ -115,17 +115,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
public org.bukkit.command.ConsoleCommandSender console; public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole; public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
public ConsoleReader reader; public ConsoleReader reader;
@ -34,7 +34,7 @@ index fbc2e61..43567fc 100644
public MinecraftServer(OptionSet options, Proxy proxy, File file1) { public MinecraftServer(OptionSet options, Proxy proxy, File file1) {
io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable
@@ -493,12 +487,53 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs @@ -510,12 +504,53 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
this.isRunning = false; this.isRunning = false;
} }
@ -93,7 +93,7 @@ index fbc2e61..43567fc 100644
public void run() { public void run() {
try { try {
@@ -511,26 +546,43 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs @@ -528,26 +563,43 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
this.a(this.r); this.a(this.r);
// Spigot start // Spigot start
@ -150,10 +150,10 @@ index fbc2e61..43567fc 100644
lastTick = curTime; lastTick = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index d67d3d4..885c51a 100644 index b5bf0ec..6aa57ae 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1690,6 +1690,17 @@ public final class CraftServer implements Server { @@ -1704,6 +1704,17 @@ public final class CraftServer implements Server {
private final Spigot spigot = new Spigot() private final Spigot spigot = new Spigot()
{ {
@ -212,5 +212,5 @@ index be2e31d..21fd7ef 100644
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString() return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
+ ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); + ( ( tps > 20.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From b787bc58e8224d8db379608f104cd935f17889fc Mon Sep 17 00:00:00 2001 From 626395696a01106645f4109cb146982aa461c230 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 28 Nov 2014 13:20:22 -0600 Date: Fri, 28 Nov 2014 13:20:22 -0600
Subject: [PATCH] Only refresh abilities if needed Subject: [PATCH] Only refresh abilities if needed
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 942a6ab..0c9f241 100644 index 571e066..53d7874 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1146,12 +1146,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1146,12 +1146,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -24,5 +24,5 @@ index 942a6ab..0c9f241 100644
@Override @Override
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,6 +1,6 @@
From a658e1ae5cb763266cc2e3edeaea49ba6082656e Mon Sep 17 00:00:00 2001 From 8b952f990dc321b91a929ad3b421227b5da923e5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Fri, 28 Nov 2014 13:43:11 -0600 Date: Sun, 8 Mar 2015 04:03:56 -0500
Subject: [PATCH] Player lookup improvements Subject: [PATCH] Player lookup improvements
Minecraft and CraftBukkit both use Arrays to store online players, Minecraft and CraftBukkit both use Arrays to store online players,
@ -13,13 +13,13 @@ By using a map based approach for player lookups, player lookup should
be consistent in performance regardless of how many players are online. be consistent in performance regardless of how many players are online.
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 1693efc..d3f2dfe 100644 index d93b00c..063cd81 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java --- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java +++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -49,6 +49,31 @@ public abstract class PlayerList { @@ -49,6 +49,31 @@ public abstract class PlayerList {
private static final SimpleDateFormat i = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z"); private static final SimpleDateFormat g = new SimpleDateFormat("yyyy-MM-dd \'at\' HH:mm:ss z");
private final MinecraftServer server; private final MinecraftServer server;
public final List players = new java.util.concurrent.CopyOnWriteArrayList(); // CraftBukkit - ArrayList -> CopyOnWriteArrayList: Iterator safety public final List<EntityPlayer> players = new java.util.concurrent.CopyOnWriteArrayList(); // CraftBukkit - ArrayList -> CopyOnWriteArrayList: Iterator safety, public
+ // PaperSpigot start - Player lookup improvements + // PaperSpigot start - Player lookup improvements
+ public final Map<String, EntityPlayer> playerMap = new java.util.HashMap<String, EntityPlayer>() { + public final Map<String, EntityPlayer> playerMap = new java.util.HashMap<String, EntityPlayer>() {
+ @Override + @Override
@ -45,44 +45,45 @@ index 1693efc..d3f2dfe 100644
+ } + }
+ }; + };
+ // PaperSpigot end + // PaperSpigot end
public final Map f = Maps.newHashMap(); private final Map<UUID, EntityPlayer> j = Maps.newHashMap();
private final GameProfileBanList k; private final GameProfileBanList k;
private final IpBanList l; private final IpBanList l;
@@ -263,6 +288,7 @@ public abstract class PlayerList { @@ -287,6 +312,7 @@ public abstract class PlayerList {
public void onPlayerJoin(EntityPlayer entityplayer, String joinMessage) { // CraftBukkit added param public void onPlayerJoin(EntityPlayer entityplayer, String joinMessage) { // CraftBukkit added param
this.players.add(entityplayer); this.players.add(entityplayer);
+ this.playerMap.put(entityplayer.getName(), entityplayer); // PaperSpigot + this.playerMap.put(entityplayer.getName(), entityplayer); // PaperSpigot
this.f.put(entityplayer.getUniqueID(), entityplayer); this.j.put(entityplayer.getUniqueID(), entityplayer);
// this.sendAll(new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[] { entityplayer})); // CraftBukkit - replaced with loop below // this.sendAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[] { entityplayer})); // CraftBukkit - replaced with loop below
WorldServer worldserver = this.server.getWorldServer(entityplayer.dimension); WorldServer worldserver = this.server.getWorldServer(entityplayer.dimension);
@@ -334,6 +360,7 @@ public abstract class PlayerList { @@ -358,6 +384,7 @@ public abstract class PlayerList {
worldserver.kill(entityplayer); worldserver.kill(entityplayer);
worldserver.getPlayerChunkMap().removePlayer(entityplayer); worldserver.getPlayerChunkMap().removePlayer(entityplayer);
this.players.remove(entityplayer); this.players.remove(entityplayer);
+ this.playerMap.remove(entityplayer.getName()); // PaperSpigot + this.playerMap.remove(entityplayer.getName()); // PaperSpigot
this.f.remove(entityplayer.getUniqueID()); UUID uuid = entityplayer.getUniqueID();
this.o.remove(entityplayer.getUniqueID()); EntityPlayer entityplayer1 = (EntityPlayer) this.j.get(uuid);
// CraftBukkit start
@@ -365,6 +392,8 @@ public abstract class PlayerList { @@ -395,6 +422,8 @@ public abstract class PlayerList {
EntityPlayer entityplayer; EntityPlayer entityplayer;
+ // PaperSpigot - Use exact lookup below + // PaperSpigot start - Use exact lookup below
+ /* + /*
for (int i = 0; i < this.players.size(); ++i) { for (int i = 0; i < this.players.size(); ++i) {
entityplayer = (EntityPlayer) this.players.get(i); entityplayer = (EntityPlayer) this.players.get(i);
if (entityplayer.getUniqueID().equals(uuid)) { if (entityplayer.getUniqueID().equals(uuid)) {
@@ -376,6 +405,8 @@ public abstract class PlayerList { @@ -406,6 +435,9 @@ public abstract class PlayerList {
while (iterator.hasNext()) { while (iterator.hasNext()) {
entityplayer = (EntityPlayer) iterator.next(); entityplayer = (EntityPlayer) iterator.next();
+ */ + */
+ if ((entityplayer = this.a(uuid)) != null) { + if ((entityplayer = this.a(uuid)) != null) {
+ // PaperSpigot end
savePlayerFile(entityplayer); // CraftBukkit - Force the player's inventory to be saved savePlayerFile(entityplayer); // CraftBukkit - Force the player's inventory to be saved
entityplayer.playerConnection.disconnect("You logged in from another location"); entityplayer.playerConnection.disconnect("You logged in from another location");
} }
@@ -966,6 +997,7 @@ public abstract class PlayerList { @@ -1004,6 +1036,7 @@ public abstract class PlayerList {
} }
public EntityPlayer getPlayer(String s) { public EntityPlayer getPlayer(String s) {
@ -114,7 +115,7 @@ index 8be0698..4a908c6 100644
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 885c51a..cf3b140 100644 index 6aa57ae..6150255 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -401,7 +401,12 @@ public final class CraftServer implements Server { @@ -401,7 +401,12 @@ public final class CraftServer implements Server {
@ -147,12 +148,12 @@ index 885c51a..cf3b140 100644
+ // PaperSpigot start - Improved player lookup, replace whole method + // PaperSpigot start - Improved player lookup, replace whole method
+ EntityPlayer player = playerList.playerMap.get(name); + EntityPlayer player = playerList.playerMap.get(name);
+ return player != null ? player.getBukkitEntity() : null; + return player != null ? player.getBukkitEntity() : null;
+ // PaperSpigot end + // PaperSpigot end
} }
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0c9f241..e7c61fd 100644 index 53d7874..0e6d96c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -104,13 +104,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -104,13 +104,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -171,5 +172,5 @@ index 0c9f241..e7c61fd 100644
public InetSocketAddress getAddress() { public InetSocketAddress getAddress() {
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,17 +1,17 @@
From ba5e12d756d97484b9e742104f3f6668b37f7681 Mon Sep 17 00:00:00 2001 From 53a6285f845766bdf8fb86fa3cb7dcbc0549070a Mon Sep 17 00:00:00 2001
From: gsand <gsandowns@gmail.com> From: gsand <gsandowns@gmail.com>
Date: Fri, 28 Nov 2014 13:53:48 -0600 Date: Sun, 8 Mar 2015 04:10:02 -0500
Subject: [PATCH] Configurable game mechanics changes Subject: [PATCH] Configurable game mechanics changes
diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java diff --git a/src/main/java/net/minecraft/server/EntityBoat.java b/src/main/java/net/minecraft/server/EntityBoat.java
index dc4f526..45b5ac5 100644 index a756192..ce44b25 100644
--- a/src/main/java/net/minecraft/server/EntityBoat.java --- a/src/main/java/net/minecraft/server/EntityBoat.java
+++ b/src/main/java/net/minecraft/server/EntityBoat.java +++ b/src/main/java/net/minecraft/server/EntityBoat.java
@@ -340,13 +340,7 @@ public class EntityBoat extends Entity { @@ -340,13 +340,7 @@ public class EntityBoat extends Entity {
if (!destroyEvent.isCancelled()) { if (!destroyEvent.isCancelled()) {
this.die(); this.die();
if (this.world.getGameRules().getBoolean("doEntityDrops")) {
- for (k = 0; k < 3; ++k) { - for (k = 0; k < 3; ++k) {
- this.a(Item.getItemOf(Blocks.PLANKS), 1, 0.0F); - this.a(Item.getItemOf(Blocks.PLANKS), 1, 0.0F);
- } - }
@ -21,12 +21,12 @@ index dc4f526..45b5ac5 100644
- } - }
+ breakNaturally(); // PaperSpigot + breakNaturally(); // PaperSpigot
} }
// CraftBukkit end } // CraftBukkit end
} }
@@ -452,15 +446,7 @@ public class EntityBoat extends Entity { @@ -451,15 +445,7 @@ public class EntityBoat extends Entity {
if (!destroyEvent.isCancelled()) { if (!destroyEvent.isCancelled()) {
this.die(); this.die();
if (this.world.getGameRules().getBoolean("doEntityDrops")) {
- int i; - int i;
- -
- for (i = 0; i < 3; ++i) { - for (i = 0; i < 3; ++i) {
@ -38,9 +38,9 @@ index dc4f526..45b5ac5 100644
- } - }
+ breakNaturally(); // PaperSpigot + breakNaturally(); // PaperSpigot
} }
// CraftBukkit end } // CraftBukkit end
} }
@@ -496,4 +482,21 @@ public class EntityBoat extends Entity { @@ -495,4 +481,21 @@ public class EntityBoat extends Entity {
public int m() { public int m() {
return this.datawatcher.getInt(18); return this.datawatcher.getInt(18);
} }
@ -63,10 +63,10 @@ index dc4f526..45b5ac5 100644
+ } + }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index cffb145..bdf06fb 100644 index ac02b90..f33142a 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -179,4 +179,10 @@ public class PaperSpigotWorldConfig @@ -180,4 +180,10 @@ public class PaperSpigotWorldConfig
removeUnloadedTNTEntities = getBoolean( "remove-unloaded.tnt-entities", true ); removeUnloadedTNTEntities = getBoolean( "remove-unloaded.tnt-entities", true );
removeUnloadedFallingBlocks = getBoolean( "remove-unloaded.falling-blocks", true ); removeUnloadedFallingBlocks = getBoolean( "remove-unloaded.falling-blocks", true );
} }
@ -78,5 +78,5 @@ index cffb145..bdf06fb 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From fedfc18c899bf25bc429f7417f496020f50388f7 Mon Sep 17 00:00:00 2001 From 20f44a91c23ff03618ac22e7b3e297be34128947 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Thu, 6 Nov 2014 18:29:20 -0600 Date: Thu, 6 Nov 2014 18:29:20 -0600
Subject: [PATCH] Add async chunk load API Subject: [PATCH] Add async chunk load API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index e06d2cd..db7eed4 100644 index 2bbe104..d8401c4 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -120,6 +120,24 @@ public class CraftWorld implements World { @@ -120,6 +120,24 @@ public class CraftWorld implements World {
@ -34,5 +34,5 @@ index e06d2cd..db7eed4 100644
return this.world.chunkProviderServer.getChunkAt(x, z).bukkitChunk; return this.world.chunkProviderServer.getChunkAt(x, z).bukkitChunk;
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From b7a7da6495b1dab1ef146167cfc36203b44d7d4a Mon Sep 17 00:00:00 2001 From 1370eab3d6f63ae56c9c02765f5f0c216a847716 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net> From: Byteflux <byte@byteflux.net>
Date: Sun, 30 Nov 2014 18:58:07 -0600 Date: Sun, 30 Nov 2014 18:58:07 -0600
Subject: [PATCH] Allow specified ItemStacks to retain their invalid data Subject: [PATCH] Allow specified ItemStacks to retain their invalid data
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index 169706e..fa6178b 100644 index de60437..bace99c 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java --- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java +++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -17,6 +17,8 @@ import org.bukkit.entity.Player; @@ -17,6 +17,8 @@ import org.bukkit.entity.Player;
@ -17,7 +17,7 @@ index 169706e..fa6178b 100644
public final class ItemStack { public final class ItemStack {
public static final DecimalFormat a = new DecimalFormat("#.###"); public static final DecimalFormat a = new DecimalFormat("#.###");
@@ -304,9 +306,13 @@ public final class ItemStack { @@ -306,9 +308,13 @@ public final class ItemStack {
} }
// Is this a block? // Is this a block?
@ -34,7 +34,7 @@ index 169706e..fa6178b 100644
} }
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
index a7b18e4..01cd24a 100644 index c57f83b..19ef586 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotConfig.java
@@ -6,11 +6,10 @@ import java.io.IOException; @@ -6,11 +6,10 @@ import java.io.IOException;
@ -51,7 +51,7 @@ index a7b18e4..01cd24a 100644
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.InvalidConfigurationException;
@@ -169,4 +168,11 @@ public class PaperSpigotConfig @@ -171,4 +170,11 @@ public class PaperSpigotConfig
strengthEffectModifier = getDouble( "effect-modifiers.strength", 1.3D ); strengthEffectModifier = getDouble( "effect-modifiers.strength", 1.3D );
weaknessEffectModifier = getDouble( "effect-modifiers.weakness", -0.5D ); weaknessEffectModifier = getDouble( "effect-modifiers.weakness", -0.5D );
} }
@ -64,5 +64,5 @@ index a7b18e4..01cd24a 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,18 +1,18 @@
From 4bf725b31996da8637cb5efce367e6d55e84aaf7 Mon Sep 17 00:00:00 2001 From b92f67d7de492bf639da984d09d1067fa53575b8 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sun, 30 Nov 2014 22:57:18 -0600 Date: Sun, 8 Mar 2015 04:23:41 -0500
Subject: [PATCH] Add TNT source location API Subject: [PATCH] Add TNT source location API
diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java
index 7443873..ee0f4e5 100644 index 40c0a87..3a0bc4b 100644
--- a/src/main/java/net/minecraft/server/BlockTNT.java --- a/src/main/java/net/minecraft/server/BlockTNT.java
+++ b/src/main/java/net/minecraft/server/BlockTNT.java +++ b/src/main/java/net/minecraft/server/BlockTNT.java
@@ -29,7 +29,8 @@ public class BlockTNT extends Block { @@ -29,7 +29,8 @@ public class BlockTNT extends Block {
public void wasExploded(World world, BlockPosition blockposition, Explosion explosion) { public void wasExploded(World world, BlockPosition blockposition, Explosion explosion) {
if (!world.isStatic) { if (!world.isClientSide) {
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), explosion.c()); - EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) blockposition.getY(), (double) ((float) blockposition.getZ() + 0.5F), explosion.c());
+ org.bukkit.Location loc = explosion.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) explosion.source).sourceLoc : new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()); // PaperSpigot + org.bukkit.Location loc = explosion.source instanceof EntityTNTPrimed ? ((EntityTNTPrimed) explosion.source).sourceLoc : new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()); // PaperSpigot
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(loc, world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), explosion.c()); // PaperSpigot - add loc + EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(loc, world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), explosion.c()); // PaperSpigot - add loc
@ -20,29 +20,29 @@ index 7443873..ee0f4e5 100644
world.addEntity(entitytntprimed); world.addEntity(entitytntprimed);
@@ -43,7 +44,8 @@ public class BlockTNT extends Block { @@ -43,7 +44,8 @@ public class BlockTNT extends Block {
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, EntityLiving entityliving) { public void a(World world, BlockPosition blockposition, IBlockData iblockdata, EntityLiving entityliving) {
if (!world.isStatic) { if (!world.isClientSide) {
if (((Boolean) iblockdata.get(BlockTNT.EXPLODE)).booleanValue()) { if (((Boolean) iblockdata.get(BlockTNT.EXPLODE)).booleanValue()) {
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), entityliving); - EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) blockposition.getY(), (double) ((float) blockposition.getZ() + 0.5F), entityliving);
+ org.bukkit.Location loc = new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()); // PaperSpigot + org.bukkit.Location loc = new org.bukkit.Location(world.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ()); // PaperSpigot
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(loc, world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), entityliving); // PaperSpigot - add loc + EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(loc, world, (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), entityliving); // PaperSpigot - add loc
world.addEntity(entitytntprimed); world.addEntity(entitytntprimed);
world.makeSound(entitytntprimed, "game.tnt.primed", 1.0F, 1.0F); world.makeSound(entitytntprimed, "game.tnt.primed", 1.0F, 1.0F);
diff --git a/src/main/java/net/minecraft/server/DispenseBehaviorTNT.java b/src/main/java/net/minecraft/server/DispenseBehaviorTNT.java diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java
index 6d02141..3e5a77f 100644 index 4d1c04e..37e6608 100644
--- a/src/main/java/net/minecraft/server/DispenseBehaviorTNT.java --- a/src/main/java/net/minecraft/server/DispenserRegistry.java
+++ b/src/main/java/net/minecraft/server/DispenseBehaviorTNT.java +++ b/src/main/java/net/minecraft/server/DispenserRegistry.java
@@ -40,7 +40,7 @@ final class DispenseBehaviorTNT extends DispenseBehaviorItem { @@ -540,7 +540,7 @@ public class DispenserRegistry {
} }
} }
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), (EntityLiving) null); - EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), (EntityLiving) null);
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(block.getLocation(), world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), (EntityLiving) null); // PaperSpigot + EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(block.getLocation(), world, event.getVelocity().getX(), event.getVelocity().getY(), event.getVelocity().getZ(), (EntityLiving) null); // PaperSpigot
// CraftBukkit end // CraftBukkit end
world.addEntity(entitytntprimed); world.addEntity(entitytntprimed);
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 287039c..ddff5a8 100644 index 50423eb..1daba4e 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -8,15 +8,23 @@ public class EntityTNTPrimed extends Entity { @@ -8,15 +8,23 @@ public class EntityTNTPrimed extends Entity {
@ -57,11 +57,11 @@ index 287039c..ddff5a8 100644
+ } + }
+ +
+ public EntityTNTPrimed(org.bukkit.Location loc, World world) { + public EntityTNTPrimed(org.bukkit.Location loc, World world) {
+ // PaperSpigot end
super(world); super(world);
+ sourceLoc = loc; // PaperSpigot + sourceLoc = loc;
+ // PaperSpigot end
this.k = true; this.k = true;
this.a(0.98F, 0.98F); this.setSize(0.98F, 0.98F);
} }
- public EntityTNTPrimed(World world, double d0, double d1, double d2, EntityLiving entityliving) { - public EntityTNTPrimed(World world, double d0, double d1, double d2, EntityLiving entityliving) {
@ -98,10 +98,10 @@ index 287039c..ddff5a8 100644
public EntityLiving getSource() { public EntityLiving getSource() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index db7eed4..e2ca1c5 100644 index d8401c4..6ee6889 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1088,7 +1088,8 @@ public class CraftWorld implements World { @@ -1096,7 +1096,8 @@ public class CraftWorld implements World {
throw new IllegalArgumentException("Cannot spawn hanging entity for " + clazz.getName() + " at " + location); throw new IllegalArgumentException("Cannot spawn hanging entity for " + clazz.getName() + " at " + location);
} }
} else if (TNTPrimed.class.isAssignableFrom(clazz)) { } else if (TNTPrimed.class.isAssignableFrom(clazz)) {
@ -128,5 +128,5 @@ index e08ad47..b7e8b4d 100644
+ // PaperSpigot end + // PaperSpigot end
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,27 +0,0 @@
From 52f989f6e94a23192a2d76e4d84d100f5d5dfb85 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 5 Dec 2014 22:44:50 -0600
Subject: [PATCH] Add a constructor for setting header and footer
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java b/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
index 985e437..8acd298 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutPlayerListHeaderFooter.java
@@ -21,6 +21,13 @@ public class PacketPlayOutPlayerListHeaderFooter implements Packet {
packetdataserializer.a(this.b);
}
+ // PaperSpigot start - Add a constructor for setting both the header and the footer
+ public PacketPlayOutPlayerListHeaderFooter(IChatBaseComponent header, IChatBaseComponent footer) {
+ this.a = header;
+ this.b = footer;
+ }
+ // PaperSpigot end
+
public void a(PacketListenerPlayOut packetlistenerplayout) {
packetlistenerplayout.a(this);
}
--
1.9.5.msysgit.0

View File

@ -1,33 +1,32 @@
From bacdc44538b85985c04e459b6d83e2abfd62c80f Mon Sep 17 00:00:00 2001 From ff2332b83eb0f24d8d2168026a1e6c32643831e7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Wed, 3 Jul 2013 08:29:26 -0400 Date: Sun, 8 Mar 2015 04:37:23 -0500
Subject: [PATCH] Prevent tile entity and entity crashes Subject: [PATCH] Prevent tile entity and entity crashes
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 76cdc7e..d976515 100644 index 2118c08..bd8278a 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java --- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java +++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -194,7 +194,13 @@ public abstract class TileEntity { @@ -163,7 +163,12 @@ public abstract class TileEntity {
public void a(CrashReportSystemDetails crashreportsystemdetails) { }
crashreportsystemdetails.a("Name", (Callable) (new CrashReportTileEntityName(this))); });
if (this.world != null) { if (this.world != null) {
- CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.w(), this.u()); - CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.w(), this.u());
+ // PaperSpigot start - Prevent tile entity and entity crashes + // PaperSpigot start - Prevent tile entity and entity crashes
+ Block block = this.w(); + Block block = this.w();
+ if ( block != null ) + if (block != null) {
+ {
+ CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.w(), this.u()); + CrashReportSystemDetails.a(crashreportsystemdetails, this.position, this.w(), this.u());
+ } + }
+ // PaperSpigot end + // PaperSpigot end
crashreportsystemdetails.a("Actual block type", (Callable) (new CrashReportTileEntityType(this))); crashreportsystemdetails.a("Actual block type", new Callable() {
crashreportsystemdetails.a("Actual block data value", (Callable) (new CrashReportTileEntityData(this))); public String a() throws Exception {
} int i = Block.getId(TileEntity.this.world.getType(TileEntity.this.position).getBlock());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e2988a0..3ea9c92 100644 index 698e3d9..91998cc 100644
--- a/src/main/java/net/minecraft/server/World.java --- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java
@@ -1419,10 +1419,13 @@ public abstract class World implements IBlockAccess { @@ -1432,10 +1432,13 @@ public abstract class World implements IBlockAccess {
this.g(entity); this.g(entity);
SpigotTimings.tickEntityTimer.stopTiming(); // Spigot SpigotTimings.tickEntityTimer.stopTiming(); // Spigot
} catch (Throwable throwable1) { } catch (Throwable throwable1) {
@ -45,7 +44,7 @@ index e2988a0..3ea9c92 100644
} }
} }
@@ -1489,11 +1492,13 @@ public abstract class World implements IBlockAccess { @@ -1501,11 +1504,13 @@ public abstract class World implements IBlockAccess {
tileentity.tickTimer.startTiming(); // Spigot tileentity.tickTimer.startTiming(); // Spigot
((IUpdatePlayerListBox) tileentity).c(); ((IUpdatePlayerListBox) tileentity).c();
} catch (Throwable throwable2) { } catch (Throwable throwable2) {
@ -65,5 +64,5 @@ index e2988a0..3ea9c92 100644
// Spigot start // Spigot start
finally { finally {
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,14 +1,14 @@
From 8037f86a24fd4ba5a90e088bc811bf4c810821a8 Mon Sep 17 00:00:00 2001 From 2ee7ab93b17fd721016e8891dbe6b42859019592 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 23 Feb 2015 14:57:28 -0600 Date: Mon, 23 Feb 2015 14:57:28 -0600
Subject: [PATCH] Configurable top of nether void damage Subject: [PATCH] Configurable top of nether void damage
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 4848e09..be59806 100644 index 1470c21..79837ef 100644
--- a/src/main/java/net/minecraft/server/Entity.java --- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java
@@ -246,6 +246,13 @@ public abstract class Entity implements ICommandListener { @@ -247,6 +247,13 @@ public abstract class Entity implements ICommandListener {
this.K(); this.K();
} }
@ -22,7 +22,7 @@ index 4848e09..be59806 100644
public void K() { public void K() {
this.world.methodProfiler.a("entityBaseTick"); this.world.methodProfiler.a("entityBaseTick");
if (this.vehicle != null && this.vehicle.dead) { if (this.vehicle != null && this.vehicle.dead) {
@@ -322,7 +329,7 @@ public abstract class Entity implements ICommandListener { @@ -323,7 +330,7 @@ public abstract class Entity implements ICommandListener {
this.fallDistance *= 0.5F; this.fallDistance *= 0.5F;
} }
@ -32,10 +32,10 @@ index 4848e09..be59806 100644
} }
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index bdf06fb..a756395 100644 index f33142a..a6d8532 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -185,4 +185,10 @@ public class PaperSpigotWorldConfig @@ -186,4 +186,10 @@ public class PaperSpigotWorldConfig
{ {
boatsDropBoats = getBoolean( "game-mechanics.boats-drop-boats", false ); boatsDropBoats = getBoolean( "game-mechanics.boats-drop-boats", false );
} }
@ -47,5 +47,5 @@ index bdf06fb..a756395 100644
+ } + }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,154 +0,0 @@
From 21634289a89ad5e111cfd9314ee98038484c16d2 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 19 Dec 2014 16:28:22 -0600
Subject: [PATCH] Remove CraftBukkit "Feature" of ItemStack's having infinite
use if less than 0 stack size
diff --git a/src/main/java/net/minecraft/server/DispenseBehaviorItem.java b/src/main/java/net/minecraft/server/DispenseBehaviorItem.java
index 63388cf..0195cdc 100644
--- a/src/main/java/net/minecraft/server/DispenseBehaviorItem.java
+++ b/src/main/java/net/minecraft/server/DispenseBehaviorItem.java
@@ -10,6 +10,7 @@ public class DispenseBehaviorItem implements IDispenseBehavior {
public DispenseBehaviorItem() {}
public final ItemStack a(ISourceBlock isourceblock, ItemStack itemstack) {
+ if (itemstack != null && itemstack.count < 0) itemstack.count = 0; // PaperSpigot - Remove CB 'feature' of infinite items
ItemStack itemstack1 = this.b(isourceblock, itemstack);
this.a(isourceblock);
diff --git a/src/main/java/net/minecraft/server/EntityAgeable.java b/src/main/java/net/minecraft/server/EntityAgeable.java
index 23091bd..930682a 100644
--- a/src/main/java/net/minecraft/server/EntityAgeable.java
+++ b/src/main/java/net/minecraft/server/EntityAgeable.java
@@ -60,7 +60,7 @@ public abstract class EntityAgeable extends EntityCreature {
if (!entityhuman.abilities.canInstantlyBuild) {
--itemstack.count;
- if (itemstack.count == 0) { // CraftBukkit - allow less than 0 stacks as "infinite"
+ if (itemstack.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
}
}
diff --git a/src/main/java/net/minecraft/server/EntityHorse.java b/src/main/java/net/minecraft/server/EntityHorse.java
index 326c043..f93a291 100644
--- a/src/main/java/net/minecraft/server/EntityHorse.java
+++ b/src/main/java/net/minecraft/server/EntityHorse.java
@@ -635,7 +635,7 @@ public class EntityHorse extends EntityAnimal implements IInventoryListener {
}
if (flag) {
- if (!entityhuman.abilities.canInstantlyBuild && --itemstack.count == 0) {
+ if (!entityhuman.abilities.canInstantlyBuild && --itemstack.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
entityhuman.inventory.setItem(entityhuman.inventory.itemInHandIndex, (ItemStack) null);
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 0199856..4f3bc3c 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -563,7 +563,7 @@ public abstract class EntityHuman extends EntityLiving {
public EntityItem a(ItemStack itemstack, boolean flag, boolean flag1) {
if (itemstack == null) {
return null;
- } else if (itemstack.count == 0) {
+ } else if (itemstack.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
return null;
} else {
double d0 = this.locY - 0.30000001192092896D + (double) this.getHeadHeight();
@@ -920,7 +920,7 @@ public abstract class EntityHuman extends EntityLiving {
if (itemstack.a(this, (EntityLiving) entity)) {
// CraftBukkit - bypass infinite items; <= 0 -> == 0
- if (itemstack.count == 0 && !this.abilities.canInstantlyBuild) {
+ if (itemstack.count <= 0 && !this.abilities.canInstantlyBuild) { // PaperSpigot - Remove CB 'feature' of infinite items
this.bZ();
}
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index fa6178b..9547b4d 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -73,6 +73,7 @@ public final class ItemStack {
ItemStack itemstack = new ItemStack();
itemstack.c(nbttagcompound);
+ if (itemstack.count < 0) itemstack.count = 0; // PaperSpigot - Remove CB 'feature' of infinite items
return itemstack.getItem() != null ? itemstack : null;
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index a7c629b..ffcbfb2 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -735,7 +735,7 @@ public class PlayerConnection implements PacketListenerPlayIn, IUpdatePlayerList
}
itemstack = this.player.inventory.getItemInHand();
- if (itemstack != null && itemstack.count == 0) {
+ if (itemstack != null && itemstack.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
this.player.inventory.items[this.player.inventory.itemInHandIndex] = null;
itemstack = null;
}
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index 7b469e1..06cd711 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -342,7 +342,7 @@ public class PlayerInteractManager {
if (itemstack1 != null) {
itemstack1.a(this.world, iblockdata.getBlock(), blockposition, this.player);
- if (itemstack1.count == 0) {
+ if (itemstack1.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
this.player.bZ();
}
}
@@ -381,7 +381,7 @@ public class PlayerInteractManager {
}
}
- if (itemstack1.count == 0) {
+ if (itemstack1.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
entityhuman.inventory.items[entityhuman.inventory.itemInHandIndex] = null;
}
diff --git a/src/main/java/net/minecraft/server/PlayerInventory.java b/src/main/java/net/minecraft/server/PlayerInventory.java
index 1c27843..ea593e5 100644
--- a/src/main/java/net/minecraft/server/PlayerInventory.java
+++ b/src/main/java/net/minecraft/server/PlayerInventory.java
@@ -515,7 +515,7 @@ public class PlayerInventory implements IInventory {
public ItemStack getCarried() {
// CraftBukkit start
- if (this.f != null && this.f.count == 0) {
+ if (this.f != null && this.f.count <= 0) { // PaperSpigot - Remove CB 'feature' of infinite items
this.setCarried(null);
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/Slot.java b/src/main/java/net/minecraft/server/Slot.java
index 3e8e7af..6c246a5 100644
--- a/src/main/java/net/minecraft/server/Slot.java
+++ b/src/main/java/net/minecraft/server/Slot.java
@@ -52,6 +52,7 @@ public class Slot {
}
public void set(ItemStack itemstack) {
+ if (itemstack != null && itemstack.count < 0) itemstack.count = 0; // PaperSpigot - Remove CB 'feature' of infinite items
this.inventory.setItem(this.index, itemstack);
this.f();
}
diff --git a/src/main/java/net/minecraft/server/TileEntityDispenser.java b/src/main/java/net/minecraft/server/TileEntityDispenser.java
index 040a69f..3269d39 100644
--- a/src/main/java/net/minecraft/server/TileEntityDispenser.java
+++ b/src/main/java/net/minecraft/server/TileEntityDispenser.java
@@ -100,6 +100,7 @@ public class TileEntityDispenser extends TileEntityContainer implements IInvento
public void setItem(int i, ItemStack itemstack) {
this.items[i] = itemstack;
+ if (itemstack != null && itemstack.count < 0) itemstack.count = 0; // PaperSpigot - Remove CB 'feature' of infinite items
if (itemstack != null && itemstack.count > this.getMaxStackSize()) {
itemstack.count = this.getMaxStackSize();
}
--
1.9.5.msysgit.0

View File

@ -1,14 +1,14 @@
From 9cd798fbfcb245029b35c8caad7b2754ba38f553 Mon Sep 17 00:00:00 2001 From 82519270768b7b9abc1c721eeca22a6b0714f855 Mon Sep 17 00:00:00 2001
From: Zach <zach.brown@destroystokyo.com> From: Zach <zach.brown@destroystokyo.com>
Date: Fri, 13 Feb 2015 14:49:30 -0600 Date: Fri, 13 Feb 2015 14:49:30 -0600
Subject: [PATCH] Enderman drop the block they're holding when they die Subject: [PATCH] Enderman drop the block they're holding when they die
diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
index fe198c9..6c85f3d 100644 index 2bf00b0..ef8225b 100644
--- a/src/main/java/net/minecraft/server/EntityEnderman.java --- a/src/main/java/net/minecraft/server/EntityEnderman.java
+++ b/src/main/java/net/minecraft/server/EntityEnderman.java +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
@@ -239,6 +239,13 @@ public class EntityEnderman extends EntityMonster { @@ -251,6 +251,13 @@ public class EntityEnderman extends EntityMonster {
} }
} }
@ -23,5 +23,5 @@ index fe198c9..6c85f3d 100644
public void setCarried(IBlockData iblockdata) { public void setCarried(IBlockData iblockdata) {
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,13 +1,13 @@
From a67ca6c100a61600fa215e1b6b0872bc62ebdd4a Mon Sep 17 00:00:00 2001 From ec5c9469d4ea7c4fa2c526e823ffc4a29ecdb436 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 23 Feb 2015 15:54:17 -0600 Date: Sun, 8 Mar 2015 04:52:37 -0500
Subject: [PATCH] PaperSpigot TNT Changes Subject: [PATCH] PaperSpigot TNT Changes
PaperSpigot communal TNT modification patch PaperSpigot communal TNT modification patch
Original authors for individual changes are listed w/in PaperSpigotWorldConfig Original authors for individual changes are listed w/in PaperSpigotWorldConfig
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index ddff5a8..7c94d99 100644 index 1daba4e..dd1ad68 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -36,6 +36,12 @@ public class EntityTNTPrimed extends Entity { @@ -36,6 +36,12 @@ public class EntityTNTPrimed extends Entity {
@ -62,49 +62,15 @@ index ddff5a8..7c94d99 100644
+ * PaperSpigot - Configurable TNT water movement + * PaperSpigot - Configurable TNT water movement
+ */ + */
+ @Override + @Override
+ public boolean aK() { + public boolean aL() {
+ return world.paperSpigotConfig.tntMovesInWater; + return world.paperSpigotConfig.tntMovesInWater;
+ } + }
} }
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 3ea9c92..5deeb76 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1889,6 +1889,11 @@ public abstract class World implements IBlockAccess {
double d1 = 1.0D / ((axisalignedbb.e - axisalignedbb.b) * 2.0D + 1.0D);
double d2 = 1.0D / ((axisalignedbb.f - axisalignedbb.c) * 2.0D + 1.0D);
+ // PaperSpigot start - Fix TNT directional bias
+ double xOffset = (1.0 - Math.floor(1.0 / d0) * d0) / 2.0;
+ double zOffset = (1.0 - Math.floor(1.0 / d2) * d2) / 2.0;
+ // PaperSpigot end
+
if (d0 >= 0.0D && d1 >= 0.0D && d2 >= 0.0D) {
int i = 0;
int j = 0;
@@ -1900,7 +1905,16 @@ public abstract class World implements IBlockAccess {
double d4 = axisalignedbb.b + (axisalignedbb.e - axisalignedbb.b) * (double) f1;
double d5 = axisalignedbb.c + (axisalignedbb.f - axisalignedbb.c) * (double) f2;
- if (this.rayTrace(new Vec3D(d3, d4, d5), vec3d) == null) {
+ // PaperSpigot start - Fix TNT directional bias
+ Vec3D vec3d1;
+ if (this.paperSpigotConfig.fixTNTDirectionBias) {
+ vec3d1 = new Vec3D(xOffset, d4, zOffset + d5);
+ } else {
+ vec3d1 = new Vec3D(d3, d4, d5);
+ }
+
+ if (this.rayTrace(vec3d1, vec3d) == null) {
+ // PaperSpigot end
++i;
}
diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java diff --git a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
index a756395..720b4a7 100644 index a6d8532..ceb5e64 100644
--- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java --- a/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
+++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java +++ b/src/main/java/org/github/paperspigot/PaperSpigotWorldConfig.java
@@ -191,4 +191,36 @@ public class PaperSpigotWorldConfig @@ -192,4 +192,35 @@ public class PaperSpigotWorldConfig
{ {
netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false ); netherVoidTopDamage = getBoolean( "nether-ceiling-void-damage", false );
} }
@ -115,7 +81,7 @@ index a756395..720b4a7 100644
+ public int tntHeightLimit; + public int tntHeightLimit;
+ private void tntChanges() + private void tntChanges()
+ { + {
+ // Original Authors: Iceee <andrew@opticgaming.tv> and Jedediah Smith <jedediah@silencegreys.com> + // Original Authors: Iceee <andrew@opticgaming.tv>
+ fixTNTDirectionBias = getBoolean( "tnt-gameplay.fix-directional-bias", false ); + fixTNTDirectionBias = getBoolean( "tnt-gameplay.fix-directional-bias", false );
+ // Original Author: Byteflux <byte@byteflux.net> + // Original Author: Byteflux <byte@byteflux.net>
+ tntMovesInWater = getBoolean( "tnt-gameplay.moves-in-water", true ); + tntMovesInWater = getBoolean( "tnt-gameplay.moves-in-water", true );
@ -132,15 +98,14 @@ index a756395..720b4a7 100644
+ } else { + } else {
+ log( "TNT height limit disabled" ); + log( "TNT height limit disabled" );
+ } + }
+
+ if (PaperSpigotConfig.version < 7) { + if (PaperSpigotConfig.version < 7) {
+ System.err.println( "==========================================" ); + System.err.println( "==========================================" );
+ System.err.println( " Many TNT Related Settings Have Moved " ); + System.err.println( " Many TNT Related Settings Have Moved " );
+ System.err.println( " Please check your config in paper.yml! " ); + System.err.println( " Please check your config in paper.yml! " );
+ System.err.println( "==========================================" ); + System.err.println( "==========================================" );
+ }
+ } + }
+ }
} }
-- --
1.9.5.msysgit.0 1.9.1

View File

@ -1,11 +1,11 @@
From c5fdb8aa93f070a26da634ae211991f57bbb33fa Mon Sep 17 00:00:00 2001 From f4fe33616c5bdeb316e1ff4752facc9918f5c41c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com> From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 5 Mar 2015 15:30:06 -0600 Date: Thu, 5 Mar 2015 15:30:06 -0600
Subject: [PATCH] Check online mode before converting and renaming player data Subject: [PATCH] Check online mode before converting and renaming player data
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
index b187aed..4eefefc 100644 index 007846a..8f05851 100644
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java --- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java +++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
@@ -202,7 +202,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData { @@ -202,7 +202,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData {
@ -18,5 +18,5 @@ index b187aed..4eefefc 100644
file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat"); file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
if ( file.exists() ) if ( file.exists() )
-- --
1.9.5.msysgit.0 1.9.1