Update to MC 1.12-pre2

This commit is contained in:
Zach Brown 2017-05-14 13:05:01 -05:00
parent 828d600143
commit 491286def4
No known key found for this signature in database
GPG Key ID: CC9DA35FC5450B76
151 changed files with 1315 additions and 1636 deletions

View File

@ -1,11 +1,11 @@
From 1f8f0180d8a5714931673fe8fabce687a0c24095 Mon Sep 17 00:00:00 2001
From 617559d05de68cd645b17492c511e62ae593de4b Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 20:40:33 -0600
Subject: [PATCH] POM Changes
diff --git a/pom.xml b/pom.xml
index 6d019d1..0e88ae2 100644
index 4f14d6f41..a833892e3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,12 +1,12 @@
@ -17,7 +17,7 @@ index 6d019d1..0e88ae2 100644
+ <groupId>com.destroystokyo.paper</groupId>
+ <artifactId>paper</artifactId>
<packaging>jar</packaging>
<version>1.11.2-R0.1-SNAPSHOT</version>
<version>1.12-pre2-SNAPSHOT</version>
- <name>Spigot</name>
- <url>http://www.spigotmc.org</url>
+ <name>Paper</name>
@ -25,15 +25,7 @@ index 6d019d1..0e88ae2 100644
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -16,21 +16,22 @@
<buildtag.prefix>git-Bukkit-</buildtag.prefix>
<buildtag.suffix></buildtag.suffix>
<maven.build.timestamp.format>yyyyMMdd-HHmm</maven.build.timestamp.format>
- <maven.compiler.source>1.6</maven.compiler.source>
- <maven.compiler.target>1.6</maven.compiler.target>
+ <!--Paper - Bump to 1.8 - This will haunt me -->
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
@@ -21,16 +21,16 @@
</properties>
<parent>
@ -54,7 +46,7 @@ index 6d019d1..0e88ae2 100644
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
@@ -94,34 +95,22 @@
@@ -94,34 +94,22 @@
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
<build>
@ -100,7 +92,7 @@ index 6d019d1..0e88ae2 100644
</goals>
</execution>
</executions>
@@ -131,11 +120,12 @@
@@ -131,11 +119,12 @@
<artifactId>maven-jar-plugin</artifactId>
<version>3.0.2</version>
<configuration>
@ -114,34 +106,7 @@ index 6d019d1..0e88ae2 100644
<Implementation-Vendor>${maven.build.timestamp}</Implementation-Vendor>
<Specification-Title>Bukkit</Specification-Title>
<Specification-Version>${api.version}</Specification-Version>
@@ -165,26 +155,6 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <version>1.15</version>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <signature>
- <groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java16</artifactId>
- <version>1.1</version>
- </signature>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
@@ -195,11 +165,13 @@
@@ -195,11 +184,13 @@
<goal>shade</goal>
</goals>
<configuration>
@ -159,7 +124,7 @@ index 6d019d1..0e88ae2 100644
<relocation>
<pattern>jline</pattern>
<shadedPattern>org.bukkit.craftbukkit.libs.jline</shadedPattern>
@@ -238,20 +210,6 @@
@@ -234,20 +225,6 @@
<artifactId>maven-compiler-plugin</artifactId>
<!-- versions after this appear to be broken -->
<version>3.1</version>
@ -181,7 +146,7 @@ index 6d019d1..0e88ae2 100644
<plugin>
<groupId>org.apache.maven.plugins</groupId>
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 9304637..674096c 100644
index 93046379d..674096cab 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,7 +11,7 @@ public final class Versioning {
@ -194,5 +159,5 @@ index 9304637..674096c 100644
if (stream != null) {
--
2.9.3
2.13.0

View File

@ -1,4 +1,4 @@
From 592ca37122a5eb5a53cc83cd94dcd1a7c36ebaf8 Mon Sep 17 00:00:00 2001
From 79288da44d41aa22fd80969a8ad4447b475f67c7 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 21:02:09 -0600
Subject: [PATCH] Paper config files
@ -6,7 +6,7 @@ Subject: [PATCH] Paper config files
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
new file mode 100644
index 00000000..2096d3f9
index 000000000..2096d3f97
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -0,0 +1,49 @@
@ -61,7 +61,7 @@ index 00000000..2096d3f9
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
new file mode 100644
index 00000000..328ff012
index 000000000..3d8ee9ed3
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -0,0 +1,173 @@
@ -124,8 +124,8 @@ index 00000000..328ff012
+ commands = new HashMap<String, Command>();
+ commands.put("paper", new PaperCommand("paper"));
+
+ version = getInt("config-version", 12);
+ set("config-version", 12);
+ version = getInt("config-version", 13);
+ set("config-version", 13);
+ readConfig(PaperConfig.class, null);
+ }
+
@ -240,7 +240,7 @@ index 00000000..328ff012
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
new file mode 100644
index 00000000..621bf705
index 000000000..621bf7051
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -0,0 +1,66 @@
@ -311,10 +311,10 @@ index 00000000..621bf705
+ }
+}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 31756b80..cb83e4f5 100644
index 072dff9b5..30538d8ec 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -183,6 +183,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -184,6 +184,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
org.spigotmc.SpigotConfig.init((File) options.valueOf("spigot-settings"));
org.spigotmc.SpigotConfig.registerCommands();
// Spigot end
@ -326,10 +326,10 @@ index 31756b80..cb83e4f5 100644
DedicatedServer.LOGGER.info("Generating keypair");
this.a(MinecraftEncryption.b());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index eab11685..758962e6 100644
index b2cc418a7..a366b2d70 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -125,6 +125,8 @@ public abstract class World implements IBlockAccess {
@@ -127,6 +127,8 @@ public abstract class World implements IBlockAccess {
private int tickPosition;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -338,7 +338,7 @@ index eab11685..758962e6 100644
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
private boolean guardEntityList; // Spigot
public static boolean haveWeSilencedAPhysicsCrash;
@@ -147,6 +149,7 @@ public abstract class World implements IBlockAccess {
@@ -149,6 +151,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) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
@ -347,10 +347,10 @@ index eab11685..758962e6 100644
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b7e1f182..587d23df 100644
index 8a0043d3c..440b23cf5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -697,6 +697,7 @@ public final class CraftServer implements Server {
@@ -689,6 +689,7 @@ public final class CraftServer implements Server {
}
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
@ -358,7 +358,7 @@ index b7e1f182..587d23df 100644
for (WorldServer world : console.worlds) {
world.worldData.setDifficulty(difficulty);
world.setSpawnFlags(monsters, animals);
@@ -712,12 +713,14 @@ public final class CraftServer implements Server {
@@ -704,6 +705,7 @@ public final class CraftServer implements Server {
world.ticksPerMonsterSpawns = this.getTicksPerMonsterSpawns();
}
world.spigotConfig.init(); // Spigot
@ -366,15 +366,16 @@ index b7e1f182..587d23df 100644
}
pluginManager.clearPlugins();
commandMap.clearCommands();
@@ -711,6 +713,7 @@ public final class CraftServer implements Server {
resetRecipes();
reloadData();
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
+ com.destroystokyo.paper.PaperConfig.registerCommands(); // Paper
overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*");
int pollCount = 0;
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index ee8ec5a6..4399faf6 100644
index 21170f377..30b6f3477 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -126,6 +126,14 @@ public class Main {
@ -393,7 +394,7 @@ index ee8ec5a6..4399faf6 100644
};
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 01e73eb8..0b66f5e3 100644
index 01e73eb89..0b66f5e35 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -39,31 +39,31 @@ public class SpigotWorldConfig
@ -434,5 +435,5 @@ index 01e73eb8..0b66f5e3 100644
config.addDefault( "world-settings.default." + path, def );
return config.getString( "world-settings." + worldName + "." + path, config.getString( "world-settings.default." + path ) );
--
2.12.2
2.13.0

View File

@ -1,15 +1,15 @@
From d53c24fef5ec8a7ba7a0681d0b7361d10eba2d40 Mon Sep 17 00:00:00 2001
From d96016cb6d0bc3a710cf6e081872d2f4117e1dda Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 30 Mar 2016 19:36:20 -0400
Subject: [PATCH] MC Dev fixes
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
index f02fc607..d60e7550 100644
index d4f412742..d55e180d7 100644
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
@@ -89,7 +89,7 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
return Objects.toStringHelper(this).add("x", this.getX()).add("y", this.getY()).add("z", this.getZ()).toString();
return MoreObjects.toStringHelper(this).add("x", this.getX()).add("y", this.getY()).add("z", this.getZ()).toString();
}
- public int compareTo(Object object) {
@ -18,11 +18,11 @@ index f02fc607..d60e7550 100644
}
}
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index e62df5c1..62a338e9 100644
index 62a9c92f8..1b7599769 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -49,7 +49,7 @@ public abstract class BiomeBase {
protected List<BiomeBase.BiomeMeta> x;
@@ -46,7 +46,7 @@ public abstract class BiomeBase {
protected List<BiomeBase.BiomeMeta> w;
public static int a(BiomeBase biomebase) {
- return BiomeBase.REGISTRY_ID.a((Object) biomebase);
@ -31,7 +31,7 @@ index e62df5c1..62a338e9 100644
@Nullable
diff --git a/src/main/java/net/minecraft/server/BlockStateEnum.java b/src/main/java/net/minecraft/server/BlockStateEnum.java
index 71524f2c..288c52c5 100644
index 71524f2cd..288c52c55 100644
--- a/src/main/java/net/minecraft/server/BlockStateEnum.java
+++ b/src/main/java/net/minecraft/server/BlockStateEnum.java
@@ -29,7 +29,7 @@ public class BlockStateEnum<T extends Enum<T> & INamable> extends BlockState<T>
@ -44,10 +44,10 @@ index 71524f2c..288c52c5 100644
}
diff --git a/src/main/java/net/minecraft/server/CommandAbstract.java b/src/main/java/net/minecraft/server/CommandAbstract.java
index fe74068e..b669884d 100644
index 14a7b9c92..8b703db42 100644
--- a/src/main/java/net/minecraft/server/CommandAbstract.java
+++ b/src/main/java/net/minecraft/server/CommandAbstract.java
@@ -223,7 +223,7 @@ public abstract class CommandAbstract implements ICommand {
@@ -231,7 +231,7 @@ public abstract class CommandAbstract implements ICommand {
}
if (object != null && oclass.isAssignableFrom(object.getClass())) {
@ -56,7 +56,7 @@ index fe74068e..b669884d 100644
} else {
throw new ExceptionEntityNotFound(s);
}
@@ -440,7 +440,7 @@ public abstract class CommandAbstract implements ICommand {
@@ -448,7 +448,7 @@ public abstract class CommandAbstract implements ICommand {
}
private static <T extends Comparable<T>> IBlockData a(IBlockData iblockdata, IBlockState<T> iblockstate, Comparable<?> comparable) {
@ -65,7 +65,7 @@ index fe74068e..b669884d 100644
}
public static Predicate<IBlockData> b(final Block block, String s) throws ExceptionInvalidBlockState {
@@ -533,7 +533,7 @@ public abstract class CommandAbstract implements ICommand {
@@ -541,7 +541,7 @@ public abstract class CommandAbstract implements ICommand {
@Nullable
private static <T extends Comparable<T>> T a(IBlockState<T> iblockstate, String s) {
@ -74,7 +74,7 @@ index fe74068e..b669884d 100644
}
public static String a(Object[] aobject) {
@@ -684,7 +684,7 @@ public abstract class CommandAbstract implements ICommand {
@@ -692,7 +692,7 @@ public abstract class CommandAbstract implements ICommand {
return this.getCommand().compareTo(icommand.getCommand());
}
@ -84,7 +84,7 @@ index fe74068e..b669884d 100644
}
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
index f5bcbdbe..3190cadf 100644
index f5bcbdbe1..3190cadfc 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemFactoryTest.java
@@ -20,7 +20,7 @@ public class ItemFactoryTest extends AbstractTestingBase {
@ -97,5 +97,5 @@ index f5bcbdbe..3190cadf 100644
for (ZipEntry clazzEntry; (clazzEntry = nmsZipStream.getNextEntry()) != null; ) {
final String entryName = clazzEntry.getName();
--
2.12.2
2.13.0

View File

@ -1,11 +1,11 @@
From a703dc3147918196659551ad173b9072f80e983c Mon Sep 17 00:00:00 2001
From 2ff1a095a26d78e4e5de5a878259f8094cbb0d90 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:55:47 -0400
Subject: [PATCH] MC Utils
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index b0aba6089..81fc04ed3 100644
index 38d69b944..7fee74d80 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -675,6 +675,7 @@ public class Chunk {
@ -212,19 +212,19 @@ index 000000000..1159eea1a
+ }
+}
diff --git a/src/main/java/net/minecraft/server/NBTTagCompound.java b/src/main/java/net/minecraft/server/NBTTagCompound.java
index 90d18f489..2a2f53c82 100644
index aa1ca6d91..e15c23367 100644
--- a/src/main/java/net/minecraft/server/NBTTagCompound.java
+++ b/src/main/java/net/minecraft/server/NBTTagCompound.java
@@ -19,7 +19,7 @@ import org.apache.logging.log4j.Logger;
public class NBTTagCompound extends NBTBase {
@@ -22,7 +22,7 @@ public class NBTTagCompound extends NBTBase {
private static final Logger b = LogManager.getLogger();
private static final Pattern c = Pattern.compile("[A-Za-z0-9._+-]+");
- private final Map<String, NBTBase> map = Maps.newHashMap();
+ public final Map<String, NBTBase> map = Maps.newHashMap(); // Paper
public NBTTagCompound() {}
@@ -91,11 +91,13 @@ public class NBTTagCompound extends NBTBase {
@@ -94,11 +94,13 @@ public class NBTTagCompound extends NBTBase {
this.map.put(s, new NBTTagLong(i));
}
@ -239,10 +239,10 @@ index 90d18f489..2a2f53c82 100644
public UUID a(String s) {
return new UUID(this.getLong(s + "Most"), this.getLong(s + "Least"));
diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java
index 370203b2d..ae7498c03 100644
index e0cb6aa6e..bc6383669 100644
--- a/src/main/java/net/minecraft/server/NBTTagList.java
+++ b/src/main/java/net/minecraft/server/NBTTagList.java
@@ -12,7 +12,7 @@ import org.apache.logging.log4j.Logger;
@@ -13,7 +13,7 @@ import org.apache.logging.log4j.Logger;
public class NBTTagList extends NBTBase {
private static final Logger b = LogManager.getLogger();
@ -252,5 +252,5 @@ index 370203b2d..ae7498c03 100644
public NBTTagList() {}
--
2.12.0.windows.1
2.13.0

View File

@ -1,14 +1,14 @@
From 1c2a256ac8dc0122b4a34665f614bb09ea329fe4 Mon Sep 17 00:00:00 2001
From 52903d99be9e34ce9c9871eaecc2a371db5b4497 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2
diff --git a/pom.xml b/pom.xml
index 8b96966d8..8d1e8680b 100644
index a833892e3..3090f79f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -66,6 +66,12 @@
@@ -65,6 +65,12 @@
<scope>compile</scope>
</dependency>
<dependency>
@ -23,10 +23,10 @@ index 8b96966d8..8d1e8680b 100644
<version>3.0.3</version>
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
new file mode 100644
index 000000000..4b4b77a5c
index 000000000..1b33390de
--- /dev/null
+++ b/src/main/java/co/aikar/timings/MinecraftTimings.java
@@ -0,0 +1,124 @@
@@ -0,0 +1,125 @@
+package co.aikar.timings;
+
+import net.minecraft.server.*;
@ -38,6 +38,7 @@ index 000000000..4b4b77a5c
+public final class MinecraftTimings {
+
+ public static final Timing playerListTimer = Timings.ofSafe("Player List");
+ public static final Timing commandFunctionsTimer = Timings.ofSafe("Command Functions");
+ public static final Timing connectionTimer = Timings.ofSafe("Connection Handler");
+ public static final Timing tickablesTimer = Timings.ofSafe("Tickables");
+ public static final Timing minecraftSchedulerTimer = Timings.ofSafe("Minecraft Scheduler");
@ -153,10 +154,10 @@ index 000000000..4b4b77a5c
+}
diff --git a/src/main/java/co/aikar/timings/TimedChunkGenerator.java b/src/main/java/co/aikar/timings/TimedChunkGenerator.java
new file mode 100644
index 000000000..b79f1be7a
index 000000000..089154f62
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimedChunkGenerator.java
@@ -0,0 +1,126 @@
@@ -0,0 +1,131 @@
+/*
+ * This file is licensed under the MIT License (MIT).
+ *
@ -282,6 +283,11 @@ index 000000000..b79f1be7a
+ timedGenerator.recreateStructures(chunk, i, j);
+ }
+ }
+
+ @Override
+ public boolean a(World world, String s, BlockPosition blockPosition) {
+ return timedGenerator.a(world, s, blockPosition);
+ }
+}
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
new file mode 100644
@ -391,7 +397,7 @@ index 000000000..e7789117b
+ }
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 1594d7ca4..007589314 100644
index 5ab2cf6ee..b5795b6d3 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -14,11 +14,14 @@ import java.util.concurrent.TimeUnit;
@ -435,7 +441,7 @@ index 1594d7ca4..007589314 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index e8511ac9a..d3f1a4ac0 100644
index 0ee47df3f..ba3913667 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -35,6 +35,15 @@ public class Block {
@ -455,7 +461,7 @@ index e8511ac9a..d3f1a4ac0 100644
public static int getId(Block block) {
return Block.REGISTRY.a(block); // CraftBukkit - decompile error
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 81fc04ed3..bd3b16025 100644
index 7fee74d80..39ad8d691 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -900,7 +900,7 @@ public class Chunk {
@ -503,7 +509,7 @@ index 81fc04ed3..bd3b16025 100644
private void z() {
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 2d267e44b..2762d1838 100644
index 9dcab42de..c1b0d6cea 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -195,7 +195,7 @@ public class ChunkProviderServer implements IChunkProvider {
@ -525,7 +531,7 @@ index 2d267e44b..2762d1838 100644
this.chunkLoader.a(this.world, chunk);
} catch (IOException ioexception) {
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 65fe4e2ec..bee52d783 100644
index fe387e218..6550686ee 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -388,7 +388,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -565,10 +571,10 @@ index 65fe4e2ec..bee52d783 100644
// return chunk; // CraftBukkit
}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index cb83e4f56..e6819139f 100644
index 30538d8ec..840ffeb93 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -23,7 +23,7 @@ import java.io.PrintStream;
@@ -24,7 +24,7 @@ import java.io.PrintStream;
import org.apache.logging.log4j.Level;
import org.bukkit.craftbukkit.LoggerOutputStream;
@ -577,16 +583,16 @@ index cb83e4f56..e6819139f 100644
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.craftbukkit.util.Waitable;
import org.bukkit.event.server.RemoteServerCommandEvent;
@@ -427,7 +427,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -433,7 +433,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
public void aM() {
public void aP() {
- SpigotTimings.serverCommandTimer.startTiming(); // Spigot
+ MinecraftTimings.serverCommandTimer.startTiming(); // Spigot
while (!this.serverCommandQueue.isEmpty()) {
ServerCommand servercommand = (ServerCommand) this.serverCommandQueue.remove(0);
@@ -442,7 +442,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -448,7 +448,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
// CraftBukkit end
}
@ -595,7 +601,7 @@ index cb83e4f56..e6819139f 100644
}
public boolean aa() {
@@ -692,7 +692,20 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -694,7 +694,20 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
return remoteControlCommandListener.getMessages();
}
};
@ -618,7 +624,7 @@ index cb83e4f56..e6819139f 100644
return waitable.get();
} catch (java.util.concurrent.ExecutionException e) {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 9bd9dc28b..14d23556f 100644
index bae717b18..c6b7d6c22 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -25,7 +25,8 @@ import org.bukkit.block.BlockFace;
@ -631,7 +637,7 @@ index 9bd9dc28b..14d23556f 100644
import org.bukkit.event.entity.EntityCombustByEntityEvent;
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.vehicle.VehicleBlockCollisionEvent;
@@ -145,7 +146,7 @@ public abstract class Entity implements ICommandListener {
@@ -146,7 +147,7 @@ public abstract class Entity implements ICommandListener {
public boolean valid; // CraftBukkit
public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only
public boolean forceExplosionKnockback; // CraftBukkit - SPIGOT-949
@ -640,7 +646,7 @@ index 9bd9dc28b..14d23556f 100644
// Spigot start
public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this);
public final boolean defaultActivationState;
@@ -523,7 +524,6 @@ public abstract class Entity implements ICommandListener {
@@ -525,7 +526,6 @@ public abstract class Entity implements ICommandListener {
}
public void move(EnumMoveType enummovetype, double d0, double d1, double d2) {
@ -648,7 +654,7 @@ index 9bd9dc28b..14d23556f 100644
if (this.noclip) {
this.a(this.getBoundingBox().d(d0, d1, d2));
this.recalcPosition();
@@ -915,7 +915,6 @@ public abstract class Entity implements ICommandListener {
@@ -919,7 +919,6 @@ public abstract class Entity implements ICommandListener {
this.world.methodProfiler.b();
}
@ -657,7 +663,7 @@ index 9bd9dc28b..14d23556f 100644
public void recalcPosition() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index e9002c953..b22f81b12 100644
index 3a92c468c..2c22b6ca2 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -31,7 +31,7 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@ -669,15 +675,15 @@ index e9002c953..b22f81b12 100644
public abstract class EntityLiving extends Entity {
@@ -1816,7 +1816,6 @@ public abstract class EntityLiving extends Entity {
@@ -1861,7 +1861,6 @@ public abstract class EntityLiving extends Entity {
}
public void A_() {
public void B_() {
- SpigotTimings.timerEntityBaseTick.startTiming(); // Spigot
super.A_();
this.cA();
super.B_();
this.cG();
if (!this.world.isClientSide) {
@@ -1889,9 +1888,7 @@ public abstract class EntityLiving extends Entity {
@@ -1934,9 +1933,7 @@ public abstract class EntityLiving extends Entity {
}
}
@ -687,16 +693,16 @@ index e9002c953..b22f81b12 100644
double d0 = this.locX - this.lastX;
double d1 = this.locZ - this.lastZ;
float f = (float) (d0 * d0 + d1 * d1);
@@ -1960,8 +1957,6 @@ public abstract class EntityLiving extends Entity {
@@ -2012,8 +2009,6 @@ public abstract class EntityLiving extends Entity {
} else {
this.bp = 0;
this.bq = 0;
}
-
- SpigotTimings.timerEntityTickRest.stopTiming(); // Spigot
}
protected float h(float f, float f1) {
@@ -2026,7 +2021,6 @@ public abstract class EntityLiving extends Entity {
protected float g(float f, float f1) {
@@ -2078,7 +2073,6 @@ public abstract class EntityLiving extends Entity {
}
this.world.methodProfiler.a("ai");
@ -704,7 +710,7 @@ index e9002c953..b22f81b12 100644
if (this.isFrozen()) {
this.bd = false;
this.be = 0.0F;
@@ -2037,7 +2031,6 @@ public abstract class EntityLiving extends Entity {
@@ -2089,7 +2083,6 @@ public abstract class EntityLiving extends Entity {
this.doTick();
this.world.methodProfiler.b();
}
@ -712,23 +718,23 @@ index e9002c953..b22f81b12 100644
this.world.methodProfiler.b();
this.world.methodProfiler.a("jump");
@@ -2060,14 +2053,10 @@ public abstract class EntityLiving extends Entity {
this.bf *= 0.98F;
this.bg *= 0.9F;
@@ -2112,14 +2105,10 @@ public abstract class EntityLiving extends Entity {
this.bg *= 0.98F;
this.bh *= 0.9F;
this.r();
- SpigotTimings.timerEntityAIMove.startTiming(); // Spigot
this.g(this.be, this.bf);
this.a(this.be, this.bf, this.bg);
- SpigotTimings.timerEntityAIMove.stopTiming(); // Spigot
this.world.methodProfiler.b();
this.world.methodProfiler.a("push");
- SpigotTimings.timerEntityAICollision.startTiming(); // Spigot
this.ct();
this.cz();
- SpigotTimings.timerEntityAICollision.stopTiming(); // Spigot
this.world.methodProfiler.b();
}
diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java
index 347a2b671..aceb08ce1 100644
index c840f6761..14504cbcc 100644
--- a/src/main/java/net/minecraft/server/EntityTracker.java
+++ b/src/main/java/net/minecraft/server/EntityTracker.java
@@ -175,7 +175,7 @@ public class EntityTracker {
@ -759,7 +765,7 @@ index 347a2b671..aceb08ce1 100644
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index cc0efa2e0..1b432f0d7 100644
index 39318aaf1..e847f3f1a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -47,8 +47,8 @@ import org.bukkit.Bukkit;
@ -770,9 +776,9 @@ index cc0efa2e0..1b432f0d7 100644
import org.spigotmc.SlackActivityAccountant; // Spigot
+import co.aikar.timings.MinecraftTimings; // Paper
public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics {
public abstract class MinecraftServer implements ICommandListener, Runnable, IAsyncTaskHandler, IMojangStatistics {
@@ -459,6 +459,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -459,6 +459,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
}
// CraftBukkit end
MinecraftServer.LOGGER.info("Stopping server");
@ -780,7 +786,7 @@ index cc0efa2e0..1b432f0d7 100644
// CraftBukkit start
if (this.server != null) {
this.server.disablePlugins();
@@ -663,7 +664,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -663,7 +664,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
public void B() {}
protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws
@ -789,7 +795,7 @@ index cc0efa2e0..1b432f0d7 100644
this.slackActivityAccountant.tickStarted(); // Spigot
long i = System.nanoTime();
@@ -691,7 +692,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -691,7 +692,6 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
}
if (autosavePeriod > 0 && this.ticks % autosavePeriod == 0) { // CraftBukkit
@ -797,7 +803,7 @@ index cc0efa2e0..1b432f0d7 100644
this.methodProfiler.a("save");
this.v.savePlayers();
// Spigot Start
@@ -706,7 +706,6 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -706,7 +706,6 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
// this.saveChunks(true);
// Spigot End
this.methodProfiler.b();
@ -805,7 +811,7 @@ index cc0efa2e0..1b432f0d7 100644
}
this.methodProfiler.a("tallying");
@@ -729,14 +728,14 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -729,14 +728,14 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
org.spigotmc.WatchdogThread.tick(); // Spigot
this.slackActivityAccountant.tickEnded(tickNanos); // Spigot
@ -824,7 +830,7 @@ index cc0efa2e0..1b432f0d7 100644
this.methodProfiler.a("jobs");
Queue queue = this.j;
@@ -747,22 +746,23 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -747,22 +746,23 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
SystemUtils.a(entry, MinecraftServer.LOGGER);
}
// Spigot end
@ -853,7 +859,7 @@ index cc0efa2e0..1b432f0d7 100644
// Send time updates to everyone, it will get the right time from the world the player is in.
if (this.ticks % 20 == 0) {
for (int i = 0; i < this.getPlayerList().players.size(); ++i) {
@@ -770,7 +770,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -770,7 +770,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
entityplayer.playerConnection.sendPacket(new PacketPlayOutUpdateTime(entityplayer.world.getTime(), entityplayer.getPlayerTime(), entityplayer.world.getGameRules().getBoolean("doDaylightCycle"))); // Add support for per player time
}
}
@ -862,7 +868,7 @@ index cc0efa2e0..1b432f0d7 100644
int i;
@@ -827,9 +827,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -827,9 +827,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
this.methodProfiler.b();
this.methodProfiler.a("tracker");
@ -872,7 +878,7 @@ index cc0efa2e0..1b432f0d7 100644
this.methodProfiler.b();
this.methodProfiler.b();
// } // CraftBukkit
@@ -838,20 +836,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -838,24 +836,24 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
}
this.methodProfiler.c("connection");
@ -887,12 +893,18 @@ index cc0efa2e0..1b432f0d7 100644
this.v.tick();
- SpigotTimings.playerListTimer.stopTiming(); // Spigot
+ MinecraftTimings.playerListTimer.stopTiming(); // Spigot
this.methodProfiler.c("commandFunctions");
- SpigotTimings.commandFunctionsTimer.startTiming(); // Spigot
+ MinecraftTimings.commandFunctionsTimer.startTiming(); // Spigot
this.aL().e();
- SpigotTimings.commandFunctionsTimer.stopTiming();// Spigot
+ MinecraftTimings.commandFunctionsTimer.stopTiming(); // Spigot
this.methodProfiler.c("tickables");
- SpigotTimings.tickablesTimer.startTiming(); // Spigot
+ MinecraftTimings.tickablesTimer.startTiming(); // Spigot
for (i = 0; i < this.o.size(); ++i) {
((ITickable) this.o.get(i)).F_();
((ITickable) this.o.get(i)).e();
}
- SpigotTimings.tickablesTimer.stopTiming(); // Spigot
+ MinecraftTimings.tickablesTimer.stopTiming(); // Spigot
@ -900,7 +912,7 @@ index cc0efa2e0..1b432f0d7 100644
this.methodProfiler.b();
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 703d5813d..021dfba14 100644
index eeac34998..e4ed2e991 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -1,5 +1,6 @@
@ -1000,7 +1012,7 @@ index 703d5813d..021dfba14 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 9897bade8..27283efad 100644
index 1dbdcfa57..63ea04fb4 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -56,6 +56,7 @@ import org.bukkit.inventory.CraftingInventory;
@ -1011,16 +1023,16 @@ index 9897bade8..27283efad 100644
// CraftBukkit end
public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1335,7 +1336,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1346,7 +1347,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
// CraftBukkit end
private void handleCommand(String s) {
private void handleCommand(String s) {
- org.bukkit.craftbukkit.SpigotTimings.playerCommandTimer.startTiming(); // Spigot
+ MinecraftTimings.playerCommandTimer.startTiming(); // Paper
+ MinecraftTimings.playerCommandTimer.startTiming(); // Paper
// CraftBukkit start - whole method
if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getName() + " issued server command: " + s);
@@ -1346,22 +1347,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1357,22 +1358,22 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
this.server.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@ -1044,7 +1056,7 @@ index 9897bade8..27283efad 100644
}
- org.bukkit.craftbukkit.SpigotTimings.playerCommandTimer.stopTiming(); // Spigot
+ MinecraftTimings.playerCommandTimer.stopTiming(); // Paper
// this.minecraftServer.getCommandHandler().a(this.player, s);
// this.minecraftServer.getCommandHandler().b(this.player, s);
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnectionUtils.java b/src/main/java/net/minecraft/server/PlayerConnectionUtils.java
@ -1078,7 +1090,7 @@ index f74b06794..1fc632e0c 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 411720f2d..80bf61164 100644
index f79683a60..4aaf287ae 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -1,5 +1,6 @@
@ -1088,7 +1100,7 @@ index 411720f2d..80bf61164 100644
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
@@ -1174,10 +1175,11 @@ public abstract class PlayerList {
@@ -1197,10 +1198,11 @@ public abstract class PlayerList {
}
public void savePlayers() {
@ -1102,7 +1114,7 @@ index 411720f2d..80bf61164 100644
public void addWhitelist(GameProfile gameprofile) {
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index f1f206501..fb350c408 100644
index 74e3f42cd..2580a4cf6 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -1,5 +1,7 @@
@ -1144,7 +1156,7 @@ index f1f206501..fb350c408 100644
return flag;
}
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 6958a2e0f..b3d3df4cf 100644
index 591f4ad7f..e02f0c442 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -4,12 +4,13 @@ import javax.annotation.Nullable;
@ -1164,7 +1176,7 @@ index 6958a2e0f..b3d3df4cf 100644
private static final RegistryMaterials<MinecraftKey, Class<? extends TileEntity>> f = new RegistryMaterials();
protected World world;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 758962e67..a87b37277 100644
index a366b2d70..eafb76003 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -18,11 +18,11 @@ import com.google.common.collect.Maps;
@ -1180,7 +1192,7 @@ index 758962e67..a87b37277 100644
import org.bukkit.event.block.BlockCanBuildEvent;
import org.bukkit.event.block.BlockPhysicsEvent;
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
@@ -127,7 +127,7 @@ public abstract class World implements IBlockAccess {
@@ -129,7 +129,7 @@ public abstract class World implements IBlockAccess {
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
@ -1189,7 +1201,7 @@ index 758962e67..a87b37277 100644
private boolean guardEntityList; // Spigot
public static boolean haveWeSilencedAPhysicsCrash;
public static String blockLocation;
@@ -197,7 +197,7 @@ public abstract class World implements IBlockAccess {
@@ -199,7 +199,7 @@ public abstract class World implements IBlockAccess {
});
this.getServer().addWorld(this.world);
// CraftBukkit end
@ -1198,7 +1210,7 @@ index 758962e67..a87b37277 100644
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@@ -1381,6 +1381,7 @@ public abstract class World implements IBlockAccess {
@@ -1383,6 +1383,7 @@ public abstract class World implements IBlockAccess {
}
this.methodProfiler.c("remove");
@ -1206,7 +1218,7 @@ index 758962e67..a87b37277 100644
this.entityList.removeAll(this.f);
int j;
@@ -1401,6 +1402,7 @@ public abstract class World implements IBlockAccess {
@@ -1403,6 +1404,7 @@ public abstract class World implements IBlockAccess {
this.f.clear();
this.l();
@ -1214,7 +1226,7 @@ index 758962e67..a87b37277 100644
this.methodProfiler.c("regular");
CrashReportSystemDetails crashreportsystemdetails1;
@@ -1410,6 +1412,7 @@ public abstract class World implements IBlockAccess {
@@ -1412,6 +1414,7 @@ public abstract class World implements IBlockAccess {
timings.entityTick.startTiming(); // Spigot
guardEntityList = true; // Spigot
// CraftBukkit start - Use field for loop variable
@ -1222,7 +1234,7 @@ index 758962e67..a87b37277 100644
int entitiesThisCycle = 0;
if (tickPosition < 0) tickPosition = 0;
for (entityLimiter.initTick();
@@ -1431,10 +1434,11 @@ public abstract class World implements IBlockAccess {
@@ -1433,10 +1436,11 @@ public abstract class World implements IBlockAccess {
this.methodProfiler.a("tick");
if (!entity.dead && !(entity instanceof EntityPlayer)) {
try {
@ -1236,7 +1248,7 @@ index 758962e67..a87b37277 100644
crashreport1 = CrashReport.a(throwable1, "Ticking entity");
crashreportsystemdetails1 = crashreport1.a("Entity being ticked");
entity.appendEntityCrashDetails(crashreportsystemdetails1);
@@ -1567,6 +1571,7 @@ public abstract class World implements IBlockAccess {
@@ -1569,6 +1573,7 @@ public abstract class World implements IBlockAccess {
}
timings.tileEntityPending.stopTiming(); // Spigot
@ -1244,7 +1256,7 @@ index 758962e67..a87b37277 100644
this.methodProfiler.b();
this.methodProfiler.b();
}
@@ -1619,7 +1624,6 @@ public abstract class World implements IBlockAccess {
@@ -1621,7 +1626,6 @@ public abstract class World implements IBlockAccess {
entity.ticksLived++;
entity.inactiveTick();
} else {
@ -1252,15 +1264,15 @@ index 758962e67..a87b37277 100644
// CraftBukkit end
entity.M = entity.locX;
entity.N = entity.locY;
@@ -1628,6 +1632,7 @@ public abstract class World implements IBlockAccess {
@@ -1630,6 +1634,7 @@ public abstract class World implements IBlockAccess {
entity.lastPitch = entity.pitch;
if (flag && entity.aa) {
++entity.ticksLived;
+ ++co.aikar.timings.TimingHistory.activatedEntityTicks; // Paper
if (entity.isPassenger()) {
entity.aw();
entity.leaveVehicle();
} else {
@@ -1687,8 +1692,6 @@ public abstract class World implements IBlockAccess {
@@ -1689,8 +1694,6 @@ public abstract class World implements IBlockAccess {
}
}
}
@ -1270,10 +1282,10 @@ index 758962e67..a87b37277 100644
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 391a09c52..966938997 100644
index c48a16682..6856aac64 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -247,13 +247,13 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -256,13 +256,13 @@ public class WorldServer extends World implements IAsyncTaskHandler {
timings.doChunkUnload.stopTiming(); // Spigot
this.methodProfiler.c("tickPending");
@ -1291,7 +1303,7 @@ index 391a09c52..966938997 100644
this.methodProfiler.c("chunkMap");
timings.doChunkMap.startTiming(); // Spigot
this.manager.flush();
@@ -469,7 +469,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -478,7 +478,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
}
@ -1300,7 +1312,7 @@ index 391a09c52..966938997 100644
if (i > 0) {
ChunkSection[] achunksection = chunk.getSections();
int i1 = achunksection.length;
@@ -497,6 +497,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -506,6 +506,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
}
}
@ -1308,7 +1320,7 @@ index 391a09c52..966938997 100644
}
this.methodProfiler.b();
@@ -692,6 +693,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -691,6 +692,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
this.methodProfiler.a("cleaning");
@ -1316,19 +1328,20 @@ index 391a09c52..966938997 100644
NextTickListEntry nextticklistentry;
for (int j = 0; j < i; ++j) {
@@ -705,9 +707,11 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -704,10 +706,12 @@ public class WorldServer extends World implements IAsyncTaskHandler {
// this.nextTickListHash.remove(nextticklistentry);
this.U.add(nextticklistentry);
this.W.add(nextticklistentry);
}
+ timings.scheduledBlocksCleanup.stopTiming(); // Paper
this.methodProfiler.b();
this.methodProfiler.a("ticking");
Iterator iterator = this.W.iterator();
+ timings.scheduledBlocksTicking.startTiming(); // Paper
Iterator iterator = this.U.iterator();
while (iterator.hasNext()) {
@@ -717,6 +721,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
nextticklistentry = (NextTickListEntry) iterator.next();
@@ -716,6 +720,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
if (this.areChunksLoadedBetween(nextticklistentry.a.a(0, 0, 0), nextticklistentry.a.a(0, 0, 0))) {
IBlockData iblockdata = this.getType(nextticklistentry.a);
@ -1337,7 +1350,7 @@ index 391a09c52..966938997 100644
if (iblockdata.getMaterial() != Material.AIR && Block.a(iblockdata.getBlock(), nextticklistentry.a())) {
try {
@@ -729,10 +735,12 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -728,10 +734,12 @@ public class WorldServer extends World implements IAsyncTaskHandler {
throw new ReportedException(crashreport);
}
}
@ -1349,8 +1362,8 @@ index 391a09c52..966938997 100644
+ timings.scheduledBlocksTicking.stopTiming(); // Paper
this.methodProfiler.b();
this.U.clear();
@@ -828,7 +836,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
this.W.clear();
@@ -827,7 +835,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
gen = new org.bukkit.craftbukkit.generator.NormalChunkGenerator(this, this.getSeed());
}
@ -1359,7 +1372,7 @@ index 391a09c52..966938997 100644
// CraftBukkit end
}
@@ -993,6 +1001,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -992,6 +1000,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
if (chunkproviderserver.e()) {
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit
@ -1367,7 +1380,7 @@ index 391a09c52..966938997 100644
if (iprogressupdate != null) {
iprogressupdate.a("Saving level");
}
@@ -1002,7 +1011,9 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1001,7 +1010,9 @@ public class WorldServer extends World implements IAsyncTaskHandler {
iprogressupdate.c("Saving chunks");
}
@ -1377,7 +1390,7 @@ index 391a09c52..966938997 100644
// CraftBukkit - ArrayList -> Collection
Collection arraylist = chunkproviderserver.a();
Iterator iterator = arraylist.iterator();
@@ -1014,7 +1025,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1013,7 +1024,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
chunkproviderserver.unload(chunk);
}
}
@ -1386,7 +1399,7 @@ index 391a09c52..966938997 100644
}
}
@@ -1027,6 +1038,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1026,6 +1037,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
protected void a() throws ExceptionWorldConflict {
@ -1394,7 +1407,7 @@ index 391a09c52..966938997 100644
this.checkSession();
WorldServer[] aworldserver = this.server.worldServer;
int i = aworldserver.length;
@@ -1056,6 +1068,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -1055,6 +1067,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
this.worldData.e(this.getWorldBorder().i());
this.dataManager.saveWorldData(this.worldData, this.server.getPlayerList().t());
this.worldMaps.a();
@ -1403,10 +1416,10 @@ index 391a09c52..966938997 100644
// CraftBukkit start
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 587d23dfd..d27e2ce98 100644
index 440b23cf5..42d3dd542 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1741,6 +1741,7 @@ public final class CraftServer implements Server {
@@ -1727,6 +1727,7 @@ public final class CraftServer implements Server {
private final Spigot spigot = new Spigot()
{
@ -1414,7 +1427,7 @@ index 587d23dfd..d27e2ce98 100644
@Override
public YamlConfiguration getConfig()
{
@@ -1748,6 +1749,24 @@ public final class CraftServer implements Server {
@@ -1734,6 +1735,24 @@ public final class CraftServer implements Server {
}
@Override
@ -1441,10 +1454,10 @@ index 587d23dfd..d27e2ce98 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java b/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
deleted file mode 100644
index 41d2d87ee..000000000
index 311a2c3f6..000000000
--- a/src/main/java/org/bukkit/craftbukkit/SpigotTimings.java
+++ /dev/null
@@ -1,173 +0,0 @@
@@ -1,174 +0,0 @@
-package org.bukkit.craftbukkit;
-
-import com.google.common.collect.Maps;
@ -1462,6 +1475,7 @@ index 41d2d87ee..000000000
-
- public static final CustomTimingsHandler serverTickTimer = new CustomTimingsHandler("** Full Server Tick");
- public static final CustomTimingsHandler playerListTimer = new CustomTimingsHandler("Player List");
- public static final CustomTimingsHandler commandFunctionsTimer = new CustomTimingsHandler("Command Functions");
- public static final CustomTimingsHandler connectionTimer = new CustomTimingsHandler("Connection Handler");
- public static final CustomTimingsHandler tickablesTimer = new CustomTimingsHandler("Tickables");
- public static final CustomTimingsHandler schedulerTimer = new CustomTimingsHandler("Scheduler");
@ -1663,10 +1677,10 @@ index 3a95b4465..b5efb9c3f 100644
public void callStage3(QueuedChunk queuedChunk, Chunk chunk, Runnable runnable) throws RuntimeException {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0c8295435..f4d71683a 100644
index e6dcddc64..433aafb33 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -39,15 +39,9 @@ import org.bukkit.configuration.serialization.DelegateDeserialization;
@@ -39,7 +39,7 @@ import org.bukkit.configuration.serialization.DelegateDeserialization;
import org.bukkit.conversations.Conversation;
import org.bukkit.conversations.ConversationAbandonedEvent;
import org.bukkit.conversations.ManuallyAbandonedConversationCanceller;
@ -1674,16 +1688,8 @@ index 0c8295435..f4d71683a 100644
+import org.bukkit.craftbukkit.*;
import org.bukkit.craftbukkit.block.CraftSign;
import org.bukkit.craftbukkit.conversations.ConversationTracker;
-import org.bukkit.craftbukkit.CraftEffect;
-import org.bukkit.craftbukkit.CraftOfflinePlayer;
-import org.bukkit.craftbukkit.CraftServer;
-import org.bukkit.craftbukkit.CraftSound;
-import org.bukkit.craftbukkit.CraftStatistic;
-import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.map.CraftMapView;
import org.bukkit.craftbukkit.map.RenderData;
import org.bukkit.craftbukkit.scoreboard.CraftScoreboard;
@@ -1595,6 +1589,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
import org.bukkit.craftbukkit.CraftEffect;
@@ -1587,6 +1587,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
packet.components = components;
getHandle().playerConnection.sendPacket(packet);
}
@ -1867,7 +1873,7 @@ index e52ef47b7..3d90b3426 100644
this.value = value;
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index c32d44df0..5c2fb0058 100644
index be23631b2..9eb36f3e9 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -29,7 +29,7 @@ import net.minecraft.server.EntityWither;
@ -1929,5 +1935,5 @@ index c32d44df0..5c2fb0058 100644
}
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From ffac25bb34932ef90c85baca9c77303e9ccf3702 Mon Sep 17 00:00:00 2001
From fbea6e7aa23f4b7e63d3ad5671c1bc18a1e4189d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 12:45:11 -0600
Subject: [PATCH] Configurable squid spawn ranges
@ -22,18 +22,18 @@ index 621bf7051..f24839378 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index 549e3434b..bc0652874 100644
index 20b71b455..ee8e50706 100644
--- a/src/main/java/net/minecraft/server/EntitySquid.java
+++ b/src/main/java/net/minecraft/server/EntitySquid.java
@@ -141,7 +141,7 @@ public class EntitySquid extends EntityWaterAnimal {
}
public boolean cM() {
- return this.locY > 45.0D && this.locY < (double) this.world.K() && super.cM();
+ return this.locY > world.paperConfig.squidMinSpawnHeight && this.locY < world.paperConfig.squidMaxSpawnHeight && super.cM(); // Paper - Configurable squid spawn height range
public boolean P() {
- return this.locY > 45.0D && this.locY < (double) this.world.getSeaLevel() && super.P();
+ return this.locY > world.paperConfig.squidMinSpawnHeight && this.locY < world.paperConfig.squidMaxSpawnHeight && super.P(); // Paper - Configurable squid spawn height range
}
public void b(float f, float f1, float f2) {
--
2.12.0.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From 4f7e02a3e570583d2510848d700901e72de644c8 Mon Sep 17 00:00:00 2001
From 729eb0ea88be715b9a00822f01f963c86361ecd0 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 13:09:16 -0600
Subject: [PATCH] Configurable baby zombie movement speed
@ -20,7 +20,7 @@ index 6228bc1f6..fe9e7b342 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 497d5593c..897882c97 100644
index 36afc8f07..bf059a746 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -16,7 +16,7 @@ public class EntityZombie extends EntityMonster {
@ -29,9 +29,9 @@ index 497d5593c..897882c97 100644
private static final UUID b = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836");
- private static final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", 0.5D, 1);
+ private final AttributeModifier c = new AttributeModifier(EntityZombie.b, "Baby speed boost", world.paperConfig.babyZombieMovementSpeed, 1); // Paper - Remove static - Make baby speed configurable
private static final DataWatcherObject<Boolean> bw = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h);
private static final DataWatcherObject<Integer> bx = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
private static final DataWatcherObject<Boolean> by = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h);
private static final DataWatcherObject<Boolean> bx = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h);
private static final DataWatcherObject<Integer> by = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
private static final DataWatcherObject<Boolean> bz = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.h);
@@ -102,9 +102,9 @@ public class EntityZombie extends EntityMonster {
if (this.world != null && !this.world.isClientSide) {
AttributeInstance attributeinstance = this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED);
@ -45,5 +45,5 @@ index 497d5593c..897882c97 100644
}
--
2.12.0.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From 6601ad2f54c73981b4fe6198097e131cb22f75e4 Mon Sep 17 00:00:00 2001
From a2b70ad6f16f9f9ed468870ddc0e36ad7200ed59 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 13:24:16 -0600
Subject: [PATCH] Allow nerfed mobs to jump
@ -31,18 +31,18 @@ index 4f2fa59ac..8af52a61f 100644
this.b.l(this.a);
this.a = false;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 48ff4c811..c23bd2e9b 100644
index 254955156..09e5408ac 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -44,6 +44,7 @@ public abstract class EntityInsentient extends EntityLiving {
private boolean bD;
private boolean bE;
private Entity leashHolder;
private NBTTagCompound bF;
private NBTTagCompound bG;
+ public PathfinderGoalFloat goalFloat; // Paper
public EntityInsentient(World world) {
super(world);
@@ -645,6 +646,12 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -641,6 +642,12 @@ public abstract class EntityInsentient extends EntityLiving {
// Spigot Start
if ( this.fromMobSpawner )
{
@ -56,21 +56,24 @@ index 48ff4c811..c23bd2e9b 100644
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
index e3b405856..2d27aa63a 100644
index b3b303b3b..fc8be86fd 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
@@ -6,14 +6,17 @@ public class PathfinderGoalFloat extends PathfinderGoal {
@@ -6,6 +6,7 @@ public class PathfinderGoalFloat extends PathfinderGoal {
public PathfinderGoalFloat(EntityInsentient entityinsentient) {
this.a = entityinsentient;
+ if (entityinsentient.fromMobSpawner && entityinsentient.getWorld().paperConfig.nerfedMobsShouldJump) entityinsentient.goalFloat = this; // Paper
this.a(4);
((Navigation) entityinsentient.getNavigation()).c(true);
if (entityinsentient.getNavigation() instanceof Navigation) {
((Navigation) entityinsentient.getNavigation()).c(true);
@@ -15,10 +16,12 @@ public class PathfinderGoalFloat extends PathfinderGoal {
}
+ public boolean validConditions() { return this.a(); } // Paper - OBFHELPER
public boolean a() {
return this.a.isInWater() || this.a.ao();
return this.a.isInWater() || this.a.au();
}
+ public void update() { this.e(); } // Paper - OBFHELPER
@ -78,5 +81,5 @@ index e3b405856..2d27aa63a 100644
if (this.a.getRandom().nextFloat() < 0.8F) {
this.a.getControllerJump().a();
--
2.12.1.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From 71ef92829982f9b99e1b96d8e903a5064341ff03 Mon Sep 17 00:00:00 2001
From 10fdbe916be252c01a51a6b68695eaa90e5619f1 Mon Sep 17 00:00:00 2001
From: Suddenly <suddenly@suddenly.coffee>
Date: Tue, 1 Mar 2016 13:51:54 -0600
Subject: [PATCH] Add configurable despawn distances for living entities
@ -30,10 +30,10 @@ index 5f13fbff3..4b64ccaa0 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index c23bd2e9b..a9e3b632b 100644
index 09e5408ac..be3422adc 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -624,13 +624,13 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -620,13 +620,13 @@ public abstract class EntityInsentient extends EntityLiving {
double d2 = entityhuman.locZ - this.locZ;
double d3 = d0 * d0 + d1 * d1 + d2 * d2;
@ -51,5 +51,5 @@ index c23bd2e9b..a9e3b632b 100644
}
}
--
2.12.1.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From 93cedb6f2ccf3c12457a4f0662bfc01ba6aacdfb Mon Sep 17 00:00:00 2001
From 63f3013587dc1e8a42ed59e62d6b6bb5225a91dc Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 3 Mar 2016 03:53:43 -0600
Subject: [PATCH] Allow for toggling of spawn chunks
@ -20,10 +20,10 @@ index 4b64ccaa0..7ac6a5f1f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a87b37277..edd6c3b5e 100644
index eafb76003..1ff2263eb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -198,6 +198,7 @@ public abstract class World implements IBlockAccess {
@@ -200,6 +200,7 @@ public abstract class World implements IBlockAccess {
this.getServer().addWorld(this.world);
// CraftBukkit end
timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
@ -32,5 +32,5 @@ index a87b37277..edd6c3b5e 100644
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
--
2.12.0.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From c626ab09022ba5bd9efab830624989ecffdcc36a Mon Sep 17 00:00:00 2001
From 289d49cb724c7f24f635dfb88410a2b490a80629 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 1 Mar 2016 14:14:15 -0600
Subject: [PATCH] Drop falling block and tnt entities at the specified height
@ -23,11 +23,23 @@ index 7ac6a5f1f..8cdeb34d4 100644
+ if (entityTNTHeightNerf != 0) log("TNT Entity Height Limit set to Y: " + entityTNTHeightNerf);
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index c6b7d6c22..bbbd1689e 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1745,6 +1745,7 @@ public abstract class Entity implements ICommandListener {
return this.a(new ItemStack(item, i, 0), f);
}
+ @Nullable public final EntityItem dropItem(ItemStack itemstack, float offset) { return this.a(itemstack, offset); } // Paper - OBFHELPER
@Nullable
public EntityItem a(ItemStack itemstack, float f) {
if (itemstack.isEmpty()) {
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index 5c5038402..4c168d333 100644
index 3c7488965..0fd29b17e 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -80,6 +80,16 @@ public class EntityFallingBlock extends Entity {
@@ -84,6 +84,17 @@ public class EntityFallingBlock extends Entity {
}
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
@ -35,20 +47,21 @@ index 5c5038402..4c168d333 100644
+ // Paper start - Configurable EntityFallingBlock height nerf
+ if (this.world.paperConfig.fallingBlockHeightNerf != 0 && this.locY > this.world.paperConfig.fallingBlockHeightNerf) {
+ if (this.dropItem && this.world.getGameRules().getBoolean("doEntityDrops")) {
+ this.a(new ItemStack(block, 1, block.getDropData(this.block)), 0.0F);
+ this.dropItem(new ItemStack(block, 1, block.getDropData(this.block)), 0.0F);
+ }
+
+ this.die();
+ }
+ // Paper end
this.motX *= 0.9800000190734863D;
this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D;
+
if (!this.world.isClientSide) {
blockposition = new BlockPosition(this);
boolean flag = this.block.getBlock() == Blocks.dS;
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 0fbdbd69b..fd0735611 100644
index 44b2d4735..0d70dd1d2 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -56,6 +56,13 @@ public class EntityTNTPrimed extends Entity {
@@ -57,6 +57,13 @@ public class EntityTNTPrimed extends Entity {
}
this.move(EnumMoveType.SELF, this.motX, this.motY, this.motZ);
@ -63,5 +76,5 @@ index 0fbdbd69b..fd0735611 100644
this.motY *= 0.9800000190734863D;
this.motZ *= 0.9800000190734863D;
--
2.12.0.windows.1
2.13.0

View File

@ -1,4 +1,4 @@
From 8936094d98b21ebe52e725f7c1ac99e196a8822a Mon Sep 17 00:00:00 2001
From 2648079c107410003372409a96c7ef61f035b661 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 14:32:43 -0600
Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
@ -6,7 +6,7 @@ Subject: [PATCH] Show 'Paper' in client crashes, server lists, and Mojang
diff --git a/src/main/java/net/minecraft/server/EULA.java b/src/main/java/net/minecraft/server/EULA.java
index a8b507961..ebbc1fcaf 100644
index 8361888c2..3623751bf 100644
--- a/src/main/java/net/minecraft/server/EULA.java
+++ b/src/main/java/net/minecraft/server/EULA.java
@@ -51,7 +51,8 @@ public class EULA {
@ -17,13 +17,13 @@ index a8b507961..ebbc1fcaf 100644
+ properties.store(fileoutputstream, "By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula)." +
+ "\nand also agreeing that tacos are tasty."); // Paper - fix lag
} catch (Exception exception) {
EULA.a.warn("Failed to save {}", new Object[] { this.b, exception});
EULA.a.warn("Failed to save {}", this.b, exception);
} finally {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 8f7b148a1..7539bb215 100644
index e847f3f1a..577a1b92a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1042,7 +1042,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -1046,7 +1046,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
}
public String getServerModName() {
@ -33,10 +33,10 @@ index 8f7b148a1..7539bb215 100644
public CrashReport b(CrashReport crashreport) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 38ce05828..24fd62b53 100644
index 42d3dd542..a06b7f325 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -135,7 +135,7 @@ import net.md_5.bungee.api.chat.BaseComponent;
@@ -134,7 +134,7 @@ import net.md_5.bungee.api.chat.BaseComponent;
public final class CraftServer implements Server {
private static final Player[] EMPTY_PLAYER_ARRAY = new Player[0];
@ -80,5 +80,5 @@ index 94a3d4237..3ed983cc0 100644
log.log( Level.SEVERE, "------------------------------" );
//
--
2.12.0.windows.1
2.13.0

View File

@ -1,15 +1,15 @@
From 3cba9d06727dbd8332e08f22fa33572434be2c51 Mon Sep 17 00:00:00 2001
From 6ca60e1e0afcb2035f962b12d6079ca9a3347d28 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Tue, 1 Mar 2016 14:47:52 -0600
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
index ec8f581ad..43e28d61c 100644
index fc3d05394..b4507fe0c 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -63,6 +63,7 @@ public abstract class EntityHuman extends EntityLiving {
private final ItemCooldown bV;
@@ -65,6 +65,7 @@ public abstract class EntityHuman extends EntityLiving {
private final ItemCooldown bX;
@Nullable
public EntityFishingHook hookedFish;
+ public boolean affectsSpawning = true;
@ -17,10 +17,10 @@ index ec8f581ad..43e28d61c 100644
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index a9e3b632b..1d26555d3 100644
index be3422adc..2802cc062 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -618,7 +618,7 @@ public abstract class EntityInsentient extends EntityLiving {
@@ -614,7 +614,7 @@ public abstract class EntityInsentient extends EntityLiving {
} else {
EntityHuman entityhuman = this.world.findNearbyPlayer(this, -1.0D);
@ -30,12 +30,12 @@ index a9e3b632b..1d26555d3 100644
double d1 = entityhuman.locY - this.locY;
double d2 = entityhuman.locZ - this.locZ;
diff --git a/src/main/java/net/minecraft/server/EntitySilverfish.java b/src/main/java/net/minecraft/server/EntitySilverfish.java
index 5af51cc0a..7531c9ba9 100644
index dcc251e31..d8344ddc9 100644
--- a/src/main/java/net/minecraft/server/EntitySilverfish.java
+++ b/src/main/java/net/minecraft/server/EntitySilverfish.java
@@ -99,8 +99,7 @@ public class EntitySilverfish extends EntityMonster {
public boolean cM() {
if (super.cM()) {
public boolean P() {
if (super.P()) {
EntityHuman entityhuman = this.world.b(this, 5.0D);
-
- return entityhuman == null;
@ -44,7 +44,7 @@ index 5af51cc0a..7531c9ba9 100644
return false;
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index b23c0be2a..e42a0c776 100644
index 4c65dc0a9..c56a8e9c2 100644
--- a/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 {
@ -57,10 +57,10 @@ index b23c0be2a..e42a0c776 100644
j = MathHelper.floor(entityhuman.locZ / 16.0D);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index edd6c3b5e..751fc01d1 100644
index 1ff2263eb..b87273aca 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2722,7 +2722,7 @@ public abstract class World implements IBlockAccess {
@@ -2724,7 +2724,7 @@ public abstract class World implements IBlockAccess {
for (int i = 0; i < this.players.size(); ++i) {
EntityHuman entityhuman = (EntityHuman) this.players.get(i);
@ -70,14 +70,13 @@ index edd6c3b5e..751fc01d1 100644
if (d3 < 0.0D || d4 < d3 * d3) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index b56ae7a36..6509df573 100644
index 433aafb33..c5924a2be 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1458,6 +1458,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1456,6 +1456,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return new CraftAdvancementProgress(craft, data, progress);
}
+ @Override
+ public void setAffectsSpawning(boolean affects) {
+ this.getHandle().affectsSpawning = affects;
+ }
@ -91,5 +90,5 @@ index b56ae7a36..6509df573 100644
private final Player.Spigot spigot = new Player.Spigot()
{
--
2.12.1.windows.1
2.13.0

View File

@ -1,11 +1,11 @@
From 25724130e87f1b906d5143058d200b6d04b59e18 Mon Sep 17 00:00:00 2001
From ca3dd164ec111c629ea4e92778c786d2d9a61ba2 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 22:01:19 -0600
Subject: [PATCH] Optimize TileEntity Ticking
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
index 28a514a64..60452e83b 100644
index af8c2cfa8..3cf80495e 100644
--- a/src/main/java/net/minecraft/server/TileEntityChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java
@@ -8,17 +8,17 @@ import org.bukkit.craftbukkit.entity.CraftHumanEntity;
@ -36,7 +36,7 @@ index 28a514a64..60452e83b 100644
@@ -190,6 +190,8 @@ public class TileEntityChest extends TileEntityLootable implements ITickable {
}
public void F_() {
public void e() {
+ // Paper - Disable all of this, just in case this does get ticked
+ /*
this.o();
@ -74,7 +74,7 @@ index 28a514a64..60452e83b 100644
+ d1 += 0.5D;
+ }
+
+ this.world.a((EntityHuman) null, d1, (double) this.position.getY() + 0.5D, d0, SoundEffects.Z, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.world.a((EntityHuman) null, d1, (double) this.position.getY() + 0.5D, d0, SoundEffects.ac, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ }
+ // Paper end
+
@ -108,7 +108,7 @@ index 28a514a64..60452e83b 100644
+ d0 += 0.5D;
+ }
+
+ this.world.a((EntityHuman) null, d0, (double) yLoc + 0.5D, d2, SoundEffects.X, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.world.a((EntityHuman) null, d0, (double) yLoc + 0.5D, d2, SoundEffects.aa, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.j = 0.0F;
+ }
+ // Paper end
@ -117,7 +117,7 @@ index 28a514a64..60452e83b 100644
this.world.applyPhysics(this.position, this.getBlock(), false);
diff --git a/src/main/java/net/minecraft/server/TileEntityEnderChest.java b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
index 3d61c2d68..586ceaa67 100644
index 31585757b..1c1741c56 100644
--- a/src/main/java/net/minecraft/server/TileEntityEnderChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityEnderChest.java
@@ -1,15 +1,17 @@
@ -135,7 +135,7 @@ index 3d61c2d68..586ceaa67 100644
public TileEntityEnderChest() {}
public void F_() {
public void e() {
+ // Paper start - Disable all of this, just in case this does get ticked
+ /*
if (++this.h % 20 * 4 == 0) {
@ -162,14 +162,14 @@ index 3d61c2d68..586ceaa67 100644
+ double d1 = (double) this.getPosition().getX() + 0.5D;
+ double d0 = (double) this.getPosition().getZ() + 0.5D;
+
+ this.world.a((EntityHuman) null, d1, (double) this.getPosition().getY() + 0.5D, d0, SoundEffects.aQ, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.world.a((EntityHuman) null, d1, (double) this.getPosition().getY() + 0.5D, d0, SoundEffects.aT, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ }
+ // Paper end
+
this.world.playBlockAction(this.position, Blocks.ENDER_CHEST, 1, this.g);
}
public void e() {
public void f() {
--this.g;
+
+ // Paper start - Move enderchest close sounds out of the tick loop
@ -177,7 +177,7 @@ index 3d61c2d68..586ceaa67 100644
+ double d0 = (double) this.getPosition().getX() + 0.5D;
+ double d2 = (double) this.getPosition().getZ() + 0.5D;
+
+ this.world.a((EntityHuman) null, d0, (double) this.getPosition().getY() + 0.5D, d2, SoundEffects.aP, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.world.a((EntityHuman) null, d0, (double) this.getPosition().getY() + 0.5D, d2, SoundEffects.aS, SoundCategory.BLOCKS, 0.5F, this.world.random.nextFloat() * 0.1F + 0.9F);
+ this.a = 0.0F;
+ }
+ // Paper end
@ -186,5 +186,5 @@ index 3d61c2d68..586ceaa67 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From dff249a4a075a2bab36f65251537d6b8882e0768 Mon Sep 17 00:00:00 2001
From 46d88a1e4205ca1ee13725c24884d9ad9bf6b600 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:09:29 -0600
Subject: [PATCH] Further improve server tick loop
@ -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
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d9e4f1a9f..c4497aaa6 100644
index 577a1b92a..995542ab9 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -113,16 +113,12 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -113,16 +113,12 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
public org.bukkit.command.ConsoleCommandSender console;
public org.bukkit.command.RemoteConsoleCommandSender remoteConsole;
public ConsoleReader reader;
@ -33,7 +33,7 @@ index d9e4f1a9f..c4497aaa6 100644
public final SlackActivityAccountant slackActivityAccountant = new SlackActivityAccountant();
// Spigot end
@@ -533,12 +529,54 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -533,12 +529,54 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
this.isRunning = false;
}
@ -93,7 +93,7 @@ index d9e4f1a9f..c4497aaa6 100644
public void run() {
try {
@@ -552,24 +590,41 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -552,24 +590,41 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
// Spigot start
Arrays.fill( recentTps, 20 );
@ -147,10 +147,10 @@ index d9e4f1a9f..c4497aaa6 100644
}
lastTick = curTime;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index db4ac484f..0f77d0674 100644
index a06b7f325..e5dcd4094 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1738,6 +1738,17 @@ public final class CraftServer implements Server {
@@ -1724,6 +1724,17 @@ public final class CraftServer implements Server {
return CraftMagicNumbers.INSTANCE;
}
@ -210,5 +210,5 @@ index be2e31dea..6d21c3269 100644
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 );
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From a876defc63064db6b4c54a0af7cc133dd2479aec Mon Sep 17 00:00:00 2001
From a84b405e20bf60222b6a5f9608c84a3918686512 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 23:12:03 -0600
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
index 6509df573..87ac74420 100644
index c5924a2be..94cca69a4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1174,12 +1174,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1161,12 +1161,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void setFlying(boolean value) {
@ -24,5 +24,5 @@ index 6509df573..87ac74420 100644
@Override
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 1f83e96b7750ff012aa3510df4eba6f2f25efde8 Mon Sep 17 00:00:00 2001
From c1ba97de870d45dada1e69a8d76ba8e4e0c12429 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Tue, 1 Mar 2016 23:45:08 -0600
Subject: [PATCH] Entity Origin API
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 14d23556f..313100aed 100644
index bbbd1689e..3dff98596 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -147,6 +147,7 @@ public abstract class Entity implements ICommandListener {
@@ -148,6 +148,7 @@ public abstract class Entity implements ICommandListener {
public org.bukkit.projectiles.ProjectileSource projectileSource; // CraftBukkit - For projectiles only
public boolean forceExplosionKnockback; // CraftBukkit - SPIGOT-949
public Timing tickTimer = MinecraftTimings.getEntityTimings(this); // Paper
@ -16,7 +16,7 @@ index 14d23556f..313100aed 100644
// Spigot start
public final byte activationType = org.spigotmc.ActivationRange.initializeEntityActivationType(this);
public final boolean defaultActivationState;
@@ -1513,6 +1514,11 @@ public abstract class Entity implements ICommandListener {
@@ -1539,6 +1540,11 @@ public abstract class Entity implements ICommandListener {
}
}
@ -28,21 +28,21 @@ index 14d23556f..313100aed 100644
return nbttagcompound;
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.a(throwable, "Saving entity NBT");
@@ -1657,6 +1663,13 @@ public abstract class Entity implements ICommandListener {
@@ -1683,6 +1689,13 @@ public abstract class Entity implements ICommandListener {
}
// CraftBukkit end
+ // Paper start - Restore the entity's origin location
+ NBTTagList originTag = nbttagcompound.getList("Paper.Origin", 6);
+ if (!originTag.isEmpty()) {
+ origin = new Location(world.getWorld(), originTag.e(0), originTag.e(1), originTag.e(2));
+ origin = new Location(world.getWorld(), originTag.getDoubleAt(0), originTag.getDoubleAt(1), originTag.getDoubleAt(2));
+ }
+ // Paper end
+
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.a(throwable, "Loading entity NBT");
CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Entity being loaded");
@@ -1681,6 +1694,7 @@ public abstract class Entity implements ICommandListener {
@@ -1707,6 +1720,7 @@ public abstract class Entity implements ICommandListener {
protected abstract void b(NBTTagCompound nbttagcompound);
@ -51,10 +51,10 @@ index 14d23556f..313100aed 100644
NBTTagList nbttaglist = new NBTTagList();
double[] adouble1 = adouble;
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index 4c168d333..307a44c85 100644
index 0fd29b17e..18e7cf2ad 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -247,6 +247,14 @@ public class EntityFallingBlock extends Entity {
@@ -267,6 +267,14 @@ public class EntityFallingBlock extends Entity {
this.block = Blocks.SAND.getBlockData();
}
@ -70,10 +70,10 @@ index 4c168d333..307a44c85 100644
public void a(boolean flag) {
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index fd0735611..25e471d37 100644
index 0d70dd1d2..bb0904f86 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -108,6 +108,14 @@ public class EntityTNTPrimed extends Entity {
@@ -109,6 +109,14 @@ public class EntityTNTPrimed extends Entity {
protected void a(NBTTagCompound nbttagcompound) {
this.setFuseTicks(nbttagcompound.getShort("Fuse"));
@ -88,11 +88,23 @@ index fd0735611..25e471d37 100644
}
@Nullable
diff --git a/src/main/java/net/minecraft/server/NBTTagList.java b/src/main/java/net/minecraft/server/NBTTagList.java
index bc6383669..ca9eb2f3b 100644
--- a/src/main/java/net/minecraft/server/NBTTagList.java
+++ b/src/main/java/net/minecraft/server/NBTTagList.java
@@ -153,6 +153,7 @@ public class NBTTagList extends NBTBase {
return new int[0];
}
+ public final double getDoubleAt(int i) { return this.f(i); } // Paper - OBFHELPER
public double f(int i) {
if (i >= 0 && i < this.list.size()) {
NBTBase nbtbase = (NBTBase) this.list.get(i);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 751fc01d1..39919ab1c 100644
index b87273aca..c6cf7754b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1021,6 +1021,12 @@ public abstract class World implements IBlockAccess {
@@ -1023,6 +1023,12 @@ public abstract class World implements IBlockAccess {
int j = MathHelper.floor(entity.locZ / 16.0D);
boolean flag = entity.attachedToPlayer;
@ -106,10 +118,10 @@ index 751fc01d1..39919ab1c 100644
flag = true;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index b3cd6ec17..6497905b9 100644
index a7fb58a9e..9cb05e067 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -711,4 +711,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -728,4 +728,12 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return spigot;
}
// Spigot end
@ -155,5 +167,5 @@ index c493c9c0c..93843aa50 100644
+ // Paper end
}
--
2.12.2
2.13.0

View File

@ -1,11 +1,11 @@
From d19627bd77a6f4f3b3360d3ba224224b206344ce Mon Sep 17 00:00:00 2001
From 7ba47ec34e529b95814c1ffe95d06319411647bc Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:52:34 -0600
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
index b3d3df4cf..d0c0371fc 100644
index e02f0c442..39be107fd 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -175,7 +175,12 @@ public abstract class TileEntity {
@ -23,10 +23,10 @@ index b3d3df4cf..d0c0371fc 100644
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
index 39919ab1c..632d5c760 100644
index c6cf7754b..b1addedeb 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1446,10 +1446,12 @@ public abstract class World implements IBlockAccess {
@@ -1448,10 +1448,12 @@ public abstract class World implements IBlockAccess {
entity.tickTimer.stopTiming(); // Paper
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
@ -43,8 +43,8 @@ index 39919ab1c..632d5c760 100644
}
}
@@ -1512,10 +1514,13 @@ public abstract class World implements IBlockAccess {
((ITickable) tileentity).F_();
@@ -1514,10 +1516,13 @@ public abstract class World implements IBlockAccess {
((ITickable) tileentity).e();
this.methodProfiler.b();
} catch (Throwable throwable2) {
- crashreport1 = CrashReport.a(throwable2, "Ticking block entity");
@ -62,5 +62,5 @@ index 39919ab1c..632d5c760 100644
// Spigot start
finally {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 52e6992f765e671f1ed612870e81947d646aca17 Mon Sep 17 00:00:00 2001
From 145fbb067892a319be146f8d65e5b89de7f1abb2 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 1 Mar 2016 23:58:50 -0600
Subject: [PATCH] Configurable top of nether void damage
@ -20,10 +20,10 @@ index 62e6830aa..e524a464f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 313100aed..7feed2995 100644
index 3dff98596..e712ab370 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -442,9 +442,15 @@ public abstract class Entity implements ICommandListener {
@@ -444,9 +444,15 @@ public abstract class Entity implements ICommandListener {
this.fallDistance *= 0.5F;
}
@ -31,7 +31,7 @@ index 313100aed..7feed2995 100644
+ // Extracted to own function
+ /*
if (this.locY < -64.0D) {
this.Y();
this.ac();
}
+ */
+ this.checkAndDoHeightDamage();
@ -39,7 +39,7 @@ index 313100aed..7feed2995 100644
if (!this.world.isClientSide) {
this.setFlag(0, this.fireTicks > 0);
@@ -454,6 +460,18 @@ public abstract class Entity implements ICommandListener {
@@ -456,6 +462,18 @@ public abstract class Entity implements ICommandListener {
this.world.methodProfiler.b();
}
@ -55,19 +55,19 @@ index 313100aed..7feed2995 100644
+ }
+ // Paper end
+
protected void H() {
protected void I() {
if (this.portalCooldown > 0) {
--this.portalCooldown;
@@ -510,6 +528,7 @@ public abstract class Entity implements ICommandListener {
@@ -512,6 +530,7 @@ public abstract class Entity implements ICommandListener {
this.fireTicks = 0;
}
+ protected final void kill() { this.Y(); } // Paper - OBFHELPER
protected void Y() {
+ protected final void kill() { this.ac(); } // Paper - OBFHELPER
protected void ac() {
this.die();
}
diff --git a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
index fd3337d3f..ca1faa41d 100644
index f4ad25dae..4b1c7ad99 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartAbstract.java
@@ -204,9 +204,15 @@ public abstract class EntityMinecartAbstract extends Entity implements INamableT
@ -78,7 +78,7 @@ index fd3337d3f..ca1faa41d 100644
+ // Extracted to own function
+ /*
if (this.locY < -64.0D) {
this.Y();
this.ac();
}
+ */
+ this.checkAndDoHeightDamage();
@ -87,5 +87,5 @@ index fd3337d3f..ca1faa41d 100644
int i;
--
2.12.2
2.13.0

View File

@ -1,15 +1,15 @@
From 3119d5d5e0f90c64083736d6665a65950b605149 Mon Sep 17 00:00:00 2001
From 1370c5a99e145e2ec03f3b39b3d3498b36184a4f Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 2 Mar 2016 00:03:55 -0600
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
index caec56824..30b54a50e 100644
index ba124665f..7eaa8d511 100644
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
@@ -167,7 +167,7 @@ public class WorldNBTStorage implements IDataManager, IPlayerFileData {
File file = new File(this.playerDir, entityhuman.bf() + ".dat");
File file = new File(this.playerDir, entityhuman.bl() + ".dat");
// Spigot Start
boolean usingWrongFile = false;
- if ( !file.exists() )
@ -18,5 +18,5 @@ index caec56824..30b54a50e 100644
file = new File( this.playerDir, UUID.nameUUIDFromBytes( ( "OfflinePlayer:" + entityhuman.getName() ).getBytes( "UTF-8" ) ).toString() + ".dat");
if ( file.exists() )
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From ddc58c0259cad56358f0e79c327658a407436af5 Mon Sep 17 00:00:00 2001
From aeebe23ba3a84e1939ee2919198c8ee307b63ce6 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 00:52:31 -0600
Subject: [PATCH] Lighting Queue
@ -42,7 +42,7 @@ index e524a464f..fd606ee14 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 1c0108ef1..b80f95159 100644
index e55aa73e9..972654790 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -33,6 +33,7 @@ public class Chunk {
@ -85,7 +85,7 @@ index 1c0108ef1..b80f95159 100644
TileEntity tileentity;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 3ba489d4f..f7f2d12cf 100644
index c1b0d6cea..ba720204d 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -295,6 +295,7 @@ public class ChunkProviderServer implements IChunkProvider {
@ -97,10 +97,10 @@ index 3ba489d4f..f7f2d12cf 100644
// Update neighbor counts
for (int x = -2; x < 3; x++) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c4497aaa6..ca0ff4d30 100644
index 995542ab9..43ec2d9dc 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -721,7 +721,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -721,7 +721,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
protected void C() throws ExceptionWorldConflict { // CraftBukkit - added throws
co.aikar.timings.TimingsManager.FULL_SERVER_TICK.startTiming(); // Paper
this.slackActivityAccountant.tickStarted(); // Spigot
@ -109,7 +109,7 @@ index c4497aaa6..ca0ff4d30 100644
++this.ticks;
if (this.T) {
@@ -782,6 +782,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -782,6 +782,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
this.methodProfiler.b();
org.spigotmc.WatchdogThread.tick(); // Spigot
@ -225,10 +225,10 @@ index 000000000..d8d3e1efd
+ }
+}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 632d5c760..e6e85e7a8 100644
index b1addedeb..5d039f049 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -387,7 +387,7 @@ public abstract class World implements IBlockAccess {
@@ -389,7 +389,7 @@ public abstract class World implements IBlockAccess {
} else {
if (iblockdata.c() != iblockdata1.c() || iblockdata.d() != iblockdata1.d()) {
this.methodProfiler.a("checkLight");
@ -238,5 +238,5 @@ index 632d5c760..e6e85e7a8 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From c5e40e9bfa3083bdbf6c1eb91991e96b585320f5 Mon Sep 17 00:00:00 2001
From 3044d2ae539fbe4d31af51351181e00ac6aed4ba Mon Sep 17 00:00:00 2001
From: DoctorDark <doctordark11@gmail.com>
Date: Wed, 16 Mar 2016 02:21:39 -0500
Subject: [PATCH] Configurable end credits
@ -20,37 +20,26 @@ index fd606ee14..c00fa83d5 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index f7edd9aa1..dbc5cf632 100644
index 3ef2ffd2d..586c4ad0d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -516,6 +516,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
return this.world.pvpMode;
}
+
+ // Paper start - Give "theEnd2" achievement if the player doesn't already have it
+ private void giveTheEnd2() {
+ if (!this.a(AchievementList.D)) {
+ this.b(AchievementList.D);
+ }
+ }
+ // Paper end
+
@Nullable
public Entity c(int i) {
if (this.isSleeping()) return this; // CraftBukkit - SPIGOT-3154
@@ -525,7 +534,10 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -56,7 +56,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
private long co = System.currentTimeMillis();
private Entity cp;
public boolean worldChangeInvuln;
- private boolean cr;
+ private boolean cr; private void setHasSeenCredits(boolean has) { this.cr = has; } // Paper - OBFHELPER
private final RecipeBookServer cs = new RecipeBookServer();
private Vec3D ct;
private int cu;
@@ -603,6 +603,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.world.kill(this);
if (!this.viewingCredits) {
this.viewingCredits = true;
- if (this.a(AchievementList.D)) {
+ // Paper start - Allow configurable end portal credits
+ if (world.paperConfig.disableEndCredits || this.a(AchievementList.D)) {
+ this.giveTheEnd2();
+ // Paper end
this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(4, 0.0F));
} else {
this.b((Statistic) AchievementList.D);
+ if (world.paperConfig.disableEndCredits) this.setHasSeenCredits(true); // Paper - Toggle to always disable end credits
this.playerConnection.sendPacket(new PacketPlayOutGameStateChange(4, this.cr ? 0.0F : 1.0F));
this.cr = true;
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 886b8af6b9e07e9214c61bf0ba100e8d4c5a0ac3 Mon Sep 17 00:00:00 2001
From 73b4d3a44527decb181748068a02c35cf587593d Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 02:17:54 -0600
Subject: [PATCH] Generator Settings
@ -38,10 +38,10 @@ index c00fa83d5..3b19b53a8 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
index 62a338e95..d3f1dceb6 100644
index 1b7599769..ab6db7468 100644
--- a/src/main/java/net/minecraft/server/BiomeBase.java
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
@@ -179,7 +179,7 @@ public abstract class BiomeBase {
@@ -176,7 +176,7 @@ public abstract class BiomeBase {
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition();
for (int l1 = 255; l1 >= 0; --l1) {
@ -51,7 +51,7 @@ index 62a338e95..d3f1dceb6 100644
} else {
IBlockData iblockdata2 = chunksnapshot.a(k1, l1, j1);
diff --git a/src/main/java/net/minecraft/server/BiomeMesa.java b/src/main/java/net/minecraft/server/BiomeMesa.java
index 3d0a60b93..121419302 100644
index f2dd96a32..0541403f0 100644
--- a/src/main/java/net/minecraft/server/BiomeMesa.java
+++ b/src/main/java/net/minecraft/server/BiomeMesa.java
@@ -99,7 +99,7 @@ public class BiomeMesa extends BiomeBase {
@ -61,10 +61,10 @@ index 3d0a60b93..121419302 100644
- if (i2 <= random.nextInt(5)) {
+ if (i2 <= (world.paperConfig.generateFlatBedrock ? 0 : random.nextInt(5))) { // Paper - Configurable flat bedrock
chunksnapshot.a(l, i2, k, BiomeMesa.c);
} else if (l1 < 15 || this.J) {
} else if (l1 < 15 || this.I) {
IBlockData iblockdata2 = chunksnapshot.a(l, i2, k);
diff --git a/src/main/java/net/minecraft/server/ChunkProviderFlat.java b/src/main/java/net/minecraft/server/ChunkProviderFlat.java
index d958a6654..f8a9f499f 100644
index 1452ff657..8b1b79380 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderFlat.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderFlat.java
@@ -26,7 +26,7 @@ public class ChunkProviderFlat implements ChunkGenerator {
@ -110,7 +110,7 @@ index d958a6654..f8a9f499f 100644
int k = 0;
boolean flag1 = true;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
index 7ba6b9add..776ebd653 100644
index 22a24a39f..ee9e00e64 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderGenerate.java
@@ -160,32 +160,32 @@ public class ChunkProviderGenerate implements ChunkGenerator {
@ -191,7 +191,7 @@ index 7ba6b9add..776ebd653 100644
for (k1 = 0; k1 < this.s.t; ++k1) {
l1 = this.i.nextInt(16) + 8;
i2 = this.i.nextInt(256);
@@ -439,23 +439,23 @@ public class ChunkProviderGenerate implements ChunkGenerator {
@@ -443,23 +443,23 @@ public class ChunkProviderGenerate implements ChunkGenerator {
public void recreateStructures(Chunk chunk, int i, int j) {
if (this.o) {
@ -221,7 +221,7 @@ index 7ba6b9add..776ebd653 100644
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderHell.java b/src/main/java/net/minecraft/server/ChunkProviderHell.java
index f9519d7e1..ca64ae067 100644
index 9f738749f..12bc10ff0 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderHell.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderHell.java
@@ -151,7 +151,10 @@ public class ChunkProviderHell implements ChunkGenerator {
@ -236,7 +236,7 @@ index f9519d7e1..ca64ae067 100644
IBlockData iblockdata2 = chunksnapshot.a(i1, l1, l);
if (iblockdata2.getBlock() != null && iblockdata2.getMaterial() != Material.AIR) {
@@ -380,6 +383,6 @@ public class ChunkProviderHell implements ChunkGenerator {
@@ -384,6 +387,6 @@ public class ChunkProviderHell implements ChunkGenerator {
}
public void recreateStructures(Chunk chunk, int i, int j) {
@ -245,18 +245,10 @@ index f9519d7e1..ca64ae067 100644
}
}
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index fb350c408..9c1605b14 100644
index 2580a4cf6..078957aac 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -96,6 +96,7 @@ public abstract class StructureGenerator extends WorldGenBase {
}
public boolean b(BlockPosition blockposition) {
+ if (this.g == null) return false; // Paper
this.a(this.g);
return this.c(blockposition) != null;
}
@@ -124,6 +125,7 @@ public abstract class StructureGenerator extends WorldGenBase {
@@ -128,6 +128,7 @@ public abstract class StructureGenerator extends WorldGenBase {
}
public boolean a(World world, BlockPosition blockposition) {
@ -265,5 +257,5 @@ index fb350c408..9c1605b14 100644
ObjectIterator objectiterator = this.c.values().iterator();
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 000f618c3793428ef5abd2cb979e9241f44fcc5a Mon Sep 17 00:00:00 2001
From c0220cd1bc53c8ddbdc7a4574dcef456037ce806 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 11:59:48 -0600
Subject: [PATCH] Optimize explosions
@ -25,7 +25,7 @@ index 3b19b53a8..a7dfd2af7 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
index 4e05bcdfa..49fc95e35 100644
index bb5345a1a..63b70d60c 100644
--- a/src/main/java/net/minecraft/server/Explosion.java
+++ b/src/main/java/net/minecraft/server/Explosion.java
@@ -130,7 +130,7 @@ public class Explosion {
@ -124,10 +124,10 @@ index 4e05bcdfa..49fc95e35 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index ca0ff4d30..e7c63a953 100644
index 43ec2d9dc..ecdb92397 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -886,6 +886,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -886,6 +886,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
worldserver.getTracker().updatePlayers();
this.methodProfiler.b();
this.methodProfiler.b();
@ -136,7 +136,7 @@ index ca0ff4d30..e7c63a953 100644
// this.i[i][this.ticks % 100] = System.nanoTime() - j; // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e6e85e7a8..5f7590e11 100644
index 5d039f049..dfd6c8a3d 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -15,6 +15,7 @@ import javax.annotation.Nullable;
@ -147,7 +147,7 @@ index e6e85e7a8..5f7590e11 100644
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockState;
@@ -134,6 +135,7 @@ public abstract class World implements IBlockAccess {
@@ -136,6 +137,7 @@ public abstract class World implements IBlockAccess {
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
@ -156,5 +156,5 @@ index e6e85e7a8..5f7590e11 100644
public CraftWorld getWorld() {
return this.world;
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 5ef6465bc8b487a3f06e10963e579fde91f5251d Mon Sep 17 00:00:00 2001
From a3a19d58d3ed3baa6550ad32073c2478eba08ef7 Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 14:35:27 -0600
Subject: [PATCH] Add player view distance API
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 79c9601fa..1ed1859b8 100644
index 586c4ad0d..1a5e5d944 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -59,6 +59,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -66,6 +66,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
public boolean f;
public int ping;
public boolean viewingCredits;
@ -25,7 +25,7 @@ index 79c9601fa..1ed1859b8 100644
// CraftBukkit start
public String displayName;
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 021dfba14..9012a63a0 100644
index e4ed2e991..cfac05750 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -47,7 +47,7 @@ public class PlayerChunkMap {
@ -194,10 +194,10 @@ index 021dfba14..9012a63a0 100644
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 87ac74420..16dcaba3f 100644
index 94cca69a4..efcf383e7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1469,6 +1469,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1466,6 +1466,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return this.getHandle().affectsSpawning;
}
@ -215,5 +215,5 @@ index 87ac74420..16dcaba3f 100644
private final Player.Spigot spigot = new Player.Spigot()
{
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 91cdc4554cebe5d6b7ae636e7768ce5fe8365855 Mon Sep 17 00:00:00 2001
From 7197a213cc0ee3f96c122d16a7f3c9fc46cc75d6 Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Wed, 2 Mar 2016 14:48:03 -0600
Subject: [PATCH] Disable explosion knockback
@ -19,10 +19,10 @@ index a197af84f..2217f680c 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index b22f81b12..e5fa1c3ba 100644
index c9bf14d77..64876f134 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -893,12 +893,14 @@ public abstract class EntityLiving extends Entity {
@@ -900,6 +900,7 @@ public abstract class EntityLiving extends Entity {
}
}
@ -30,24 +30,25 @@ index b22f81b12..e5fa1c3ba 100644
if (flag1) {
if (flag) {
this.world.broadcastEntityEffect(this, (byte) 29);
} else if (damagesource instanceof EntityDamageSource && ((EntityDamageSource) damagesource).x()) {
this.world.broadcastEntityEffect(this, (byte) 33);
} else {
@@ -916,6 +917,7 @@ public abstract class EntityLiving extends Entity {
b0 = 2;
}
+ if (!knockbackCancelled) // Paper - Disable explosion knockback
this.world.broadcastEntityEffect(this, (byte) 2);
this.world.broadcastEntityEffect(this, b0);
}
@@ -922,6 +924,8 @@ public abstract class EntityLiving extends Entity {
@@ -939,6 +941,8 @@ public abstract class EntityLiving extends Entity {
}
}
+ if (knockbackCancelled) this.world.broadcastEntityEffect(this, (byte) 2); // Paper - Disable explosion knockback
+
if (this.getHealth() <= 0.0F) {
if (!this.d(damagesource)) {
SoundEffect soundeffect = this.bX();
if (!this.e(damagesource)) {
SoundEffect soundeffect = this.cd();
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
index 49fc95e35..d7bc6a0ed 100644
index 63b70d60c..0d434544d 100644
--- a/src/main/java/net/minecraft/server/Explosion.java
+++ b/src/main/java/net/minecraft/server/Explosion.java
@@ -146,7 +146,7 @@ public class Explosion {
@ -69,5 +70,5 @@ index 49fc95e35..d7bc6a0ed 100644
}
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 05106693177445d76ea1325231181bd3404e6da1 Mon Sep 17 00:00:00 2001
From 27c8181330a79124a88ca63d871b0cc6dbb5569e Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Wed, 2 Mar 2016 14:52:43 -0600
Subject: [PATCH] Disable thunder
@ -19,10 +19,10 @@ index 2217f680c..a40d4887c 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 966938997..ce087eb7d 100644
index 6856aac64..1432c6c85 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -428,7 +428,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -437,7 +437,8 @@ public class WorldServer extends World implements IAsyncTaskHandler {
int l;
BlockPosition blockposition;
@ -33,5 +33,5 @@ index 966938997..ce087eb7d 100644
l = this.l >> 2;
blockposition = this.a(new BlockPosition(j + (l & 15), 0, k + (l >> 8 & 15)));
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 84e563f38e936dd47f7390190f080b89f445b76f Mon Sep 17 00:00:00 2001
From ddfcd21f06dee67cad8b9a3e5357b45188b26b6d Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Wed, 2 Mar 2016 14:57:24 -0600
Subject: [PATCH] Disable ice and snow
@ -19,10 +19,10 @@ index a40d4887c..4fea4b359 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index ce087eb7d..ac8dc5f2f 100644
index 1432c6c85..04eb5ad9a 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -451,7 +451,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -460,7 +460,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
}
this.methodProfiler.c("iceandsnow");
@ -32,5 +32,5 @@ index ce087eb7d..ac8dc5f2f 100644
l = this.l >> 2;
blockposition = this.p(new BlockPosition(j + (l & 15), 0, k + (l >> 8 & 15)));
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 154ee18ea861801364d933168a27c5fcda6d6459 Mon Sep 17 00:00:00 2001
From 9f3c6605d96924c379901e55a92da9afe5aa0fbf Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Wed, 2 Mar 2016 23:34:44 -0600
Subject: [PATCH] Configurable container update tick rate
@ -19,10 +19,10 @@ index 1bb956515..e6aae7317 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index b830f833f..bf3e46c35 100644
index 1a5e5d944..42f6b7206 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -68,6 +68,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -75,6 +75,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.viewDistance = viewDistance;
}
// Paper end
@ -30,7 +30,7 @@ index b830f833f..bf3e46c35 100644
// CraftBukkit start
public String displayName;
@@ -231,7 +232,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -266,7 +267,12 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
--this.noDamageTicks;
}
@ -45,5 +45,5 @@ index b830f833f..bf3e46c35 100644
this.closeInventory();
this.activeContainer = this.defaultContainer;
--
2.12.2.windows.2
2.13.0

View File

@ -1,14 +1,14 @@
From bf5743f31df9d1cd46c219f13808a0063a09e6b0 Mon Sep 17 00:00:00 2001
From 6a671d7b63704d31fbe9e8516894678c7d38d63c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 2 Mar 2016 23:45:17 -0600
Subject: [PATCH] Disable spigot tick limiters
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 5f7590e11..a1cdcd71b 100644
index dfd6c8a3d..4b49d1976 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1423,10 +1423,10 @@ public abstract class World implements IBlockAccess {
@@ -1425,10 +1425,10 @@ public abstract class World implements IBlockAccess {
// CraftBukkit start - Use field for loop variable
co.aikar.timings.TimingHistory.entityTicks += this.entityList.size(); // Paper
int entitiesThisCycle = 0;
@ -23,7 +23,7 @@ index 5f7590e11..a1cdcd71b 100644
tickPosition = (tickPosition < entityList.size()) ? tickPosition : 0;
entity = (Entity) this.entityList.get(this.tickPosition);
// CraftBukkit end
@@ -1492,9 +1492,7 @@ public abstract class World implements IBlockAccess {
@@ -1494,9 +1494,7 @@ public abstract class World implements IBlockAccess {
// Spigot start
// Iterator iterator = this.tileEntityListTick.iterator();
int tilesThisCycle = 0;
@ -35,5 +35,5 @@ index 5f7590e11..a1cdcd71b 100644
TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition);
// Spigot start
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 5f5ff59c74f2094741e3cf0f5c615d34d2231005 Mon Sep 17 00:00:00 2001
From 15eda5f02abe75614df683675329df4080bf6394 Mon Sep 17 00:00:00 2001
From: Steve Anton <anxuiz.nx@gmail.com>
Date: Thu, 3 Mar 2016 00:09:38 -0600
Subject: [PATCH] Add PlayerInitialSpawnEvent
@ -6,10 +6,10 @@ Subject: [PATCH] Add PlayerInitialSpawnEvent
For modifying a player's initial spawn location as they join the server
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 80bf61164..59c7e78b8 100644
index 4aaf287ae..7c73e08c3 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -104,6 +104,21 @@ public abstract class PlayerList {
@@ -106,6 +106,21 @@ public abstract class PlayerList {
}
// CraftBukkit end
@ -32,5 +32,5 @@ index 80bf61164..59c7e78b8 100644
entityplayer.playerInteractManager.a((WorldServer) entityplayer.world);
String s1 = "local";
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From c121bda3726ac920a54e7d3462c86cc16e114a8c Mon Sep 17 00:00:00 2001
From 9fc404dab5a61059531f51be43e3ea0a7811a554 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 01:17:12 -0600
Subject: [PATCH] Ensure commands are not ran async
@ -14,10 +14,10 @@ big slowdown in execution but throwing an exception at same time to raise awaren
that it is happening so that plugin authors can fix their code to stop executing commands async.
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 27283efad..57879c76d 100644
index 63ea04fb4..65ab76cc5 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1268,6 +1268,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1279,6 +1279,29 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
}
if (!async && s.startsWith("/")) {
@ -48,10 +48,10 @@ index 27283efad..57879c76d 100644
} else if (this.player.getChatFlags() == EntityHuman.EnumChatVisibility.SYSTEM) {
// Do nothing, this is coming from a plugin
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0f77d0674..5302bb283 100644
index e5dcd4094..374956d5e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -647,6 +647,29 @@ public final class CraftServer implements Server {
@@ -639,6 +639,29 @@ public final class CraftServer implements Server {
Validate.notNull(sender, "Sender cannot be null");
Validate.notNull(commandLine, "CommandLine cannot be null");
@ -82,5 +82,5 @@ index 0f77d0674..5302bb283 100644
return true;
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 6b81f8f28de16733bff9a2d833a2397f6af7fe9e Mon Sep 17 00:00:00 2001
From 95af696519a3738b8dd148142fecc34108d3ef7b Mon Sep 17 00:00:00 2001
From: vemacs <d@nkmem.es>
Date: Thu, 3 Mar 2016 01:19:22 -0600
Subject: [PATCH] All chunks are slime spawn chunks toggle
@ -19,19 +19,20 @@ index 6ce62827a..ab7e81a0d 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
index 8fb14d6b5..c68429fb1 100644
index 24aac10da..31cf1df5d 100644
--- a/src/main/java/net/minecraft/server/EntitySlime.java
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
@@ -252,7 +252,8 @@ public class EntitySlime extends EntityInsentient implements IMonster {
return super.cM();
@@ -251,8 +251,8 @@ public class EntitySlime extends EntityInsentient implements IMonster {
if (biomebase == Biomes.h && this.locY > 50.0D && this.locY < 70.0D && this.random.nextFloat() < 0.5F && this.random.nextFloat() < this.world.G() && this.world.getLightLevel(new BlockPosition(this)) <= this.random.nextInt(8)) {
return super.P();
}
-
- if (this.random.nextInt(10) == 0 && chunk.a(world.spigotConfig.slimeSeed).nextInt(10) == 0 && this.locY < 40.0D) { // Spigot
+ boolean isSlimeChunk = world.paperConfig.allChunksAreSlimeChunks || chunk.a(world.spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot // Paper
+ if (this.random.nextInt(10) == 0 && isSlimeChunk && this.locY < 40.0D) { // Paper
return super.cM();
return super.P();
}
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 3cca34b5a315231f82eaf848a700b684e4263560 Mon Sep 17 00:00:00 2001
From 185916cee82574977ec5fd0b7a038cdcfb3c5317 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 02:02:07 -0600
Subject: [PATCH] Optimize Pathfinding
@ -7,7 +7,7 @@ Prevents pathfinding from spamming failures for things such as
arrow attacks.
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 4f28b8819..43b2be505 100644
index 26319d9b7..3e598afd4 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -118,10 +118,26 @@ public abstract class NavigationAbstract {
@ -38,14 +38,14 @@ index 4f28b8819..43b2be505 100644
public boolean a(@Nullable PathEntity pathentity, double d0) {
if (pathentity == null) {
@@ -255,6 +271,7 @@ public abstract class NavigationAbstract {
@@ -256,6 +272,7 @@ public abstract class NavigationAbstract {
}
public void o() {
public void p() {
+ this.pathfindFailures = 0; this.lastFailure = 0; // Paper - Pathfinding optimizations
this.c = null;
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,14 +1,14 @@
From bf934f8ce2b8aed42e8412904cf5bd84f5163e3d Mon Sep 17 00:00:00 2001
From f8e285f87b4297e3d5db10f6192c59c69b44b9cd Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Thu, 3 Mar 2016 02:15:57 -0600
Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5302bb283..cab671d68 100644
index 374956d5e..01b1ef39f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1567,6 +1567,7 @@ public final class CraftServer implements Server {
@@ -1545,6 +1545,7 @@ public final class CraftServer implements Server {
return helpMap;
}
@ -17,5 +17,5 @@ index 5302bb283..cab671d68 100644
return commandMap;
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 1de05f6089976c4332bb594dfcae72d598747e42 Mon Sep 17 00:00:00 2001
From cbcc5dfe43b8a0f3e379ef3deb74d1fe79713850 Mon Sep 17 00:00:00 2001
From: Techcable <Techcable@outlook.com>
Date: Thu, 3 Mar 2016 02:32:10 -0600
Subject: [PATCH] Player Tab List and Title APIs
@ -78,7 +78,7 @@ index 7bcafa8bb..4f6c1c2e7 100644
if (this.a == PacketPlayOutTitle.EnumTitleAction.TIMES) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index c86a48070..0df01186f 100644
index efcf383e7..b1c06388b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1,5 +1,6 @@
@ -88,7 +88,7 @@ index c86a48070..0df01186f 100644
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableSet;
import com.google.common.io.BaseEncoding;
@@ -158,6 +159,85 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -166,6 +167,85 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
@ -175,5 +175,5 @@ index c86a48070..0df01186f 100644
public String getDisplayName() {
return getHandle().displayName;
--
2.12.2.windows.2
2.13.0

View File

@ -1,17 +1,17 @@
From 19528dbbeee2a72cb791ff414a47e84fd9e30efb Mon Sep 17 00:00:00 2001
From be4684520ec4356ba4564281649d047f21d8e4a3 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:39:54 -0600
Subject: [PATCH] Change implementation of (tile)entity removal list
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 7feed2995..5b5e0e73c 100644
index e712ab370..e9a7565ae 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -121,10 +121,10 @@ public abstract class Entity implements ICommandListener {
private static final DataWatcherObject<Boolean> aB = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
@@ -122,10 +122,10 @@ public abstract class Entity implements ICommandListener {
private static final DataWatcherObject<Boolean> aC = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
private static final DataWatcherObject<Boolean> aD = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
private static final DataWatcherObject<Boolean> aE = DataWatcher.a(Entity.class, DataWatcherRegistry.h);
- public boolean aa;
- public int ab;
- public int ac;
@ -24,7 +24,7 @@ index 7feed2995..5b5e0e73c 100644
public boolean impulse;
public int portalCooldown;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a1cdcd71b..354a7309b 100644
index 4b49d1976..b7f502ecd 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -30,6 +30,11 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
@ -53,7 +53,7 @@ index a1cdcd71b..354a7309b 100644
public final List<EntityHuman> players = Lists.newArrayList();
public final List<Entity> j = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
@@ -1394,20 +1399,20 @@ public abstract class World implements IBlockAccess {
@@ -1396,20 +1401,20 @@ public abstract class World implements IBlockAccess {
this.entityList.removeAll(this.f);
int j;
@ -84,5 +84,5 @@ index a1cdcd71b..354a7309b 100644
this.f.clear();
this.l();
--
2.12.2.windows.2
2.13.0

View File

@ -1,14 +1,14 @@
From c310ea8c337901ad0bfa65949f78a0716a7fd0e0 Mon Sep 17 00:00:00 2001
From 3634e6fefd10b173ebb5bd2c4f66e21c42090fbb Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:48:12 -0600
Subject: [PATCH] Add velocity warnings
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cab671d68..28da39cbd 100644
index 01b1ef39f..0b7c02d36 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -173,6 +173,7 @@ public final class CraftServer implements Server {
@@ -172,6 +172,7 @@ public final class CraftServer implements Server {
private final UUID invalidUserUUID = UUID.nameUUIDFromBytes("InvalidUsername".getBytes(Charsets.UTF_8));
private final List<CraftPlayer> playerView;
public int reloadCount;
@ -17,10 +17,10 @@ index cab671d68..28da39cbd 100644
private final class BooleanWrapper {
private boolean value = true;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 6497905b9..463289199 100644
index 9cb05e067..917fa3d21 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -229,6 +229,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -237,6 +237,11 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
public void setVelocity(Vector vel) {
@ -58,5 +58,5 @@ index 3ed983cc0..6384d50e7 100644
log.log( Level.SEVERE, "Server thread dump (Look for plugins here before reporting to Paper!):" );
dumpThread( ManagementFactory.getThreadMXBean().getThreadInfo( MinecraftServer.getServer().primaryThread.getId(), Integer.MAX_VALUE ), log );
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From c91c1828836d0c7465029ed20177dcb79f267005 Mon Sep 17 00:00:00 2001
From 7c20e7de295ba750b809d3069615637e6d5d337c Mon Sep 17 00:00:00 2001
From: Sudzzy <originmc@outlook.com>
Date: Thu, 3 Mar 2016 02:50:31 -0600
Subject: [PATCH] Fix inter-world teleportation glitches
@ -25,10 +25,10 @@ index 4cc74cd65..fa49397ea 100644
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0df01186f..88fcadbfd 100644
index b1c06388b..cf753d362 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -579,7 +579,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -587,7 +587,8 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
if (fromWorld == toWorld) {
entity.playerConnection.teleport(to);
} else {
@ -39,5 +39,5 @@ index 0df01186f..88fcadbfd 100644
return true;
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From cbc43c201ce24ad2ba92a6720ec15fade9c971ef Mon Sep 17 00:00:00 2001
From f886b587c1e143d75dd7495dca68cde2e3175d1f Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event
@ -50,7 +50,7 @@ index 000000000..93397188b
+}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index e1fc4ea6c..8f1a68d67 100644
index 9c7b81a8b..491278646 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1,5 +1,6 @@
@ -89,7 +89,7 @@ index e1fc4ea6c..8f1a68d67 100644
}
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index fab36ec15..0ad57afba 100644
index ba720204d..9449b645d 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -12,6 +12,7 @@ import java.util.Iterator;
@ -144,17 +144,18 @@ index fab36ec15..0ad57afba 100644
}
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
index 016c64e82..2ff8a6da0 100644
index 83322b85b..b943a9b20 100644
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -1,5 +1,6 @@
@@ -1,5 +1,7 @@
package net.minecraft.server;
+import com.destroystokyo.paper.exception.ServerInternalException;
import com.google.common.base.Charsets;
+import com.google.common.base.Charsets;
import com.google.common.base.Predicate;
import com.google.common.collect.Iterators;
@@ -361,6 +362,7 @@ public class NameReferencingFileConverter {
import com.google.common.collect.Lists;
@@ -361,6 +363,7 @@ public class NameReferencingFileConverter {
root = NBTCompressedStreamTools.a(new java.io.FileInputStream(file1));
} catch (Exception exception) {
exception.printStackTrace();
@ -162,7 +163,7 @@ index 016c64e82..2ff8a6da0 100644
}
if (root != null) {
@@ -374,6 +376,7 @@ public class NameReferencingFileConverter {
@@ -374,6 +377,7 @@ public class NameReferencingFileConverter {
NBTCompressedStreamTools.a(root, new java.io.FileOutputStream(file2));
} catch (Exception exception) {
exception.printStackTrace();
@ -198,7 +199,7 @@ index 936d6c640..50056f49a 100644
}
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index 8d1b65885..5f9678aad 100644
index 1ba26de5c..6a92b5af8 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -1,5 +1,6 @@
@ -225,7 +226,7 @@ index 8d1b65885..5f9678aad 100644
}
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
index 6ec72689c..02b9bc8df 100644
index c15a0d1f8..5f9e9ddef 100644
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -1,5 +1,6 @@
@ -244,7 +245,7 @@ index 6ec72689c..02b9bc8df 100644
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index e42a0c776..c79fb7d57 100644
index c56a8e9c2..fdc439914 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -7,6 +7,7 @@ import java.util.Random;
@ -272,7 +273,7 @@ index e42a0c776..c79fb7d57 100644
}
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
index 7af5b7dd7..2b498024c 100644
index 9ff4f23ab..6fce3015f 100644
--- a/src/main/java/net/minecraft/server/VillageSiege.java
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
@@ -1,5 +1,7 @@
@ -292,7 +293,7 @@ index 7af5b7dd7..2b498024c 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 354a7309b..cc7369e52 100644
index b7f502ecd..1fc7ec6f4 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,7 @@
@ -301,9 +302,9 @@ index 354a7309b..cc7369e52 100644
+import com.destroystokyo.paper.event.server.ServerExceptionEvent;
+import com.destroystokyo.paper.exception.ServerInternalException;
import com.google.common.base.Function;
import com.google.common.base.Objects;
import com.google.common.base.MoreObjects;
import com.google.common.base.Predicate;
@@ -1454,8 +1456,10 @@ public abstract class World implements IBlockAccess {
@@ -1456,8 +1458,10 @@ public abstract class World implements IBlockAccess {
} catch (Throwable throwable1) {
entity.tickTimer.stopTiming();
// Paper start - Prevent tile entity and entity crashes
@ -315,7 +316,7 @@ index 354a7309b..cc7369e52 100644
entity.dead = true;
continue;
// Paper end
@@ -1520,8 +1524,10 @@ public abstract class World implements IBlockAccess {
@@ -1522,8 +1526,10 @@ public abstract class World implements IBlockAccess {
this.methodProfiler.b();
} catch (Throwable throwable2) {
// Paper start - Prevent tile entity and entity crashes
@ -372,5 +373,5 @@ index 9952b64be..e30cfb7b7 100644
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 60f5daf8819357295a0fe9cbf2c9e6eaed5832d3 Mon Sep 17 00:00:00 2001
From fe118acf4eb8ef1aa3a14ff4679bbec755960ec7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 8 Mar 2016 23:25:45 -0500
Subject: [PATCH] Disable Scoreboards for non players by default
@ -25,7 +25,7 @@ index fa49397ea..9987a5c7a 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/CommandScoreboard.java b/src/main/java/net/minecraft/server/CommandScoreboard.java
index 7af5d0aef..ab9aa132a 100644
index 06523f683..00a34e85a 100644
--- a/src/main/java/net/minecraft/server/CommandScoreboard.java
+++ b/src/main/java/net/minecraft/server/CommandScoreboard.java
@@ -492,6 +492,7 @@ public class CommandScoreboard extends CommandAbstract {
@ -33,21 +33,21 @@ index 7af5d0aef..ab9aa132a 100644
while (iterator.hasNext()) {
Entity entity = (Entity) iterator.next();
+ if (!entity.world.paperConfig.nonPlayerEntitiesOnScoreboards && !(entity instanceof EntityHuman)) { continue; } // Paper
String s2 = e(minecraftserver, icommandlistener, entity.bf());
String s2 = f(minecraftserver, icommandlistener, entity.bl());
if (scoreboard.addPlayerToTeam(s2, s)) {
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 5b5e0e73c..be54c807b 100644
index e9a7565ae..dbaf2863b 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2047,6 +2047,7 @@ public abstract class Entity implements ICommandListener {
@@ -2074,6 +2074,7 @@ public abstract class Entity implements ICommandListener {
@Nullable
public ScoreboardTeamBase aQ() {
public ScoreboardTeamBase aW() {
+ if (!this.world.paperConfig.nonPlayerEntitiesOnScoreboards && !(this instanceof EntityHuman)) { return null; } // Paper
return this.world.getScoreboard().getPlayerTeam(this.bf());
return this.world.getScoreboard().getPlayerTeam(this.bl());
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,28 +1,11 @@
From b8425c39d7e6296671d9ddc5862172ab9da70d57 Mon Sep 17 00:00:00 2001
From 6d78130c5cdd3c5e947ca2f4cd3c2c4bc9eff7c3 Mon Sep 17 00:00:00 2001
From: mrapple <tony@oc.tc>
Date: Sun, 25 Nov 2012 13:43:39 -0600
Subject: [PATCH] Add methods for working with arrows stuck in living entities
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index e5fa1c3ba..247224117 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1380,10 +1380,12 @@ public abstract class EntityLiving extends Entity {
return (float) this.getAttributeInstance(GenericAttributes.maxHealth).getValue();
}
+ public final int getStuckArrows() { return this.cc(); } // Paper - OBFHELPER
public final int cc() {
return ((Integer) this.datawatcher.get(EntityLiving.bq)).intValue();
}
+ public final void setStuckArrows(int arrows) { this.f(arrows); } // Paper - OBFHELPER
public final void f(int i) {
this.datawatcher.set(EntityLiving.bq, Integer.valueOf(i));
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index 61032eb2f..348a8c758 100644
index 062a0fd55..8ed91e82a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
@@ -572,4 +572,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
@ -33,15 +16,15 @@ index 61032eb2f..348a8c758 100644
+ // Paper start
+ @Override
+ public int getArrowsStuck() {
+ return this.getHandle().getStuckArrows();
+ return getHandle().getArrowCount();
+ }
+
+ @Override
+ public void setArrowsStuck(int arrows) {
+ this.getHandle().setStuckArrows(arrows);
+ getHandle().setArrowCount(arrows);
+ }
+ // Paper end
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,14 +1,14 @@
From 258b0dd3501ba87edaadf75dc2bd065a29753105 Mon Sep 17 00:00:00 2001
From 276acf46a94df17de9758755ef9aee7b7933c0e2 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sat, 4 Apr 2015 23:17:52 -0400
Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 57879c76d..b67837dd2 100644
index 65ab76cc5..1bc61ef43 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1029,7 +1029,12 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1040,7 +1040,12 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
// CraftBukkit start
public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) {
PlayerConnectionUtils.ensureMainThread(packetplayinresourcepackstatus, this, this.player.x());
@ -23,10 +23,10 @@ index 57879c76d..b67837dd2 100644
// CraftBukkit end
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 88fcadbfd..dd8380f71 100644
index cf753d362..5839801f5 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -74,6 +74,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -82,6 +82,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private double health = 20;
private boolean scaledHealth = false;
private double healthScale = 20;
@ -37,7 +37,7 @@ index 88fcadbfd..dd8380f71 100644
public CraftPlayer(CraftServer server, EntityPlayer entity) {
super(server, entity);
@@ -1560,6 +1564,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1557,6 +1561,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
((WorldServer) getHandle().world).getPlayerChunkMap().updateViewDistance(getHandle(), viewDistance);
}
@ -71,5 +71,5 @@ index 88fcadbfd..dd8380f71 100644
private final Player.Spigot spigot = new Player.Spigot()
{
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 6faebb0cebf9a14b2b752145de89394a16604e53 Mon Sep 17 00:00:00 2001
From 927dcc40693024aad07e9335f4f993d23d0f1e4e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 4 Mar 2016 18:18:37 -0600
Subject: [PATCH] Chunk save queue improvements
@ -41,12 +41,12 @@ index 9a6f87e59..873ffa77d 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index bee52d783..8e91be4a1 100644
index 6550686ee..17005d677 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -12,14 +12,17 @@ import java.util.Map;
@@ -12,14 +12,17 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import javax.annotation.Nullable;
+import java.util.concurrent.ConcurrentLinkedQueue; // Paper
import org.apache.logging.log4j.LogManager;
@ -57,9 +57,9 @@ index bee52d783..8e91be4a1 100644
+ private ConcurrentLinkedQueue<QueuedChunk> queue = new ConcurrentLinkedQueue<>(); // Paper - Chunk queue improvements
+ private final Object lock = new Object(); // Paper - Chunk queue improvements
private static final Logger a = LogManager.getLogger();
private final Map<ChunkCoordIntPair, NBTTagCompound> b = new ConcurrentHashMap();
- private final Set<ChunkCoordIntPair> c = Collections.newSetFromMap(new ConcurrentHashMap());
+ //private final Set<ChunkCoordIntPair> c = Collections.newSetFromMap(new ConcurrentHashMap()); // Paper - Chunk queue improvements
private final Map<ChunkCoordIntPair, NBTTagCompound> b = Maps.newConcurrentMap();
- private final Set<ChunkCoordIntPair> c = Collections.newSetFromMap(Maps.newConcurrentMap());
+ //private final Set<ChunkCoordIntPair> c = Collections.newSetFromMap(Maps.newConcurrentMap()); // Paper - Chunk queue improvements
private final File d;
private final DataConverterManager e;
private boolean f;
@ -76,7 +76,7 @@ index bee52d783..8e91be4a1 100644
FileIOThread.a().a(this);
}
public boolean c() {
public boolean a() {
- // CraftBukkit start
- Iterator<Map.Entry<ChunkCoordIntPair, NBTTagCompound>> iter = this.b.entrySet().iterator();
- if (!iter.hasNext()) {
@ -86,7 +86,7 @@ index bee52d783..8e91be4a1 100644
+ if (chunk == null) {
+ // Paper - end
if (this.f) {
ChunkRegionLoader.a.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", new Object[] { this.d.getName()});
ChunkRegionLoader.a.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", this.d.getName());
}
return false;
@ -139,7 +139,7 @@ index bee52d783..8e91be4a1 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/FileIOThread.java b/src/main/java/net/minecraft/server/FileIOThread.java
index acfdd52dc..fdbaf5fbd 100644
index 1d6b1874c..9ee4115be 100644
--- a/src/main/java/net/minecraft/server/FileIOThread.java
+++ b/src/main/java/net/minecraft/server/FileIOThread.java
@@ -39,11 +39,15 @@ public class FileIOThread implements Runnable {
@ -163,5 +163,5 @@ index acfdd52dc..fdbaf5fbd 100644
if (this.b.isEmpty()) {
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 0c3c5d0949ca3e6635a5935f5e9cb162b6e28fa7 Mon Sep 17 00:00:00 2001
From bd91198bc1c3e488aaa7eacedf84b180050fde59 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 13:17:38 -0400
Subject: [PATCH] Default loading permissions.yml before plugins
@ -30,10 +30,10 @@ index 873ffa77d..b5ff26c71 100644
+ }
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 28da39cbd..9df6c0ebb 100644
index 0b7c02d36..e1ae5f878 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -318,6 +318,7 @@ public final class CraftServer implements Server {
@@ -317,6 +317,7 @@ public final class CraftServer implements Server {
if (type == PluginLoadOrder.STARTUP) {
helpMap.clear();
helpMap.initializeGeneralTopics();
@ -41,7 +41,7 @@ index 28da39cbd..9df6c0ebb 100644
}
Plugin[] plugins = pluginManager.getPlugins();
@@ -335,7 +336,7 @@ public final class CraftServer implements Server {
@@ -334,7 +335,7 @@ public final class CraftServer implements Server {
setVanillaCommands(false);
// Spigot end
commandMap.registerServerAliases();
@ -51,5 +51,5 @@ index 28da39cbd..9df6c0ebb 100644
CraftDefaultPermissions.registerCorePermissions();
helpMap.initializeCommands();
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 1b592b3b573635540cf12d730926ede918b22e19 Mon Sep 17 00:00:00 2001
From 5c4d9a3b11c3a72967d23e94299074761a4fce81 Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com>
Date: Fri, 18 Mar 2016 03:30:17 -0400
Subject: [PATCH] Allow Reloading of Custom Permissions
@ -6,10 +6,10 @@ Subject: [PATCH] Allow Reloading of Custom Permissions
https://github.com/PaperMC/Paper/issues/49
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 9df6c0ebb..e77307c35 100644
index e1ae5f878..0dca774af 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1827,4 +1827,21 @@ public final class CraftServer implements Server {
@@ -1813,4 +1813,21 @@ public final class CraftServer implements Server {
{
return spigot;
}
@ -32,5 +32,5 @@ index 9df6c0ebb..e77307c35 100644
+ // Paper end
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 6ad5adc9ed459e196fc415dba3914509def9b240 Mon Sep 17 00:00:00 2001
From d4673f5e5b1a04e2bef7bcbf696030a11d663625 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 13:50:14 -0400
Subject: [PATCH] Remove Metadata on reload
@ -7,10 +7,10 @@ Metadata is not meant to persist reload as things break badly with non primitive
This will remove metadata on reload so it does not crash everything if a plugin uses it.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index e77307c35..4d761d32a 100644
index 0dca774af..fcc20d28e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -741,6 +741,14 @@ public final class CraftServer implements Server {
@@ -733,6 +733,14 @@ public final class CraftServer implements Server {
world.paperConfig.init(); // Paper
}
@ -26,5 +26,5 @@ index e77307c35..4d761d32a 100644
commandMap.clearCommands();
resetRecipes();
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 1e3c4136cd2e9eec214fb9b730c3a01e486d841c Mon Sep 17 00:00:00 2001
From 0b2c23e0f9ef9496c70ffc151913ad91f1fd1cfe Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 14:19:19 -0400
Subject: [PATCH] Undead horse leashing
@ -20,7 +20,7 @@ index 9987a5c7a..0873febb6 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
index d74ccd68d..3416c7a7d 100644
index bed01b8c0..a3c41130f 100644
--- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java
+++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java
@@ -115,7 +115,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven
@ -31,7 +31,7 @@ index d74ccd68d..3416c7a7d 100644
+ return world.paperConfig.allowLeashingUndeadHorse ? super.a(entityhuman) : super.a(entityhuman) && this.getMonsterType() != EnumMonsterType.UNDEAD; // Paper
}
protected void q(float f) {
protected void s(float f) {
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From 96ff410272199eb91bc1607e2b57ceaa9470b610 Mon Sep 17 00:00:00 2001
From 15898664587209c5044cc40622c9079734bbbb17 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 28 May 2015 23:00:19 -0400
Subject: [PATCH] Handle Item Meta Inconsistencies
@ -18,7 +18,7 @@ For consistency, the old API methods now forward to use the
ItemMeta API equivalents, and should deprecate the old API's.
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index a54bc7c42..81ec8f69e 100644
index 3f11e4279..ebb3e04bc 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -4,6 +4,7 @@ import static org.bukkit.craftbukkit.inventory.CraftMetaItem.ENCHANTMENTS;
@ -144,7 +144,7 @@ index a54bc7c42..81ec8f69e 100644
static Map<Enchantment, Integer> getEnchantments(net.minecraft.server.ItemStack item) {
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 9d0c05cd0..ab50ee92e 100644
index 2bf7e9f35..523c14df0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -6,13 +6,8 @@ import java.lang.annotation.RetentionPolicy;
@ -181,7 +181,7 @@ index 9d0c05cd0..ab50ee92e 100644
import java.util.logging.Level;
import java.util.logging.Logger;
import net.minecraft.server.NBTCompressedStreamTools;
@@ -225,7 +228,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -226,7 +229,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
private String displayName;
private String locName;
private List<String> lore;
@ -190,7 +190,7 @@ index 9d0c05cd0..ab50ee92e 100644
private int repairCost;
private int hideFlag;
private boolean unbreakable;
@@ -233,7 +236,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -234,7 +237,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
private static final Set<String> HANDLED_TAGS = Sets.newHashSet();
private NBTTagCompound internalTag;
@ -199,7 +199,7 @@ index 9d0c05cd0..ab50ee92e 100644
CraftMetaItem(CraftMetaItem meta) {
if (meta == null) {
@@ -248,7 +251,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -249,7 +252,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
if (meta.enchantments != null) { // Spigot
@ -208,7 +208,7 @@ index 9d0c05cd0..ab50ee92e 100644
}
this.repairCost = meta.repairCost;
@@ -469,13 +472,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -470,13 +473,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
}
@ -224,7 +224,7 @@ index 9d0c05cd0..ab50ee92e 100644
for (int i = 0; i < ench.size(); i++) {
int id = 0xffff & ((NBTTagCompound) ench.get(i)).getShort(ENCHANTMENTS_ID.NBT);
@@ -545,13 +548,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -546,13 +549,13 @@ class CraftMetaItem implements ItemMeta, Repairable {
void deserializeInternal(NBTTagCompound tag) {
}
@ -240,7 +240,7 @@ index 9d0c05cd0..ab50ee92e 100644
for (Map.Entry<?, ?> entry : ench.entrySet()) {
Enchantment enchantment = Enchantment.getByName(entry.getKey().toString());
@@ -695,12 +698,12 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -696,12 +699,12 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
public Map<Enchantment, Integer> getEnchants() {
@ -255,7 +255,7 @@ index 9d0c05cd0..ab50ee92e 100644
}
if (ignoreRestrictions || level >= ench.getStartLevel() && level <= ench.getMaxLevel()) {
@@ -870,7 +873,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -871,7 +874,7 @@ class CraftMetaItem implements ItemMeta, Repairable {
clone.lore = new ArrayList<String>(this.lore);
}
if (this.enchantments != null) {
@ -264,7 +264,7 @@ index 9d0c05cd0..ab50ee92e 100644
}
clone.hideFlag = this.hideFlag;
clone.unbreakable = this.unbreakable;
@@ -1027,6 +1030,23 @@ class CraftMetaItem implements ItemMeta, Repairable {
@@ -1029,6 +1032,23 @@ class CraftMetaItem implements ItemMeta, Repairable {
}
}
@ -289,5 +289,5 @@ index 9d0c05cd0..ab50ee92e 100644
private final Spigot spigot = new Spigot()
{
--
2.12.2.windows.2
2.13.0

View File

@ -1,15 +1,36 @@
From e6cab2b2737495bda0da7f5bea283749cf2d99be Mon Sep 17 00:00:00 2001
From 0a7c4b8b28a8d72061bbfc35c2aeb0a9bc05674f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 20:16:03 -0400
Subject: [PATCH] Add World Util Methods
Methods that can be used for other patches to help improve logic.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 491278646..c0d6e056d 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -580,6 +580,7 @@ public class Chunk {
}
+ public final int getLightSubtracted(BlockPosition blockposition, int i) { return this.a(blockposition, i); } // Paper - OBFHELPER
public int a(BlockPosition blockposition, int i) {
int j = blockposition.getX() & 15;
int k = blockposition.getY();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cc7369e52..1d2d174e8 100644
index 1fc7ec6f4..20bdf4055 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -152,6 +152,12 @@ public abstract class World implements IBlockAccess {
@@ -76,7 +76,7 @@ public abstract class World implements IBlockAccess {
public final List<Entity> j = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
private final long K = 16777215L;
- private int L;
+ private int L; private int getSkylightSubtracted() { return this.L; } // Paper - OBFHELPER
protected int l = (new Random()).nextInt();
protected final int m = 1013904223;
protected float n;
@@ -154,6 +154,12 @@ public abstract class World implements IBlockAccess {
return (CraftServer) Bukkit.getServer();
}
@ -22,7 +43,7 @@ index cc7369e52..1d2d174e8 100644
public Chunk getChunkIfLoaded(int x, int z) {
return ((ChunkProviderServer) this.chunkProvider).getChunkIfLoaded(x, z);
}
@@ -682,6 +688,41 @@ public abstract class World implements IBlockAccess {
@@ -684,10 +690,46 @@ public abstract class World implements IBlockAccess {
}
}
@ -53,7 +74,7 @@ index cc7369e52..1d2d174e8 100644
+ }
+
+ Chunk chunk = this.getChunkAtWorldCoords(blockposition);
+ return chunk.a(blockposition, this.J) >= level;
+ return chunk.getLightSubtracted(blockposition, this.getSkylightSubtracted()) >= level;
+ }
+ } else {
+ return true;
@ -64,7 +85,12 @@ index cc7369e52..1d2d174e8 100644
public int getLightLevel(BlockPosition blockposition) {
return this.c(blockposition, true);
}
@@ -801,6 +842,27 @@ public abstract class World implements IBlockAccess {
+ public final int getLight(BlockPosition blockposition, boolean checkNeighbors) { return this.c(blockposition, checkNeighbors); } // Paper - OBFHELPER
public int c(BlockPosition blockposition, boolean flag) {
if (blockposition.getX() >= -30000000 && blockposition.getZ() >= -30000000 && blockposition.getX() < 30000000 && blockposition.getZ() < 30000000) {
if (flag && this.getType(blockposition).f()) {
@@ -803,6 +845,27 @@ public abstract class World implements IBlockAccess {
return this.worldProvider.o()[this.getLightLevel(blockposition)];
}
@ -93,5 +119,5 @@ index cc7369e52..1d2d174e8 100644
// CraftBukkit start - tree generation
if (captureTreeGeneration) {
--
2.12.2.windows.2
2.13.0

View File

@ -1,4 +1,4 @@
From ca1b25eea56895788212adb3ecb23dedc8ae132c Mon Sep 17 00:00:00 2001
From 4db1c6925294438d675336f3f9193cb7f6589de5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 21:22:56 -0400
Subject: [PATCH] Optimized Light Level Comparisons
@ -91,7 +91,7 @@ index c74b6284f..bb96e164e 100644
if (random.nextInt((int) ((100.0F / (this == Blocks.PUMPKIN_STEM ? world.spigotConfig.pumpkinModifier : world.spigotConfig.melonModifier)) * (25.0F / f)) + 1) == 0) { // Spigot
diff --git a/src/main/java/net/minecraft/server/EntityMonster.java b/src/main/java/net/minecraft/server/EntityMonster.java
index 3ee52139c..59d8bb6e7 100644
index 21539ff9b..1585bf3bc 100644
--- a/src/main/java/net/minecraft/server/EntityMonster.java
+++ b/src/main/java/net/minecraft/server/EntityMonster.java
@@ -118,17 +118,17 @@ public abstract class EntityMonster extends EntityCreature implements IMonster {
@ -102,8 +102,8 @@ index 3ee52139c..59d8bb6e7 100644
-
+ //int i = this.world.getLightLevel(blockposition); // Paper
+ boolean passes; // Paper
if (this.world.V()) {
int j = this.world.af();
if (this.world.X()) {
int j = this.world.ah();
this.world.c(10);
- i = this.world.getLightLevel(blockposition);
@ -118,7 +118,7 @@ index 3ee52139c..59d8bb6e7 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index 897882c97..970fabf71 100644
index bf059a746..003e06156 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -178,7 +178,7 @@ public class EntityZombie extends EntityMonster {
@ -131,5 +131,5 @@ index 897882c97..970fabf71 100644
if (!this.world.isPlayerNearby((double) i1, (double) j1, (double) k1, 7.0D) && this.world.a(entityzombie.getBoundingBox(), (Entity) entityzombie) && this.world.getCubes(entityzombie, entityzombie.getBoundingBox()).isEmpty() && !this.world.containsLiquid(entityzombie.getBoundingBox())) {
this.world.addEntity(entityzombie, CreatureSpawnEvent.SpawnReason.REINFORCEMENTS); // CraftBukkit
--
2.12.2.windows.2
2.13.0

View File

@ -1,19 +1,19 @@
From c267a846efc3860d0dd8c2664eb5363fcf2c2f01 Mon Sep 17 00:00:00 2001
From 8d2c7044a378483beaf90ef87cbd0ecdb5f92215 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sun, 21 Jun 2015 15:07:20 -0400
Subject: [PATCH] Custom replacement for eaten items
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 247224117..9cb3b22fb 100644
index 1ad33521c..2b20a0205 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2323,12 +2323,13 @@ public abstract class EntityLiving extends Entity {
@@ -2369,12 +2369,13 @@ public abstract class EntityLiving extends Entity {
protected void v() {
if (!this.activeItem.isEmpty() && this.isHandRaised()) {
+ PlayerItemConsumeEvent event = null; // Paper
this.a(this.activeItem, 16);
this.b(this.activeItem, 16);
// CraftBukkit start - fire PlayerItemConsumeEvent
ItemStack itemstack;
if (this instanceof EntityPlayer) {
@ -23,7 +23,7 @@ index 247224117..9cb3b22fb 100644
world.getServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
@@ -2343,9 +2344,21 @@ public abstract class EntityLiving extends Entity {
@@ -2389,9 +2390,21 @@ public abstract class EntityLiving extends Entity {
itemstack = this.activeItem.a(this.world, this);
}
@ -34,9 +34,9 @@ index 247224117..9cb3b22fb 100644
+ }
+ // Paper end
+
this.a(this.cz(), itemstack);
this.a(this.cF(), itemstack);
// CraftBukkit end
this.cF();
this.cL();
+
+ // Paper start - if the replacement is anything but the default, update the client inventory
+ if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
@ -46,5 +46,5 @@ index 247224117..9cb3b22fb 100644
}
--
2.12.2.windows.2
2.13.0

View File

@ -1,14 +1,14 @@
From cd0818fe9a15de0585fe4ad9816f44521361de2c Mon Sep 17 00:00:00 2001
From 3d32a01b2bdddf62287fb6e4d45db50f4392299b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 27 Sep 2015 01:18:02 -0400
Subject: [PATCH] handle NaN health/absorb values and repair bad data
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 9cb3b22fb..c70f14a15 100644
index 2b20a0205..793353ac7 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -481,7 +481,13 @@ public abstract class EntityLiving extends Entity {
@@ -482,7 +482,13 @@ public abstract class EntityLiving extends Entity {
}
public void a(NBTTagCompound nbttagcompound) {
@ -23,7 +23,7 @@ index 9cb3b22fb..c70f14a15 100644
if (nbttagcompound.hasKeyOfType("Attributes", 9) && this.world != null && !this.world.isClientSide) {
GenericAttributes.a(this.getAttributeMap(), nbttagcompound.getList("Attributes", 10));
}
@@ -780,6 +786,10 @@ public abstract class EntityLiving extends Entity {
@@ -785,6 +791,10 @@ public abstract class EntityLiving extends Entity {
}
public void setHealth(float f) {
@ -34,7 +34,7 @@ index 9cb3b22fb..c70f14a15 100644
// CraftBukkit start - Handle scaled health
if (this instanceof EntityPlayer) {
org.bukkit.craftbukkit.entity.CraftPlayer player = ((EntityPlayer) this).getBukkitEntity();
@@ -2211,7 +2221,7 @@ public abstract class EntityLiving extends Entity {
@@ -2257,7 +2267,7 @@ public abstract class EntityLiving extends Entity {
}
public void setAbsorptionHearts(float f) {
@ -44,10 +44,10 @@ index 9cb3b22fb..c70f14a15 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index dd8380f71..0a9e8b9cd 100644
index 5839801f5..78aab5c63 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1398,6 +1398,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1385,6 +1385,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
public void setRealHealth(double health) {
@ -56,5 +56,5 @@ index dd8380f71..0a9e8b9cd 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From af92277b1e36fec281d2486e1b8122f45b1b38b0 Mon Sep 17 00:00:00 2001
From 973464436acb53d2f606b3007faf0bf176912a26 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 22 Mar 2016 00:33:47 -0400
Subject: [PATCH] Use a Shared Random for Entities
@ -6,7 +6,7 @@ Subject: [PATCH] Use a Shared Random for Entities
Reduces memory usage and provides ensures more randomness, Especially since a lot of garbage entity objects get created.
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index be54c807b..42bd79b10 100644
index dbaf2863b..aabf25cf2 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -46,6 +46,7 @@ public abstract class Entity implements ICommandListener {
@ -17,15 +17,15 @@ index be54c807b..42bd79b10 100644
static boolean isLevelAtLeast(NBTTagCompound tag, int level) {
return tag.hasKey("Bukkit.updateLevel") && tag.getInt("Bukkit.updateLevel") >= level;
}
@@ -163,7 +164,7 @@ public abstract class Entity implements ICommandListener {
this.width = 0.6F;
@@ -165,7 +166,7 @@ public abstract class Entity implements ICommandListener {
this.length = 1.8F;
this.ax = 1;
this.ay = 1.0F;
- this.random = new Random();
+ this.random = SHARED_RANDOM; // Paper
this.fireTicks = -this.getMaxFireTicks();
this.justCreated = true;
this.uniqueID = MathHelper.a(this.random);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 9a7b6ab52a15652e1563cfd5517ccd2e3d88257e Mon Sep 17 00:00:00 2001
From d21c30d407d2f865c3bed78c6a195302b44fadd4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 22 Mar 2016 00:55:23 -0400
Subject: [PATCH] Don't teleport dead entities
@ -7,10 +7,10 @@ Had some issue with this in past, and this is the vanilla logic.
Potentially an old CB change that's no longer needed.
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 42bd79b10..70a431a63 100644
index aabf25cf2..b3911fa9f 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2317,7 +2317,7 @@ public abstract class Entity implements ICommandListener {
@@ -2344,7 +2344,7 @@ public abstract class Entity implements ICommandListener {
}
public Entity teleportTo(Location exit, boolean portal) {
@ -20,5 +20,5 @@ index 42bd79b10..70a431a63 100644
WorldServer worldserver1 = ((CraftWorld) exit.getWorld()).getHandle();
int i = worldserver1.dimension;
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 80c0b91baf607f0b1625abbd20588b4be44c80c8 Mon Sep 17 00:00:00 2001
From d7b87a048189cfd45f61489882361646b9a8cc6d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Tue, 22 Mar 2016 12:04:28 -0500
Subject: [PATCH] Configurable spawn chances for skeleton horses
@ -19,10 +19,10 @@ index b37b5901b..adc810720 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 9b059e52c..de900920a 100644
index 04eb5ad9a..7d7f3d39e 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -436,7 +436,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -445,7 +445,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
if (this.isRainingAt(blockposition)) {
DifficultyDamageScaler difficultydamagescaler = this.D(blockposition);
@ -32,5 +32,5 @@ index 9b059e52c..de900920a 100644
entityhorseskeleton.p(true);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 1979a3eba27bfc1b815da4923498bbe652906e95 Mon Sep 17 00:00:00 2001
From bc65ae40e324298b8ab016670f728b7731197a31 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 02:07:55 -0600
Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling
@ -12,7 +12,7 @@ Replace all calls to the new place to the unnecessary forward.
Optimize getType and getBlockData to manually inline and optimize the calls
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
index d60e75502..f772c7cdf 100644
index d55e180d7..679d5504e 100644
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
@@ -10,6 +10,14 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
@ -52,10 +52,10 @@ index 67b476b22..008ed206d 100644
public MutableBlockPosition() {
this(0, 0, 0);
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 8f1a68d67..736fa1f62 100644
index c0d6e056d..88f5ce9e2 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -406,11 +406,26 @@ public class Chunk {
@@ -406,11 +406,27 @@ public class Chunk {
return this.a(i, j, k).c();
}
@ -79,9 +79,10 @@ index 8f1a68d67..736fa1f62 100644
public IBlockData a(final int i, final int j, final int k) {
+ return getBlockData(i, j, k);
+ }
+
+ public IBlockData unused(final int i, final int j, final int k) {
+ // Paper end
if (this.world.L() == WorldType.DEBUG_ALL_BLOCK_STATES) {
if (this.world.N() == WorldType.DEBUG_ALL_BLOCK_STATES) {
IBlockData iblockdata = null;
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
@ -98,10 +99,10 @@ index 3d784d0dc..afdc4a779 100644
private NibbleArray skyLight;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 1d2d174e8..9427fc080 100644
index 20bdf4055..1cd81e533 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -273,12 +273,12 @@ public abstract class World implements IBlockAccess {
@@ -275,12 +275,12 @@ public abstract class World implements IBlockAccess {
return this.getType(blockposition1);
}
@ -118,7 +119,7 @@ index 1d2d174e8..9427fc080 100644
}
public boolean isEmpty(BlockPosition blockposition) {
@@ -374,7 +374,7 @@ public abstract class World implements IBlockAccess {
@@ -376,7 +376,7 @@ public abstract class World implements IBlockAccess {
return true;
}
// CraftBukkit end
@ -127,7 +128,7 @@ index 1d2d174e8..9427fc080 100644
return false;
} else if (!this.isClientSide && this.worldData.getType() == WorldType.DEBUG_ALL_BLOCK_STATES) {
return false;
@@ -691,7 +691,7 @@ public abstract class World implements IBlockAccess {
@@ -693,7 +693,7 @@ public abstract class World implements IBlockAccess {
// Paper start - test if meets light level, return faster
// logic copied from below
public boolean isLightLevel(BlockPosition blockposition, int level) {
@ -136,7 +137,7 @@ index 1d2d174e8..9427fc080 100644
if (this.getType(blockposition).f()) {
if (this.c(blockposition.up(), false) >= level) {
return true;
@@ -809,7 +809,7 @@ public abstract class World implements IBlockAccess {
@@ -812,7 +812,7 @@ public abstract class World implements IBlockAccess {
blockposition = new BlockPosition(blockposition.getX(), 0, blockposition.getZ());
}
@ -145,7 +146,7 @@ index 1d2d174e8..9427fc080 100644
return enumskyblock.c;
} else if (!this.isLoaded(blockposition)) {
return enumskyblock.c;
@@ -821,7 +821,7 @@ public abstract class World implements IBlockAccess {
@@ -824,7 +824,7 @@ public abstract class World implements IBlockAccess {
}
public void a(EnumSkyBlock enumskyblock, BlockPosition blockposition, int i) {
@ -154,7 +155,7 @@ index 1d2d174e8..9427fc080 100644
if (this.isLoaded(blockposition)) {
Chunk chunk = this.getChunkAtWorldCoords(blockposition);
@@ -845,19 +845,19 @@ public abstract class World implements IBlockAccess {
@@ -848,19 +848,19 @@ public abstract class World implements IBlockAccess {
// Paper start - reduces need to do isLoaded before getType
public IBlockData getTypeIfLoaded(BlockPosition blockposition) {
// CraftBukkit start - tree generation
@ -182,7 +183,7 @@ index 1d2d174e8..9427fc080 100644
}
return null;
}
@@ -865,24 +865,33 @@ public abstract class World implements IBlockAccess {
@@ -868,24 +868,33 @@ public abstract class World implements IBlockAccess {
public IBlockData getType(BlockPosition blockposition) {
// CraftBukkit start - tree generation
@ -225,9 +226,9 @@ index 1d2d174e8..9427fc080 100644
}
+ // Paper end
public boolean B() {
return this.J < 4;
@@ -2017,7 +2026,7 @@ public abstract class World implements IBlockAccess {
public boolean D() {
return this.L < 4;
@@ -2020,7 +2029,7 @@ public abstract class World implements IBlockAccess {
public Map<BlockPosition, TileEntity> capturedTileEntities = Maps.newHashMap();
@Nullable
public TileEntity getTileEntity(BlockPosition blockposition) {
@ -236,7 +237,7 @@ index 1d2d174e8..9427fc080 100644
return null;
} else {
// CraftBukkit start
@@ -2058,7 +2067,7 @@ public abstract class World implements IBlockAccess {
@@ -2061,7 +2070,7 @@ public abstract class World implements IBlockAccess {
}
public void setTileEntity(BlockPosition blockposition, @Nullable TileEntity tileentity) {
@ -245,7 +246,7 @@ index 1d2d174e8..9427fc080 100644
if (tileentity != null && !tileentity.y()) {
// CraftBukkit start
if (captureBlockStates) {
@@ -2121,7 +2130,7 @@ public abstract class World implements IBlockAccess {
@@ -2124,7 +2133,7 @@ public abstract class World implements IBlockAccess {
}
public boolean d(BlockPosition blockposition, boolean flag) {
@ -255,5 +256,5 @@ index 1d2d174e8..9427fc080 100644
} else {
Chunk chunk = this.chunkProvider.getLoadedChunkAt(blockposition.getX() >> 4, blockposition.getZ() >> 4);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From c80926a9307c1543849b7120dcf44c831275834e Mon Sep 17 00:00:00 2001
From 3a92a6ebcf07d8b478c345526d2d3896c0df237a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 19:55:45 -0400
Subject: [PATCH] Option to disable BlockPhysicsEvent for Redstone
@ -25,10 +25,10 @@ index adc810720..e706efff5 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9427fc080..8cbdbda92 100644
index 1cd81e533..b8719ba91 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -578,7 +578,7 @@ public abstract class World implements IBlockAccess {
@@ -580,7 +580,7 @@ public abstract class World implements IBlockAccess {
try {
// CraftBukkit start
CraftWorld world = ((WorldServer) this).getWorld();
@ -38,7 +38,7 @@ index 9427fc080..8cbdbda92 100644
this.getServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index de900920a..f80647b31 100644
index 7d7f3d39e..36e6fdd16 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -34,6 +34,7 @@ import org.bukkit.event.weather.LightningStrikeEvent;
@ -49,7 +49,7 @@ index de900920a..f80647b31 100644
private final MinecraftServer server;
public EntityTracker tracker;
private final PlayerChunkMap manager;
@@ -727,6 +728,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -726,6 +727,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
if (iblockdata.getMaterial() != Material.AIR && Block.a(iblockdata.getBlock(), nextticklistentry.a())) {
try {
@ -57,7 +57,7 @@ index de900920a..f80647b31 100644
iblockdata.getBlock().b((World) this, nextticklistentry.a, iblockdata, this.random);
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.a(throwable, "Exception while ticking a block");
@@ -734,7 +736,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@@ -733,7 +735,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {
CrashReportSystemDetails.a(crashreportsystemdetails, nextticklistentry.a, iblockdata);
throw new ReportedException(crashreport);
@ -67,5 +67,5 @@ index de900920a..f80647b31 100644
timing.stopTiming(); // Paper
} else {
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From fbb0b9f15da52c572235a4a38164da7fd5aecc5b Mon Sep 17 00:00:00 2001
From e58bd8dd6ef47687c17109b69e0fcabec2e9a25d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:32:58 -0400
Subject: [PATCH] Entity AddTo/RemoveFrom World Events
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8cbdbda92..f86c64cb2 100644
index b8719ba91..ae470656b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1182,6 +1182,7 @@ public abstract class World implements IBlockAccess {
@@ -1185,6 +1185,7 @@ public abstract class World implements IBlockAccess {
}
entity.valid = true; // CraftBukkit
@ -16,7 +16,7 @@ index 8cbdbda92..f86c64cb2 100644
}
protected void c(Entity entity) {
@@ -1189,6 +1190,7 @@ public abstract class World implements IBlockAccess {
@@ -1192,6 +1193,7 @@ public abstract class World implements IBlockAccess {
((IWorldAccess) this.u.get(i)).b(entity);
}
@ -25,5 +25,5 @@ index 8cbdbda92..f86c64cb2 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 898cc9c9a103418974e27f5ed4c82b96f954cef8 Mon Sep 17 00:00:00 2001
From 4547f644988475da576ddf500a86a4334f875115 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:46:14 -0400
Subject: [PATCH] Configurable Chunk Inhabited Timer
@ -23,10 +23,10 @@ index e706efff5..2c682ccf7 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 736fa1f62..61d34fc37 100644
index 88f5ce9e2..15494d0b1 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1405,7 +1405,7 @@ public class Chunk {
@@ -1407,7 +1407,7 @@ public class Chunk {
}
public long x() {
@ -36,5 +36,5 @@ index 736fa1f62..61d34fc37 100644
public void c(long i) {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From d3c9388de3e0dc2bbc6c1b12eb76d09c48af1d08 Mon Sep 17 00:00:00 2001
From 41b32f64e3ff49cf3317f8b5e0309ad4a2597dc7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 21:22:26 -0400
Subject: [PATCH] EntityPathfindEvent
@ -6,7 +6,7 @@ Subject: [PATCH] EntityPathfindEvent
Fires when an Entity decides to start moving to a location.
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
index 43b2be505..c0ef2400b 100644
index 3e598afd4..3871ad017 100644
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
@@ -4,7 +4,7 @@ import javax.annotation.Nullable;
@ -24,7 +24,7 @@ index 43b2be505..c0ef2400b 100644
} else {
+ if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(getEntity().getBukkitEntity(), MCUtil.toLocation(getEntity().world, blockposition), null).callEvent()) { return null; } // Paper
this.q = blockposition;
float f = this.h();
float f = this.i();
@@ -98,6 +99,7 @@ public abstract class NavigationAbstract {
if (this.c != null && !this.c.b() && blockposition.equals(this.q)) {
@ -32,8 +32,8 @@ index 43b2be505..c0ef2400b 100644
} else {
+ if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(getEntity().getBukkitEntity(), MCUtil.toLocation(entity.world, blockposition), entity.getBukkitEntity()).callEvent()) { return null; } // Paper
this.q = blockposition;
float f = this.h();
float f = this.i();
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From ddaa32482b51ab2ef6141ae0e48d26565599be40 Mon Sep 17 00:00:00 2001
From 9c522bb9ad65ef25793a4b39034ba45e9d7fe8a4 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 31 Mar 2016 19:17:58 -0400
Subject: [PATCH] Do not load chunks for light checks
@ -7,10 +7,10 @@ Should only happen for blocks on the edge that uses neighbors light level
(certain blocks). In that case, there will be 3-4 other neighbors to get a light level from.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f86c64cb2..7e6459654 100644
index ae470656b..036d96fa7 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -759,6 +759,7 @@ public abstract class World implements IBlockAccess {
@@ -762,6 +762,7 @@ public abstract class World implements IBlockAccess {
if (blockposition.getY() >= 256) {
blockposition = new BlockPosition(blockposition.getX(), 255, blockposition.getZ());
}
@ -19,5 +19,5 @@ index f86c64cb2..7e6459654 100644
Chunk chunk = this.getChunkAtWorldCoords(blockposition);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 3ef06b376d5d7091fa982931e4a0a66ff0f76a2d Mon Sep 17 00:00:00 2001
From e8548ec5455f5fb85d3a3d9fdaf9aabad959d2ba Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sat, 2 Apr 2016 05:09:16 -0400
Subject: [PATCH] Add PlayerUseUnknownEntityEvent
@ -18,10 +18,10 @@ index c67cb54a3..521f46262 100644
private Vec3D c;
private EnumHand d;
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index b67837dd2..840448995 100644
index 1bc61ef43..25c02c727 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1614,6 +1614,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1625,6 +1625,16 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
}
}
}
@ -39,5 +39,5 @@ index b67837dd2..840448995 100644
}
--
2.12.2
2.13.0

View File

@ -1,21 +1,21 @@
From 97885a33964fffa97584963cbe542dccb797b0bc Mon Sep 17 00:00:00 2001
From f7d4407c751b874ca036f5621c2b9610b6c1bd9d Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sat, 2 Apr 2016 20:37:03 -0400
Subject: [PATCH] Fix reducedDebugInfo not initialized on client
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 59c7e78b8..e303b45f0 100644
index 7c73e08c3..45ad22c8f 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -154,6 +154,7 @@ public abstract class PlayerList {
@@ -156,6 +156,7 @@ public abstract class PlayerList {
playerconnection.sendPacket(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
playerconnection.sendPacket(new PacketPlayOutAbilities(entityplayer.abilities));
playerconnection.sendPacket(new PacketPlayOutHeldItemSlot(entityplayer.inventory.itemInHandIndex));
+ playerconnection.sendPacket(new PacketPlayOutEntityStatus(entityplayer, (byte) (worldserver.getGameRules().getBoolean("reducedDebugInfo") ? 22 : 23))); // Paper - fix this rule not being initialized on the client
this.f(entityplayer);
entityplayer.getStatisticManager().d();
entityplayer.getStatisticManager().updateStatistics(entityplayer);
entityplayer.getStatisticManager().c();
entityplayer.F().a(entityplayer);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 9f82f1d72fa9ec99080e660e69cee7822085bf44 Mon Sep 17 00:00:00 2001
From 3f5c4a27566f6700dec08348db62862580e22069 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 13 Sep 2014 23:14:43 -0400
Subject: [PATCH] Configurable Keep Spawn Loaded range per world
@ -21,10 +21,10 @@ index 74a49a5fb..3a942c763 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e7c63a953..3aea41f76 100644
index ecdb92397..b55ce6b1a 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -356,8 +356,11 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -356,8 +356,11 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
long j = aw();
i = 0;
@ -39,10 +39,10 @@ index e7c63a953..3aea41f76 100644
if (i1 - j > 1000L) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7e6459654..dba3fb167 100644
index 036d96fa7..b3c580836 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -3194,8 +3194,9 @@ public abstract class World implements IBlockAccess {
@@ -3197,8 +3197,9 @@ public abstract class World implements IBlockAccess {
int k = i * 16 + 8 - blockposition.getX();
int l = j * 16 + 8 - blockposition.getZ();
boolean flag = true;
@ -54,10 +54,10 @@ index 7e6459654..dba3fb167 100644
public void a(Packet<?> packet) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4d761d32a..a958ce998 100644
index fcc20d28e..f4fd25c29 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -952,7 +952,7 @@ public final class CraftServer implements Server {
@@ -949,7 +949,7 @@ public final class CraftServer implements Server {
System.out.print("Preparing start region for level " + (console.worlds.size() - 1) + " (Seed: " + internal.getSeed() + ")");
if (internal.getWorld().getKeepSpawnInMemory()) {
@ -67,10 +67,10 @@ index 4d761d32a..a958ce998 100644
for (int j = -short1; j <= short1; j += 16) {
for (int k = -short1; k <= short1; k += 16) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index f65611a6a..9965235ab 100644
index 7c1bbb491..1f88cc94c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1265,8 +1265,9 @@ public class CraftWorld implements World {
@@ -1273,8 +1273,9 @@ public class CraftWorld implements World {
int chunkCoordX = chunkcoordinates.getX() >> 4;
int chunkCoordZ = chunkcoordinates.getZ() >> 4;
// Cycle through the 25x25 Chunks around it to load/unload the chunks.
@ -83,5 +83,5 @@ index f65611a6a..9965235ab 100644
loadChunk(chunkCoordX + x, chunkCoordZ + z);
} else {
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 8ae180ad3f8cf80824fe419082538df82a2b0e2a Mon Sep 17 00:00:00 2001
From 907e7c092e0da791c9f24d9c649391fa30158081 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 3 Apr 2016 17:48:50 -0400
Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index dba3fb167..44108ab9a 100644
index b3c580836..fb24b5407 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -532,6 +532,7 @@ public abstract class World implements IBlockAccess {
@@ -534,6 +534,7 @@ public abstract class World implements IBlockAccess {
}
public void applyPhysics(BlockPosition blockposition, Block block, boolean flag) {
@ -17,5 +17,5 @@ index dba3fb167..44108ab9a 100644
this.a(blockposition.east(), block, blockposition);
this.a(blockposition.down(), block, blockposition);
--
2.12.2
2.13.0

View File

@ -1,15 +1,15 @@
From cc0692ecfec0f490e91b5c5665030027fd1d5843 Mon Sep 17 00:00:00 2001
From d8fdffcf773a9d75b1b7751a46e1f5bf4e45e56c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Apr 2016 19:42:22 -0400
Subject: [PATCH] Don't spam reload spawn chunks in nether/end
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 44108ab9a..9bc8ce64c 100644
index fb24b5407..e301eaf9d 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -3190,6 +3190,7 @@ public abstract class World implements IBlockAccess {
return this.N;
@@ -3193,6 +3193,7 @@ public abstract class World implements IBlockAccess {
return this.P;
}
+ public boolean shouldStayLoaded(int i, int j) { return e(i, j); } // Paper - OBFHELPER
@ -17,7 +17,7 @@ index 44108ab9a..9bc8ce64c 100644
BlockPosition blockposition = this.getSpawn();
int k = i * 16 + 8 - blockposition.getX();
diff --git a/src/main/java/net/minecraft/server/WorldProvider.java b/src/main/java/net/minecraft/server/WorldProvider.java
index a27512c0f..4691b3d8f 100644
index d0265f960..35d8d1a6e 100644
--- a/src/main/java/net/minecraft/server/WorldProvider.java
+++ b/src/main/java/net/minecraft/server/WorldProvider.java
@@ -138,6 +138,6 @@ public abstract class WorldProvider {
@ -29,5 +29,5 @@ index a27512c0f..4691b3d8f 100644
}
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 6f11a33876ceebf398760bcd2bb8915910975f6c Mon Sep 17 00:00:00 2001
From ff60a18cc8906862956622e06a7b712bf8603d19 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 6 Apr 2016 01:04:23 -0500
Subject: [PATCH] Option to use vanilla per-world scoreboard coloring on names
@ -19,22 +19,22 @@ index 3a942c763..3bd29650c 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 70a431a63..8908d8b8d 100644
index b3911fa9f..fa940ad31 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2046,6 +2046,7 @@ public abstract class Entity implements ICommandListener {
@@ -2073,6 +2073,7 @@ public abstract class Entity implements ICommandListener {
return this.getFlag(5);
}
+ @Nullable public ScoreboardTeamBase getTeam() { return this.aQ(); } // Paper - OBFHELPER
+ @Nullable public ScoreboardTeamBase getTeam() { return this.aW(); } // Paper - OBFHELPER
@Nullable
public ScoreboardTeamBase aQ() {
public ScoreboardTeamBase aW() {
if (!this.world.paperConfig.nonPlayerEntitiesOnScoreboards && !(this instanceof EntityHuman)) { return null; } // Paper
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 840448995..dfbae01f4 100644
index 25c02c727..353e73b15 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1347,7 +1347,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1358,7 +1358,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
return;
}
@ -51,5 +51,5 @@ index 840448995..dfbae01f4 100644
if (((LazyPlayerSet) event.getRecipients()).isLazy()) {
for (Object recipient : minecraftServer.getPlayerList().players) {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 5f2091113092bb84e8ce6b9e09c5042201d8508d Mon Sep 17 00:00:00 2001
From 47707ae66e07a5a249d29be95801f530ba0dfec1 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 10 Apr 2016 03:23:32 -0500
Subject: [PATCH] Workaround for setting passengers on players
@ -6,10 +6,10 @@ Subject: [PATCH] Workaround for setting passengers on players
SPIGOT-1915 & GH-114
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0a9e8b9cd..8e06c2140 100644
index 78aab5c63..00f9229f0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -589,6 +589,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -597,6 +597,17 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return true;
}
@ -28,5 +28,5 @@ index 0a9e8b9cd..8e06c2140 100644
public void setSneaking(boolean sneak) {
getHandle().setSneaking(sneak);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From d8532410334ad90c176c7553d1b3bca14f95f54b Mon Sep 17 00:00:00 2001
From fed630f23449d74c70787fc317255c14d8a5329f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 13 Apr 2016 00:25:28 -0400
Subject: [PATCH] Remove unused World Tile Entity List
@ -6,7 +6,7 @@ Subject: [PATCH] Remove unused World Tile Entity List
Massive hit to performance and it is completely unnecessary.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9bc8ce64c..2f4728b0d 100644
index e301eaf9d..0ddc03507 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -68,7 +68,7 @@ public abstract class World implements IBlockAccess {
@ -18,7 +18,7 @@ index 9bc8ce64c..2f4728b0d 100644
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
private final List<TileEntity> b = Lists.newArrayList();
private final Set<TileEntity> tileEntityListUnload = Sets.newHashSet(); // Paper
@@ -1568,7 +1568,7 @@ public abstract class World implements IBlockAccess {
@@ -1571,7 +1571,7 @@ public abstract class World implements IBlockAccess {
// CraftBukkit start - From below, clean up tile entities before ticking them
if (!this.tileEntityListUnload.isEmpty()) {
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
@ -27,7 +27,7 @@ index 9bc8ce64c..2f4728b0d 100644
this.tileEntityListUnload.clear();
}
// CraftBukkit end
@@ -1619,7 +1619,7 @@ public abstract class World implements IBlockAccess {
@@ -1622,7 +1622,7 @@ public abstract class World implements IBlockAccess {
if (tileentity.y()) {
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
@ -36,7 +36,7 @@ index 9bc8ce64c..2f4728b0d 100644
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).d(tileentity.getPosition());
}
@@ -1657,7 +1657,7 @@ public abstract class World implements IBlockAccess {
@@ -1660,7 +1660,7 @@ public abstract class World implements IBlockAccess {
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
// CraftBukkit start
// From above, don't screw this up - SPIGOT-1746
@ -45,7 +45,7 @@ index 9bc8ce64c..2f4728b0d 100644
this.a(tileentity1);
}
// CraftBukkit end
@@ -1677,9 +1677,9 @@ public abstract class World implements IBlockAccess {
@@ -1680,9 +1680,9 @@ public abstract class World implements IBlockAccess {
protected void l() {}
public boolean a(TileEntity tileentity) {
@ -57,7 +57,7 @@ index 9bc8ce64c..2f4728b0d 100644
this.tileEntityListTick.add(tileentity);
}
@@ -2114,7 +2114,7 @@ public abstract class World implements IBlockAccess {
@@ -2117,7 +2117,7 @@ public abstract class World implements IBlockAccess {
} else {
if (tileentity != null) {
this.b.remove(tileentity);
@ -67,5 +67,5 @@ index 9bc8ce64c..2f4728b0d 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From c11d79dd373a10c5cc3e190d7ac9f0fe1993463a Mon Sep 17 00:00:00 2001
From 591afbb70543d86d73dad41a3615fb93cb7dff33 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 13 Apr 2016 02:10:49 -0400
Subject: [PATCH] Configurable Player Collision
@ -19,7 +19,7 @@ index 62cbe0cf3..dae321d01 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/CommandScoreboard.java b/src/main/java/net/minecraft/server/CommandScoreboard.java
index ab9aa132a..f9f59e559 100644
index 00a34e85a..3e1ee96d1 100644
--- a/src/main/java/net/minecraft/server/CommandScoreboard.java
+++ b/src/main/java/net/minecraft/server/CommandScoreboard.java
@@ -183,6 +183,13 @@ public class CommandScoreboard extends CommandAbstract {
@ -37,10 +37,10 @@ index ab9aa132a..f9f59e559 100644
}
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3aea41f76..430168d21 100644
index b55ce6b1a..9099eb64f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -331,6 +331,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -331,6 +331,20 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
this.v.setPlayerFileData(this.worldServer);
this.a(this.getDifficulty());
this.l();
@ -75,10 +75,10 @@ index d8ec50455..eb45d3cf2 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index e303b45f0..97322c5da 100644
index 45ad22c8f..e7017883f 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -71,6 +71,7 @@ public abstract class PlayerList {
@@ -72,6 +72,7 @@ public abstract class PlayerList {
// CraftBukkit start
private CraftServer cserver;
private final Map<String,EntityPlayer> playersByName = new org.spigotmc.CaseInsensitiveMap<EntityPlayer>();
@ -86,7 +86,7 @@ index e303b45f0..97322c5da 100644
public PlayerList(MinecraftServer minecraftserver) {
this.cserver = minecraftserver.server = new CraftServer(minecraftserver, this);
@@ -228,6 +229,12 @@ public abstract class PlayerList {
@@ -230,6 +231,12 @@ public abstract class PlayerList {
}
entityplayer.syncInventory();
@ -99,7 +99,7 @@ index e303b45f0..97322c5da 100644
// CraftBukkit - Moved from above, added world
PlayerList.f.info(entityplayer.getName() + "[" + s1 + "] logged in with entity id " + entityplayer.getId() + " at ([" + entityplayer.world.worldData.getName() + "]" + entityplayer.locX + ", " + entityplayer.locY + ", " + entityplayer.locZ + ")");
}
@@ -400,6 +407,16 @@ public abstract class PlayerList {
@@ -415,6 +422,16 @@ public abstract class PlayerList {
entityplayer.playerTick();// SPIGOT-924
// CraftBukkit end
@ -116,7 +116,7 @@ index e303b45f0..97322c5da 100644
this.savePlayerFile(entityplayer);
if (entityplayer.isPassenger()) {
Entity entity = entityplayer.getVehicle();
@@ -1314,7 +1331,13 @@ public abstract class PlayerList {
@@ -1337,7 +1354,13 @@ public abstract class PlayerList {
player.playerConnection.disconnect(this.server.server.getShutdownMessage()); // CraftBukkit - add custom shutdown message
}
// CraftBukkit end
@ -132,5 +132,5 @@ index e303b45f0..97322c5da 100644
// CraftBukkit start
--
2.12.2
2.13.0

View File

@ -1,17 +1,17 @@
From a32a3ff851c3d8ff864c9597bd35a0b43dcb1c34 Mon Sep 17 00:00:00 2001
From 5ca04945098d575cbb62e424747d07ab701eeee0 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 14 Apr 2016 17:48:56 -0500
Subject: [PATCH] Water mobs should only spawn in the water
diff --git a/src/main/java/net/minecraft/server/EntityWaterAnimal.java b/src/main/java/net/minecraft/server/EntityWaterAnimal.java
index 90d33af95..251555713 100644
index 203e387fb..6ddb1aa8a 100644
--- a/src/main/java/net/minecraft/server/EntityWaterAnimal.java
+++ b/src/main/java/net/minecraft/server/EntityWaterAnimal.java
@@ -11,7 +11,15 @@ public abstract class EntityWaterAnimal extends EntityInsentient implements IAni
}
public boolean cM() {
public boolean P() {
- return true;
+ // Paper start - Don't let water mobs spawn in non-water blocks
+ // Based around EntityAnimal's implementation
@ -26,5 +26,5 @@ index 90d33af95..251555713 100644
public boolean canSpawn() {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 0210004d78643b561dbd88a5916cd55c9aae3dda Mon Sep 17 00:00:00 2001
From 9a94f770eac122c917dab083c8ba65d68a73381a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 14 Apr 2016 21:01:39 -0400
Subject: [PATCH] Fix Bugs with Spigot Mob Spawn Logic
@ -14,10 +14,10 @@ Specially with servers using smaller mob spawn ranges than view distance, as wel
This patch returns mob counting to use all loaded chunks, and 17x17 division.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 61d34fc37..a6cf1d83d 100644
index 15494d0b1..f743efca4 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -680,7 +680,7 @@ public class Chunk {
@@ -682,7 +682,7 @@ public class Chunk {
i = this.entitySlices.length - 1;
}
@ -27,7 +27,7 @@ index 61d34fc37..a6cf1d83d 100644
if (entity instanceof EntityItem) {
itemCounts[i]--;
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 8749a1879..29d4c0866 100644
index 79a93a862..1d0c9cc4e 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -23,6 +23,15 @@ public final class SpawnerCreature {
@ -56,5 +56,5 @@ index 8749a1879..29d4c0866 100644
Iterator iterator1 = this.b.iterator();
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From cf26fbf700eb4d7f23c9a35ef6cb56859d52ca39 Mon Sep 17 00:00:00 2001
From 7959c2a0963e4ee323b9d1f4a6fd4100f86b6f94 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 17 Apr 2016 17:27:09 -0400
Subject: [PATCH] Prevent Fire from loading chunks
@ -7,7 +7,7 @@ This causes the nether to spam unload/reload chunks, plus overall
bad behavior.
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
index 94cb9d462..dfc328850 100644
index 74c76fd6b..36df22215 100644
--- a/src/main/java/net/minecraft/server/BlockFire.java
+++ b/src/main/java/net/minecraft/server/BlockFire.java
@@ -164,6 +164,7 @@ public class BlockFire extends Block {
@ -18,16 +18,14 @@ index 94cb9d462..dfc328850 100644
int j1 = this.d(world, blockposition1);
if (j1 > 0) {
@@ -232,10 +233,14 @@ public class BlockFire extends Block {
@@ -232,10 +233,13 @@ public class BlockFire extends Block {
}
private void a(World world, BlockPosition blockposition, int i, Random random, int j, BlockPosition sourceposition) { // CraftBukkit add sourceposition
- int k = this.c(world.getType(blockposition).getBlock());
+ // Paper start
+ final IBlockData iblockdata = world.getTypeIfLoaded(blockposition);
+ if (iblockdata == null) return;
+ int k = this.c(iblockdata.getBlock());
+ // Paper end
int k = this.e(world.getType(blockposition).getBlock());
if (random.nextInt(i) < k) {
- IBlockData iblockdata = world.getType(blockposition);
@ -35,17 +33,15 @@ index 94cb9d462..dfc328850 100644
// CraftBukkit start
org.bukkit.block.Block theBlock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
@@ -294,7 +299,9 @@ public class BlockFire extends Block {
@@ -294,6 +298,8 @@ public class BlockFire extends Block {
for (int k = 0; k < j; ++k) {
EnumDirection enumdirection = aenumdirection[k];
- i = Math.max(this.d(world.getType(blockposition.shift(enumdirection)).getBlock()), i);
+ final IBlockData type = world.getTypeIfLoaded(blockposition.shift(enumdirection)); // Paper
+ if (type == null) continue; // Paper
+ i = Math.max(this.d(type.getBlock()), i); // Paper
i = Math.max(this.f(world.getType(blockposition.shift(enumdirection)).getBlock()), i);
}
return i;
--
2.12.2
2.13.0

View File

@ -1,23 +1,23 @@
From 543ab4972cabde6a82feebcf5145c143f8d8978f Mon Sep 17 00:00:00 2001
From ad0cb65019f11a4d6994a21e88fa3b504f60193d Mon Sep 17 00:00:00 2001
From: Isaac Moore <rmsy@me.com>
Date: Tue, 19 Apr 2016 14:09:31 -0500
Subject: [PATCH] Implement PlayerLocaleChangeEvent
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index bf3e46c35..ad1bb7bab 100644
index 42f6b7206..f4a2e748d 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -31,7 +31,7 @@ import org.bukkit.inventory.MainHand;
public class EntityPlayer extends EntityHuman implements ICrafting {
private static final Logger bR = LogManager.getLogger();
private static final Logger bW = LogManager.getLogger();
- public String locale = "en_US"; // Spigot private -> public
+ public String locale = null; // Spigot private -> public // Paper - default to null
public PlayerConnection playerConnection;
public final MinecraftServer server;
public final PlayerInteractManager playerInteractManager;
@@ -1105,7 +1105,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -1224,7 +1224,15 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
this.server.server.getPluginManager().callEvent(event);
}
// CraftBukkit end
@ -30,14 +30,14 @@ index bf3e46c35..ad1bb7bab 100644
+ new com.destroystokyo.paper.event.player.PlayerLocaleChangeEvent(this.getBukkitEntity(), oldLocale, this.locale).callEvent();
+ }
+ // Paper end
this.cg = packetplayinsettings.c();
this.ch = packetplayinsettings.d();
this.getDataWatcher().set(EntityPlayer.bq, Byte.valueOf((byte) packetplayinsettings.e()));
this.cm = packetplayinsettings.c();
this.cn = packetplayinsettings.d();
this.getDataWatcher().set(EntityPlayer.br, Byte.valueOf((byte) packetplayinsettings.e()));
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8e06c2140..61c32223d 100644
index 00f9229f0..d1f70af51 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1691,7 +1691,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1688,7 +1688,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public String getLocale()
{
@ -50,5 +50,5 @@ index 8e06c2140..61c32223d 100644
@Override
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 941eca8221f54c49f6bce1728a322e7e0657f08b Mon Sep 17 00:00:00 2001
From bb2896c078064b96b79ef2c93111c5de084f0663 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 22 Apr 2016 01:43:11 -0500
Subject: [PATCH] EntityRegainHealthEvent isFastRegen API
@ -6,10 +6,10 @@ Subject: [PATCH] EntityRegainHealthEvent isFastRegen API
Don't even get me started
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index c70f14a15..ec901150d 100644
index 98cb3c7c2..95700bf68 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -762,10 +762,16 @@ public abstract class EntityLiving extends Entity {
@@ -767,10 +767,16 @@ public abstract class EntityLiving extends Entity {
}
public void heal(float f, EntityRegainHealthEvent.RegainReason regainReason) {
@ -28,7 +28,7 @@ index c70f14a15..ec901150d 100644
if (!event.isCancelled()) {
diff --git a/src/main/java/net/minecraft/server/FoodMetaData.java b/src/main/java/net/minecraft/server/FoodMetaData.java
index b6e978668..8d95d148f 100644
index 401002b61..0f63055b5 100644
--- a/src/main/java/net/minecraft/server/FoodMetaData.java
+++ b/src/main/java/net/minecraft/server/FoodMetaData.java
@@ -65,7 +65,7 @@ public class FoodMetaData {
@ -41,5 +41,5 @@ index b6e978668..8d95d148f 100644
this.foodTickTimer = 0;
}
--
2.12.2
2.13.0

View File

@ -1,11 +1,11 @@
From 9e7656b1f8f69832a1bea2e23c6992bbaed9fe97 Mon Sep 17 00:00:00 2001
From 5d6a70e63f2dbf871c2c7ed62ee6e6c4245bee15 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Fri, 22 Apr 2016 18:20:05 -0500
Subject: [PATCH] Vehicle Event Cancellation Changes
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 8908d8b8d..0f4a1b66b 100644
index fa940ad31..0ec78ec2f 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -70,7 +70,7 @@ public abstract class Entity implements ICommandListener {
@ -17,7 +17,7 @@ index 8908d8b8d..0f4a1b66b 100644
public boolean attachedToPlayer;
public World world;
public double lastX;
@@ -1928,6 +1928,7 @@ public abstract class Entity implements ICommandListener {
@@ -1955,6 +1955,7 @@ public abstract class Entity implements ICommandListener {
throw new IllegalStateException("Use x.stopRiding(y), not y.removePassenger(x)");
} else {
// CraftBukkit start
@ -25,7 +25,7 @@ index 8908d8b8d..0f4a1b66b 100644
CraftEntity craft = (CraftEntity) entity.getBukkitEntity().getVehicle();
Entity orig = craft == null ? null : craft.getHandle();
if (getBukkitEntity() instanceof Vehicle && entity.getBukkitEntity() instanceof LivingEntity) {
@@ -1943,7 +1944,13 @@ public abstract class Entity implements ICommandListener {
@@ -1970,7 +1971,13 @@ public abstract class Entity implements ICommandListener {
}
}
// CraftBukkit end
@ -41,5 +41,5 @@ index 8908d8b8d..0f4a1b66b 100644
entity.j = 60;
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From b90b6e56102b563fc5dedfd20d1cfc5f901201d4 Mon Sep 17 00:00:00 2001
From 0fd48f8ca0b302871c4bccf779578385e53f8c33 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 27 Apr 2016 22:09:52 -0400
Subject: [PATCH] Improve Minecraft Hopper Performance
@ -8,7 +8,7 @@ Also reset cooldown each hopper tick that a hopper is full.
Also don't constantly clone ItemStacks without merit
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index d0c0371fc..d2662ae14 100644
index 39be107fd..6e23d325f 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -33,6 +33,7 @@ public abstract class TileEntity {
@ -28,7 +28,7 @@ index d0c0371fc..d2662ae14 100644
this.g = iblockdata.getBlock().toLegacyData(iblockdata);
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
index 6acce15e7..44b6ecc5d 100644
index e38411f35..f99812989 100644
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
@@ -220,11 +220,13 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
@ -68,7 +68,7 @@ index 6acce15e7..44b6ecc5d 100644
} else {
iinventory.setItem(i, itemstack1);
@@ -459,7 +463,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
boolean flag1 = iinventory1.w_();
boolean flag1 = iinventory1.x_();
if (itemstack1.isEmpty()) {
+ IGNORE_TILE_UPDATES = true; // Paper
@ -86,5 +86,5 @@ index 6acce15e7..44b6ecc5d 100644
return this.f > 0;
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 0beac52797d106b00aae3d72abf1377f736dbff9 Mon Sep 17 00:00:00 2001
From 72456dedf5e3b0b1abd45465540107db5ac7175f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 28 Apr 2016 00:57:27 -0400
Subject: [PATCH] remove null possibility for getServer singleton
@ -6,18 +6,18 @@ Subject: [PATCH] remove null possibility for getServer singleton
to stop IDE complaining about potential NPE
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 430168d21..83b62da55 100644
index 9099eb64f..111c363c7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -52,6 +52,7 @@ import co.aikar.timings.MinecraftTimings; // Paper
public abstract class MinecraftServer implements Runnable, ICommandListener, IAsyncTaskHandler, IMojangStatistics {
public abstract class MinecraftServer implements ICommandListener, Runnable, IAsyncTaskHandler, IMojangStatistics {
+ private static MinecraftServer SERVER; // Paper
public static final Logger LOGGER = LogManager.getLogger();
public static final File a = new File("usercache.json");
public Convertable convertable;
@@ -123,6 +124,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -123,6 +124,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
// Spigot end
public MinecraftServer(OptionSet options, Proxy proxy, DataConverterManager dataconvertermanager, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) {
@ -25,7 +25,7 @@ index 430168d21..83b62da55 100644
io.netty.util.ResourceLeakDetector.setEnabled( false ); // Spigot - disable
this.e = proxy;
this.V = yggdrasilauthenticationservice;
@@ -1634,7 +1636,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -1633,7 +1635,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
// CraftBukkit start
@Deprecated
public static MinecraftServer getServer() {
@ -35,5 +35,5 @@ index 430168d21..83b62da55 100644
// CraftBukkit end
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 08d92972cd60988bb13c33c398aa89d95a90bf8a Mon Sep 17 00:00:00 2001
From e77006067f56fb55e05d1d378412ef6316111889 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 29 Apr 2016 20:02:00 -0400
Subject: [PATCH] Improve Maps (in item frames) performance and bug fixes
@ -13,10 +13,10 @@ custom renderers are in use, defaulting to the much simpler Vanilla system.
Additionally, numerous issues to player position tracking on maps has been fixed.
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 43e28d61c..af173a137 100644
index b4507fe0c..29c2fd4c9 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -597,6 +597,12 @@ public abstract class EntityHuman extends EntityLiving {
@@ -549,6 +549,12 @@ public abstract class EntityHuman extends EntityLiving {
return null;
}
// CraftBukkit end
@ -30,7 +30,7 @@ index 43e28d61c..af173a137 100644
ItemStack itemstack1 = this.a(entityitem);
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index f542bf491..fbda70a39 100644
index 10cafe057..1d0d7453a 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -90,11 +90,11 @@ public class EntityTrackerEntry {
@ -48,10 +48,10 @@ index f542bf491..fbda70a39 100644
Iterator iterator = this.trackedPlayers.iterator(); // CraftBukkit
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 2f4728b0d..7ed3a0677 100644
index 0ddc03507..634f1c28c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1219,6 +1219,7 @@ public abstract class World implements IBlockAccess {
@@ -1222,6 +1222,7 @@ public abstract class World implements IBlockAccess {
{
if ( iter.next().trackee == entity )
{
@ -60,7 +60,7 @@ index 2f4728b0d..7ed3a0677 100644
}
}
diff --git a/src/main/java/net/minecraft/server/WorldMap.java b/src/main/java/net/minecraft/server/WorldMap.java
index dd5412e69..dbe6a80f2 100644
index b4296a0fc..5394e37f8 100644
--- a/src/main/java/net/minecraft/server/WorldMap.java
+++ b/src/main/java/net/minecraft/server/WorldMap.java
@@ -28,6 +28,7 @@ public class WorldMap extends PersistentBase {
@ -145,5 +145,5 @@ index 256a13178..5768cd512 100644
public RenderData() {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 4bdde79d22ddc115153bde7b44d60857053d79b7 Mon Sep 17 00:00:00 2001
From 2004f4a874f0c86805f21348b443ea5f0a8222cb Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 1 May 2016 21:19:14 -0400
Subject: [PATCH] LootTable API & Replenishable Lootables Feature
@ -418,7 +418,7 @@ index 000000000..01c2713d3
+ }
+}
diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
index a79919696..965aa5c23 100644
index 4a8eee119..0eece3933 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
@@ -6,17 +6,21 @@ import javax.annotation.Nullable;
@ -475,7 +475,7 @@ index a79919696..965aa5c23 100644
public void f(@Nullable EntityHuman entityhuman) {
- if (this.c != null) {
+ if (lootableData.shouldReplenish(entityhuman)) { // Paper
LootTable loottable = this.world.ak().a(this.c);
LootTable loottable = this.world.getLootTableRegistry().a(this.c);
- this.c = null;
+ lootableData.processRefill(entityhuman); // Paper
@ -536,7 +536,7 @@ index a79919696..965aa5c23 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/TileEntityLootable.java b/src/main/java/net/minecraft/server/TileEntityLootable.java
index 5632f2e78..01d0d8071 100644
index 243ae3533..548b8f4f5 100644
--- a/src/main/java/net/minecraft/server/TileEntityLootable.java
+++ b/src/main/java/net/minecraft/server/TileEntityLootable.java
@@ -1,44 +1,50 @@
@ -589,7 +589,7 @@ index 5632f2e78..01d0d8071 100644
public void d(@Nullable EntityHuman entityhuman) {
- if (this.m != null) {
+ if (lootableData.shouldReplenish(entityhuman)) { // Paper
LootTable loottable = this.world.ak().a(this.m);
LootTable loottable = this.world.getLootTableRegistry().a(this.m);
- this.m = null;
+ lootableData.processRefill(entityhuman); // Paper
@ -713,7 +713,7 @@ index b7a04bd84..5d4a5519d 100644
public CraftHopper(final Block block) {
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
index 8a7ce92bf..02f56bc0d 100644
index 788c60263..dc2648094 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftShulkerBox.java
@@ -1,5 +1,6 @@
@ -782,5 +782,5 @@ index e9963e21c..acb4dee04 100644
CraftMinecartHopper(CraftServer server, EntityMinecartHopper entity) {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 77fa2b88a5c877348527dfa1a8ca29fefaf8c520 Mon Sep 17 00:00:00 2001
From c1cda881a32b419fc1119bcba3189ec108f0af64 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 12 May 2016 01:55:17 -0400
Subject: [PATCH] Do not mark chunks as active for neighbor updates
@ -6,10 +6,10 @@ Subject: [PATCH] Do not mark chunks as active for neighbor updates
Fixes chunk unload issues
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index a6cf1d83d..3db29161d 100644
index f743efca4..6a64053ca 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1004,25 +1004,25 @@ public class Chunk {
@@ -1006,25 +1006,25 @@ public class Chunk {
// CraftBukkit end
world.timings.syncChunkLoadPostTimer.stopTiming(); // Paper
world.timings.syncChunkLoadPopulateNeighbors.startTiming(); // Paper
@ -44,5 +44,5 @@ index a6cf1d83d..3db29161d 100644
if (chunk4 != null) {
chunk4.a(chunkgenerator);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 0f23636d65d6937af2c1e37f32a255db6850b097 Mon Sep 17 00:00:00 2001
From dbe6ae53cbd3b831b7f0fc3f3e1705371d89b67f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 16 May 2016 20:47:41 -0400
Subject: [PATCH] Optimize UserCache / Thread Safe
@ -10,10 +10,10 @@ Additionally, move Saving of the User cache to be done async, incase
the user never changed the default setting for Spigot's save on stop only.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 83b62da55..2349c3ade 100644
index 111c363c7..19a66b64c 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -527,7 +527,7 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
@@ -527,7 +527,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
// Spigot start
if (org.spigotmc.SpigotConfig.saveUserCacheOnStopOnly) {
LOGGER.info("Saving usercache.json");
@ -23,10 +23,10 @@ index 83b62da55..2349c3ade 100644
// Spigot end
}
diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
index ccfc755d2..989758cdf 100644
index 487fc11f1..924dc63a4 100644
--- a/src/main/java/net/minecraft/server/UserCache.java
+++ b/src/main/java/net/minecraft/server/UserCache.java
@@ -108,7 +108,7 @@ public class UserCache {
@@ -109,7 +109,7 @@ public class UserCache {
this.a(gameprofile, (Date) null);
}
@ -35,7 +35,7 @@ index ccfc755d2..989758cdf 100644
UUID uuid = gameprofile.getId();
if (date == null) {
@@ -122,8 +122,9 @@ public class UserCache {
@@ -123,8 +123,9 @@ public class UserCache {
String s = gameprofile.getName().toLowerCase(Locale.ROOT);
UserCache.UserCacheEntry usercache_usercacheentry = new UserCache.UserCacheEntry(gameprofile, date, null);
@ -46,7 +46,7 @@ index ccfc755d2..989758cdf 100644
this.d.remove(usercache_usercacheentry1.a().getName().toLowerCase(Locale.ROOT));
this.f.remove(gameprofile);
@@ -136,7 +137,7 @@ public class UserCache {
@@ -137,7 +138,7 @@ public class UserCache {
}
@Nullable
@ -55,7 +55,7 @@ index ccfc755d2..989758cdf 100644
String s1 = s.toLowerCase(Locale.ROOT);
UserCache.UserCacheEntry usercache_usercacheentry = (UserCache.UserCacheEntry) this.d.get(s1);
@@ -165,7 +166,7 @@ public class UserCache {
@@ -166,7 +167,7 @@ public class UserCache {
return usercache_usercacheentry == null ? null : usercache_usercacheentry.a();
}
@ -64,7 +64,7 @@ index ccfc755d2..989758cdf 100644
ArrayList arraylist = Lists.newArrayList(this.d.keySet());
return (String[]) arraylist.toArray(new String[arraylist.size()]);
@@ -227,8 +228,15 @@ public class UserCache {
@@ -228,8 +229,15 @@ public class UserCache {
}
@ -80,7 +80,7 @@ index ccfc755d2..989758cdf 100644
BufferedWriter bufferedwriter = null;
try {
@@ -242,6 +250,14 @@ public class UserCache {
@@ -243,6 +251,14 @@ public class UserCache {
} finally {
IOUtils.closeQuietly(bufferedwriter);
}
@ -96,5 +96,5 @@ index ccfc755d2..989758cdf 100644
}
--
2.12.2
2.13.0

View File

@ -0,0 +1,116 @@
From 64acbadada6d70f6748c8f415122555db6ec8e0d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 22 May 2016 20:20:55 -0500
Subject: [PATCH] Optional TNT doesn't move in water
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index fbe769eb3..d2a542354 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -2,7 +2,6 @@ package com.destroystokyo.paper;
import java.util.List;
-import org.bukkit.Bukkit;
import org.bukkit.configuration.file.YamlConfiguration;
import org.spigotmc.SpigotWorldConfig;
@@ -327,4 +326,14 @@ public class PaperWorldConfig {
);
}
}
+
+ public boolean preventTntFromMovingInWater;
+ private void preventTntFromMovingInWater() {
+ if (PaperConfig.version < 13) {
+ boolean oldVal = getBoolean("enable-old-tnt-cannon-behaviors", false);
+ set("prevent-tnt-from-moving-in-water", oldVal);
+ }
+ preventTntFromMovingInWater = getBoolean("prevent-tnt-from-moving-in-water", false);
+ log("Prevent TNT from moving in water: " + preventTntFromMovingInWater);
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 094891057..5cd82f1b2 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1108,6 +1108,11 @@ public abstract class Entity implements ICommandListener {
}
public boolean aq() {
+ return this.doWaterMovement();
+ }
+
+ public boolean doWaterMovement() {
+ // Paper end
if (this.bH() instanceof EntityBoat) {
this.inWater = false;
} else if (this.world.a(this.getBoundingBox().grow(0.0D, -0.4000000059604645D, 0.0D).shrink(0.001D), Material.WATER, this)) {
@@ -2532,6 +2537,11 @@ public abstract class Entity implements ICommandListener {
}
public boolean bm() {
+ return this.pushedByWater();
+ }
+
+ public boolean pushedByWater() {
+ // Paper end
return true;
}
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index bb0904f86..ac81808c3 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -147,4 +147,47 @@ public class EntityTNTPrimed extends Entity {
public int getFuseTicks() {
return this.c;
}
+
+ // Paper start - Optional prevent TNT from moving in water
+ @Override
+ public boolean pushedByWater() {
+ return !world.paperConfig.preventTntFromMovingInWater && super.pushedByWater();
+ }
+
+ /**
+ * Author: Jedediah Smith <jedediah@silencegreys.com>
+ */
+ @Override
+ public boolean doWaterMovement() {
+ if (!world.paperConfig.preventTntFromMovingInWater) return super.doWaterMovement();
+
+ // Preserve velocity while calling the super method
+ double oldMotX = this.motX;
+ double oldMotY = this.motY;
+ double oldMotZ = this.motZ;
+
+ super.doWaterMovement();
+
+ this.motX = oldMotX;
+ this.motY = oldMotY;
+ this.motZ = oldMotZ;
+
+ if (this.inWater) {
+ // Send position and velocity updates to nearby players on every tick while the TNT is in water.
+ // This does pretty well at keeping their clients in sync with the server.
+ EntityTrackerEntry ete = ((WorldServer) this.getWorld()).getTracker().trackedEntities.get(this.getId());
+ if (ete != null) {
+ PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this);
+ PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this);
+
+ ete.trackedPlayers.stream().filter(viewer -> (viewer.locX - this.locX) * (viewer.locY - this.locY) * (viewer.locZ - this.locZ) < 16 * 16).forEach(viewer -> {
+ viewer.playerConnection.sendPacket(velocityPacket);
+ viewer.playerConnection.sendPacket(positionPacket);
+ });
+ }
+ }
+
+ return this.inWater;
+ }
+ // Paper end
}
--
2.13.0

View File

@ -1,393 +0,0 @@
From 05fa0e17dc7ea46a6a78ddf70e0f29d49edf114a Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 22 May 2016 20:20:55 -0500
Subject: [PATCH] Optional old TNT cannon behaviors
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index fbe769eb3..c4acb7597 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -327,4 +327,12 @@ public class PaperWorldConfig {
);
}
}
+
+ public boolean oldCannonBehaviors;
+ private void oldCannonBehaviors() {
+ oldCannonBehaviors = getBoolean("enable-old-tnt-cannon-behaviors", false);
+ if (oldCannonBehaviors) {
+ log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment");
+ }
+ }
}
diff --git a/src/main/java/net/minecraft/server/BlockDiodeAbstract.java b/src/main/java/net/minecraft/server/BlockDiodeAbstract.java
index 59ee13de8..40c9f18bf 100644
--- a/src/main/java/net/minecraft/server/BlockDiodeAbstract.java
+++ b/src/main/java/net/minecraft/server/BlockDiodeAbstract.java
@@ -76,6 +76,17 @@ public abstract class BlockDiodeAbstract extends BlockFacingHorizontal {
} else {
this.b(world, blockposition, iblockdata, 0);
world.setAir(blockposition);
+ // Paper start - Old TNT cannon behaviors
+ if (world.paperConfig.oldCannonBehaviors) {
+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false);
+ return;
+ }
+ // Paper end
EnumDirection[] aenumdirection = EnumDirection.values();
int i = aenumdirection.length;
@@ -173,6 +184,17 @@ public abstract class BlockDiodeAbstract extends BlockFacingHorizontal {
public void postBreak(World world, BlockPosition blockposition, IBlockData iblockdata) {
if (this.d) {
+ // Paper start - Old TNT cannon behaviors
+ if (world.paperConfig.oldCannonBehaviors) {
+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false);
+ return;
+ }
+ // Paper end
EnumDirection[] aenumdirection = EnumDirection.values();
int i = aenumdirection.length;
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
index c7e095a11..741236289 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
@@ -52,6 +52,12 @@ public class BlockRedstoneTorch extends BlockTorch {
public void onPlace(World world, BlockPosition blockposition, IBlockData iblockdata) {
if (this.isOn) {
+ // Paper start - Old TNT cannon behaviors
+ if (world.paperConfig.oldCannonBehaviors) {
+ this.shiftPositions(world, blockposition);
+ return;
+ }
+ // Paper end
EnumDirection[] aenumdirection = EnumDirection.values();
int i = aenumdirection.length;
@@ -66,6 +72,12 @@ public class BlockRedstoneTorch extends BlockTorch {
public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) {
if (this.isOn) {
+ // Paper start - Old TNT cannon behaviors
+ if (world.paperConfig.oldCannonBehaviors) {
+ this.shiftPositions(world, blockposition);
+ return;
+ }
+ // Paper end
EnumDirection[] aenumdirection = EnumDirection.values();
int i = aenumdirection.length;
@@ -78,6 +90,17 @@ public class BlockRedstoneTorch extends BlockTorch {
}
+ // Paper start - Old TNT cannon behaviors
+ private void shiftPositions(World world, BlockPosition blockposition) {
+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false);
+ }
+ // Paper end
+
public int b(IBlockData iblockdata, IBlockAccess iblockaccess, BlockPosition blockposition, EnumDirection enumdirection) {
return this.isOn && iblockdata.get(BlockRedstoneTorch.FACING) != enumdirection ? 15 : 0;
}
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneWire.java b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
index 5a0f026b1..20b9465e7 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneWire.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
@@ -20,7 +20,7 @@ public class BlockRedstoneWire extends Block {
public static final BlockStateInteger POWER = BlockStateInteger.of("power", 0, 15);
protected static final AxisAlignedBB[] f = new AxisAlignedBB[] { new AxisAlignedBB(0.1875D, 0.0D, 0.1875D, 0.8125D, 0.0625D, 0.8125D), new AxisAlignedBB(0.1875D, 0.0D, 0.1875D, 0.8125D, 0.0625D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.1875D, 0.8125D, 0.0625D, 0.8125D), new AxisAlignedBB(0.0D, 0.0D, 0.1875D, 0.8125D, 0.0625D, 1.0D), new AxisAlignedBB(0.1875D, 0.0D, 0.0D, 0.8125D, 0.0625D, 0.8125D), new AxisAlignedBB(0.1875D, 0.0D, 0.0D, 0.8125D, 0.0625D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.8125D, 0.0625D, 0.8125D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 0.8125D, 0.0625D, 1.0D), new AxisAlignedBB(0.1875D, 0.0D, 0.1875D, 1.0D, 0.0625D, 0.8125D), new AxisAlignedBB(0.1875D, 0.0D, 0.1875D, 1.0D, 0.0625D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.1875D, 1.0D, 0.0625D, 0.8125D), new AxisAlignedBB(0.0D, 0.0D, 0.1875D, 1.0D, 0.0625D, 1.0D), new AxisAlignedBB(0.1875D, 0.0D, 0.0D, 1.0D, 0.0625D, 0.8125D), new AxisAlignedBB(0.1875D, 0.0D, 0.0D, 1.0D, 0.0625D, 1.0D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.0625D, 0.8125D), new AxisAlignedBB(0.0D, 0.0D, 0.0D, 1.0D, 0.0625D, 1.0D)};
private boolean g = true;
- private final Set<BlockPosition> B = Sets.newHashSet();
+ private final Set<BlockPosition> B = Sets.newHashSet(); private final Set<BlockPosition> blocksToUpdate = B; // Paper - OBFHELPER
public BlockRedstoneWire() {
super(Material.ORIENTABLE);
@@ -186,6 +186,19 @@ public class BlockRedstoneWire extends Block {
}
this.B.add(blockposition);
+ // Paper start - Old TNT cannon behaviors
+ if (world.paperConfig.oldCannonBehaviors) {
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.WEST));
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.EAST));
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.DOWN));
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.UP));
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.NORTH));
+ this.blocksToUpdate.add(blockposition.shift(EnumDirection.SOUTH));
+ return iblockdata;
+ }
+ // Paper end
+
+
EnumDirection[] aenumdirection = EnumDirection.values();
int i1 = aenumdirection.length;
@@ -202,6 +215,16 @@ public class BlockRedstoneWire extends Block {
private void b(World world, BlockPosition blockposition) {
if (world.getType(blockposition).getBlock() == this) {
world.applyPhysics(blockposition, this, false);
+ if (world.paperConfig.oldCannonBehaviors) {
+ world.applyPhysics(blockposition.shift(EnumDirection.WEST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.EAST), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.NORTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.SOUTH), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.DOWN), this, false);
+ world.applyPhysics(blockposition.shift(EnumDirection.UP), this, false);
+ return;
+ }
+ // Paper end
EnumDirection[] aenumdirection = EnumDirection.values();
int i = aenumdirection.length;
diff --git a/src/main/java/net/minecraft/server/BlockTNT.java b/src/main/java/net/minecraft/server/BlockTNT.java
index 6b6aa892a..5cec4160c 100644
--- a/src/main/java/net/minecraft/server/BlockTNT.java
+++ b/src/main/java/net/minecraft/server/BlockTNT.java
@@ -29,7 +29,11 @@ public class BlockTNT extends Block {
public void wasExploded(World world, BlockPosition blockposition, Explosion explosion) {
if (!world.isClientSide) {
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) blockposition.getY(), (double) ((float) blockposition.getZ() + 0.5F), explosion.getSource());
+ // Paper start - Old TNT cannon behaviors
+ double y = blockposition.getY();
+ if (!world.paperConfig.oldCannonBehaviors) y += 0.5;
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), y, (double) ((float) blockposition.getZ() + 0.5F), explosion.getSource());
+ // Paper end
entitytntprimed.setFuseTicks((short) (world.random.nextInt(entitytntprimed.getFuseTicks() / 4) + entitytntprimed.getFuseTicks() / 8));
world.addEntity(entitytntprimed);
@@ -43,7 +47,11 @@ public class BlockTNT extends Block {
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, EntityLiving entityliving) {
if (!world.isClientSide) {
if (((Boolean) iblockdata.get(BlockTNT.EXPLODE)).booleanValue()) {
- EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), (double) blockposition.getY(), (double) ((float) blockposition.getZ() + 0.5F), entityliving);
+ // Paper start - Old TNT cannon behaviors
+ double y = blockposition.getY();
+ if (!world.paperConfig.oldCannonBehaviors) y += 0.5;
+ EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) blockposition.getX() + 0.5F), y, (double) ((float) blockposition.getZ() + 0.5F), entityliving);
+ // Paper end
world.addEntity(entitytntprimed);
world.a((EntityHuman) null, entitytntprimed.locX, entitytntprimed.locY, entitytntprimed.locZ, SoundEffects.gV, SoundCategory.BLOCKS, 1.0F, 1.0F);
diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java
index 6af9f206b..bec623c4d 100644
--- a/src/main/java/net/minecraft/server/DispenserRegistry.java
+++ b/src/main/java/net/minecraft/server/DispenserRegistry.java
@@ -507,7 +507,11 @@ public class DispenserRegistry {
org.bukkit.block.Block block = world.getWorld().getBlockAt(isourceblock.getBlockPosition().getX(), isourceblock.getBlockPosition().getY(), isourceblock.getBlockPosition().getZ());
CraftItemStack craftItem = CraftItemStack.asCraftMirror(itemstack1);
- BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector((double) blockposition.getX() + 0.5D, (double) blockposition.getY(), (double) blockposition.getZ() + 0.5D));
+ // Paper start - Old TNT cannon behaviors
+ double y = blockposition.getY();
+ if (!world.paperConfig.oldCannonBehaviors) y += 0.5;
+ BlockDispenseEvent event = new BlockDispenseEvent(block, craftItem.clone(), new org.bukkit.util.Vector((double) blockposition.getX() + 0.5D, y, (double) blockposition.getZ() + 0.5D));
+ // Paper end
if (!BlockDispenser.eventFired) {
world.getServer().getPluginManager().callEvent(event);
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 96b1e9a78..0d1fdd3ee 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -1089,6 +1089,12 @@ public abstract class Entity implements ICommandListener {
}
public boolean ak() {
+ // Paper start - OBFHELPER
+ return this.doWaterMovement();
+ }
+
+ public boolean doWaterMovement() {
+ // Paper end
if (this.bB() instanceof EntityBoat) {
this.inWater = false;
} else if (this.world.a(this.getBoundingBox().grow(0.0D, -0.4000000059604645D, 0.0D).shrink(0.001D), Material.WATER, this)) {
@@ -1292,6 +1298,12 @@ public abstract class Entity implements ICommandListener {
}
public double e(double d0, double d1, double d2) {
+ // Paper start - OBFHELPER
+ return this.getDistance(d0, d1, d2);
+ }
+
+ public double getDistance(double d0, double d1, double d2) {
+ // Paper end
double d3 = this.locX - d0;
double d4 = this.locY - d1;
double d5 = this.locZ - d2;
@@ -1346,6 +1358,11 @@ public abstract class Entity implements ICommandListener {
}
public void f(double d0, double d1, double d2) {
+ // Paper start - OBFHELPER
+ this.addVelocity(d0, d1, d2);
+ }
+
+ public void addVelocity(double d0, double d1, double d2) {
this.motX += d0;
this.motY += d1;
this.motZ += d2;
@@ -2505,6 +2522,12 @@ public abstract class Entity implements ICommandListener {
}
public boolean bg() {
+ // Paper start - OBFHELPER
+ return this.pushedByWater();
+ }
+
+ public boolean pushedByWater() {
+ // Paper end
return true;
}
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index 307a44c85..bb01929e8 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -280,4 +280,19 @@ public class EntityFallingBlock extends Entity {
public boolean bu() {
return true;
}
+
+ // Paper start - Old TNT cannon behaviors
+ @Override
+ public double getDistance(double d0, double d1, double d2) {
+ if (!world.paperConfig.oldCannonBehaviors) return super.getDistance(d0, d1, d2);
+
+ double newX = this.locX - d0;
+ double newY = this.locY + this.getHeadHeight() - d1;
+ double newZ = this.locZ - d2;
+
+ return (double) MathHelper.sqrt(newX * newX + newY * newY + newZ * newZ);
+ }
+
+
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 25e471d37..e796ade87 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -32,6 +32,7 @@ public class EntityTNTPrimed extends Entity {
this.lastY = d1;
this.lastZ = d2;
this.source = entityliving;
+ if (world.paperConfig.oldCannonBehaviors) this.motX = this.motZ = 0.0F; // Paper - Old TNT cannon behaviors
}
protected void i() {
@@ -124,7 +125,7 @@ public class EntityTNTPrimed extends Entity {
}
public float getHeadHeight() {
- return 0.0F;
+ return world.paperConfig.oldCannonBehaviors ? this.length / 16F : 0.0F; // Paper - Old TNT cannon behaviors
}
public void setFuseTicks(int i) {
@@ -146,4 +147,58 @@ public class EntityTNTPrimed extends Entity {
public int getFuseTicks() {
return this.c;
}
+
+ // Paper start - Old TNT cannon behaviors
+ @Override
+ public double getDistance(double d0, double d1, double d2) {
+ if (!world.paperConfig.oldCannonBehaviors) return super.getDistance(d0, d1, d2);
+
+ double newX = this.locX - d0;
+ double newY = this.locY + this.getHeadHeight() - d1;
+ double newZ = this.locZ - d2;
+
+ return (double) MathHelper.sqrt(newX * newX + newY * newY + newZ * newZ);
+ }
+
+ @Override
+ public boolean pushedByWater() {
+ return !world.paperConfig.oldCannonBehaviors && super.pushedByWater();
+ }
+
+ /**
+ * Author: Jedediah Smith <jedediah@silencegreys.com>
+ */
+ @Override
+ public boolean doWaterMovement() {
+ if (!world.paperConfig.oldCannonBehaviors) return super.doWaterMovement();
+
+ // Preserve velocity while calling the super method
+ double oldMotX = this.motX;
+ double oldMotY = this.motY;
+ double oldMotZ = this.motZ;
+
+ super.doWaterMovement();
+
+ this.motX = oldMotX;
+ this.motY = oldMotY;
+ this.motZ = oldMotZ;
+
+ if (this.inWater) {
+ // Send position and velocity updates to nearby players on every tick while the TNT is in water.
+ // This does pretty well at keeping their clients in sync with the server.
+ EntityTrackerEntry ete = ((WorldServer) this.getWorld()).getTracker().trackedEntities.get(this.getId());
+ if (ete != null) {
+ PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this);
+ PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this);
+
+ ete.trackedPlayers.stream().filter(viewer -> (viewer.locX - this.locX) * (viewer.locY - this.locY) * (viewer.locZ - this.locZ) < 16 * 16).forEach(viewer -> {
+ viewer.playerConnection.sendPacket(velocityPacket);
+ viewer.playerConnection.sendPacket(positionPacket);
+ });
+ }
+ }
+
+ return this.inWater;
+ }
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
index d7bc6a0ed..f2785d86c 100644
--- a/src/main/java/net/minecraft/server/Explosion.java
+++ b/src/main/java/net/minecraft/server/Explosion.java
@@ -149,9 +149,15 @@ public class Explosion {
d14 = entity instanceof EntityHuman && world.paperConfig.disableExplosionKnockback ? 0 : EnchantmentProtection.a((EntityLiving) entity, d13); // Paper - Disable explosion knockback
}
- entity.motX += d8 * d14;
- entity.motY += d9 * d14;
- entity.motZ += d10 * d14;
+ // Paper start - Fix cannons
+ /*
+ entity.motX += d8 * d14;
+ entity.motY += d9 * d14;
+ entity.motZ += d10 * d14;
+ */
+ // This impulse method sets the dirty flag, so clients will get an immediate velocity update
+ entity.addVelocity(d8 * d14, d9 * d14, d10 * d14);
+ // Paper end
if (entity instanceof EntityHuman) {
EntityHuman entityhuman = (EntityHuman) entity;
--
2.12.2

View File

@ -1,4 +1,4 @@
From f4d997da0a100cd7f4d80996a0ec158649a277e6 Mon Sep 17 00:00:00 2001
From fee9819b52897421317394c759b8a6850fbab9a9 Mon Sep 17 00:00:00 2001
From: Martin Panzer <postremus1996@googlemail.com>
Date: Mon, 23 May 2016 12:12:37 +0200
Subject: [PATCH] Faster redstone torch rapid clock removal
@ -6,10 +6,10 @@ Subject: [PATCH] Faster redstone torch rapid clock removal
Only resize the the redstone torch list once, since resizing arrays / lists is costly
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
index 741236289..25a2a5d36 100644
index 5b0028a78..429f26ed5 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
@@ -117,9 +117,17 @@ public class BlockRedstoneTorch extends BlockTorch {
@@ -94,9 +94,17 @@ public class BlockRedstoneTorch extends BlockTorch {
boolean flag = this.g(world, blockposition, iblockdata);
List list = (List) BlockRedstoneTorch.g.get(world);
@ -29,7 +29,7 @@ index 741236289..25a2a5d36 100644
// CraftBukkit start
org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager();
@@ -202,7 +210,7 @@ public class BlockRedstoneTorch extends BlockTorch {
@@ -179,7 +187,7 @@ public class BlockRedstoneTorch extends BlockTorch {
static class RedstoneUpdateInfo {
BlockPosition a;
@ -39,5 +39,5 @@ index 741236289..25a2a5d36 100644
public RedstoneUpdateInfo(BlockPosition blockposition, long i) {
this.a = blockposition;
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 552bbf4ff08db7dc30722e581a6bb019e8ef12cc Mon Sep 17 00:00:00 2001
From 5b0e458f61ad7845469a3cc9cee4231ae01a896d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 31 May 2016 22:53:50 -0400
Subject: [PATCH] Only send Dragon/Wither Death sounds to same world
@ -6,11 +6,11 @@ Subject: [PATCH] Only send Dragon/Wither Death sounds to same world
Also fix view distance lookup
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index e24be3ccd..e93819fc1 100644
index f8e84f413..e88082485 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -573,8 +573,12 @@ public class EntityEnderDragon extends EntityInsentient implements IComplex, IMo
if (this.bG == 1) {
if (this.bH == 1) {
// CraftBukkit start - Use relative location for far away sounds
// this.world.a(1028, new BlockPosition(this), 0);
- int viewDistance = ((WorldServer) this.world).getServer().getViewDistance() * 16;
@ -25,10 +25,10 @@ index e24be3ccd..e93819fc1 100644
double deltaZ = this.locZ - player.locZ;
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
index 9af34ba60..031507574 100644
index b7954362d..202774a7c 100644
--- a/src/main/java/net/minecraft/server/EntityWither.java
+++ b/src/main/java/net/minecraft/server/EntityWither.java
@@ -211,8 +211,12 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
@@ -210,8 +210,12 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
// CraftBukkit start - Use relative location for far away sounds
// this.world.a(1023, new BlockPosition(this), 0);
@ -44,5 +44,5 @@ index 9af34ba60..031507574 100644
double deltaZ = this.locZ - player.locZ;
double distanceSquared = deltaX * deltaX + deltaZ * deltaZ;
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 2ffd7565f95c0fe3ddef701c688263469aeb42ae Mon Sep 17 00:00:00 2001
From 76311e2cf535fc498b5e98604d1ea28dc7e6356f Mon Sep 17 00:00:00 2001
From: Martin Panzer <postremus1996@googlemail.com>
Date: Fri, 3 Jun 2016 23:13:39 +0200
Subject: [PATCH] Fix FallingBlocks being stuck on fences
@ -11,12 +11,12 @@ We now first check, if if we are already on the ground.
if not, we check if the falling block is inside of the hitbox of the block at y - 1.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index c4acb7597..7bd745a27 100644
index d2a542354..c74071eb1 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -335,4 +335,9 @@ public class PaperWorldConfig {
log("Old Cannon Behaviors: This feature may not be working entirely properly at the moment");
}
@@ -336,4 +336,9 @@ public class PaperWorldConfig {
preventTntFromMovingInWater = getBoolean("prevent-tnt-from-moving-in-water", false);
log("Prevent TNT from moving in water: " + preventTntFromMovingInWater);
}
+
+ public boolean altFallingBlockOnGround;
@ -25,7 +25,7 @@ index c4acb7597..7bd745a27 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/BlockFalling.java b/src/main/java/net/minecraft/server/BlockFalling.java
index dcdae998c..3c777418b 100644
index db5c0deae..9bcfc336f 100644
--- a/src/main/java/net/minecraft/server/BlockFalling.java
+++ b/src/main/java/net/minecraft/server/BlockFalling.java
@@ -71,6 +71,12 @@ public class BlockFalling extends Block {
@ -38,29 +38,26 @@ index dcdae998c..3c777418b 100644
+ }
+ // Paper end
+
public void a_(World world, BlockPosition blockposition) {}
public void a(World world, BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
public void b(World world, BlockPosition blockposition) {}
public void a_(World world, BlockPosition blockposition) {}
diff --git a/src/main/java/net/minecraft/server/EntityFallingBlock.java b/src/main/java/net/minecraft/server/EntityFallingBlock.java
index bb01929e8..8059e6dcd 100644
index 18e7cf2ad..6a22dce51 100644
--- a/src/main/java/net/minecraft/server/EntityFallingBlock.java
+++ b/src/main/java/net/minecraft/server/EntityFallingBlock.java
@@ -2,7 +2,9 @@ package net.minecraft.server;
@@ -3,6 +3,7 @@ package net.minecraft.server;
import com.google.common.collect.Lists;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Iterator;
+import java.util.List;
import javax.annotation.Nullable;
import org.bukkit.craftbukkit.event.CraftEventFactory; // CraftBukkit
@@ -97,10 +99,9 @@ public class EntityFallingBlock extends Entity {
blockposition = new BlockPosition(this);
if (this.onGround) {
@@ -121,9 +122,9 @@ public class EntityFallingBlock extends Entity {
} else {
IBlockData iblockdata = this.world.getType(blockposition);
-
- if (BlockFalling.i(this.world.getType(new BlockPosition(this.locX, this.locY - 0.009999999776482582D, this.locZ)))) {
- if (!flag1 && BlockFalling.i(this.world.getType(new BlockPosition(this.locX, this.locY - 0.009999999776482582D, this.locZ)))) {
+ if (!isOnGround()) {
this.onGround = false;
- // return; // CraftBukkit
@ -68,7 +65,7 @@ index bb01929e8..8059e6dcd 100644
}
this.motX *= 0.699999988079071D;
@@ -159,6 +160,32 @@ public class EntityFallingBlock extends Entity {
@@ -179,6 +180,32 @@ public class EntityFallingBlock extends Entity {
}
}
@ -102,5 +99,5 @@ index bb01929e8..8059e6dcd 100644
Block block = this.block.getBlock();
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From b6948fdd96baaba6bb2ef88bb94c34a355ffa1b5 Mon Sep 17 00:00:00 2001
From da00e43894f069931ea9803a4c2d570ae9073e7e Mon Sep 17 00:00:00 2001
From: Techcable <Techcable@outlook.com>
Date: Sat, 18 Jun 2016 01:01:37 -0500
Subject: [PATCH] Make entities look for hoppers
@ -78,10 +78,10 @@ index 000000000..aef7c2be9
+ double getZ();
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 7bd745a27..894d40662 100644
index c74071eb1..d5d6e7fcd 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -340,4 +340,9 @@ public class PaperWorldConfig {
@@ -341,4 +341,9 @@ public class PaperWorldConfig {
private void altFallingBlockOnGround() {
altFallingBlockOnGround = getBoolean("use-alternate-fallingblock-onGround-detection", false);
}
@ -132,7 +132,7 @@ index 008ed206d..b3c1f550c 100644
this.b = i;
this.c = j;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0d1fdd3ee..0479b7551 100644
index 5cd82f1b2..c81f88bce 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -80,6 +80,19 @@ public abstract class Entity implements ICommandListener {
@ -156,7 +156,7 @@ index 0d1fdd3ee..0479b7551 100644
public double motY;
public double motZ;
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
index 9742afc65..95ca1b8e4 100644
index 7b137d847..0a7f1476d 100644
--- a/src/main/java/net/minecraft/server/EntityItem.java
+++ b/src/main/java/net/minecraft/server/EntityItem.java
@@ -5,8 +5,15 @@ import javax.annotation.Nullable;
@ -179,7 +179,7 @@ index 9742afc65..95ca1b8e4 100644
@@ -56,6 +63,7 @@ public class EntityItem extends Entity {
this.die();
} else {
super.A_();
super.B_();
+ if (tryPutInHopper()) return; // Paper
// CraftBukkit start - Use wall time for pickup and despawn timers
int elapsedTicks = MinecraftServer.currentTick - this.lastTick;
@ -193,7 +193,7 @@ index 9742afc65..95ca1b8e4 100644
int elapsedTicks = MinecraftServer.currentTick - this.lastTick;
if (this.pickupDelay != 32767) this.pickupDelay -= elapsedTicks;
diff --git a/src/main/java/net/minecraft/server/EntityMinecartContainer.java b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
index 965aa5c23..04256898b 100644
index 0eece3933..8415832d1 100644
--- a/src/main/java/net/minecraft/server/EntityMinecartContainer.java
+++ b/src/main/java/net/minecraft/server/EntityMinecartContainer.java
@@ -7,6 +7,7 @@ import javax.annotation.Nullable;
@ -217,8 +217,8 @@ index 965aa5c23..04256898b 100644
+ }
+
+ @Override
+ public void A_() {
+ super.A_();
+ public void B_() {
+ super.B_();
+ tryPutInHopper();
+ }
+
@ -249,7 +249,7 @@ index 804215a1c..e830d8390 100644
+ double G(); default double getZ() { return G(); } // Paper - OBFHELPER
}
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
index 44b6ecc5d..022e64520 100644
index f99812989..d22261646 100644
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
@@ -126,6 +126,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
@ -321,7 +321,7 @@ index 44b6ecc5d..022e64520 100644
@@ -506,18 +524,44 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
private IInventory I() {
EnumDirection enumdirection = BlockHopper.e(this.v());
EnumDirection enumdirection = BlockHopper.b(this.v());
- return b(this.getWorld(), this.E() + (double) enumdirection.getAdjacentX(), this.F() + (double) enumdirection.getAdjacentY(), this.G() + (double) enumdirection.getAdjacentZ());
+ // Paper start - don't search for entities in push mode
@ -378,5 +378,5 @@ index 44b6ecc5d..022e64520 100644
if (!list.isEmpty()) {
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From a725b4f641d3fd25f235a4d4e4d9ff73ae7e03c3 Mon Sep 17 00:00:00 2001
From acf6e5cc937888e032399cb90b3ff680196356dc Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 18 Jun 2016 23:22:12 -0400
Subject: [PATCH] Delay Chunk Unloads based on Player Movement
@ -17,10 +17,10 @@ This allows servers with smaller worlds who do less long distance exploring to s
wasting cpu cycles on saving/unloading/reloading chunks repeatedly.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 894d40662..04861f146 100644
index d5d6e7fcd..ef60c15bd 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -345,4 +345,13 @@ public class PaperWorldConfig {
@@ -346,4 +346,13 @@ public class PaperWorldConfig {
private void isHopperPushBased() {
isHopperPushBased = getBoolean("hopper.push-based", false);
}
@ -35,7 +35,7 @@ index 894d40662..04861f146 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 98f2cff15..88437d77a 100644
index d37221f09..a639ab2a8 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -30,6 +30,7 @@ public class Chunk {
@ -47,7 +47,7 @@ index 98f2cff15..88437d77a 100644
public final int locZ;
private boolean m;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index eb3225ef2..81b9bb884 100644
index a512a4113..9836c0c5a 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -315,6 +315,19 @@ public class ChunkProviderServer implements IChunkProvider {
@ -68,10 +68,10 @@ index eb3225ef2..81b9bb884 100644
+ }
+ // Paper end
this.chunkLoader.a();
this.chunkLoader.b();
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index dd40e98c8..f109e986d 100644
index 3d30e1831..48a008e0a 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -32,8 +32,16 @@ public class PlayerChunk {
@ -127,10 +127,10 @@ index 0a0b5261b..14ea89c91 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 9965235ab..3f8859a1f 100644
index 1f88cc94c..0466a4f00 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1558,7 +1558,7 @@ public class CraftWorld implements World {
@@ -1566,7 +1566,7 @@ public class CraftWorld implements World {
ChunkProviderServer cps = world.getChunkProviderServer();
for (net.minecraft.server.Chunk chunk : cps.chunks.values()) {
// If in use, skip it
@ -140,5 +140,5 @@ index 9965235ab..3f8859a1f 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From e886fbb60bda14fbb78a182375a6de088da67aaf Mon Sep 17 00:00:00 2001
From b44a6c7ed51c15e5a7ef671cbe747dc68953d5e4 Mon Sep 17 00:00:00 2001
From: Jadon Fowler <jadonflower@gmail.com>
Date: Sat, 18 Jun 2016 23:13:59 -0700
Subject: [PATCH] Toggleable Elytra Wall Damage
@ -7,10 +7,10 @@ Instead of calculating the damage taken from hitting a wall, you can
disable it in the config.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 04861f146..dc96bd7f4 100644
index ef60c15bd..cec9ea74c 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -354,4 +354,9 @@ public class PaperWorldConfig {
@@ -355,4 +355,9 @@ public class PaperWorldConfig {
delayChunkUnloadsBy *= 1000;
}
}
@ -21,19 +21,19 @@ index 04861f146..dc96bd7f4 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index ec901150d..b8ac99e5d 100644
index 9587704d7..97b498507 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1690,6 +1690,7 @@ public abstract class EntityLiving extends Entity {
@@ -1731,6 +1731,7 @@ public abstract class EntityLiving extends Entity {
this.motY = 0.30000001192092896D;
}
} else if (this.cH()) {
} else if (this.cN()) {
+ if (world.paperConfig.elytraHitWallDamage) { // Paper start - Toggleable Elytra Wall Damage
if (this.motY > -0.5D) {
this.fallDistance = 1.0F;
}
@@ -1739,6 +1740,7 @@ public abstract class EntityLiving extends Entity {
this.damageEntity(DamageSource.FLY_INTO_WALL, f7);
@@ -1780,6 +1781,7 @@ public abstract class EntityLiving extends Entity {
this.damageEntity(DamageSource.FLY_INTO_WALL, f8);
}
}
+ } // Paper end - Elyta Wall Damage if statement
@ -41,5 +41,5 @@ index ec901150d..b8ac99e5d 100644
if (this.onGround && !this.world.isClientSide) {
if (getFlag(7) && !CraftEventFactory.callToggleGlideEvent(this, false).isCancelled()) // CraftBukkit
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 98c65b22db11cb425f4426f1b52114971dcf12f0 Mon Sep 17 00:00:00 2001
From 5853695491a09dde341b26e3dcec2a64d2c63d98 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 21 Jun 2016 22:54:34 -0400
Subject: [PATCH] Fix Double World Add issues
@ -8,7 +8,7 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added.
Also add debug if something else tries to, and abort before world gets bad state
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 721a3cd81..90d069539 100644
index 911f527f8..0d73e41f2 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -508,7 +508,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -18,13 +18,13 @@ index 721a3cd81..90d069539 100644
- if (world.addEntity(entity, reason) && entity.isVehicle()) {
+ if (!entity.valid && world.addEntity(entity, reason) && entity.isVehicle()) { // Paper
// CraftBukkit end
Iterator iterator = entity.bx().iterator();
Iterator iterator = entity.bD().iterator();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7ed3a0677..7900fca57 100644
index 634f1c28c..0a473d7d2 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1098,6 +1098,7 @@ public abstract class World implements IBlockAccess {
@@ -1101,6 +1101,7 @@ public abstract class World implements IBlockAccess {
public boolean addEntity(Entity entity, SpawnReason spawnReason) { // Changed signature, added SpawnReason
org.spigotmc.AsyncCatcher.catchOp( "entity add"); // Spigot
if (entity == null) return false;
@ -33,5 +33,5 @@ index 7ed3a0677..7900fca57 100644
int i = MathHelper.floor(entity.locX / 16.0D);
int j = MathHelper.floor(entity.locZ / 16.0D);
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From d2dfe71fdaf52ea8e53deeba1362d3db3c40a09d Mon Sep 17 00:00:00 2001
From 9630abafb8d98c636c2f0c5c20fa9cddb23d3da0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 17 Jun 2016 20:50:11 -0400
Subject: [PATCH] Fix Old Sign Conversion
@ -9,7 +9,7 @@ Subject: [PATCH] Fix Old Sign Conversion
This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
diff --git a/src/main/java/net/minecraft/server/DefinedStructure.java b/src/main/java/net/minecraft/server/DefinedStructure.java
index a3dc6fe31..83646341b 100644
index 32020e39d..f13752362 100644
--- a/src/main/java/net/minecraft/server/DefinedStructure.java
+++ b/src/main/java/net/minecraft/server/DefinedStructure.java
@@ -203,9 +203,11 @@ public class DefinedStructure {
@ -34,7 +34,7 @@ index a3dc6fe31..83646341b 100644
public Iterator<IBlockData> iterator() {
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index d2662ae14..e6b79a571 100644
index 6e23d325f..ddea15cfe 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -11,6 +11,7 @@ import org.bukkit.inventory.InventoryHolder; // CraftBukkit
@ -46,10 +46,10 @@ index d2662ae14..e6b79a571 100644
private static final RegistryMaterials<MinecraftKey, Class<? extends TileEntity>> f = new RegistryMaterials();
protected World world;
diff --git a/src/main/java/net/minecraft/server/TileEntitySign.java b/src/main/java/net/minecraft/server/TileEntitySign.java
index 34ade146c..242552c36 100644
index f04b7aa99..50a8d7977 100644
--- a/src/main/java/net/minecraft/server/TileEntitySign.java
+++ b/src/main/java/net/minecraft/server/TileEntitySign.java
@@ -93,13 +93,14 @@ public class TileEntitySign extends TileEntity {
@@ -77,13 +77,14 @@ public class TileEntitySign extends TileEntity {
}
try {
@ -67,5 +67,5 @@ index 34ade146c..242552c36 100644
try {
this.lines[i] = ChatComponentUtils.filterForDisplay(icommandlistener, ichatbasecomponent, (Entity) null);
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 150459125f9aefe49a503c6cb1aa048d03291684 Mon Sep 17 00:00:00 2001
From 2790458a20fcda14067cb339e644baf678aef02b Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 16 Jul 2016 19:11:17 -0500
Subject: [PATCH] Don't lookup game profiles that have no UUID and no name
diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
index 989758cdf..1c619c596 100644
index 924dc63a4..07d39d46a 100644
--- a/src/main/java/net/minecraft/server/UserCache.java
+++ b/src/main/java/net/minecraft/server/UserCache.java
@@ -86,7 +86,7 @@ public class UserCache {
@@ -87,7 +87,7 @@ public class UserCache {
};
gameprofilerepository.findProfilesByNames(new String[] { s}, Agent.MINECRAFT, profilelookupcallback);
@ -18,5 +18,5 @@ index 989758cdf..1c619c596 100644
GameProfile gameprofile = new GameProfile(uuid, s);
--
2.12.2
2.13.0

View File

@ -1,22 +1,22 @@
From 372f6272bcaf410777335b661a2d091b296c12c2 Mon Sep 17 00:00:00 2001
From c07deef294fa84147dfaf65f385f3ed3e78fc82c Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 28 Jul 2016 17:58:53 -0500
Subject: [PATCH] More informative vehicle moved wrongly message
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index dfbae01f4..4b79031f0 100644
index 353e73b15..b8ec71a93 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -343,7 +343,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
if (d10 > org.spigotmc.SpigotConfig.movedWronglyThreshold) { // Spigot
flag1 = true;
- PlayerConnection.LOGGER.warn("{} moved wrongly!", new Object[] { entity.getName()});
- PlayerConnection.LOGGER.warn("{} moved wrongly!", entity.getName());
+ PlayerConnection.LOGGER.warn(entity.getName() + " (vehicle of " + this.player.getName() + ") moved wrongly!"); // Paper - More informative
}
entity.setLocation(d3, d4, d5, f, f1);
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 470600a7c74fb5ee9f01d43ee827e576c98c722e Mon Sep 17 00:00:00 2001
From 8a8cc57b3143fb893806580589ec22d297519155 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 31 Jul 2016 16:33:03 -0500
Subject: [PATCH] Re-track players that dismount from other players
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index ad1bb7bab..4e8efc549 100644
index f4a2e748d..2b01c5395 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -654,6 +654,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@@ -715,6 +715,13 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
if (entity1 != entity && this.playerConnection != null) {
this.playerConnection.a(this.locX, this.locY, this.locZ, this.yaw, this.pitch);
}
@ -23,5 +23,5 @@ index ad1bb7bab..4e8efc549 100644
}
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From c6c96c233b11b2ad11e28e3a11f8a3f7be84440e Mon Sep 17 00:00:00 2001
From 15f78808f7f1771e1ec4edd29f3fb17bbc2fbf64 Mon Sep 17 00:00:00 2001
From: Gabriele C <sgdc3.mail@gmail.com>
Date: Fri, 5 Aug 2016 01:03:08 +0200
Subject: [PATCH] Add setting for proxy online mode status
@ -19,10 +19,10 @@ index 0140d1981..c758bde3f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
index 2ff8a6da0..52e736080 100644
index b943a9b20..8f3b93dc1 100644
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -65,7 +65,8 @@ public class NameReferencingFileConverter {
@@ -66,7 +66,8 @@ public class NameReferencingFileConverter {
}
}), String.class);
@ -33,10 +33,10 @@ index 2ff8a6da0..52e736080 100644
} else {
String[] astring1 = astring;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a958ce998..8ade16865 100644
index f4fd25c29..8f8f5e36f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1336,7 +1336,8 @@ public final class CraftServer implements Server {
@@ -1314,7 +1314,8 @@ public final class CraftServer implements Server {
// Spigot Start
GameProfile profile = null;
// Only fetch an online UUID in online mode
@ -47,5 +47,5 @@ index a958ce998..8ade16865 100644
profile = console.getUserCache().getProfile( name );
}
--
2.12.2
2.13.0

View File

@ -1,14 +1,14 @@
From 8dae01a4e5890255459de98f20d4bc36d50c0aea Mon Sep 17 00:00:00 2001
From 08dcbdf8047ae290ac2c4ab36659bf6a1b41823d Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Sun, 4 Sep 2016 16:35:43 -0500
Subject: [PATCH] Fix AIOOBE in inventory handling
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 4b79031f0..060434f32 100644
index b8ec71a93..bac3ba83d 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -1809,7 +1809,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -1816,7 +1816,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
case CLONE:
if (packetplayinwindowclick.c() == 2) {
click = ClickType.MIDDLE;
@ -18,5 +18,5 @@ index 4b79031f0..060434f32 100644
} else {
Slot slot = this.player.activeContainer.getSlot(packetplayinwindowclick.b());
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From b81c66363a4118495a786c69be2c447d6c0c24d7 Mon Sep 17 00:00:00 2001
From ddf7bf9141ddfb1453d79fbe35f88b1cee457219 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sun, 11 Sep 2016 14:30:57 -0500
Subject: [PATCH] Configurable packet in spam threshold
@ -23,10 +23,10 @@ index c758bde3f..d765607c0 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 060434f32..6281fe4d5 100644
index bac3ba83d..7b8e7f343 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -871,13 +871,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@@ -882,13 +882,14 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
// Spigot start - limit place/interactions
private int limitedPackets;
private long lastLimitedPacket = -1;
@ -44,5 +44,5 @@ index 060434f32..6281fe4d5 100644
limitedPackets = 0;
return true;
--
2.12.2
2.13.0

View File

@ -1,4 +1,4 @@
From 611ccc1d0db15c1a217e6657c25061e186b55fac Mon Sep 17 00:00:00 2001
From 6e44ed8bac401fbec4992cd29181c000a1473c51 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Tue, 20 Sep 2016 00:58:01 +0000
Subject: [PATCH] Configurable flying kick messages
@ -21,27 +21,27 @@ index d765607c0..5b4d715a4 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 6281fe4d5..51d27351d 100644
index 7b8e7f343..d2742df61 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -143,7 +143,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
if (this.B) {
if (++this.C > 80) {
PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", new Object[] { this.player.getName()});
PlayerConnection.LOGGER.warn("{} was kicked for floating too long!", this.player.getName());
- this.disconnect("Flying is not enabled on this server");
+ this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickPlayerMessage); // Paper - use configurable kick message
return;
}
} else {
@@ -162,7 +162,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
if (this.D && this.player.getVehicle().bw() == this.player) {
if (this.D && this.player.getVehicle().bC() == this.player) {
if (++this.E > 80) {
PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", new Object[] { this.player.getName()});
PlayerConnection.LOGGER.warn("{} was kicked for floating a vehicle too long!", this.player.getName());
- this.disconnect("Flying is not enabled on this server");
+ this.disconnect(com.destroystokyo.paper.PaperConfig.flyingKickVehicleMessage); // Paper - use configurable kick message
return;
}
} else {
--
2.12.2
2.13.0

Some files were not shown because too many files have changed in this diff Show More