Update to Minecraft 1.19

This commit is contained in:
md_5 2022-06-08 02:00:00 +10:00
parent b081915002
commit 87c4d13aee
No known key found for this signature in database
GPG key ID: E8E901AC7C617C11
108 changed files with 747 additions and 759 deletions

View file

@ -1,4 +1,4 @@
From 7326ce5e7f476ec5650015c7211ef095778c9f63 Mon Sep 17 00:00:00 2001
From e1f1e32565d35a478588ab055a5af2dbfd353196 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 2 Jun 2013 10:36:24 +1000
Subject: [PATCH] POM Changes
@ -20,7 +20,7 @@ index c658f38f..b979da19 100644
<!-- See http://checkstyle.sourceforge.net/config_imports.html -->
<module name="AvoidStarImport">
diff --git a/pom.xml b/pom.xml
index 2646ad00..0eb50311 100644
index 9a36457e..aed8b24d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,14 +3,14 @@
@ -31,7 +31,7 @@ index 2646ad00..0eb50311 100644
- <artifactId>bukkit</artifactId>
+ <groupId>org.spigotmc</groupId>
+ <artifactId>spigot-api</artifactId>
<version>1.18.2-R0.1-SNAPSHOT</version>
<version>1.19-R0.1-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Bukkit</name>

View file

@ -1,4 +1,4 @@
From 278a8e8369844bbfbdf62b5f96963f20b6d54047 Mon Sep 17 00:00:00 2001
From ca8c2778d18fed3d156237a11ad81bf034be50c9 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 15 May 2017 15:16:15 +1000
Subject: [PATCH] Skeleton API Implementations
@ -37,7 +37,7 @@ index 324e47f3..7015d5ef 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 965a5f3b..d21c4cbe 100644
index d1bb770e..ae53fdc5 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2573,6 +2573,15 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient

View file

@ -1,4 +1,4 @@
From 901d5a3f7bb72e1de2dd59be175aa5c917aae4b8 Mon Sep 17 00:00:00 2001
From 7d9f0af880990365798e59b3de948c4b3dd54689 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 2 Jun 2013 10:42:57 +1000
Subject: [PATCH] Spigot Timings
@ -35,7 +35,7 @@ index 7015d5ef..eb53789a 100644
@NotNull
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index 03d801a9..4bfc2146 100644
index 0577d80a..80209bb8 100644
--- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java
@@ -33,6 +33,7 @@ public abstract class Command {
@ -63,7 +63,7 @@ index 03d801a9..4bfc2146 100644
return true;
}
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index 95bfced6..81e4fa57 100644
index 73906146..e195e74c 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -144,11 +144,15 @@ public class SimpleCommandMap implements CommandMap {
@ -83,7 +83,7 @@ index 95bfced6..81e4fa57 100644
}
diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
index cb020d68..2a145d85 100644
index ed4cbce7..516d7fc7 100644
--- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
@@ -18,23 +18,102 @@ import org.bukkit.plugin.TimedRegisteredListener;
@ -245,10 +245,10 @@ index cb020d68..2a145d85 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 95f4a4d3..77dcfe35 100644
index 5bec3c94..f5710d53 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -358,6 +358,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -357,6 +357,7 @@ public final class SimplePluginManager implements PluginManager {
}
}
@ -257,7 +257,7 @@ index 95f4a4d3..77dcfe35 100644
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 390abd51..a09c3f71 100644
index 39b991ff..047c0304 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -43,6 +43,7 @@ import org.bukkit.plugin.TimedRegisteredListener;

View file

@ -1,4 +1,4 @@
From 5f6fbe6239e24a4cef009c184b538b8a3cdc44cc Mon Sep 17 00:00:00 2001
From e1fc0dc2fd4db4f00031ce9be6d2f09adff16884 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 2 Jun 2013 15:20:49 +1000
Subject: [PATCH] BungeeCord Support

View file

@ -1,4 +1,4 @@
From cf18ec1b85647a4d28e85ed613f32374f444c4d5 Mon Sep 17 00:00:00 2001
From 28819266f54c59c100f81695ddbb824a72f6dca7 Mon Sep 17 00:00:00 2001
From: Andy Shulman <andy.shulman@hotmail.com>
Date: Mon, 15 Apr 2013 20:06:01 -0500
Subject: [PATCH] Define SpawnerSpawnEvent

View file

@ -1,4 +1,4 @@
From b1d1bc0622fe8929883112553d0651e40aab7022 Mon Sep 17 00:00:00 2001
From 7dbfbf41cb5c7f10fb609652522e735ccb920ef6 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 2 Jul 2013 20:32:53 +1000
Subject: [PATCH] Entity Mount and Dismount Events

View file

@ -1,4 +1,4 @@
From ad3c387b35382681d532f58597f0d23e06297a2e Mon Sep 17 00:00:00 2001
From d130a61236c80ed0cf6ae73356c0964b7ee071ec Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sat, 3 Aug 2013 19:20:50 +1000
Subject: [PATCH] Player Collision API

View file

@ -1,4 +1,4 @@
From b2f48ad47b0067dfe13e111b1587063ae997d5df Mon Sep 17 00:00:00 2001
From 4b7cdbd4f13860330c1fac26556b6e477b031b0f Mon Sep 17 00:00:00 2001
From: ninja- <xninja@openmailbox.org>
Date: Tue, 8 Oct 2013 14:35:58 +0200
Subject: [PATCH] Add respawn API.

View file

@ -1,4 +1,4 @@
From e4175635f4085e003d54a477a9abe3fd7664b1da Mon Sep 17 00:00:00 2001
From 08f8f847b666615ac3b425836a941edfb5e5864e Mon Sep 17 00:00:00 2001
From: Tux <write@imaginarycode.com>
Date: Sun, 9 Feb 2014 14:02:11 -0500
Subject: [PATCH] Add support for fetching hidden players

View file

@ -1,11 +1,11 @@
From 21ea4bf92fc48800ddf051ceb6ecc63e8147c48b Mon Sep 17 00:00:00 2001
From 86770744cd095a9b17baeb6c4715c5d703ab6282 Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Sun, 23 Feb 2014 16:16:29 -0400
Subject: [PATCH] Silenceable Lightning API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index d21c4cbe..56ce6f1d 100644
index ae53fdc5..e2a116ce 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2576,6 +2576,29 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient

View file

@ -1,4 +1,4 @@
From 241c6fdf3d132acfa8c43c65fe71f63bf2898db6 Mon Sep 17 00:00:00 2001
From b5d54df5e531f8c04011bdd52280f5404628744d Mon Sep 17 00:00:00 2001
From: ninja <xninja@openmailbox.org>
Date: Tue, 8 Apr 2014 14:01:32 +0200
Subject: [PATCH] Add PlayerSpawnLocationEvent.

View file

@ -1,4 +1,4 @@
From 2d5e43a8ebb668625c6d896c487bbb1929e53867 Mon Sep 17 00:00:00 2001
From 9269922a108a0806f137e18377d90b23396b9fa7 Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Wed, 23 Jul 2014 15:50:36 -0400
Subject: [PATCH] Undeprecate Player#updateInventory()V

View file

@ -1,14 +1,14 @@
From 1c7467398637f847981988533bd3b5b922fa0a90 Mon Sep 17 00:00:00 2001
From d4e1ddd02940e707c6a6e647794a530217319cdf Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 13 Dec 2014 02:59:14 +0100
Subject: [PATCH] BungeeCord Chat API
diff --git a/pom.xml b/pom.xml
index 0eb50311..7a34ef55 100644
index aed8b24d..c9f85885 100644
--- a/pom.xml
+++ b/pom.xml
@@ -51,6 +51,13 @@
@@ -45,6 +45,13 @@
<version>2.8.9</version>
<scope>compile</scope>
</dependency>
@ -22,7 +22,7 @@ index 0eb50311..7a34ef55 100644
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
@@ -189,6 +196,7 @@
@@ -178,6 +185,7 @@
<link>https://guava.dev/releases/31.0.1-jre/api/docs/</link>
<link>https://javadoc.io/doc/org.yaml/snakeyaml/1.30/</link>
<link>https://javadoc.io/doc/org.jetbrains/annotations-java5/23.0.0/</link>
@ -31,7 +31,7 @@ index 0eb50311..7a34ef55 100644
</configuration>
</plugin>
diff --git a/src/main/java/org/bukkit/ChatColor.java b/src/main/java/org/bukkit/ChatColor.java
index 427368a7..44d597d7 100644
index 623bba2e..24ade174 100644
--- a/src/main/java/org/bukkit/ChatColor.java
+++ b/src/main/java/org/bukkit/ChatColor.java
@@ -15,91 +15,223 @@ public enum ChatColor {

View file

@ -1,4 +1,4 @@
From 55bf76f601dbe0309da4610fabaafe278e4530be Mon Sep 17 00:00:00 2001
From 04961b01644093c1627d716d8b74a34707674334 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 13 Jul 2015 19:10:15 +1000
Subject: [PATCH] Add restart API.

View file

@ -1,4 +1,4 @@
From 42dccc7d5e581cc52ede165cc337c0e20af53e24 Mon Sep 17 00:00:00 2001
From c06afeef1680b84ef1db9aa28afbcfa684420197 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Tue, 30 Jul 2019 13:47:34 -0700
Subject: [PATCH] View Distance
@ -6,7 +6,7 @@ Subject: [PATCH] View Distance
This commit allows the retrieval of per world view distances.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 56ce6f1d..81adea0e 100644
index e2a116ce..9fa83c72 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -2573,6 +2573,22 @@ public interface World extends RegionAccessor, WorldInfo, PluginMessageRecipient

View file

@ -1,4 +1,4 @@
From 7b770d51150cdf8d5d820bc0da1d254fea85eabf Mon Sep 17 00:00:00 2001
From c691a0b1722ed22c61a7ef1e121fe6127a3795d9 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 2 Jul 2013 13:07:39 +1000
Subject: [PATCH] POM Changes
@ -34,7 +34,7 @@ index 63914723e..01319e4f7 100644
<!-- See http://checkstyle.sourceforge.net/config_imports.html -->
<module name="AvoidStarImport">
diff --git a/pom.xml b/pom.xml
index fe33bb84d..ac2dbe041 100644
index 3bb77f46b..4d8c2f174 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,13 +1,20 @@
@ -46,7 +46,7 @@ index fe33bb84d..ac2dbe041 100644
+ <groupId>org.spigotmc</groupId>
+ <artifactId>spigot</artifactId>
<packaging>jar</packaging>
<version>1.18.2-R0.1-SNAPSHOT</version>
<version>1.19-R0.1-SNAPSHOT</version>
- <name>CraftBukkit</name>
+ <name>Spigot</name>
<url>https://www.spigotmc.org/</url>
@ -72,7 +72,7 @@ index fe33bb84d..ac2dbe041 100644
<version>${project.version}</version>
<scope>compile</scope>
</dependency>
@@ -202,11 +209,26 @@
@@ -277,11 +284,26 @@
<groupId>net.md-5</groupId>
<artifactId>scriptus</artifactId>
<version>0.4.1</version>
@ -102,7 +102,7 @@ index fe33bb84d..ac2dbe041 100644
<phase>initialize</phase>
<goals>
<goal>describe</goal>
@@ -239,7 +261,7 @@
@@ -314,7 +336,7 @@
<manifestEntries>
<Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
<Implementation-Title>CraftBukkit</Implementation-Title>

View file

@ -1,4 +1,4 @@
From fda59badc338389e2e980287c1adf32d0ad92ca9 Mon Sep 17 00:00:00 2001
From 92f757f0653cb0b802c084a9761a14471ee61b7b Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 2 Jun 2013 15:10:56 +1000
Subject: [PATCH] Skeleton API Implementations
@ -6,10 +6,10 @@ Subject: [PATCH] Skeleton API Implementations
This contains the basic, empty implementations for some Spigot-API extensions. They are included early in the patching progress so that compilation will still succeed midway despite the APIs only being provided by subsequent patches.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 694a1faeb..6c3074b5c 100644
index 398c05b39..033fef65c 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2260,4 +2260,16 @@ public final class CraftServer implements Server {
@@ -2243,4 +2243,16 @@ public final class CraftServer implements Server {
public UnsafeValues getUnsafe() {
return CraftMagicNumbers.INSTANCE;
}
@ -27,10 +27,10 @@ index 694a1faeb..6c3074b5c 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 7e66df390..9fadab92e 100644
index 98131ea56..c4d230b15 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1812,4 +1812,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1820,4 +1820,15 @@ public class CraftWorld extends CraftRegionAccessor implements World {
this.persistentDataContainer.putAll((NBTTagCompound) c);
}
}
@ -84,10 +84,10 @@ index 7fa2588b8..e0acbada8 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 72d8401b2..04c85cf43 100644
index 6589e7b62..78f56eef7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -1083,4 +1083,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1095,4 +1095,15 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
}
return perm;
}
@ -124,10 +124,10 @@ index 9ab9f0a31..e63833dcd 100644
+ // Spigot end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 3d58ca72b..4a2bcdf60 100644
index 726a93f75..38929311d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1897,4 +1897,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1895,4 +1895,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public boolean isAllowingServerListings() {
return getHandle().allowsListing();
}

View file

@ -1,4 +1,4 @@
From 8c07ec6827cf4db05e56859557055c7b0e12b977 Mon Sep 17 00:00:00 2001
From da9f1dcd84d6fa691291a60163e4419f6ea45c87 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 7 Jul 2013 09:32:53 +1000
Subject: [PATCH] Spigot Configuration
@ -6,10 +6,10 @@ Subject: [PATCH] Spigot Configuration
Provides the basic infrastructure to load and save the Spigot configuration file, spigot.yml
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 0339a2858..afb72641d 100644
index 4dea4d905..47782492f 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -190,6 +190,11 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -183,6 +183,11 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
this.setPreventProxyConnections(dedicatedserverproperties.preventProxyConnections);
this.setLocalIp(dedicatedserverproperties.serverIp);
}
@ -21,7 +21,7 @@ index 0339a2858..afb72641d 100644
this.setPvpAllowed(dedicatedserverproperties.pvp);
this.setFlightAllowed(dedicatedserverproperties.allowFlight);
@@ -222,7 +227,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -214,7 +219,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
// CraftBukkit start
@ -31,10 +31,10 @@ index 0339a2858..afb72641d 100644
server.enablePlugins(org.bukkit.plugin.PluginLoadOrder.STARTUP);
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index ccdf9adec..efdb12a2b 100644
index 9847f9736..a8e8ee431 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -141,6 +141,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -147,6 +147,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public List<EntityItem> captureDrops;
public final it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<SpawnCategory> ticksPerSpawnCategory = new it.unimi.dsi.fastutil.objects.Object2LongOpenHashMap<>();
public boolean populating;
@ -42,19 +42,19 @@ index ccdf9adec..efdb12a2b 100644
public CraftWorld getWorld() {
return this.world;
@@ -153,6 +154,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -159,6 +160,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public abstract ResourceKey<WorldDimension> getTypeKey();
protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, Holder<DimensionManager> holder, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env) {
protected World(WorldDataMutable worlddatamutable, ResourceKey<World> resourcekey, Holder<DimensionManager> holder, Supplier<GameProfilerFiller> supplier, boolean flag, boolean flag1, long i, int j, org.bukkit.generator.ChunkGenerator gen, org.bukkit.generator.BiomeProvider biomeProvider, org.bukkit.World.Environment env) {
+ this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.WorldDataServer) worlddatamutable).getLevelName()); // Spigot
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6c3074b5c..0b7519852 100644
index 033fef65c..00b68ed0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -846,6 +846,7 @@ public final class CraftServer implements Server {
@@ -841,6 +841,7 @@ public final class CraftServer implements Server {
logger.log(Level.WARNING, "Failed to load banned-players.json, " + ex.getMessage());
}
@ -62,7 +62,7 @@ index 6c3074b5c..0b7519852 100644
for (WorldServer world : console.getAllLevels()) {
world.serverLevelData.setDifficulty(config.difficulty);
world.setSpawnSettings(config.spawnMonsters, config.spawnAnimals);
@@ -860,11 +861,13 @@ public final class CraftServer implements Server {
@@ -855,11 +856,13 @@ public final class CraftServer implements Server {
}
}
}
@ -77,7 +77,7 @@ index 6c3074b5c..0b7519852 100644
ignoreVanillaPermissions = commandsConfiguration.getBoolean("ignore-vanilla-permissions");
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 1fff0fea1..1580eaf72 100644
index 6f309ba17..e8b2178dc 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -121,6 +121,14 @@ public class Main {

View file

@ -1,4 +1,4 @@
From e4aa0e75385053faccbe646aa0c5d2c831fea252 Mon Sep 17 00:00:00 2001
From d9844043033b0facd68e65db5cdd90b5dc6fb1de Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 7 Mar 2016 22:14:13 +1100
Subject: [PATCH] Crop Growth Rates
@ -6,10 +6,10 @@ Subject: [PATCH] Crop Growth Rates
Allows configuring the growth rates of crops as a percentage of their normal growth rate.
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
index 5c4fdcec8..ec656425d 100644
index b32b2faf4..58715c8c0 100644
--- a/src/main/java/net/minecraft/world/level/block/Block.java
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
@@ -532,6 +532,18 @@ public class Block extends BlockBase implements IMaterial {
@@ -547,6 +547,18 @@ public class Block extends BlockBase implements IMaterial {
}
// CraftBukkit end
@ -29,20 +29,20 @@ index 5c4fdcec8..ec656425d 100644
private final IBlockData first;
diff --git a/src/main/java/net/minecraft/world/level/block/BlockBamboo.java b/src/main/java/net/minecraft/world/level/block/BlockBamboo.java
index ccddd6cb2..39b711839 100644
index 7f9a098a2..812658df3 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockBamboo.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockBamboo.java
@@ -132,7 +132,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement {
@@ -127,7 +127,7 @@ public class BlockBamboo extends Block implements IBlockFragilePlantElement {
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
if ((Integer) iblockdata.getValue(BlockBamboo.STAGE) == 0) {
- if (random.nextInt(3) == 0 && worldserver.isEmptyBlock(blockposition.above()) && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) {
+ if (random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.bambooModifier) * 3)) == 0 && worldserver.isEmptyBlock(blockposition.above()) && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) { // Spigot
- if (randomsource.nextInt(3) == 0 && worldserver.isEmptyBlock(blockposition.above()) && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) {
+ if (randomsource.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.bambooModifier) * 3)) == 0 && worldserver.isEmptyBlock(blockposition.above()) && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) { // Spigot
int i = this.getHeightBelowUpToMax(worldserver, blockposition) + 1;
if (i < 16) {
diff --git a/src/main/java/net/minecraft/world/level/block/BlockCactus.java b/src/main/java/net/minecraft/world/level/block/BlockCactus.java
index 9ba5e5b0b..73a227026 100644
index 028780661..189594818 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockCactus.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockCactus.java
@@ -59,7 +59,7 @@ public class BlockCactus extends Block {
@ -55,27 +55,27 @@ index 9ba5e5b0b..73a227026 100644
IBlockData iblockdata1 = (IBlockData) iblockdata.setValue(BlockCactus.AGE, 0);
diff --git a/src/main/java/net/minecraft/world/level/block/BlockCocoa.java b/src/main/java/net/minecraft/world/level/block/BlockCocoa.java
index 7894d3e80..8cb8a80e7 100644
index f7577aafb..94797e511 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockCocoa.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockCocoa.java
@@ -52,7 +52,7 @@ public class BlockCocoa extends BlockFacingHorizontal implements IBlockFragilePl
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if (worldserver.random.nextInt(5) == 0) {
+ if (worldserver.random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.cocoaModifier) * 5)) == 0) { // Spigot
int i = (Integer) iblockdata.getValue(BlockCocoa.AGE);
if (i < 2) {
diff --git a/src/main/java/net/minecraft/world/level/block/BlockCrops.java b/src/main/java/net/minecraft/world/level/block/BlockCrops.java
index 5ce3500a9..688aed1da 100644
index 1792ae91d..34006916e 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockCrops.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockCrops.java
@@ -77,7 +77,20 @@ public class BlockCrops extends BlockPlant implements IBlockFragilePlantElement
if (i < this.getMaxAge()) {
float f = getGrowthSpeed(this, worldserver, blockposition);
- if (random.nextInt((int) (25.0F / f) + 1) == 0) {
- if (randomsource.nextInt((int) (25.0F / f) + 1) == 0) {
+ // Spigot start
+ int modifier;
+ if (this == Blocks.BEETROOTS) {
@ -88,52 +88,52 @@ index 5ce3500a9..688aed1da 100644
+ modifier = worldserver.spigotConfig.wheatModifier;
+ }
+
+ if (random.nextInt((int) ((100.0F / modifier) * (25.0F / f)) + 1) == 0) {
+ if (randomsource.nextInt((int) ((100.0F / modifier) * (25.0F / f)) + 1) == 0) {
+ // Spigot end
CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, this.getStateForAge(i + 1), 2); // CraftBukkit
}
}
diff --git a/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java b/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java
index d1024594b..1aa49072a 100644
index c4bf2c852..97fce1f4c 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockGrowingTop.java
@@ -40,7 +40,7 @@ public abstract class BlockGrowingTop extends BlockGrowingAbstract implements IB
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if ((Integer) iblockdata.getValue(BlockGrowingTop.AGE) < 25 && random.nextDouble() < this.growPerTickProbability) {
+ if ((Integer) iblockdata.getValue(BlockGrowingTop.AGE) < 25 && random.nextDouble() < (100.0D / worldserver.spigotConfig.kelpModifier) * this.growPerTickProbability) { // Spigot
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if ((Integer) iblockdata.getValue(BlockGrowingTop.AGE) < 25 && randomsource.nextDouble() < this.growPerTickProbability) {
+ if ((Integer) iblockdata.getValue(BlockGrowingTop.AGE) < 25 && randomsource.nextDouble() < (100.0D / worldserver.spigotConfig.kelpModifier) * this.growPerTickProbability) { // Spigot
BlockPosition blockposition1 = blockposition.relative(this.growthDirection);
if (this.canGrowInto(worldserver.getBlockState(blockposition1))) {
diff --git a/src/main/java/net/minecraft/world/level/block/BlockMushroom.java b/src/main/java/net/minecraft/world/level/block/BlockMushroom.java
index 17a5fed09..2999e3981 100644
index b8fd3b4da..c7650774f 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockMushroom.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockMushroom.java
@@ -38,7 +38,7 @@ public class BlockMushroom extends BlockPlant implements IBlockFragilePlantEleme
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if (random.nextInt(25) == 0) {
+ if (random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.mushroomModifier) * 25)) == 0) { // Spigot
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if (randomsource.nextInt(25) == 0) {
+ if (randomsource.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.mushroomModifier) * 25)) == 0) { // Spigot
int i = 5;
boolean flag = true;
Iterator iterator = BlockPosition.betweenClosed(blockposition.offset(-4, -1, -4), blockposition.offset(4, 1, 4)).iterator();
diff --git a/src/main/java/net/minecraft/world/level/block/BlockNetherWart.java b/src/main/java/net/minecraft/world/level/block/BlockNetherWart.java
index 80641b329..6d4ee444a 100644
index 4c98e09c2..888ad41b3 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockNetherWart.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockNetherWart.java
@@ -44,7 +44,7 @@ public class BlockNetherWart extends BlockPlant {
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
int i = (Integer) iblockdata.getValue(BlockNetherWart.AGE);
- if (i < 3 && random.nextInt(10) == 0) {
+ if (i < 3 && random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.wartModifier) * 10)) == 0) { // Spigot
- if (i < 3 && randomsource.nextInt(10) == 0) {
+ if (i < 3 && randomsource.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.wartModifier) * 10)) == 0) { // Spigot
iblockdata = (IBlockData) iblockdata.setValue(BlockNetherWart.AGE, i + 1);
org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, iblockdata, 2); // CraftBukkit
}
diff --git a/src/main/java/net/minecraft/world/level/block/BlockReed.java b/src/main/java/net/minecraft/world/level/block/BlockReed.java
index 9d6edb867..d4359a8c6 100644
index 442200504..adb54833e 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockReed.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockReed.java
@@ -55,7 +55,7 @@ public class BlockReed extends Block {
@ -146,55 +146,55 @@ index 9d6edb867..d4359a8c6 100644
worldserver.setBlock(blockposition, (IBlockData) iblockdata.setValue(BlockReed.AGE, 0), 4);
} else {
diff --git a/src/main/java/net/minecraft/world/level/block/BlockSapling.java b/src/main/java/net/minecraft/world/level/block/BlockSapling.java
index a17f5034b..582224dd9 100644
index d0c89fb8d..30dc0d3ab 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockSapling.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockSapling.java
@@ -42,7 +42,7 @@ public class BlockSapling extends BlockPlant implements IBlockFragilePlantElemen
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if (worldserver.getMaxLocalRawBrightness(blockposition.above()) >= 9 && random.nextInt(7) == 0) {
+ if (worldserver.getMaxLocalRawBrightness(blockposition.above()) >= 9 && random.nextInt(Math.max(2, (int) (((100.0F / worldserver.spigotConfig.saplingModifier) * 7) + 0.5F))) == 0) { // Spigot
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if (worldserver.getMaxLocalRawBrightness(blockposition.above()) >= 9 && randomsource.nextInt(7) == 0) {
+ if (worldserver.getMaxLocalRawBrightness(blockposition.above()) >= 9 && randomsource.nextInt(Math.max(2, (int) (((100.0F / worldserver.spigotConfig.saplingModifier) * 7) + 0.5F))) == 0) { // Spigot
// CraftBukkit start
worldserver.captureTreeGeneration = true;
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/level/block/BlockStem.java b/src/main/java/net/minecraft/world/level/block/BlockStem.java
index ccf0817c6..7814d5749 100644
index e8a25e164..734384910 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockStem.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockStem.java
@@ -53,7 +53,7 @@ public class BlockStem extends BlockPlant implements IBlockFragilePlantElement {
if (worldserver.getRawBrightness(blockposition, 0) >= 9) {
float f = BlockCrops.getGrowthSpeed(this, worldserver, blockposition);
- if (random.nextInt((int) (25.0F / f) + 1) == 0) {
+ if (random.nextInt((int) ((100.0F / (this == Blocks.PUMPKIN_STEM ? worldserver.spigotConfig.pumpkinModifier : worldserver.spigotConfig.melonModifier)) * (25.0F / f)) + 1) == 0) { // Spigot
- if (randomsource.nextInt((int) (25.0F / f) + 1) == 0) {
+ if (randomsource.nextInt((int) ((100.0F / (this == Blocks.PUMPKIN_STEM ? worldserver.spigotConfig.pumpkinModifier : worldserver.spigotConfig.melonModifier)) * (25.0F / f)) + 1) == 0) { // Spigot
int i = (Integer) iblockdata.getValue(BlockStem.AGE);
if (i < 7) {
diff --git a/src/main/java/net/minecraft/world/level/block/BlockSweetBerryBush.java b/src/main/java/net/minecraft/world/level/block/BlockSweetBerryBush.java
index 94678f260..b7874b54b 100644
index 480110fb0..7bc09798b 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockSweetBerryBush.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockSweetBerryBush.java
@@ -66,7 +66,7 @@ public class BlockSweetBerryBush extends BlockPlant implements IBlockFragilePlan
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
@@ -67,7 +67,7 @@ public class BlockSweetBerryBush extends BlockPlant implements IBlockFragilePlan
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
int i = (Integer) iblockdata.getValue(BlockSweetBerryBush.AGE);
- if (i < 3 && random.nextInt(5) == 0 && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) {
+ if (i < 3 && random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.sweetBerryModifier) * 5)) == 0 && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) { // Spigot
CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, (IBlockData) iblockdata.setValue(BlockSweetBerryBush.AGE, i + 1), 2); // CraftBukkit
}
- if (i < 3 && randomsource.nextInt(5) == 0 && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) {
+ if (i < 3 && randomsource.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.sweetBerryModifier) * 5)) == 0 && worldserver.getRawBrightness(blockposition.above(), 0) >= 9) { // Spigot
IBlockData iblockdata1 = (IBlockData) iblockdata.setValue(BlockSweetBerryBush.AGE, i + 1);
if (!CraftEventFactory.handleBlockGrowEvent(worldserver, blockposition, iblockdata1, 2)) return; // CraftBukkit
diff --git a/src/main/java/net/minecraft/world/level/block/BlockVine.java b/src/main/java/net/minecraft/world/level/block/BlockVine.java
index 0483b0cdf..13c60e5f6 100644
index 488e8dc32..2b2557ae7 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockVine.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockVine.java
@@ -179,7 +179,7 @@ public class BlockVine extends Block {
@@ -177,7 +177,7 @@ public class BlockVine extends Block {
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if (random.nextInt(4) == 0) {
+ if (random.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.vineModifier) * 4)) == 0) { // Spigot
EnumDirection enumdirection = EnumDirection.getRandom(random);
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if (randomsource.nextInt(4) == 0) {
+ if (randomsource.nextInt(Math.max(1, (int) (100.0F / worldserver.spigotConfig.vineModifier) * 4)) == 0) { // Spigot
EnumDirection enumdirection = EnumDirection.getRandom(randomsource);
BlockPosition blockposition1 = blockposition.above();
BlockPosition blockposition2;
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java

View file

@ -1,4 +1,4 @@
From 67c8a5b5f6e7d0f01b54a8639e7208a19858fa31 Mon Sep 17 00:00:00 2001
From 40381c624bcce2b49f2ad9d321027660391c6907 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sat, 23 Mar 2013 09:46:33 +1100
Subject: [PATCH] Merge tweaks and configuration
@ -6,10 +6,10 @@ Subject: [PATCH] Merge tweaks and configuration
This allows the merging of Experience orbs, as well as the configuration of the merge radius of items. Additionally it refactors the merge algorithm to be a better experience for players.
diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
index 26ccf8d33..2e93c1e67 100644
index 6b74c30f0..f4b1245fc 100644
--- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java
+++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
@@ -199,7 +199,10 @@ public class EntityItem extends Entity {
@@ -209,7 +209,10 @@ public class EntityItem extends Entity {
private void mergeWithNeighbours() {
if (this.isMergable()) {
@ -21,7 +21,7 @@ index 26ccf8d33..2e93c1e67 100644
return entityitem != this && entityitem.isMergable();
});
Iterator iterator = list.iterator();
@@ -229,7 +232,7 @@ public class EntityItem extends Entity {
@@ -239,7 +242,7 @@ public class EntityItem extends Entity {
ItemStack itemstack1 = entityitem.getItem();
if (Objects.equals(this.getOwner(), entityitem.getOwner()) && areMergable(itemstack, itemstack1)) {
@ -31,7 +31,7 @@ index 26ccf8d33..2e93c1e67 100644
} else {
merge(entityitem, itemstack1, this, itemstack);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 9b4c6c130..6ff3a2440 100644
index 8dba44903..c19316b58 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -626,6 +626,23 @@ public class CraftEventFactory {

View file

@ -1,4 +1,4 @@
From 2cd493c507d0b7277a917c2adc7bb838b4ec9983 Mon Sep 17 00:00:00 2001
From 46b5dd5c10882e0f2aeca49a33da0a72b7f2fd7f Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Tue, 25 Mar 2014 16:10:01 +1100
Subject: [PATCH] Async Operation Catching
@ -6,10 +6,10 @@ Subject: [PATCH] Async Operation Catching
Catch and throw an exception when a potentially unsafe operation occurs on a thread other than the main server thread.
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
index a1f7dd777..1681b9771 100644
index 19af5adc1..746942704 100644
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
@@ -1231,6 +1231,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1270,6 +1270,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
protected void addEntity(Entity entity) {
@ -17,7 +17,7 @@ index a1f7dd777..1681b9771 100644
if (!(entity instanceof EntityComplexPart)) {
EntityTypes<?> entitytypes = entity.getType();
int i = entitytypes.clientTrackingRange() * 16;
@@ -1266,6 +1267,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1305,6 +1306,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
protected void removeEntity(Entity entity) {
@ -25,7 +25,7 @@ index a1f7dd777..1681b9771 100644
if (entity instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) entity;
@@ -1485,6 +1487,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1524,6 +1526,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
public void removePlayer(EntityPlayer entityplayer) {
@ -33,19 +33,19 @@ index a1f7dd777..1681b9771 100644
if (this.seenBy.remove(entityplayer.connection)) {
this.serverEntity.removePairing(entityplayer);
}
@@ -1492,6 +1495,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1531,6 +1534,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
public void updatePlayer(EntityPlayer entityplayer) {
+ org.spigotmc.AsyncCatcher.catchOp("player tracker update"); // Spigot
if (entityplayer != this.entity) {
Vec3D vec3d = entityplayer.position().subtract(this.entity.position()); // MC-155077, SPIGOT-5113
Vec3D vec3d = entityplayer.position().subtract(this.entity.position());
double d0 = (double) Math.min(this.getEffectiveRange(), (PlayerChunkMap.this.viewDistance - 1) * 16);
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index f300ea003..ff29a6961 100644
index d63981fb2..c32db5324 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -971,6 +971,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -990,6 +990,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
// CraftBukkit start
private boolean addEntity(Entity entity, CreatureSpawnEvent.SpawnReason spawnReason) {
@ -53,7 +53,7 @@ index f300ea003..ff29a6961 100644
if (entity.isRemoved()) {
// WorldServer.LOGGER.warn("Tried to add entity {} but it was marked as removed already", EntityTypes.getKey(entity.getType())); // CraftBukkit
return false;
@@ -1783,6 +1784,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1861,6 +1862,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@Override
public LevelEntityGetter<Entity> getEntities() {
@ -61,7 +61,7 @@ index f300ea003..ff29a6961 100644
return this.entityManager.getEntityGetter();
}
@@ -1856,6 +1858,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1934,6 +1936,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void onTrackingStart(Entity entity) {
@ -69,7 +69,7 @@ index f300ea003..ff29a6961 100644
WorldServer.this.getChunkSource().addEntity(entity);
if (entity instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) entity;
@@ -1892,6 +1895,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1971,6 +1974,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void onTrackingEnd(Entity entity) {
@ -78,10 +78,10 @@ index f300ea003..ff29a6961 100644
if (entity instanceof EntityPlayer) {
EntityPlayer entityplayer = (EntityPlayer) entity;
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
index 0b1283018..f656694af 100644
index 485b4769e..58d5f2c6f 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -1068,6 +1068,7 @@ public abstract class EntityLiving extends Entity {
@@ -1091,6 +1091,7 @@ public abstract class EntityLiving extends Entity {
}
public boolean addEffect(MobEffect mobeffect, @Nullable Entity entity, EntityPotionEffectEvent.Cause cause) {
@ -90,10 +90,10 @@ index 0b1283018..f656694af 100644
effectsToProcess.add(new ProcessableEffect(mobeffect, cause));
return true;
diff --git a/src/main/java/net/minecraft/world/item/crafting/CraftingManager.java b/src/main/java/net/minecraft/world/item/crafting/CraftingManager.java
index 5339ad41f..60759aa77 100644
index 33aa0fd67..1154da987 100644
--- a/src/main/java/net/minecraft/world/item/crafting/CraftingManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/CraftingManager.java
@@ -84,6 +84,7 @@ public class CraftingManager extends ResourceDataJson {
@@ -86,6 +86,7 @@ public class CraftingManager extends ResourceDataJson {
// CraftBukkit start
public void addRecipe(IRecipe<?> irecipe) {
@ -102,10 +102,10 @@ index 5339ad41f..60759aa77 100644
if (byName.containsKey(irecipe.getId()) || map.containsKey(irecipe.getId())) {
diff --git a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
index 44402dc13..7e1529ec9 100644
index 6f1f30a0c..6de70bc09 100644
--- a/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
+++ b/src/main/java/net/minecraft/world/level/block/state/BlockBase.java
@@ -136,11 +136,14 @@ public abstract class BlockBase {
@@ -137,11 +137,14 @@ public abstract class BlockBase {
/** @deprecated */
@Deprecated
@ -122,10 +122,10 @@ index 44402dc13..7e1529ec9 100644
world.removeBlockEntity(blockposition);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 0b7519852..00cd8f712 100644
index 00b68ed0b..e32539c49 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -801,6 +801,7 @@ public final class CraftServer implements Server {
@@ -796,6 +796,7 @@ public final class CraftServer implements Server {
public boolean dispatchCommand(CommandSender sender, String commandLine) {
Validate.notNull(sender, "Sender cannot be null");
Validate.notNull(commandLine, "CommandLine cannot be null");
@ -134,10 +134,10 @@ index 0b7519852..00cd8f712 100644
if (commandMap.dispatch(sender, commandLine)) {
return true;
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 469213782..7809b3a42 100644
index c4d230b15..27550804f 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -256,6 +256,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -259,6 +259,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean unloadChunkRequest(int x, int z) {
@ -145,7 +145,7 @@ index 469213782..7809b3a42 100644
if (isChunkLoaded(x, z)) {
world.getChunkSource().removeRegionTicket(TicketType.PLUGIN, new ChunkCoordIntPair(x, z), 1, Unit.INSTANCE);
}
@@ -264,6 +265,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -267,6 +268,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
private boolean unloadChunk0(int x, int z, boolean save) {
@ -153,7 +153,7 @@ index 469213782..7809b3a42 100644
if (!isChunkLoaded(x, z)) {
return true;
}
@@ -278,6 +280,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -281,6 +283,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean regenerateChunk(int x, int z) {
@ -161,7 +161,7 @@ index 469213782..7809b3a42 100644
throw new UnsupportedOperationException("Not supported in this Minecraft version! Unless you can fix it, this is not a bug :)");
/*
if (!unloadChunk0(x, z, false)) {
@@ -330,6 +333,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -333,6 +336,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public boolean loadChunk(int x, int z, boolean generate) {
@ -169,7 +169,7 @@ index 469213782..7809b3a42 100644
IChunkAccess chunk = world.getChunkSource().getChunk(x, z, generate ? ChunkStatus.FULL : ChunkStatus.EMPTY, true);
// If generate = false, but the chunk already exists, we will get this back.
@@ -824,6 +828,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -832,6 +836,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public Collection<Entity> getNearbyEntities(BoundingBox boundingBox, Predicate<Entity> filter) {
@ -177,7 +177,7 @@ index 469213782..7809b3a42 100644
Validate.notNull(boundingBox, "Bounding box is null!");
AxisAlignedBB bb = new AxisAlignedBB(boundingBox.getMinX(), boundingBox.getMinY(), boundingBox.getMinZ(), boundingBox.getMaxX(), boundingBox.getMaxY(), boundingBox.getMaxZ());
@@ -978,6 +983,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -986,6 +991,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@Override
public void save() {
@ -186,10 +186,10 @@ index 469213782..7809b3a42 100644
boolean oldSave = world.noSave;
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 04c85cf43..b679deee7 100644
index 78f56eef7..2b95bfe26 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -535,6 +535,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -547,6 +547,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@Override
public List<org.bukkit.entity.Entity> getNearbyEntities(double x, double y, double z) {
Preconditions.checkState(!entity.generation, "Cannot get nearby entities during world generation");
@ -198,10 +198,10 @@ index 04c85cf43..b679deee7 100644
List<Entity> notchEntityList = entity.level.getEntities(entity, entity.getBoundingBox().inflate(x, y, z), Predicates.alwaysTrue());
List<org.bukkit.entity.Entity> bukkitEntityList = new java.util.ArrayList<org.bukkit.entity.Entity>(notchEntityList.size());
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 4a2bcdf60..00028074c 100644
index 38929311d..8a6f6e11a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -361,6 +361,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -359,6 +359,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public void kickPlayer(String message) {

View file

@ -1,4 +1,4 @@
From 7fc1156656c38c8b9ceaf9001a4f428d919d17ed Mon Sep 17 00:00:00 2001
From 88816e4189357dbf3ea6c3069582cadb0cba9f32 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sat, 23 Mar 2013 09:52:41 +1100
Subject: [PATCH] View Distance
@ -6,13 +6,13 @@ Subject: [PATCH] View Distance
This commit allows the user to select per world view distances.
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index ff29a6961..aafc24c4e 100644
index c32db5324..85f2aa1b3 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -252,8 +252,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -268,8 +268,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.entityManager = new PersistentEntitySectionManager<>(Entity.class, new WorldServer.a(), entitypersistentstorage);
DefinedStructureManager definedstructuremanager = minecraftserver.getStructureManager();
StructureTemplateManager structuretemplatemanager = minecraftserver.getStructureManager();
- int j = minecraftserver.getPlayerList().getViewDistance();
- int k = minecraftserver.getPlayerList().getSimulationDistance();
+ int j = this.spigotConfig.viewDistance; // Spigot
@ -20,47 +20,34 @@ index ff29a6961..aafc24c4e 100644
PersistentEntitySectionManager persistententitysectionmanager = this.entityManager;
Objects.requireNonNull(this.entityManager);
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index b4dfc295d..780a7f2ed 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1497,7 +1497,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
BlockPosition blockposition = movingobjectpositionblock.getBlockPos();
Vec3D vec3d1 = vec3d.subtract(Vec3D.atCenterOf(blockposition));
- if (this.player.level.getServer() != null && this.player.chunkPosition().getChessboardDistance(new ChunkCoordIntPair(blockposition)) < this.player.level.getServer().getPlayerList().getViewDistance()) {
+ if (this.player.level.getServer() != null && this.player.chunkPosition().getChessboardDistance(new ChunkCoordIntPair(blockposition)) < this.player.level.spigotConfig.viewDistance) { // Spigot
double d0 = 1.0000001D;
if (Math.abs(vec3d1.x()) < 1.0000001D && Math.abs(vec3d1.y()) < 1.0000001D && Math.abs(vec3d1.z()) < 1.0000001D) {
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 1088fa0ed..b5dc8181b 100644
index 1f759e818..70f53a49e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -222,7 +222,8 @@ public abstract class PlayerList {
@@ -226,7 +226,8 @@ public abstract class PlayerList {
boolean flag = gamerules.getBoolean(GameRules.RULE_DO_IMMEDIATE_RESPAWN);
boolean flag1 = gamerules.getBoolean(GameRules.RULE_REDUCEDDEBUGINFO);
- playerconnection.send(new PacketPlayOutLogin(entityplayer.getId(), worlddata.isHardcore(), entityplayer.gameMode.getGameModeForPlayer(), entityplayer.gameMode.getPreviousGameModeForPlayer(), this.server.levelKeys(), this.registryHolder, worldserver1.dimensionTypeRegistration(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), this.getMaxPlayers(), this.viewDistance, this.simulationDistance, flag1, !flag, worldserver1.isDebug(), worldserver1.isFlat()));
- playerconnection.send(new PacketPlayOutLogin(entityplayer.getId(), worlddata.isHardcore(), entityplayer.gameMode.getGameModeForPlayer(), entityplayer.gameMode.getPreviousGameModeForPlayer(), this.server.levelKeys(), this.registryHolder, worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), this.getMaxPlayers(), this.viewDistance, this.simulationDistance, flag1, !flag, worldserver1.isDebug(), worldserver1.isFlat(), entityplayer.getLastDeathLocation()));
+ // Spigot - view distance
+ playerconnection.send(new PacketPlayOutLogin(entityplayer.getId(), worlddata.isHardcore(), entityplayer.gameMode.getGameModeForPlayer(), entityplayer.gameMode.getPreviousGameModeForPlayer(), this.server.levelKeys(), this.registryHolder, worldserver1.dimensionTypeRegistration(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), this.getMaxPlayers(), worldserver1.spigotConfig.viewDistance, worldserver1.spigotConfig.simulationDistance, flag1, !flag, worldserver1.isDebug(), worldserver1.isFlat()));
+ playerconnection.send(new PacketPlayOutLogin(entityplayer.getId(), worlddata.isHardcore(), entityplayer.gameMode.getGameModeForPlayer(), entityplayer.gameMode.getPreviousGameModeForPlayer(), this.server.levelKeys(), this.registryHolder, worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), this.getMaxPlayers(), worldserver1.spigotConfig.viewDistance, worldserver1.spigotConfig.simulationDistance, flag1, !flag, worldserver1.isDebug(), worldserver1.isFlat(), entityplayer.getLastDeathLocation()));
entityplayer.getBukkitEntity().sendSupportedChannels(); // CraftBukkit
playerconnection.send(new PacketPlayOutCustomPayload(PacketPlayOutCustomPayload.BRAND, (new PacketDataSerializer(Unpooled.buffer())).writeUtf(this.getServer().getServerModName())));
playerconnection.send(new PacketPlayOutServerDifficulty(worlddata.getDifficulty(), worlddata.isDifficultyLocked()));
@@ -743,6 +744,8 @@ public abstract class PlayerList {
@@ -747,6 +748,8 @@ public abstract class PlayerList {
// CraftBukkit start
WorldData worlddata = worldserver1.getLevelData();
entityplayer1.connection.send(new PacketPlayOutRespawn(worldserver1.dimensionTypeRegistration(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag));
entityplayer1.connection.send(new PacketPlayOutRespawn(worldserver1.dimensionTypeId(), worldserver1.dimension(), BiomeManager.obfuscateSeed(worldserver1.getSeed()), entityplayer1.gameMode.getGameModeForPlayer(), entityplayer1.gameMode.getPreviousGameModeForPlayer(), worldserver1.isDebug(), worldserver1.isFlat(), flag, entityplayer1.getLastDeathLocation()));
+ entityplayer1.connection.send(new PacketPlayOutViewDistance(worldserver1.spigotConfig.viewDistance)); // Spigot
+ entityplayer1.connection.send(new ClientboundSetSimulationDistancePacket(worldserver1.spigotConfig.simulationDistance)); // Spigot
entityplayer1.spawnIn(worldserver1);
entityplayer1.unsetRemoved();
entityplayer1.connection.teleport(new Location(worldserver1.getWorld(), entityplayer1.getX(), entityplayer1.getY(), entityplayer1.getZ(), entityplayer1.getYRot(), entityplayer1.getXRot()));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 27a072391..72e29db0a 100644
index 27550804f..0d5122750 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1819,6 +1819,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1827,6 +1827,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
}
}

View file

@ -1,4 +1,4 @@
From d9680678aa101bb2855fa18ff313e93aa8dca6dd Mon Sep 17 00:00:00 2001
From a1663e96e2ff713a21e3e526d64297ee3075ffd7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 10 Jan 2013 00:18:11 -0500
Subject: [PATCH] Spigot Timings
@ -6,10 +6,10 @@ Subject: [PATCH] Spigot Timings
Overhauls the Timings System adding performance tracking all around the Minecraft Server
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index b25f46f14..e0282b0ab 100644
index d6a0a52eb..45d3e3db3 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -183,6 +183,8 @@ import org.bukkit.craftbukkit.generator.CustomWorldChunkManager;
@@ -180,6 +180,8 @@ import org.bukkit.craftbukkit.generator.CustomWorldChunkManager;
import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end
@ -18,7 +18,7 @@ index b25f46f14..e0282b0ab 100644
public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTask> implements ICommandListener, AutoCloseable {
public static final Logger LOGGER = LogUtils.getLogger();
@@ -1189,6 +1191,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1149,6 +1151,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public void onServerExit() {}
public void tickServer(BooleanSupplier booleansupplier) {
@ -26,7 +26,7 @@ index b25f46f14..e0282b0ab 100644
long i = SystemUtils.getNanos();
++this.tickCount;
@@ -1216,11 +1219,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1176,11 +1179,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
if (autosavePeriod > 0 && this.tickCount % autosavePeriod == 0) { // CraftBukkit
@ -40,7 +40,7 @@ index b25f46f14..e0282b0ab 100644
}
this.profiler.push("tallying");
@@ -1231,21 +1236,30 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1191,21 +1196,30 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.frameTimer.logFrameDuration(i1 - i);
this.profiler.pop();
@ -71,7 +71,7 @@ index b25f46f14..e0282b0ab 100644
// Send time updates to everyone, it will get the right time from the world the player is in.
if (this.tickCount % 20 == 0) {
for (int i = 0; i < this.getPlayerList().players.size(); ++i) {
@@ -1253,6 +1267,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1213,6 +1227,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
entityplayer.connection.send(new PacketPlayOutUpdateTime(entityplayer.level.getGameTime(), entityplayer.getPlayerTime(), entityplayer.level.getGameRules().getBoolean(GameRules.RULE_DAYLIGHT))); // Add support for per player time
}
}
@ -79,7 +79,7 @@ index b25f46f14..e0282b0ab 100644
while (iterator.hasNext()) {
WorldServer worldserver = (WorldServer) iterator.next();
@@ -1271,7 +1286,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1231,7 +1246,9 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.profiler.push("tick");
try {
@ -89,7 +89,7 @@ index b25f46f14..e0282b0ab 100644
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception ticking world");
@@ -1284,18 +1301,24 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1244,18 +1261,24 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
this.profiler.popPush("connection");
@ -115,10 +115,10 @@ index b25f46f14..e0282b0ab 100644
this.profiler.pop();
}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index afb72641d..b7f8e4d2a 100644
index 47782492f..19f69098b 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -67,6 +67,7 @@ import org.apache.logging.log4j.Level;
@@ -64,6 +64,7 @@ import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.io.IoBuilder;
import org.bukkit.command.CommandSender;
@ -126,7 +126,7 @@ index afb72641d..b7f8e4d2a 100644
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.event.server.RemoteServerCommandEvent;
// CraftBukkit end
@@ -432,6 +433,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -397,6 +398,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
public void handleConsoleInputs() {
@ -134,7 +134,7 @@ index afb72641d..b7f8e4d2a 100644
while (!this.consoleInput.isEmpty()) {
ServerCommand servercommand = (ServerCommand) this.consoleInput.remove(0);
@@ -446,6 +448,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -411,6 +413,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
// CraftBukkit end
}
@ -143,10 +143,10 @@ index afb72641d..b7f8e4d2a 100644
@Override
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
index 355103da3..a9a894d3b 100644
index 86791fccb..8fd5501a7 100644
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
@@ -144,11 +144,13 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -145,11 +145,13 @@ public class ChunkProviderServer extends IChunkProvider {
}
gameprofilerfiller.incrementCounter("getChunkCacheMiss");
@ -160,7 +160,7 @@ index 355103da3..a9a894d3b 100644
ichunkaccess = (IChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
return ichunkaccess1;
}, (playerchunk_failure) -> {
@@ -373,15 +375,19 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -374,15 +376,19 @@ public class ChunkProviderServer extends IChunkProvider {
@Override
public void tick(BooleanSupplier booleansupplier, boolean flag) {
this.level.getProfiler().push("purge");
@ -180,7 +180,7 @@ index 355103da3..a9a894d3b 100644
this.level.getProfiler().pop();
this.clearCache();
}
@@ -439,7 +445,9 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -440,7 +446,9 @@ public class ChunkProviderServer extends IChunkProvider {
}
if (this.level.shouldTickBlocksAt(chunkcoordintpair.toLong())) {
@ -190,7 +190,7 @@ index 355103da3..a9a894d3b 100644
}
}
}
@@ -455,7 +463,9 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -456,7 +464,9 @@ public class ChunkProviderServer extends IChunkProvider {
});
gameprofilerfiller.pop();
gameprofilerfiller.pop();
@ -201,18 +201,18 @@ index 355103da3..a9a894d3b 100644
}
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index aafc24c4e..749b940d6 100644
index 85f2aa1b3..a72d042cf 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -156,6 +156,7 @@ import net.minecraft.world.level.dimension.WorldDimension;
import net.minecraft.world.level.storage.WorldDataServer;
@@ -160,6 +160,7 @@ import net.minecraft.world.level.storage.WorldDataServer;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.WeatherType;
+import org.bukkit.craftbukkit.SpigotTimings; // Spigot
import org.bukkit.craftbukkit.event.CraftEventFactory;
import org.bukkit.craftbukkit.util.WorldUUID;
import org.bukkit.event.entity.CreatureSpawnEvent;
@@ -338,6 +339,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
import org.bukkit.craftbukkit.generator.CustomWorldChunkManager;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
@@ -355,6 +356,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.updateSkyBrightness();
this.tickTime();
gameprofilerfiller.popPush("tickPending");
@ -220,7 +220,7 @@ index aafc24c4e..749b940d6 100644
if (!this.isDebug()) {
j = this.getGameTime();
gameprofilerfiller.push("blockTicks");
@@ -346,13 +348,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -363,13 +365,16 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.fluidTicks.tick(j, 65536, this::tickFluid);
gameprofilerfiller.pop();
}
@ -237,7 +237,7 @@ index aafc24c4e..749b940d6 100644
this.handlingTick = false;
gameprofilerfiller.pop();
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
@@ -363,12 +368,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -380,12 +385,14 @@ public class WorldServer extends World implements GeneratorAccessSeed {
if (flag || this.emptyTime++ < 300) {
gameprofilerfiller.push("entities");
@ -252,7 +252,7 @@ index aafc24c4e..749b940d6 100644
this.entityTickList.forEach((entity) -> {
if (!entity.isRemoved()) {
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
@@ -395,6 +402,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -412,6 +419,8 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
}
});
@ -261,7 +261,7 @@ index aafc24c4e..749b940d6 100644
gameprofilerfiller.pop();
this.tickBlockEntities();
}
@@ -774,6 +783,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -793,6 +802,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void tickNonPassenger(Entity entity) {
@ -269,7 +269,7 @@ index aafc24c4e..749b940d6 100644
entity.setOldPosAndRot();
GameProfilerFiller gameprofilerfiller = this.getProfiler();
@@ -792,6 +802,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -811,6 +821,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
this.tickPassenger(entity, entity1);
}
@ -278,34 +278,34 @@ index aafc24c4e..749b940d6 100644
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index 780a7f2ed..d6538cafc 100644
index 1fcab1ea7..cdc86f86a 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -288,6 +288,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -310,6 +310,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
// CraftBukkit end
public void tick() {
+ org.bukkit.craftbukkit.SpigotTimings.playerConnectionTimer.startTiming(); // Spigot
this.resetPosition();
this.player.xo = this.player.getX();
this.player.yo = this.player.getY();
@@ -363,6 +364,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
if (this.ackBlockChangesUpTo > -1) {
this.send(new ClientboundBlockChangedAckPacket(this.ackBlockChangesUpTo));
this.ackBlockChangesUpTo = -1;
@@ -390,6 +391,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
this.player.resetLastActionTime(); // CraftBukkit - SPIGOT-854
this.disconnect(new ChatMessage("multiplayer.disconnect.idling"));
this.disconnect(IChatBaseComponent.translatable("multiplayer.disconnect.idling"));
}
+ org.bukkit.craftbukkit.SpigotTimings.playerConnectionTimer.stopTiming(); // Spigot
this.chatPreviewThrottler.tick();
}
@@ -1977,6 +1979,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
}
@@ -1891,6 +1893,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
// CraftBukkit end
private void handleCommand(String s) {
+ org.bukkit.craftbukkit.SpigotTimings.playerCommandTimer.startTiming(); // Spigot
// CraftBukkit start - whole method
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);
@@ -1900,6 +1903,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
CraftPlayer player = this.getCraftPlayer();
@@ -1985,6 +1988,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
this.cserver.getPluginManager().callEvent(event);
if (event.isCancelled()) {
@ -313,20 +313,20 @@ index 780a7f2ed..d6538cafc 100644
return;
}
@@ -1911,6 +1915,8 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1996,6 +2000,8 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
player.sendMessage(org.bukkit.ChatColor.RED + "An internal error occurred while attempting to perform this command");
java.util.logging.Logger.getLogger(PlayerConnection.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
return;
+ } finally {
+ org.bukkit.craftbukkit.SpigotTimings.playerCommandTimer.stopTiming(); // Spigot
}
// this.server.getCommands().performCommand(this.player.createCommandSourceStack(), s);
// CraftBukkit end
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 48f8c466b..a85efeb3d 100644
index 7e316064b..94034b535 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -130,6 +130,7 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent;
@@ -133,6 +133,7 @@ import org.bukkit.craftbukkit.event.CraftPortalEvent;
import org.bukkit.entity.Hanging;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Vehicle;
@ -334,7 +334,7 @@ index 48f8c466b..a85efeb3d 100644
import org.bukkit.event.entity.EntityCombustByEntityEvent;
import org.bukkit.event.hanging.HangingBreakByEntityEvent;
import org.bukkit.event.vehicle.VehicleBlockCollisionEvent;
@@ -296,6 +297,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -299,6 +300,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
public boolean lastDamageCancelled; // SPIGOT-5339, SPIGOT-6252, SPIGOT-6777: Keep track if the event was canceled
public boolean persistentInvisibility = false;
public BlockPosition lastLavaContact;
@ -342,7 +342,7 @@ index 48f8c466b..a85efeb3d 100644
public float getBukkitYaw() {
return this.yRot;
@@ -725,6 +727,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -729,6 +731,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
}
public void move(EnumMoveType enummovetype, Vec3D vec3d) {
@ -350,7 +350,7 @@ index 48f8c466b..a85efeb3d 100644
if (this.noPhysics) {
this.setPos(this.getX() + vec3d.x, this.getY() + vec3d.y, this.getZ() + vec3d.z);
} else {
@@ -886,6 +889,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -892,6 +895,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
this.level.getProfiler().pop();
}
}
@ -359,10 +359,10 @@ index 48f8c466b..a85efeb3d 100644
protected boolean isHorizontalCollisionMinor(Vec3D vec3d) {
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
index f656694af..a37a2255c 100644
index 58d5f2c6f..8453acd63 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -141,6 +141,8 @@ import org.bukkit.event.entity.EntityTeleportEvent;
@@ -142,6 +142,8 @@ import org.bukkit.event.entity.EntityTeleportEvent;
import org.bukkit.event.player.PlayerItemConsumeEvent;
// CraftBukkit end
@ -371,7 +371,7 @@ index f656694af..a37a2255c 100644
public abstract class EntityLiving extends Entity {
private static final Logger LOGGER = LogUtils.getLogger();
@@ -2754,6 +2756,7 @@ public abstract class EntityLiving extends Entity {
@@ -2787,6 +2789,7 @@ public abstract class EntityLiving extends Entity {
@Override
public void tick() {
@ -379,7 +379,7 @@ index f656694af..a37a2255c 100644
super.tick();
this.updatingUsingItem();
this.updateSwimAmount();
@@ -2794,7 +2797,9 @@ public abstract class EntityLiving extends Entity {
@@ -2827,7 +2830,9 @@ public abstract class EntityLiving extends Entity {
}
}
@ -389,7 +389,7 @@ index f656694af..a37a2255c 100644
double d0 = this.getX() - this.xo;
double d1 = this.getZ() - this.zo;
float f = (float) (d0 * d0 + d1 * d1);
@@ -2875,6 +2880,7 @@ public abstract class EntityLiving extends Entity {
@@ -2908,6 +2913,7 @@ public abstract class EntityLiving extends Entity {
this.setXRot(0.0F);
}
@ -397,7 +397,7 @@ index f656694af..a37a2255c 100644
}
public void detectEquipmentUpdates() {
@@ -3056,6 +3062,7 @@ public abstract class EntityLiving extends Entity {
@@ -3089,6 +3095,7 @@ public abstract class EntityLiving extends Entity {
this.setDeltaMovement(d4, d5, d6);
this.level.getProfiler().push("ai");
@ -405,7 +405,7 @@ index f656694af..a37a2255c 100644
if (this.isImmobile()) {
this.jumping = false;
this.xxa = 0.0F;
@@ -3065,6 +3072,7 @@ public abstract class EntityLiving extends Entity {
@@ -3098,6 +3105,7 @@ public abstract class EntityLiving extends Entity {
this.serverAiStep();
this.level.getProfiler().pop();
}
@ -413,7 +413,7 @@ index f656694af..a37a2255c 100644
this.level.getProfiler().pop();
this.level.getProfiler().push("jump");
@@ -3099,7 +3107,9 @@ public abstract class EntityLiving extends Entity {
@@ -3132,7 +3140,9 @@ public abstract class EntityLiving extends Entity {
this.updateFallFlying();
AxisAlignedBB axisalignedbb = this.getBoundingBox();
@ -423,7 +423,7 @@ index f656694af..a37a2255c 100644
this.level.getProfiler().pop();
this.level.getProfiler().push("freezing");
boolean flag1 = this.getType().is(TagsEntity.FREEZE_HURTS_EXTRA_TYPES);
@@ -3128,7 +3138,9 @@ public abstract class EntityLiving extends Entity {
@@ -3161,7 +3171,9 @@ public abstract class EntityLiving extends Entity {
this.checkAutoSpinAttack(axisalignedbb, this.getBoundingBox());
}
@ -434,10 +434,10 @@ index f656694af..a37a2255c 100644
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
this.hurt(DamageSource.DROWN, 1.0F);
diff --git a/src/main/java/net/minecraft/world/level/SpawnerCreature.java b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
index 2b68b2faf..3ad9bb877 100644
index 424d0c589..fd6c35501 100644
--- a/src/main/java/net/minecraft/world/level/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/world/level/SpawnerCreature.java
@@ -115,6 +115,7 @@ public final class SpawnerCreature {
@@ -116,6 +116,7 @@ public final class SpawnerCreature {
public static void spawnForChunk(WorldServer worldserver, Chunk chunk, SpawnerCreature.d spawnercreature_d, boolean flag, boolean flag1, boolean flag2) {
worldserver.getProfiler().push("spawner");
@ -445,7 +445,7 @@ index 2b68b2faf..3ad9bb877 100644
EnumCreatureType[] aenumcreaturetype = SpawnerCreature.SPAWNING_CATEGORIES;
int i = aenumcreaturetype.length;
@@ -145,6 +146,7 @@ public final class SpawnerCreature {
@@ -146,6 +147,7 @@ public final class SpawnerCreature {
}
}
@ -454,10 +454,10 @@ index 2b68b2faf..3ad9bb877 100644
}
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index efdb12a2b..68eff83ee 100644
index a8e8ee431..167902935 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -81,6 +81,7 @@ import org.bukkit.Bukkit;
@@ -83,6 +83,7 @@ import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
@ -465,7 +465,7 @@ index efdb12a2b..68eff83ee 100644
import org.bukkit.craftbukkit.block.CapturedBlockState;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.craftbukkit.util.CraftSpawnCategory;
@@ -143,6 +144,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -149,6 +150,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean populating;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -474,7 +474,7 @@ index efdb12a2b..68eff83ee 100644
public CraftWorld getWorld() {
return this.world;
}
@@ -227,6 +230,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -238,6 +241,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public void onBorderSetDamageSafeZOne(WorldBorder worldborder, double d0) {}
});
// CraftBukkit end
@ -482,7 +482,7 @@ index efdb12a2b..68eff83ee 100644
}
@Override
@@ -632,12 +636,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -594,12 +598,15 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
GameProfilerFiller gameprofilerfiller = this.getProfiler();
gameprofilerfiller.push("blockEntities");
@ -498,7 +498,7 @@ index efdb12a2b..68eff83ee 100644
Iterator iterator = this.blockEntityTickers.iterator();
while (iterator.hasNext()) {
@@ -650,13 +657,16 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -612,13 +619,16 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
}
@ -532,10 +532,10 @@ index a39b39e2e..1fd16fc43 100644
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/net/minecraft/world/level/chunk/Chunk.java b/src/main/java/net/minecraft/world/level/chunk/Chunk.java
index a52a47029..5f739cf08 100644
index af55eb3b1..99a2ddbc1 100644
--- a/src/main/java/net/minecraft/world/level/chunk/Chunk.java
+++ b/src/main/java/net/minecraft/world/level/chunk/Chunk.java
@@ -857,6 +857,7 @@ public class Chunk extends IChunkAccess {
@@ -882,6 +882,7 @@ public class Chunk extends IChunkAccess {
GameProfilerFiller gameprofilerfiller = Chunk.this.level.getProfiler();
gameprofilerfiller.push(this::getType);
@ -543,7 +543,7 @@ index a52a47029..5f739cf08 100644
IBlockData iblockdata = Chunk.this.getBlockState(blockposition);
if (this.blockEntity.getType().isValid(iblockdata)) {
@@ -874,6 +875,10 @@ public class Chunk extends IChunkAccess {
@@ -899,6 +900,10 @@ public class Chunk extends IChunkAccess {
this.blockEntity.fillCrashReportCategory(crashreportsystemdetails);
throw new ReportedException(crashreport);
@ -555,10 +555,10 @@ index a52a47029..5f739cf08 100644
}
}
diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
index 130cbbd80..4d9f04b54 100644
index 71c12a5b5..26bd661e8 100644
--- a/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/world/level/chunk/storage/ChunkRegionLoader.java
@@ -490,10 +490,13 @@ public class ChunkRegionLoader {
@@ -507,10 +507,13 @@ public class ChunkRegionLoader {
NBTTagList nbttaglist1 = getListOfCompoundsOrNull(nbttagcompound, "block_entities");
return nbttaglist == null && nbttaglist1 == null ? null : (chunk) -> {
@ -572,7 +572,7 @@ index 130cbbd80..4d9f04b54 100644
if (nbttaglist1 != null) {
for (int i = 0; i < nbttaglist1.size(); ++i) {
NBTTagCompound nbttagcompound1 = nbttaglist1.getCompound(i);
@@ -511,6 +514,7 @@ public class ChunkRegionLoader {
@@ -528,6 +531,7 @@ public class ChunkRegionLoader {
}
}
}
@ -581,10 +581,10 @@ index 130cbbd80..4d9f04b54 100644
};
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 00cd8f712..9c9c4771b 100644
index e32539c49..3ae63ee01 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2269,6 +2269,11 @@ public final class CraftServer implements Server {
@@ -2252,6 +2252,11 @@ public final class CraftServer implements Server {
private final org.bukkit.Server.Spigot spigot = new org.bukkit.Server.Spigot()
{

View file

@ -1,4 +1,4 @@
From 6ac48ec373b7dce4da4329433d62b02929c6cf0c Mon Sep 17 00:00:00 2001
From 97de8c82d41aeb5b500331dfa1f9500f1529bd23 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 17:29:54 +1000
Subject: [PATCH] Fix Mob Spawning Relative to View Distance
@ -8,10 +8,10 @@ Changes the mob spawning algorithm to properly account for view distance and the
Needs better documentation.
diff --git a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
index a9a894d3b..f5f4f0c69 100644
index 8fd5501a7..03ce15577 100644
--- a/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/level/ChunkProviderServer.java
@@ -440,7 +440,7 @@ public class ChunkProviderServer extends IChunkProvider {
@@ -441,7 +441,7 @@ public class ChunkProviderServer extends IChunkProvider {
if (this.level.isNaturalSpawningAllowed(chunkcoordintpair) && this.chunkMap.anyPlayerCloseEnoughForSpawning(chunkcoordintpair)) {
chunk1.incrementInhabitedTime(j);
@ -21,10 +21,10 @@ index a9a894d3b..f5f4f0c69 100644
}
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
index 1681b9771..8e9aaaa26 100644
index 746942704..6332ea786 100644
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
@@ -1023,6 +1023,17 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1062,6 +1062,17 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
boolean anyPlayerCloseEnoughForSpawning(ChunkCoordIntPair chunkcoordintpair) {
@ -42,7 +42,7 @@ index 1681b9771..8e9aaaa26 100644
long i = chunkcoordintpair.toLong();
if (!this.distanceManager.hasPlayersNearby(i)) {
@@ -1038,7 +1049,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1077,7 +1088,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
entityplayer = (EntityPlayer) iterator.next();
@ -51,7 +51,7 @@ index 1681b9771..8e9aaaa26 100644
return true;
}
@@ -1056,7 +1067,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1095,7 +1106,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
while (iterator.hasNext()) {
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
@ -60,7 +60,7 @@ index 1681b9771..8e9aaaa26 100644
builder.add(entityplayer);
}
}
@@ -1065,13 +1076,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1104,13 +1115,13 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
}
}

View file

@ -1,14 +1,14 @@
From 93e8e022987f9819f8bc1ff60cced8952f0c1839 Mon Sep 17 00:00:00 2001
From 41a8d7cd6645b24009d8471679b2a40b635db02a Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 3 Feb 2013 09:20:19 +1100
Subject: [PATCH] Handle Null Tile Entities
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index 68eff83ee..d4dd846db 100644
index 167902935..60e47cf63 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -649,6 +649,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -611,6 +611,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
while (iterator.hasNext()) {
TickingBlockEntity tickingblockentity = (TickingBlockEntity) iterator.next();

View file

@ -1,14 +1,14 @@
From 38ada0d9c173cb956a5423c3ebd57752dcefbcae Mon Sep 17 00:00:00 2001
From 51054aeb8bcd30d243f64c20ce06a4633950bc2f Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 22 Sep 2013 19:10:53 +1000
Subject: [PATCH] Item Despawn Rate
diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
index 2e93c1e67..97d6a3df0 100644
index f4b1245fc..67a086e42 100644
--- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java
+++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
@@ -172,7 +172,7 @@ public class EntityItem extends Entity {
@@ -182,7 +182,7 @@ public class EntityItem extends Entity {
}
}
@ -17,7 +17,7 @@ index 2e93c1e67..97d6a3df0 100644
// CraftBukkit start - fire ItemDespawnEvent
if (org.bukkit.craftbukkit.event.CraftEventFactory.callItemDespawnEvent(this).isCancelled()) {
this.age = 0;
@@ -504,7 +504,7 @@ public class EntityItem extends Entity {
@@ -514,7 +514,7 @@ public class EntityItem extends Entity {
public void makeFakeItem() {
this.setNeverPickUp();

View file

@ -1,4 +1,4 @@
From 36470f58a8a46a4f7d7c38b3aa78750db157c47d Mon Sep 17 00:00:00 2001
From d52b3f73983aac80e956906053f99be63af8000e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 3 Feb 2013 05:10:21 -0500
Subject: [PATCH] Entity Activation Range
@ -9,10 +9,10 @@ This will drastically cut down on tick timings for entities that are not in rang
This change can have dramatic impact on gameplay if configured too low. Balance according to your servers desired gameplay.
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index 3b79784d2..e135ba1f4 100644
index a72d042cf..6c614e332 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -375,6 +375,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -392,6 +392,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
gameprofilerfiller.pop();
}
@ -20,7 +20,7 @@ index 3b79784d2..e135ba1f4 100644
timings.entityTick.startTiming(); // Spigot
this.entityTickList.forEach((entity) -> {
if (!entity.isRemoved()) {
@@ -783,6 +784,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -802,6 +803,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void tickNonPassenger(Entity entity) {
@ -35,10 +35,10 @@ index 3b79784d2..e135ba1f4 100644
entity.setOldPosAndRot();
GameProfilerFiller gameprofilerfiller = this.getProfiler();
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 2f6e147ae..78ba1c876 100644
index 94034b535..732ac38b2 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -298,6 +298,12 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -301,6 +301,12 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
public boolean persistentInvisibility = false;
public BlockPosition lastLavaContact;
public CustomTimingsHandler tickTimer = org.bukkit.craftbukkit.SpigotTimings.getEntityTimings(this); // Spigot
@ -51,10 +51,10 @@ index 2f6e147ae..78ba1c876 100644
public float getBukkitYaw() {
return this.yRot;
@@ -333,6 +339,13 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -336,6 +342,13 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
this.position = Vec3D.ZERO;
this.blockPosition = BlockPosition.ZERO;
this.chunkPosition = ChunkCoordIntPair.ZERO;
this.packetCoordinates = Vec3D.ZERO;
+ // Spigot start
+ if (world != null) {
+ this.defaultActivationState = org.spigotmc.ActivationRange.initializeEntityActivationState(this, world.spigotConfig);
@ -66,7 +66,7 @@ index 2f6e147ae..78ba1c876 100644
this.entityData.define(Entity.DATA_SHARED_FLAGS_ID, (byte) 0);
this.entityData.define(Entity.DATA_AIR_SUPPLY_ID, this.getMaxAirSupply());
diff --git a/src/main/java/net/minecraft/world/entity/EntityAgeable.java b/src/main/java/net/minecraft/world/entity/EntityAgeable.java
index e441825f6..d22a2c2d4 100644
index e7cfabf23..754e82733 100644
--- a/src/main/java/net/minecraft/world/entity/EntityAgeable.java
+++ b/src/main/java/net/minecraft/world/entity/EntityAgeable.java
@@ -25,6 +25,31 @@ public abstract class EntityAgeable extends EntityCreature {
@ -125,10 +125,10 @@ index 3a25f8858..0d5b9fc03 100644
public void tick() {
super.tick();
diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
index a37a2255c..21e534a6c 100644
index 8453acd63..7f63bab47 100644
--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
+++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
@@ -266,6 +266,13 @@ public abstract class EntityLiving extends Entity {
@@ -268,6 +268,13 @@ public abstract class EntityLiving extends Entity {
return getYHeadRot();
}
// CraftBukkit end
@ -143,10 +143,10 @@ index a37a2255c..21e534a6c 100644
protected EntityLiving(EntityTypes<? extends EntityLiving> entitytypes, World world) {
super(entitytypes, world);
diff --git a/src/main/java/net/minecraft/world/entity/item/EntityItem.java b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
index 97d6a3df0..46a0b406b 100644
index 67a086e42..2b7b5f8ef 100644
--- a/src/main/java/net/minecraft/world/entity/item/EntityItem.java
+++ b/src/main/java/net/minecraft/world/entity/item/EntityItem.java
@@ -185,6 +185,28 @@ public class EntityItem extends Entity {
@@ -195,6 +195,28 @@ public class EntityItem extends Entity {
}
}
@ -176,7 +176,7 @@ index 97d6a3df0..46a0b406b 100644
Vec3D vec3d = this.getDeltaMovement();
diff --git a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
index 2ee9b22b8..fb63c8e1a 100644
index 9d18b82a8..79c058e50 100644
--- a/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/EntityVillager.java
@@ -222,6 +222,17 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@ -198,10 +198,10 @@ index 2ee9b22b8..fb63c8e1a 100644
protected void customServerAiStep() {
this.level.getProfiler().push("villagerBrain");
diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
index 32219948f..db1bd7c1d 100644
index 5e4530883..95cdde462 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
@@ -73,6 +73,18 @@ public abstract class EntityArrow extends IProjectile {
@@ -74,6 +74,18 @@ public abstract class EntityArrow extends IProjectile {
@Nullable
private List<Entity> piercedAndKilledEntities;
@ -221,7 +221,7 @@ index 32219948f..db1bd7c1d 100644
super(entitytypes, world);
this.pickup = EntityArrow.PickupStatus.DISALLOWED;
diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java
index fceb3b975..477d9f2d9 100644
index 1e8c5a659..5ff797d37 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityFireworks.java
@@ -81,6 +81,22 @@ public class EntityFireworks extends IProjectile implements ItemSupplier {

View file

@ -1,4 +1,4 @@
From fc78721e4efa1930747c47efed9c8acfcc8f29dd Mon Sep 17 00:00:00 2001
From 9a0fa2dc63a6c5cc32c1f9962c18eba3e806aada Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sat, 23 Feb 2013 08:58:35 +1100
Subject: [PATCH] Metrics

View file

@ -1,4 +1,4 @@
From 8bde99f8d03dfcfa0f3083cb60c5869706bb06ac Mon Sep 17 00:00:00 2001
From 9b87a6320f0e6fb5da9cf491d4f76429fc5dfb31 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 20 Feb 2013 11:58:47 -0500
Subject: [PATCH] Entity Tracking Ranges
@ -12,10 +12,10 @@ This has multiple benefits:
4) Less client lag - Not trying to render distant item frames and paintings and entities will reduce entity count on the client, which is major for shop/town worlds which may use tons of item frames.
diff --git a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
index 8e9aaaa26..d71d8beed 100644
index 6332ea786..d518ad1e7 100644
--- a/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/level/PlayerChunkMap.java
@@ -1246,6 +1246,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
@@ -1285,6 +1285,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.e {
if (!(entity instanceof EntityComplexPart)) {
EntityTypes<?> entitytypes = entity.getType();
int i = entitytypes.clientTrackingRange() * 16;

View file

@ -1,4 +1,4 @@
From 1faf0ec615da3d799a7c5c29d9a23e6f729d777c Mon Sep 17 00:00:00 2001
From 085bf90848d35c39853524bab19847d8c620687b Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 19 May 2013 18:29:48 +1000
Subject: [PATCH] Remove -o Option

View file

@ -1,4 +1,4 @@
From 072bfb0a242ec727ca300881d75a0445580497f5 Mon Sep 17 00:00:00 2001
From dffb19264a601200d74f72206d2eb271ef966391 Mon Sep 17 00:00:00 2001
From: erocs <github@erocs.org>
Date: Sun, 8 Sep 2013 12:06:15 -0700
Subject: [PATCH] Hopper Customisations
@ -6,10 +6,10 @@ Subject: [PATCH] Hopper Customisations
Allows editing hopper cooldowns and amount transferred per tick.
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
index b8f5c6ad0..92f93542c 100644
index 80cbb3f6c..d35ce34b2 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
@@ -141,9 +141,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -140,9 +140,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
tileentityhopper.tickedGameTime = world.getGameTime();
if (!tileentityhopper.isOnCooldown()) {
tileentityhopper.setCooldown(0);
@ -25,7 +25,7 @@ index b8f5c6ad0..92f93542c 100644
}
}
@@ -164,7 +169,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -163,7 +168,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
}
if (flag) {
@ -34,7 +34,7 @@ index b8f5c6ad0..92f93542c 100644
setChanged(world, blockposition, iblockdata);
return true;
}
@@ -207,7 +212,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -206,7 +211,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
// ItemStack itemstack1 = addItem(iinventory, iinventory1, iinventory.removeItem(i, 1), enumdirection);
// CraftBukkit start - Call event when pushing items into other inventories
@ -43,7 +43,7 @@ index b8f5c6ad0..92f93542c 100644
Inventory destinationInventory;
// Have to special case large chests as they work oddly
@@ -221,9 +226,10 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -220,9 +225,10 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
world.getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) {
hopper.setItem(i, itemstack);
@ -55,7 +55,7 @@ index b8f5c6ad0..92f93542c 100644
ItemStack itemstack1 = addItem(iinventory, iinventory1, CraftItemStack.asNMSCopy(event.getItem()), enumdirection);
// CraftBukkit end
@@ -232,6 +238,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -231,6 +237,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
return true;
}
@ -63,7 +63,7 @@ index b8f5c6ad0..92f93542c 100644
iinventory.setItem(i, itemstack);
}
}
@@ -266,7 +273,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -265,7 +272,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
EnumDirection enumdirection = EnumDirection.DOWN;
return isEmptyContainer(iinventory, enumdirection) ? false : getSlots(iinventory, enumdirection).anyMatch((i) -> {
@ -72,7 +72,7 @@ index b8f5c6ad0..92f93542c 100644
});
} else {
Iterator iterator = getItemsAtAndAbove(world, ihopper).iterator();
@@ -285,14 +292,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -284,14 +291,14 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
}
}
@ -89,7 +89,7 @@ index b8f5c6ad0..92f93542c 100644
Inventory sourceInventory;
// Have to special case large chests as they work oddly
@@ -309,13 +316,13 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -308,13 +315,13 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
iinventory.setItem(i, itemstack1);
if (ihopper instanceof TileEntityHopper) {
@ -106,7 +106,7 @@ index b8f5c6ad0..92f93542c 100644
ItemStack itemstack2 = addItem(iinventory, ihopper, CraftItemStack.asNMSCopy(event.getItem()), null);
// CraftBukkit end
@@ -324,6 +331,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -323,6 +330,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
return true;
}
@ -114,7 +114,7 @@ index b8f5c6ad0..92f93542c 100644
iinventory.setItem(i, itemstack1);
}
@@ -387,6 +395,11 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -386,6 +394,11 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
boolean flag1 = iinventory1.isEmpty();
if (itemstack1.isEmpty()) {
@ -126,7 +126,7 @@ index b8f5c6ad0..92f93542c 100644
iinventory1.setItem(i, itemstack);
itemstack = ItemStack.EMPTY;
flag = true;
@@ -414,7 +427,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -413,7 +426,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
}
}

View file

@ -1,17 +1,17 @@
From 8ffd2557b5ad6541b83b2bde076d86b1f17ecf69 Mon Sep 17 00:00:00 2001
From f09d49a48c4db00db6da75596d30eb9c871b28a0 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 18:01:29 +1000
Subject: [PATCH] Allow Disabling of Command Logging
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index d6538cafc..a0f16bbe8 100644
index cdc86f86a..8cdeb6d7f 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1895,6 +1895,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1980,6 +1980,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
private void handleCommand(String s) {
org.bukkit.craftbukkit.SpigotTimings.playerCommandTimer.startTiming(); // Spigot
// CraftBukkit start - whole method
+ if ( org.spigotmc.SpigotConfig.logCommands ) // Spigot
this.LOGGER.info(this.player.getScoreboardName() + " issued server command: " + s);

View file

@ -1,14 +1,14 @@
From 8550748e1f343841f14876a6ef9d3767e1e74047 Mon Sep 17 00:00:00 2001
From 05b802dd602c4c35e536dff5bca59d10c819b73d Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 18:05:54 +1000
Subject: [PATCH] Allow Disabling of Command TabComplete
diff --git a/src/main/java/net/minecraft/commands/CommandDispatcher.java b/src/main/java/net/minecraft/commands/CommandDispatcher.java
index 5aa4f5361..4ffe7f355 100644
index 591af9a48..d385041b6 100644
--- a/src/main/java/net/minecraft/commands/CommandDispatcher.java
+++ b/src/main/java/net/minecraft/commands/CommandDispatcher.java
@@ -343,6 +343,7 @@ public class CommandDispatcher {
@@ -346,6 +346,7 @@ public class CommandDispatcher {
}
public void sendCommands(EntityPlayer entityplayer) {
@ -16,7 +16,7 @@ index 5aa4f5361..4ffe7f355 100644
// CraftBukkit start
// Register Vanilla commands into builtRoot as before
Map<CommandNode<CommandListenerWrapper>, CommandNode<ICompletionProvider>> map = Maps.newIdentityHashMap(); // Use identity to prevent aliasing issues
@@ -381,6 +382,7 @@ public class CommandDispatcher {
@@ -384,6 +385,7 @@ public class CommandDispatcher {
while (iterator.hasNext()) {
CommandNode<CommandListenerWrapper> commandnode2 = (CommandNode) iterator.next();
@ -25,10 +25,10 @@ index 5aa4f5361..4ffe7f355 100644
if (commandnode2.canUse(commandlistenerwrapper)) {
ArgumentBuilder argumentbuilder = commandnode2.createBuilder(); // CraftBukkit - decompile error
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 9c9c4771b..059814bde 100644
index 3ae63ee01..aafac1a2d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1926,6 +1926,13 @@ public final class CraftServer implements Server {
@@ -1909,6 +1909,13 @@ public final class CraftServer implements Server {
}
public List<String> tabCompleteCommand(Player player, String message, WorldServer world, Vec3D pos) {

View file

@ -1,41 +1,41 @@
From 42723cd25a536d6f9be623cf4388185c930dda82 Mon Sep 17 00:00:00 2001
From 45e01210f935672cd2b1555d3f8d7ae1b9a0b31f Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 21 Jun 2013 19:21:58 +1000
Subject: [PATCH] Configurable Messages
diff --git a/src/main/java/net/minecraft/server/network/HandshakeListener.java b/src/main/java/net/minecraft/server/network/HandshakeListener.java
index f421d6902..ddbb24958 100644
index fa7cf0ea9..190fb0006 100644
--- a/src/main/java/net/minecraft/server/network/HandshakeListener.java
+++ b/src/main/java/net/minecraft/server/network/HandshakeListener.java
@@ -74,9 +74,9 @@ public class HandshakeListener implements PacketHandshakingInListener {
ChatMessage chatmessage;
@@ -73,9 +73,9 @@ public class HandshakeListener implements PacketHandshakingInListener {
IChatMutableComponent ichatmutablecomponent;
if (packethandshakinginsetprotocol.getProtocolVersion() < 754) {
- chatmessage = new ChatMessage("multiplayer.disconnect.outdated_client", new Object[]{SharedConstants.getCurrentVersion().getName()});
+ chatmessage = new ChatMessage( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) ); // Spigot
- ichatmutablecomponent = IChatBaseComponent.translatable("multiplayer.disconnect.outdated_client", SharedConstants.getCurrentVersion().getName());
+ ichatmutablecomponent = IChatBaseComponent.literal( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedClientMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) ); // Spigot
} else {
- chatmessage = new ChatMessage("multiplayer.disconnect.incompatible", new Object[]{SharedConstants.getCurrentVersion().getName()});
+ chatmessage = new ChatMessage( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) ); // Spigot
- ichatmutablecomponent = IChatBaseComponent.translatable("multiplayer.disconnect.incompatible", SharedConstants.getCurrentVersion().getName());
+ ichatmutablecomponent = IChatBaseComponent.literal( java.text.MessageFormat.format( org.spigotmc.SpigotConfig.outdatedServerMessage.replaceAll("'", "''"), SharedConstants.getCurrentVersion().getName() ) ); // Spigot
}
this.connection.send(new PacketLoginOutDisconnect(chatmessage));
this.connection.send(new PacketLoginOutDisconnect(ichatmutablecomponent));
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index b5dc8181b..dbd974826 100644
index 70f53a49e..b02d3f835 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -579,7 +579,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CraftChatMessage.fromComponent(chatmessage));
@@ -583,7 +583,7 @@ public abstract class PlayerList {
event.disallow(PlayerLoginEvent.Result.KICK_BANNED, CraftChatMessage.fromComponent(ichatmutablecomponent));
} else if (!this.isWhiteListed(gameprofile)) {
chatmessage = new ChatMessage("multiplayer.disconnect.not_whitelisted");
- event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, CraftChatMessage.fromComponent(chatmessage));
ichatmutablecomponent = IChatBaseComponent.translatable("multiplayer.disconnect.not_whitelisted");
- event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, CraftChatMessage.fromComponent(ichatmutablecomponent));
+ event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, org.spigotmc.SpigotConfig.whitelistMessage); // Spigot
} else if (getIpBans().isBanned(socketaddress) && !getIpBans().get(socketaddress).hasExpired()) {
IpBanEntry ipbanentry = this.ipBans.get(socketaddress);
@@ -593,7 +593,7 @@ public abstract class PlayerList {
@@ -597,7 +597,7 @@ public abstract class PlayerList {
} else {
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? new ChatMessage("multiplayer.disconnect.server_full") : null;
// return this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile) ? IChatBaseComponent.translatable("multiplayer.disconnect.server_full") : null;
if (this.players.size() >= this.maxPlayers && !this.canBypassPlayerLimit(gameprofile)) {
- event.disallow(PlayerLoginEvent.Result.KICK_FULL, "The server is full");
+ event.disallow(PlayerLoginEvent.Result.KICK_FULL, org.spigotmc.SpigotConfig.serverFullMessage); // Spigot
@ -43,10 +43,10 @@ index b5dc8181b..dbd974826 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 059814bde..1c7fd059c 100644
index aafac1a2d..19bd54daf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -807,11 +807,11 @@ public final class CraftServer implements Server {
@@ -802,11 +802,11 @@ public final class CraftServer implements Server {
return true;
}

View file

@ -1,4 +1,4 @@
From a71b7f614cafe6ad7f5e0f373ad9e3164d7295b2 Mon Sep 17 00:00:00 2001
From e130e6fcc73daffa95b47435d5399a9d5565bacb Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Thu, 27 Jun 2013 17:26:09 +1000
Subject: [PATCH] Properly Close Inventories
@ -6,10 +6,10 @@ Subject: [PATCH] Properly Close Inventories
Properly close inventories when unloading and switching worlds.
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index 700a8f29b..262de8928 100644
index 6c614e332..cc2e329ac 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -1025,6 +1025,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1044,6 +1044,15 @@ public class WorldServer extends World implements GeneratorAccessSeed {
}
public void unload(Chunk chunk) {
@ -25,7 +25,7 @@ index 700a8f29b..262de8928 100644
chunk.clearAllBlockEntities();
chunk.unregisterTickContainerFromLevel(this);
}
@@ -1915,6 +1924,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -1994,6 +2003,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void onTrackingEnd(Entity entity) {
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot

View file

@ -1,14 +1,14 @@
From e58a86e715f9003caed40985a18e774ac453c12d Mon Sep 17 00:00:00 2001
From 0a5ff45f5e9f71449cf25f28fa01f93dac245c3b Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Fri, 28 Jun 2013 19:52:54 +1000
Subject: [PATCH] Disallow Interaction With Self
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index a0f16bbe8..3a8d0467c 100644
index 8cdeb6d7f..b7bc2dc30 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -2045,6 +2045,13 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -2238,6 +2238,13 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
if (this.player.isImmobile()) return; // CraftBukkit
WorldServer worldserver = this.player.getLevel();
final Entity entity = packetplayinuseentity.getTarget(worldserver);

View file

@ -1,14 +1,14 @@
From a7eccf5540062dac30e21695d2b0a916c3f237e3 Mon Sep 17 00:00:00 2001
From 394c2510c44440d7f9a659f0597e77d10985b091 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 27 Feb 2016 10:07:58 +1100
Subject: [PATCH] Entity Mount and Dismount Events
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 87d7ae688..09fe885aa 100644
index 732ac38b2..792d6bb9d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -2188,6 +2188,16 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -2218,6 +2218,16 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
}
}
// CraftBukkit end
@ -25,7 +25,7 @@ index 87d7ae688..09fe885aa 100644
if (this.passengers.isEmpty()) {
this.passengers = ImmutableList.of(entity);
} else {
@@ -2229,6 +2239,16 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -2259,6 +2269,16 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
}
}
// CraftBukkit end

View file

@ -1,4 +1,4 @@
From 1a5823feca7f8bd4724d21127893f0bae3bf427e Mon Sep 17 00:00:00 2001
From ee042c5255efb34ebde0d1c78cc44e818ce61c78 Mon Sep 17 00:00:00 2001
From: Alex Ciuba <alexciuba@gmail.com>
Date: Tue, 11 Jun 2013 15:23:03 -0400
Subject: [PATCH] Prevent Ghost Players Caused by Plugins
@ -6,10 +6,10 @@ Subject: [PATCH] Prevent Ghost Players Caused by Plugins
Check if the player is still connected after firing event. Fixes BUKKIT-4327
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 091ec3f14..28831547c 100644
index b02d3f835..3cedd79d6 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -728,6 +728,11 @@ public abstract class PlayerList {
@@ -732,6 +732,11 @@ public abstract class PlayerList {
Player respawnPlayer = entityplayer1.getBukkitEntity();
PlayerRespawnEvent respawnEvent = new PlayerRespawnEvent(respawnPlayer, location, isBedSpawn && !flag2, flag2);
cserver.getPluginManager().callEvent(respawnEvent);

View file

@ -1,14 +1,14 @@
From ea01c4af90e07078aca3944779dea7f5bd941d1f Mon Sep 17 00:00:00 2001
From b5401120830d659cbf7992b0b48ad4187d271fb3 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 27 Mar 2016 20:35:09 +1100
Subject: [PATCH] Player Collision API
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 00028074c..2e7744918 100644
index 8a6f6e11a..43708f569 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1902,6 +1902,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1900,6 +1900,16 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
// Spigot start
private final Player.Spigot spigot = new Player.Spigot()
{

View file

@ -1,14 +1,14 @@
From 1c00b44c97a6fef26ac1e73af74a01dfc708ef77 Mon Sep 17 00:00:00 2001
From 43bec18c05b90a9f5280a1716ad352ec041bbc31 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 6 Oct 2013 17:36:28 +1100
Subject: [PATCH] Don't Special Case X Move Value
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index 3a8d0467c..eb86a448c 100644
index b7bc2dc30..2d18a998c 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -281,6 +281,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -303,6 +303,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
private float lastPitch = Float.MAX_VALUE;
private float lastYaw = Float.MAX_VALUE;
private boolean justTeleported = false;
@ -16,7 +16,7 @@ index 3a8d0467c..eb86a448c 100644
public CraftPlayer getCraftPlayer() {
return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity();
@@ -554,6 +555,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -582,6 +583,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
flag2 = true;
PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)});
}
@ -24,7 +24,7 @@ index 3a8d0467c..eb86a448c 100644
entity.absMoveTo(d3, d4, d5, f, f1);
player.absMoveTo(d3, d4, d5, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
@@ -568,6 +570,17 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -596,6 +598,17 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
// CraftBukkit start - fire PlayerMoveEvent
Player player = this.getCraftPlayer();
@ -42,7 +42,7 @@ index 3a8d0467c..eb86a448c 100644
Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); // Get the Players previous Event location.
Location to = player.getLocation().clone(); // Start off the To location as the Players current location.
@@ -593,7 +606,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -621,7 +634,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
this.lastPitch = to.getPitch();
// Skip the first time we do this

View file

@ -1,14 +1,14 @@
From ed6db1ec4032abb0a6289b7aa08e3175effed163 Mon Sep 17 00:00:00 2001
From b3be0e8ebf91a40dcc4347f32bc7619a5fdf8dc0 Mon Sep 17 00:00:00 2001
From: ninja- <xninja@openmailbox.org>
Date: Tue, 8 Oct 2013 14:34:49 +0200
Subject: [PATCH] Implement respawn API.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 2e7744918..670338a5f 100644
index 43708f569..6aba2dae0 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1912,6 +1912,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1910,6 +1910,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
public void setCollidesWithEntities(boolean collides) {
CraftPlayer.this.setCollidable(collides);
}

View file

@ -1,14 +1,14 @@
From 80d1a572a0da7e9b815af1fdf0e8d2987386d6b5 Mon Sep 17 00:00:00 2001
From cfe1b56a077a92dee3df357d62dd3334ea766080 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Mon, 14 Oct 2013 19:20:10 +1100
Subject: [PATCH] Arrow Despawn Rate
diff --git a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
index db1bd7c1d..07730d9f4 100644
index 95cdde462..0f18feede 100644
--- a/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
+++ b/src/main/java/net/minecraft/world/entity/projectile/EntityArrow.java
@@ -312,7 +312,7 @@ public abstract class EntityArrow extends IProjectile {
@@ -313,7 +313,7 @@ public abstract class EntityArrow extends IProjectile {
protected void tickDespawn() {
++this.life;

View file

@ -1,22 +1,22 @@
From c45f83518929f16243bdf4aaddf079648dca0eee Mon Sep 17 00:00:00 2001
From 1b28773cc79edc40c57922ebd1a3c7c15759ba16 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Tue, 5 Aug 2014 17:20:19 +0100
Subject: [PATCH] Watchdog Thread.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e0282b0ab..c30918640 100644
index 45d3e3db3..fdb9aad3e 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1053,6 +1053,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.profileCache.clearExecutor();
@@ -1013,6 +1013,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.services.profileCache().clearExecutor();
}
+ org.spigotmc.WatchdogThread.doStop(); // Spigot
// CraftBukkit start - Restore terminal to original settings
try {
reader.getTerminal().restore();
@@ -1236,6 +1237,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1196,6 +1197,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.frameTimer.logFrameDuration(i1 - i);
this.profiler.pop();
@ -25,10 +25,10 @@ index e0282b0ab..c30918640 100644
org.spigotmc.CustomTimingsHandler.tick(); // Spigot
}
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index b7f8e4d2a..999c12d57 100644
index 19f69098b..65d4053e4 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -273,7 +273,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -265,7 +265,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
this.remoteConsole = new org.bukkit.craftbukkit.command.CraftRemoteConsoleCommandSender(this.rconConsoleSource); // CraftBukkit
}
@ -38,10 +38,10 @@ index b7f8e4d2a..999c12d57 100644
thread1.setUncaughtExceptionHandler(new ThreadNamedUncaughtExceptionHandler(DedicatedServer.LOGGER));
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 1c7fd059c..f3caaee30 100644
index 19bd54daf..077df6d90 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1893,7 +1893,7 @@ public final class CraftServer implements Server {
@@ -1876,7 +1876,7 @@ public final class CraftServer implements Server {
@Override
public boolean isPrimaryThread() {
@ -50,7 +50,7 @@ index 1c7fd059c..f3caaee30 100644
}
@Override
@@ -2281,6 +2281,11 @@ public final class CraftServer implements Server {
@@ -2264,6 +2264,11 @@ public final class CraftServer implements Server {
{
return org.spigotmc.SpigotConfig.config;
}

View file

@ -1,15 +1,15 @@
From 9473e7b37d36d2a971a168a75bd6813be62e49bd Mon Sep 17 00:00:00 2001
From f6fe5260270312ebbc225f61ee28b1c3958650ec Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Thu, 5 Dec 2013 13:55:53 +1100
Subject: [PATCH] Fix Broken Async Chat
diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInChat.java
index 32407b2a0..84004a07a 100644
index e123aea60..aa9ae8f3c 100644
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInChat.java
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInChat.java
@@ -25,7 +25,24 @@ public class PacketPlayInChat implements Packet<PacketListenerPlayIn> {
packetdataserializer.writeUtf(this.message);
@@ -39,7 +39,24 @@ public class PacketPlayInChat implements Packet<PacketListenerPlayIn> {
packetdataserializer.writeBoolean(this.signedPreview);
}
- public void handle(PacketListenerPlayIn packetlistenerplayin) {

View file

@ -1,21 +1,21 @@
From 12b20eb55c83dc989f17a77104a28eca48e99cef Mon Sep 17 00:00:00 2001
From 658d2f90080348ba85ed365cfb2a1521fd0044fe Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 18 Dec 2013 13:32:10 +1100
Subject: [PATCH] Fire PreLogin Events in Offline Mode
diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java
index db5255bdc..73482f63c 100644
index dbf5769bc..a780e30d3 100644
--- a/src/main/java/net/minecraft/server/network/LoginListener.java
+++ b/src/main/java/net/minecraft/server/network/LoginListener.java
@@ -118,10 +118,23 @@ public class LoginListener implements PacketLoginInListener {
@@ -120,10 +120,23 @@ public class LoginListener implements PacketLoginInListener {
}
+ // Spigot start
+ public void initUUID()
+ {
+ UUID uuid = EntityHuman.createPlayerUUID( this.gameProfile.getName() );
+ UUID uuid = UUIDUtil.createOfflinePlayerUUID( this.gameProfile.getName() );
+
+ this.gameProfile = new GameProfile( uuid, this.gameProfile.getName() );
+ }
@ -31,31 +31,31 @@ index db5255bdc..73482f63c 100644
+ // Spigot end
// CraftBukkit start - fire PlayerLoginEvent
EntityPlayer s = this.server.getPlayerList().canPlayerLogin(this, this.gameProfile, hostname);
@@ -182,7 +195,21 @@ public class LoginListener implements PacketLoginInListener {
this.state = LoginListener.EnumProtocolState.KEY;
this.connection.send(new PacketLoginOutEncryptionBegin("", this.server.getKeyPair().getPublic().getEncoded(), this.nonce));
} else {
- this.state = LoginListener.EnumProtocolState.READY_TO_ACCEPT;
+ // Spigot start
+ new Thread("User Authenticator #" + LoginListener.UNIQUE_THREAD_ID.incrementAndGet()) {
EntityPlayer s = this.server.getPlayerList().canPlayerLogin(this, this.gameProfile, this.playerProfilePublicKey, hostname);
@@ -228,7 +241,21 @@ public class LoginListener implements PacketLoginInListener {
this.state = LoginListener.EnumProtocolState.KEY;
this.connection.send(new PacketLoginOutEncryptionBegin("", this.server.getKeyPair().getPublic().getEncoded(), this.nonce));
} else {
- this.state = LoginListener.EnumProtocolState.READY_TO_ACCEPT;
+ // Spigot start
+ new Thread("User Authenticator #" + LoginListener.UNIQUE_THREAD_ID.incrementAndGet()) {
+
+ @Override
+ public void run() {
+ try {
+ initUUID();
+ new LoginHandler().fireEvents();
+ } catch (Exception ex) {
+ disconnect("Failed to verify username!");
+ server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + gameProfile.getName(), ex);
+ @Override
+ public void run() {
+ try {
+ initUUID();
+ new LoginHandler().fireEvents();
+ } catch (Exception ex) {
+ disconnect("Failed to verify username!");
+ server.server.getLogger().log(java.util.logging.Level.WARNING, "Exception verifying " + gameProfile.getName(), ex);
+ }
+ }
+ }
+ }.start();
+ // Spigot end
}
+ }.start();
+ // Spigot end
}
}
@@ -228,40 +255,7 @@ public class LoginListener implements PacketLoginInListener {
}
@@ -280,40 +307,7 @@ public class LoginListener implements PacketLoginInListener {
return;
}
@ -97,7 +97,7 @@ index db5255bdc..73482f63c 100644
} else if (LoginListener.this.server.isSingleplayer()) {
LoginListener.LOGGER.warn("Failed to verify username but will let them in anyway!");
LoginListener.this.gameProfile = LoginListener.this.createFakeProfile(gameprofile);
@@ -300,7 +294,48 @@ public class LoginListener implements PacketLoginInListener {
@@ -352,7 +346,48 @@ public class LoginListener implements PacketLoginInListener {
thread.start();
}
@ -145,7 +145,7 @@ index db5255bdc..73482f63c 100644
+ // Spigot end
+
public void handleCustomQueryPacket(PacketLoginInCustomPayload packetloginincustompayload) {
this.disconnect(new ChatMessage("multiplayer.disconnect.unexpected_query_response"));
this.disconnect(IChatBaseComponent.translatable("multiplayer.disconnect.unexpected_query_response"));
}
--
2.25.1

View file

@ -1,4 +1,4 @@
From da606e2cc2fbc9d39cce6b0dc7c08f85a101e016 Mon Sep 17 00:00:00 2001
From 3d5b4e737b7c99587f6f23476f759dc6355929d3 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sun, 1 Dec 2013 18:18:41 +1100
Subject: [PATCH] BungeeCord Support
@ -6,7 +6,7 @@ Subject: [PATCH] BungeeCord Support
Provides support for IP forwarding via BungeeCord.
diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/java/net/minecraft/network/NetworkManager.java
index 3fb814e6e..d111deea1 100644
index 63540a6f0..ffb10b60a 100644
--- a/src/main/java/net/minecraft/network/NetworkManager.java
+++ b/src/main/java/net/minecraft/network/NetworkManager.java
@@ -78,6 +78,10 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@ -46,10 +46,10 @@ index e992a972d..786314a9b 100644
this.intention = EnumProtocol.getById(packetdataserializer.readVarInt());
}
diff --git a/src/main/java/net/minecraft/server/network/HandshakeListener.java b/src/main/java/net/minecraft/server/network/HandshakeListener.java
index ddbb24958..5214f23f5 100644
index 190fb0006..a107fa07d 100644
--- a/src/main/java/net/minecraft/server/network/HandshakeListener.java
+++ b/src/main/java/net/minecraft/server/network/HandshakeListener.java
@@ -18,6 +18,11 @@ import java.util.HashMap;
@@ -17,6 +17,11 @@ import java.util.HashMap;
public class HandshakeListener implements PacketHandshakingInListener {
@ -61,8 +61,8 @@ index ddbb24958..5214f23f5 100644
// CraftBukkit start - add fields
private static final HashMap<InetAddress, Long> throttleTracker = new HashMap<InetAddress, Long>();
private static int throttleCounter = 0;
@@ -83,6 +88,31 @@ public class HandshakeListener implements PacketHandshakingInListener {
this.connection.disconnect(chatmessage);
@@ -82,6 +87,31 @@ public class HandshakeListener implements PacketHandshakingInListener {
this.connection.disconnect(ichatmutablecomponent);
} else {
this.connection.setListener(new LoginListener(this.server, this.connection));
+ // Spigot Start
@ -74,7 +74,7 @@ index ddbb24958..5214f23f5 100644
+ connection.spoofedUUID = com.mojang.util.UUIDTypeAdapter.fromString( split[2] );
+ } else
+ {
+ ChatMessage chatmessage = new ChatMessage("If you wish to use IP forwarding, please enable it in your BungeeCord config as well!");
+ IChatBaseComponent chatmessage = IChatBaseComponent.literal("If you wish to use IP forwarding, please enable it in your BungeeCord config as well!");
+ this.connection.send(new PacketLoginOutDisconnect(chatmessage));
+ this.connection.disconnect(chatmessage);
+ return;
@ -84,7 +84,7 @@ index ddbb24958..5214f23f5 100644
+ connection.spoofedProfile = gson.fromJson(split[3], com.mojang.authlib.properties.Property[].class);
+ }
+ } else if ( ( split.length == 3 || split.length == 4 ) && ( HOST_PATTERN.matcher( split[1] ).matches() ) ) {
+ ChatMessage chatmessage = new ChatMessage("Unknown data in login hostname, did you forget to enable BungeeCord in spigot.yml?");
+ IChatBaseComponent chatmessage = IChatBaseComponent.literal("Unknown data in login hostname, did you forget to enable BungeeCord in spigot.yml?");
+ this.connection.send(new PacketLoginOutDisconnect(chatmessage));
+ this.connection.disconnect(chatmessage);
+ return;
@ -94,21 +94,21 @@ index ddbb24958..5214f23f5 100644
}
break;
diff --git a/src/main/java/net/minecraft/server/network/LoginListener.java b/src/main/java/net/minecraft/server/network/LoginListener.java
index 73482f63c..126ce2003 100644
index a780e30d3..947dbab1f 100644
--- a/src/main/java/net/minecraft/server/network/LoginListener.java
+++ b/src/main/java/net/minecraft/server/network/LoginListener.java
@@ -121,9 +121,25 @@ public class LoginListener implements PacketLoginInListener {
@@ -123,9 +123,25 @@ public class LoginListener implements PacketLoginInListener {
// Spigot start
public void initUUID()
{
- UUID uuid = EntityHuman.createPlayerUUID( this.gameProfile.getName() );
- UUID uuid = UUIDUtil.createOfflinePlayerUUID( this.gameProfile.getName() );
+ UUID uuid;
+ if ( connection.spoofedUUID != null )
+ {
+ uuid = connection.spoofedUUID;
+ } else
+ {
+ uuid = EntityHuman.createPlayerUUID( this.gameProfile.getName() );
+ uuid = UUIDUtil.createOfflinePlayerUUID( this.gameProfile.getName() );
+ }
this.gameProfile = new GameProfile( uuid, this.gameProfile.getName() );
@ -125,12 +125,12 @@ index 73482f63c..126ce2003 100644
// Spigot end
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 0d9c5e4ec..b71d1d92f 100644
index 3cedd79d6..a40e1e508 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -565,7 +565,7 @@ public abstract class PlayerList {
@@ -569,7 +569,7 @@ public abstract class PlayerList {
EntityPlayer entity = new EntityPlayer(this.server, this.server.getLevel(World.OVERWORLD), gameprofile);
EntityPlayer entity = new EntityPlayer(this.server, this.server.getLevel(World.OVERWORLD), gameprofile, profilepublickey);
Player player = entity.getBukkitEntity();
- PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress());
+ PlayerLoginEvent event = new PlayerLoginEvent(player, hostname, ((java.net.InetSocketAddress) socketaddress).getAddress(), ((java.net.InetSocketAddress) loginlistener.connection.getRawAddress()).getAddress());
@ -138,10 +138,10 @@ index 0d9c5e4ec..b71d1d92f 100644
if (getBans().isBanned(gameprofile) && !getBans().get(gameprofile).hasExpired()) {
GameProfileBanEntry gameprofilebanentry = (GameProfileBanEntry) this.bans.get(gameprofile);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f3caaee30..21aab1d9c 100644
index 077df6d90..36ba99086 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -706,7 +706,13 @@ public final class CraftServer implements Server {
@@ -701,7 +701,13 @@ public final class CraftServer implements Server {
@Override
public long getConnectionThrottle() {
@ -157,10 +157,10 @@ index f3caaee30..21aab1d9c 100644
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 670338a5f..7fb7dc5b7 100644
index 6aba2dae0..83ad892c1 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1903,6 +1903,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1901,6 +1901,12 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private final Player.Spigot spigot = new Player.Spigot()
{

View file

@ -1,4 +1,4 @@
From 33bdcae7c70959d23591c27ed8a882e5cfbad092 Mon Sep 17 00:00:00 2001
From 38c2e81e424497a8e4960264431ac7e516957f28 Mon Sep 17 00:00:00 2001
From: Dylan Xaldin <Puremin0rez515@gmail.com>
Date: Thu, 12 Dec 2013 18:05:03 -0600
Subject: [PATCH] Allow Disabling Zombie Villager Aggression
@ -6,7 +6,7 @@ Subject: [PATCH] Allow Disabling Zombie Villager Aggression
Ability to configure if Zombies will be aggressive towards Villagers.
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java b/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java
index 846671c76..6bb1ba41c 100644
index 25cc404f2..a442e4ace 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EntityZombie.java
@@ -119,7 +119,7 @@ public class EntityZombie extends EntityMonster {

View file

@ -1,4 +1,4 @@
From 2dfc581dbab674c10acabe3099e9aa219e9fa868 Mon Sep 17 00:00:00 2001
From a4c9c1828ca5e52fbec0dbc90abe68ba6daa2b4f Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 13 Dec 2013 11:58:58 +1100
Subject: [PATCH] Configurable Amount of Netty Threads
@ -6,19 +6,19 @@ Subject: [PATCH] Configurable Amount of Netty Threads
This brings back the option that the Spigot version of netty saw. By default Netty will try and use cores*2 threads, however if running multiple servers on the same machine, this can be too many threads. Additionally some people have 16 core servers. If 32 Netty threads are allowed in this setup, then the lock contention, and thus blocking between threads becomes much greater, leading to decreased performance.
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c30918640..c3153ed8d 100644
index fdb9aad3e..e2938d7f5 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -345,7 +345,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
usercache.setExecutor(this);
}
@@ -331,7 +331,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
services.profileCache().setExecutor(this);
}
- this.connection = new ServerConnection(this);
+ // this.connection = new ServerConnection(this); // Spigot
this.progressListenerFactory = worldloadlistenerfactory;
this.storageSource = convertable_conversionsession;
this.playerDataStorage = convertable_conversionsession.createPlayerStorage();
@@ -1606,7 +1606,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
- this.connection = new ServerConnection(this);
+ // this.connection = new ServerConnection(this); // Spigot
this.progressListenerFactory = worldloadlistenerfactory;
this.storageSource = convertable_conversionsession;
this.playerDataStorage = convertable_conversionsession.createPlayerStorage();
@@ -1566,7 +1566,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@Nullable
public ServerConnection getConnection() {

View file

@ -1,14 +1,14 @@
From 3718e386cf828d80b11d64f7fe633fefca73b907 Mon Sep 17 00:00:00 2001
From 92674834642e4394de05720832a8d8872af06da3 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 18 Dec 2013 13:39:14 +1100
Subject: [PATCH] Log Cause of Unexpected Exceptions
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c3153ed8d..6a4374ed9 100644
index e2938d7f5..cce83e78b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1027,6 +1027,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -987,6 +987,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
} catch (Throwable throwable) {
MinecraftServer.LOGGER.error("Encountered an unexpected exception", throwable);

View file

@ -1,14 +1,14 @@
From 323c19573e433961712486cae5be22aa3e61d253 Mon Sep 17 00:00:00 2001
From b542dc8bc46262a396f2cb90d3c1ae4b65e25c46 Mon Sep 17 00:00:00 2001
From: DerFlash <bte@freenet.de>
Date: Tue, 9 Jul 2013 00:11:12 +0200
Subject: [PATCH] Save ticks lived to nbttag
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 09fe885aa..1931b02e7 100644
index 792d6bb9d..682200f1b 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -1747,6 +1747,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -1777,6 +1777,7 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
if (maxAirTicks != getDefaultMaxAirSupply()) {
nbttagcompound.putInt("Bukkit.MaxAirSupply", getMaxAirSupply());
}
@ -16,7 +16,7 @@ index 09fe885aa..1931b02e7 100644
// CraftBukkit end
IChatBaseComponent ichatbasecomponent = this.getCustomName();
@@ -1903,6 +1904,11 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
@@ -1933,6 +1934,11 @@ public abstract class Entity implements INamableTileEntity, EntityAccess, IComma
}
// CraftBukkit start

View file

@ -1,14 +1,14 @@
From b7f4bc200b0481e03d5fdf898324ced6b5a3a35e Mon Sep 17 00:00:00 2001
From d9ed3af84600434739e799fdd9bec7752b40c662 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 2 Feb 2014 16:55:46 +0000
Subject: [PATCH] Add Option to Nerf Mobs from Spawners
diff --git a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
index 5905ba5ef..452de2c89 100644
index 2a5c24471..de82750c2 100644
--- a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
+++ b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
@@ -145,6 +145,12 @@ public abstract class MobSpawnerAbstract {
@@ -147,6 +147,12 @@ public abstract class MobSpawnerAbstract {
if (this.nextSpawnData.getEntityToSpawn().size() == 1 && this.nextSpawnData.getEntityToSpawn().contains("id", 8)) {
((EntityInsentient) entity).finalizeSpawn(worldserver, worldserver.getCurrentDifficultyAt(entity.blockPosition()), EnumMobSpawn.SPAWNER, (GroupDataEntity) null, (NBTTagCompound) null);
}

View file

@ -1,14 +1,14 @@
From c6b089068043ea8a5214b039e7fc236e37df4673 Mon Sep 17 00:00:00 2001
From ed80e8c36aade67fb13cb31da3bcbe6072167266 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 23 Dec 2013 15:57:57 +1100
Subject: [PATCH] Disable Connected Check on setScoreboard
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 7fb7dc5b7..a772b1038 100644
index 83ad892c1..fe0faaec4 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1649,7 +1649,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1647,7 +1647,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
throw new IllegalStateException("Cannot set scoreboard yet");
}
if (playerConnection.isDisconnected()) {

View file

@ -1,4 +1,4 @@
From 4ee8748b101d9f1d894bc78a4f802a24907030d7 Mon Sep 17 00:00:00 2001
From 89c60d9f01b6e5f60451d15ce1d12e9047a2fcf3 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thethinkofdeath@gmail.com>
Date: Tue, 7 Jan 2014 15:56:26 +0000
Subject: [PATCH] Allow statistics to be disabled/forced

View file

@ -1,14 +1,14 @@
From e5cf3a0cc96aa2c7d31427715cda5e578211676d Mon Sep 17 00:00:00 2001
From 0674dfdb7c6a40d11a4d554863a4698c61a39ac0 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 12 Jan 2014 20:56:41 +1100
Subject: [PATCH] Try and Debug Crash Reports Crashing
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 6a4374ed9..cfd6e48b0 100644
index cce83e78b..412845f57 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1298,7 +1298,14 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1258,7 +1258,14 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
worldserver.tick(booleansupplier);
worldserver.timings.doTick.stopTiming(); // Spigot
} catch (Throwable throwable) {

View file

@ -1,4 +1,4 @@
From 398c5f44c051fdbbea808d99013695023661e21d Mon Sep 17 00:00:00 2001
From 62e6d06d807ba0cb7b252fb83ae0070f3e1d60e5 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 20 Jan 2014 13:44:07 +1100
Subject: [PATCH] Catch stalling on corrupted map data / NBT arrays.

View file

@ -1,19 +1,19 @@
From 90af2c7f322d50731ca80ce9901ea6b9a9621001 Mon Sep 17 00:00:00 2001
From 736df9b91387718f543d1f7823c1b3917b20cae1 Mon Sep 17 00:00:00 2001
From: Dmck2b <dmck2b+github@gmail.com>
Date: Mon, 20 Jan 2014 20:18:23 +0000
Subject: [PATCH] Allow toggling of ZombiePigmen spawning in portal blocks
diff --git a/src/main/java/net/minecraft/world/level/block/BlockPortal.java b/src/main/java/net/minecraft/world/level/block/BlockPortal.java
index 7a8b19ccc..a3ad3a5ab 100644
index 6a9860347..dd9b612e5 100644
--- a/src/main/java/net/minecraft/world/level/block/BlockPortal.java
+++ b/src/main/java/net/minecraft/world/level/block/BlockPortal.java
@@ -56,7 +56,7 @@ public class BlockPortal extends Block {
@Override
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, Random random) {
- if (worldserver.dimensionType().natural() && worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && random.nextInt(2000) < worldserver.getDifficulty().getId()) {
+ if (worldserver.spigotConfig.enableZombiePigmenPortalSpawns && worldserver.dimensionType().natural() && worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && random.nextInt(2000) < worldserver.getDifficulty().getId()) { // Spigot
public void randomTick(IBlockData iblockdata, WorldServer worldserver, BlockPosition blockposition, RandomSource randomsource) {
- if (worldserver.dimensionType().natural() && worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && randomsource.nextInt(2000) < worldserver.getDifficulty().getId()) {
+ if (worldserver.spigotConfig.enableZombiePigmenPortalSpawns && worldserver.dimensionType().natural() && worldserver.getGameRules().getBoolean(GameRules.RULE_DOMOBSPAWNING) && randomsource.nextInt(2000) < worldserver.getDifficulty().getId()) { // Spigot
while (worldserver.getBlockState(blockposition).is((Block) this)) {
blockposition = blockposition.below();
}

View file

@ -1,14 +1,14 @@
From 8bc9dc60e35fd7787b1d9799541d35a374060513 Mon Sep 17 00:00:00 2001
From ca63082a9c8c37e074f5ec7937762821a961d249 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Thu, 26 Jan 2017 21:50:51 +0000
Subject: [PATCH] Highly Optimized Tick Loop
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index cfd6e48b0..d5fe9f5e7 100644
index 412845f57..de58e7eab 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -291,6 +291,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -278,6 +278,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
public CommandDispatcher vanillaCommandDispatcher;
private boolean forceTicks;
// CraftBukkit end
@ -21,7 +21,7 @@ index cfd6e48b0..d5fe9f5e7 100644
public static <S extends MinecraftServer> S spin(Function<Thread, S> function) {
AtomicReference<S> atomicreference = new AtomicReference();
@@ -983,6 +989,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -942,6 +948,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
}
@ -34,37 +34,37 @@ index cfd6e48b0..d5fe9f5e7 100644
+
protected void runServer() {
try {
if (this.initServer()) {
@@ -991,8 +1004,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.status.setVersion(new ServerPing.ServerData(SharedConstants.getCurrentVersion().getName(), SharedConstants.getCurrentVersion().getProtocolVersion()));
this.updateStatusIcon(this.status);
if (!this.initServer()) {
@@ -954,8 +967,11 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.status.setPreviewsChat(this.previewsChat());
this.updateStatusIcon(this.status);
+ // Spigot start
+ Arrays.fill( recentTps, 20 );
+ long curTime, tickSection = SystemUtils.getMillis(), tickCount = 1;
while (this.running) {
- long i = SystemUtils.getMillis() - this.nextTickTime;
+ long i = (curTime = SystemUtils.getMillis()) - this.nextTickTime;
+ // Spigot start
+ Arrays.fill( recentTps, 20 );
+ long curTime, tickSection = SystemUtils.getMillis(), tickCount = 1;
while (this.running) {
- long i = SystemUtils.getMillis() - this.nextTickTime;
+ long i = (curTime = SystemUtils.getMillis()) - this.nextTickTime;
if (i > 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
long j = i / 50L;
@@ -1003,6 +1019,16 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.lastOverloadWarning = this.nextTickTime;
}
if (i > 5000L && this.nextTickTime - this.lastOverloadWarning >= 30000L) { // CraftBukkit
long j = i / 50L;
@@ -966,6 +982,16 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
this.lastOverloadWarning = this.nextTickTime;
}
+ if ( tickCount++ % SAMPLE_INTERVAL == 0 )
+ {
+ double currentTps = 1E3 / ( curTime - tickSection ) * SAMPLE_INTERVAL;
+ recentTps[0] = calcTps( recentTps[0], 0.92, currentTps ); // 1/exp(5sec/1min)
+ recentTps[1] = calcTps( recentTps[1], 0.9835, currentTps ); // 1/exp(5sec/5min)
+ recentTps[2] = calcTps( recentTps[2], 0.9945, currentTps ); // 1/exp(5sec/15min)
+ tickSection = curTime;
+ }
+ // Spigot end
+ if ( tickCount++ % SAMPLE_INTERVAL == 0 )
+ {
+ double currentTps = 1E3 / ( curTime - tickSection ) * SAMPLE_INTERVAL;
+ recentTps[0] = calcTps( recentTps[0], 0.92, currentTps ); // 1/exp(5sec/1min)
+ recentTps[1] = calcTps( recentTps[1], 0.9835, currentTps ); // 1/exp(5sec/5min)
+ recentTps[2] = calcTps( recentTps[2], 0.9945, currentTps ); // 1/exp(5sec/15min)
+ tickSection = curTime;
+ }
+ // Spigot end
+
if (this.debugCommandProfilerDelayStart) {
this.debugCommandProfilerDelayStart = false;
this.debugCommandProfiler = new MinecraftServer.b(SystemUtils.getNanos(), this.tickCount);
if (this.debugCommandProfilerDelayStart) {
this.debugCommandProfilerDelayStart = false;
this.debugCommandProfiler = new MinecraftServer.TimeProfiler(SystemUtils.getNanos(), this.tickCount);
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 5e6011331..123512de6 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java

View file

@ -1,14 +1,14 @@
From cce8155530c3e2162c1fc766ab05a7ebf5f32616 Mon Sep 17 00:00:00 2001
From 12e84f65b712072af07a015d0a16c3135a605d4b Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 26 Jan 2014 21:48:34 +1100
Subject: [PATCH] Configurable Ping Sample Size
diff --git a/src/main/java/net/minecraft/server/network/PacketStatusListener.java b/src/main/java/net/minecraft/server/network/PacketStatusListener.java
index d8cbae670..868237a37 100644
index d69cb29b8..64ae11b0e 100644
--- a/src/main/java/net/minecraft/server/network/PacketStatusListener.java
+++ b/src/main/java/net/minecraft/server/network/PacketStatusListener.java
@@ -132,6 +132,13 @@ public class PacketStatusListener implements PacketStatusInListener {
@@ -131,6 +131,13 @@ public class PacketStatusListener implements PacketStatusInListener {
ServerPing.ServerPingPlayerSample playerSample = new ServerPing.ServerPingPlayerSample(event.getMaxPlayers(), profiles.size());
if (!this.server.hidesOnlinePlayers()) {

View file

@ -1,4 +1,4 @@
From 1235f28bbba82028ae16cffc515e836ed0aef958 Mon Sep 17 00:00:00 2001
From 3691cd20fdc9aaa9a8ac65f97092e3b1ec9f8b58 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 27 Jan 2014 08:39:26 +1100
Subject: [PATCH] Add Optional Tick Shuffling
@ -6,10 +6,10 @@ Subject: [PATCH] Add Optional Tick Shuffling
This prevents players from 'gaming' the server, and strategically relogging to increase their position in the tick order.
diff --git a/src/main/java/net/minecraft/server/network/ServerConnection.java b/src/main/java/net/minecraft/server/network/ServerConnection.java
index a69191df0..a2a2d1fa4 100644
index 8713f87f4..e462ddade 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnection.java
+++ b/src/main/java/net/minecraft/server/network/ServerConnection.java
@@ -154,6 +154,13 @@ public class ServerConnection {
@@ -155,6 +155,13 @@ public class ServerConnection {
List list = this.connections;
synchronized (this.connections) {

View file

@ -1,35 +1,51 @@
From 1ecb29653682de4f2ce4d0cb2fb4585fd184447b Mon Sep 17 00:00:00 2001
From d78786023321fc7bb3ca1bb19cddccb83124a651 Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
Date: Sat, 8 Feb 2014 08:13:40 +0000
Subject: [PATCH] Spam Filter Exclusions
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index eb86a448c..96404894f 100644
index 2d18a998c..907866c7a 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1801,9 +1801,20 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
}, ChatMessageType.CHAT, this.player.getUUID());
@@ -1814,7 +1814,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
} finally {
this.server.server.playerCommandState = false;
}
- this.detectRateSpam(true);
+ this.detectRateSpam(true, "/" + serverboundchatcommandpacket.command()); // Spigot
// CraftBukkit end
}
+ // Spigot start - spam exclusions
+ boolean counted = true;
+ for ( String exclude : org.spigotmc.SpigotConfig.spamExclusions )
@@ -1913,7 +1913,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
this.chat(s, true);
}
// this.server.getPlayerList().broadcastChatMessage(playerchatmessage, filteredtext, this.player, ChatMessageType.CHAT);
- this.detectRateSpam(false);
+ this.detectRateSpam(false, s); // Spigot
// CraftBukkit end
}
}
@@ -2021,7 +2021,18 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
// CraftBukkit end
// CraftBukkit start - replaced with thread safe throttle
- private void detectRateSpam(boolean isSync) {
+ // Spigot start - spam exclusions
+ private void detectRateSpam(boolean isSync, String s) {
+ boolean counted = true;
+ for ( String exclude : org.spigotmc.SpigotConfig.spamExclusions )
+ {
+ if ( exclude != null && s.startsWith( exclude ) )
+ {
+ if ( exclude != null && s.startsWith( exclude ) )
+ {
+ counted = false;
+ break;
+ }
+ counted = false;
+ break;
+ }
+ // Spigot end
// CraftBukkit start - replaced with thread safe throttle
// this.chatSpamTickCount += 20;
- if (chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
+ if (counted && chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Spigot
if (!isSync) {
Waitable waitable = new Waitable() {
@Override
+ }
+ // Spigot end
// this.chatSpamTickCount += 20;
if (this.chatSpamTickCount.addAndGet(20) > 200 && !this.server.getPlayerList().isOp(this.player.getGameProfile())) {
if (!isSync) {
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 245a9e5e9..5f0b27ad2 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java

View file

@ -1,20 +1,20 @@
From c7233b12ae2211f5f10048593f3a760633d68acb Mon Sep 17 00:00:00 2001
From d1adae7d5f2c085a3201a0e733239d94099bba3a Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 9 Feb 2014 14:39:01 +1100
Subject: [PATCH] Add Option to Silence CommandBlock Console
diff --git a/src/main/java/net/minecraft/commands/CommandListenerWrapper.java b/src/main/java/net/minecraft/commands/CommandListenerWrapper.java
index f3d0e0fdf..84c7500df 100644
index 6d5f03464..83b389284 100644
--- a/src/main/java/net/minecraft/commands/CommandListenerWrapper.java
+++ b/src/main/java/net/minecraft/commands/CommandListenerWrapper.java
@@ -242,7 +242,7 @@ public class CommandListenerWrapper implements ICompletionProvider {
@@ -278,7 +278,7 @@ public class CommandListenerWrapper implements ICompletionProvider {
}
}
- if (this.source != this.server && this.server.getGameRules().getBoolean(GameRules.RULE_LOGADMINCOMMANDS)) {
+ if (this.source != this.server && this.server.getGameRules().getBoolean(GameRules.RULE_LOGADMINCOMMANDS) && !org.spigotmc.SpigotConfig.silentCommandBlocks) { // Spigot
this.server.sendMessage(ichatmutablecomponent, SystemUtils.NIL_UUID);
this.server.sendSystemMessage(ichatmutablecomponent);
}
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java

View file

@ -1,14 +1,14 @@
From 9c9d0968bc8890b423d4f3f822ebd78055c26062 Mon Sep 17 00:00:00 2001
From b3ac24264186372f66e631623dbede7e920df8a7 Mon Sep 17 00:00:00 2001
From: Tux <write@imaginarycode.com>
Date: Sun, 9 Feb 2014 14:03:03 -0500
Subject: [PATCH] Add support for fetching hidden players
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index a772b1038..6ebb7a545 100644
index fe0faaec4..fc07b273a 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1927,6 +1927,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1925,6 +1925,22 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
server.getServer().getPlayerList().respawn( getHandle(), false );
}
}

View file

@ -1,14 +1,14 @@
From ae2e68ed81a1b871679cfe1874956ffed71059b0 Mon Sep 17 00:00:00 2001
From 4956a3550dc6dcff27f90c02ad5e5138435c9f7c Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thethinkofdeath@gmail.com>
Date: Wed, 12 Feb 2014 20:44:14 +0000
Subject: [PATCH] Allow vanilla commands to be the main version of a command
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 21aab1d9c..dba66fefa 100644
index 36ba99086..24d892b38 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -432,8 +432,11 @@ public final class CraftServer implements Server {
@@ -427,8 +427,11 @@ public final class CraftServer implements Server {
}
if (type == PluginLoadOrder.POSTWORLD) {
@ -21,7 +21,7 @@ index 21aab1d9c..dba66fefa 100644
commandMap.registerServerAliases();
DefaultPermissions.registerCorePermissions();
CraftDefaultPermissions.registerCorePermissions();
@@ -447,12 +450,21 @@ public final class CraftServer implements Server {
@@ -442,12 +445,21 @@ public final class CraftServer implements Server {
pluginManager.disablePlugins();
}

View file

@ -1,4 +1,4 @@
From 58476357cde5256a2f32ac2c0d277a47a299f2ee Mon Sep 17 00:00:00 2001
From ef05aae3857fb22e6811967c885f120a8a9758b6 Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Sun, 23 Feb 2014 16:16:59 -0400
Subject: [PATCH] Implement Silenceable Lightning API
@ -26,10 +26,10 @@ index 95985a722..9170b85e3 100644
this.level.playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEffects.LIGHTNING_BOLT_THUNDER, SoundCategory.WEATHER, 10000.0F, 0.8F + this.random.nextFloat() * 0.2F, false);
this.level.playLocalSound(this.getX(), this.getY(), this.getZ(), SoundEffects.LIGHTNING_BOLT_IMPACT, SoundCategory.WEATHER, 2.0F, 0.5F + this.random.nextFloat() * 0.2F, false);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 72e29db0a..7cb8a6b5f 100644
index 0d5122750..d107421e5 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1834,6 +1834,26 @@ public class CraftWorld extends CraftRegionAccessor implements World {
@@ -1842,6 +1842,26 @@ public class CraftWorld extends CraftRegionAccessor implements World {
// Spigot start
private final org.bukkit.World.Spigot spigot = new org.bukkit.World.Spigot()
{

View file

@ -1,4 +1,4 @@
From b3caae087733b9241d884a2779eb63146f3c2146 Mon Sep 17 00:00:00 2001
From 4ad40b1a66e0c480839120a41538d153377abab2 Mon Sep 17 00:00:00 2001
From: FrozenBrain <carstenbamsti@googlemail.com>
Date: Sun, 2 Mar 2014 21:13:46 +0100
Subject: [PATCH] Use one PermissibleBase for all Command Blocks

View file

@ -1,14 +1,14 @@
From ceac742ade72e7b0191c2299d69bd3657dd57053 Mon Sep 17 00:00:00 2001
From d3bd4a3900b1568721b2f6ea97dd85c50ca441f6 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thethinkofdeath@gmail.com>
Date: Wed, 5 Mar 2014 20:27:27 +0000
Subject: [PATCH] Prevent hoppers from loading chunks
diff --git a/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java b/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
index 92f93542c..d8db5d531 100644
index d35ce34b2..3111fecb1 100644
--- a/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
+++ b/src/main/java/net/minecraft/world/level/block/entity/TileEntityHopper.java
@@ -465,6 +465,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
@@ -464,6 +464,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper {
private static IInventory getContainerAt(World world, double d0, double d1, double d2) {
Object object = null;
BlockPosition blockposition = new BlockPosition(d0, d1, d2);

View file

@ -1,14 +1,14 @@
From 281ec81737d0c9a16fe3c331f3be695abb4040c2 Mon Sep 17 00:00:00 2001
From 58535d438ec177ca5c27d26f69860c1bbc7b1a16 Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Sat, 29 Mar 2014 13:44:25 -0400
Subject: [PATCH] Configurable dragon death and wither spawn sounds
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java
index 798e461ac..62eb0a0aa 100644
index f1d6809ac..fb51a3ff7 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EntityEnderDragon.java
@@ -635,7 +635,24 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@@ -631,7 +631,24 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
}
if (this.dragonDeathTime == 1 && !this.isSilent()) {
@ -47,10 +47,10 @@ index 86cc37ed8..d3352870a 100644
double deltaLength = Math.sqrt(distanceSquared);
double relativeX = player.getX() + (deltaX / deltaLength) * viewDistance;
diff --git a/src/main/java/net/minecraft/world/item/ItemEnderEye.java b/src/main/java/net/minecraft/world/item/ItemEnderEye.java
index bc1cd08ae..f8b6cf40f 100644
index e3c6fda40..f97c94517 100644
--- a/src/main/java/net/minecraft/world/item/ItemEnderEye.java
+++ b/src/main/java/net/minecraft/world/item/ItemEnderEye.java
@@ -58,7 +58,25 @@ public class ItemEnderEye extends Item {
@@ -60,7 +60,25 @@ public class ItemEnderEye extends Item {
}
}

View file

@ -1,4 +1,4 @@
From 6f3a3f4061b13bc32731413adbd2b4fd1a509e8e Mon Sep 17 00:00:00 2001
From b77983ebbd27f945d31a20dc4e25190f756fee69 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thethinkofdeath@gmail.com>
Date: Fri, 11 Apr 2014 11:16:34 +0100
Subject: [PATCH] Display 'Spigot' in client crashes, server lists and Mojang
@ -6,10 +6,10 @@ Subject: [PATCH] Display 'Spigot' in client crashes, server lists and Mojang
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index d5fe9f5e7..c96292c9f 100644
index de58e7eab..932307717 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1419,7 +1419,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -1379,7 +1379,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@DontObfuscate
public String getServerModName() {

View file

@ -1,14 +1,14 @@
From 38f926683fa22223011223a19ef2b6852c15caf9 Mon Sep 17 00:00:00 2001
From e389f39b54c8884222c8f5794990058216544023 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 12 Apr 2014 21:23:58 +1000
Subject: [PATCH] Treat Bungee as Online Mode
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
index 999c12d57..ee074ef0a 100644
index 65d4053e4..7efeb7aec 100644
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
@@ -236,7 +236,14 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -228,7 +228,14 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
if (!this.usesAuthentication()) {
DedicatedServer.LOGGER.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
DedicatedServer.LOGGER.warn("The server will make no attempt to authenticate usernames. Beware.");
@ -25,7 +25,7 @@ index 999c12d57..ee074ef0a 100644
}
diff --git a/src/main/java/net/minecraft/server/players/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/players/NameReferencingFileConverter.java
index b18513393..eef7c2c41 100644
index d498b61ca..060f66af1 100644
--- a/src/main/java/net/minecraft/server/players/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/players/NameReferencingFileConverter.java
@@ -68,7 +68,7 @@ public class NameReferencingFileConverter {

View file

@ -1,11 +1,11 @@
From 7d8ae9bb9c03c50b11d85f8bc0aa5c74c7379ea0 Mon Sep 17 00:00:00 2001
From a8412110ec31fbb30d48756809c463bc533366fa Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 13 Apr 2014 09:00:59 +1000
Subject: [PATCH] Print Stack on InternalException
diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/java/net/minecraft/network/NetworkManager.java
index d111deea1..9d942f125 100644
index ffb10b60a..5f718e47d 100644
--- a/src/main/java/net/minecraft/network/NetworkManager.java
+++ b/src/main/java/net/minecraft/network/NetworkManager.java
@@ -151,6 +151,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {

View file

@ -1,4 +1,4 @@
From 13f490f84c10db41e0ddbb0feb76ba9c827d2b96 Mon Sep 17 00:00:00 2001
From a5ff8f8b84f183338c90d92ec437632a5ba2fb7f Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 13 Apr 2014 14:41:23 +1000
Subject: [PATCH] Use Offline Player Data Once if Required.

View file

@ -1,11 +1,11 @@
From 0db31b3587f9c00019ba71ec439ac034dc9b1175 Mon Sep 17 00:00:00 2001
From a00167bc4872c7abefd5c59900b9eb807b050268 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 14 Apr 2014 09:46:20 +1000
Subject: [PATCH] Use Provided Case for Non Existent Offline Players
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
index e500313b0..c9a9e6266 100644
index 1d1813a00..8d5c87afd 100644
--- a/src/main/java/net/minecraft/server/players/UserCache.java
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
@@ -152,7 +152,7 @@ public class UserCache {

View file

@ -1,4 +1,4 @@
From a8df695f6de5565c963fa72d15e1be6786c46dd9 Mon Sep 17 00:00:00 2001
From 8592661782817ea806f5e541964afda2f6b93ff9 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Tue, 15 Apr 2014 10:32:48 +1000
Subject: [PATCH] Fix Player Banning
@ -6,10 +6,10 @@ Subject: [PATCH] Fix Player Banning
This issue stems from the fact that Bukkit's API only allows a UUID to be banned, but Minecraft requires both a UUID and name. To fix this we modify the code to require a UUID or a name, or both. The correct fix would be expanding the API to be able to provide a name, however this would require plugin changes.
diff --git a/src/main/java/net/minecraft/server/players/GameProfileBanEntry.java b/src/main/java/net/minecraft/server/players/GameProfileBanEntry.java
index 1e624d507..691b6e472 100644
index e7085ccdd..904c9f162 100644
--- a/src/main/java/net/minecraft/server/players/GameProfileBanEntry.java
+++ b/src/main/java/net/minecraft/server/players/GameProfileBanEntry.java
@@ -41,20 +41,29 @@ public class GameProfileBanEntry extends ExpirableListEntry<GameProfile> {
@@ -40,20 +40,29 @@ public class GameProfileBanEntry extends ExpirableListEntry<GameProfile> {
}
private static GameProfile createGameProfile(JsonObject jsonobject) {

View file

@ -1,14 +1,14 @@
From e14f4fbc8e45968cd133d751e99601a07e3759bb Mon Sep 17 00:00:00 2001
From 0f095875b3f6f37c37daf0d9caba4696b533a73a Mon Sep 17 00:00:00 2001
From: David <dmck2b@gmail.com>
Date: Mon, 21 Apr 2014 12:43:08 +0100
Subject: [PATCH] Prevent NoClassDefError crash and notify on crash
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index d4dd846db..c57e2d40b 100644
index 60e47cf63..57f63aa83 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -145,6 +145,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -151,6 +151,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
@ -16,7 +16,7 @@ index d4dd846db..c57e2d40b 100644
public CraftWorld getWorld() {
return this.world;
@@ -366,7 +367,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -377,7 +378,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
// CraftBukkit start
if (!this.captureBlockStates) { // Don't notify clients or update physics while capturing blockstates
// Modularize client and physic updates
@ -31,17 +31,21 @@ index d4dd846db..c57e2d40b 100644
}
// CraftBukkit end
@@ -525,6 +532,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
// CraftBukkit end
iblockdata.neighborChanged(this, blockposition, block, blockposition1, false);
diff --git a/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java b/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
index 934fa443c..ca37ef601 100644
--- a/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
+++ b/src/main/java/net/minecraft/world/level/redstone/NeighborUpdater.java
@@ -64,6 +64,10 @@ public interface NeighborUpdater {
}
// CraftBukkit end
iblockdata.neighborChanged(world, blockposition, block, blockposition1, flag);
+ // Spigot Start
+ } catch (StackOverflowError ex) {
+ lastPhysicsProblem = new BlockPosition(blockposition);
+ // Spigot End
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception while updating neighbours");
CrashReportSystemDetails crashreportsystemdetails = crashreport.addCategory("Block being updated");
+ } catch (StackOverflowError ex) {
+ world.lastPhysicsProblem = new BlockPosition(blockposition);
+ // Spigot End
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.forThrowable(throwable, "Exception while updating neighbours");
CrashReportSystemDetails crashreportsystemdetails = crashreport.addCategory("Block being updated");
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index 4734d4ae8..b4eeeb0d0 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java

View file

@ -1,4 +1,4 @@
From b620c5729a02c8618fef8a512d6e504a0413ca86 Mon Sep 17 00:00:00 2001
From c62916f9bf3f6747956a540828838665827847ef Mon Sep 17 00:00:00 2001
From: Jonas Konrad <me@yawk.at>
Date: Fri, 25 Apr 2014 23:46:46 +0200
Subject: [PATCH] Fix race condition that could kill connections before they
@ -12,7 +12,7 @@ initialized. The ServerConnection does not remove NetworkManagers with
this flag.
diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/java/net/minecraft/network/NetworkManager.java
index 9d942f125..927b59532 100644
index 5f718e47d..3ddc3480c 100644
--- a/src/main/java/net/minecraft/network/NetworkManager.java
+++ b/src/main/java/net/minecraft/network/NetworkManager.java
@@ -81,6 +81,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@ -44,10 +44,10 @@ index 9d942f125..927b59532 100644
this.channel.close(); // We can't wait as this may be called from an event loop.
this.disconnectedReason = ichatbasecomponent;
diff --git a/src/main/java/net/minecraft/server/network/ServerConnection.java b/src/main/java/net/minecraft/server/network/ServerConnection.java
index a2a2d1fa4..609dc7c5f 100644
index e462ddade..a82553db7 100644
--- a/src/main/java/net/minecraft/server/network/ServerConnection.java
+++ b/src/main/java/net/minecraft/server/network/ServerConnection.java
@@ -184,6 +184,10 @@ public class ServerConnection {
@@ -185,6 +185,10 @@ public class ServerConnection {
networkmanager.setReadOnly();
}
} else {

View file

@ -1,11 +1,11 @@
From 2717452042ff819bb909f3132d2ea21692374712 Mon Sep 17 00:00:00 2001
From 8920e37b18240700604bcfc89366ab9b416b3e8c Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Fri, 25 Apr 2014 18:17:30 -0400
Subject: [PATCH] Configurable UserCache cap
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
index c9a9e6266..961db661e 100644
index 8d5c87afd..94bbe31c3 100644
--- a/src/main/java/net/minecraft/server/players/UserCache.java
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
@@ -273,7 +273,7 @@ public class UserCache {

View file

@ -1,14 +1,14 @@
From aad118b13837d2426841f23d5e19441144cbfe38 Mon Sep 17 00:00:00 2001
From a0b82a022162668f33f88697efc053bfdaf5dc5a Mon Sep 17 00:00:00 2001
From: ninja <xninja@openmailbox.org>
Date: Tue, 8 Apr 2014 14:05:19 +0200
Subject: [PATCH] Implement PlayerSpawnLocationEvent.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index d7685e96d..6ffd915f1 100644
index a40e1e508..fabbad4d2 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -212,6 +212,19 @@ public abstract class PlayerList {
@@ -216,6 +216,19 @@ public abstract class PlayerList {
s1 = networkmanager.getRemoteAddress().toString();
}

View file

@ -1,14 +1,14 @@
From c6bdb1c577ed7b2f18857da17a5c168da37fc73a Mon Sep 17 00:00:00 2001
From ff547b4684f46018596ffbed52d3f01b9cf62b87 Mon Sep 17 00:00:00 2001
From: drXor <mcyoungsota@gmail.com>
Date: Fri, 23 May 2014 18:05:10 -0400
Subject: [PATCH] Configurable save-on-stop-only for UserCache
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c96292c9f..9ebd21b88 100644
index 932307717..fd9f02e44 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -962,6 +962,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@@ -921,6 +921,12 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
} catch (IOException ioexception1) {
MinecraftServer.LOGGER.error("Failed to unlock level {}", this.storageSource.getLevelId(), ioexception1);
}
@ -22,7 +22,7 @@ index c96292c9f..9ebd21b88 100644
}
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
index 961db661e..45dd649be 100644
index 94bbe31c3..89bbe9350 100644
--- a/src/main/java/net/minecraft/server/players/UserCache.java
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
@@ -127,7 +127,7 @@ public class UserCache {

View file

@ -1,53 +1,54 @@
From a55d63a21fb13c91431336e6986d3a3c26e07cb5 Mon Sep 17 00:00:00 2001
From c37b3da2280edf731f270acb2f5359a47e29202f Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Sun, 29 Jun 2014 21:10:34 +0100
Subject: [PATCH] Limit block placement/interaction packets
diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.java
index 16c75cc19..9156180c1 100644
index 74612f5f7..afec33eef 100644
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.java
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInBlockPlace.java
@@ -8,12 +8,14 @@ import net.minecraft.world.EnumHand;
public class PacketPlayInBlockPlace implements Packet<PacketListenerPlayIn> {
@@ -9,6 +9,7 @@ public class PacketPlayInBlockPlace implements Packet<PacketListenerPlayIn> {
private final EnumHand hand;
private final int sequence;
+ public long timestamp; // Spigot
public PacketPlayInBlockPlace(EnumHand enumhand) {
public PacketPlayInBlockPlace(EnumHand enumhand, int i) {
this.hand = enumhand;
@@ -16,6 +17,7 @@ public class PacketPlayInBlockPlace implements Packet<PacketListenerPlayIn> {
}
public PacketPlayInBlockPlace(PacketDataSerializer packetdataserializer) {
+ this.timestamp = System.currentTimeMillis(); // Spigot
this.hand = (EnumHand) packetdataserializer.readEnum(EnumHand.class);
this.sequence = packetdataserializer.readVarInt();
}
diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInUseItem.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInUseItem.java
index 5381761ea..e7b7eb9f0 100644
index 675909dc6..44ed8f10d 100644
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayInUseItem.java
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayInUseItem.java
@@ -10,6 +10,7 @@ public class PacketPlayInUseItem implements Packet<PacketListenerPlayIn> {
@@ -11,6 +11,7 @@ public class PacketPlayInUseItem implements Packet<PacketListenerPlayIn> {
private final MovingObjectPositionBlock blockHit;
private final EnumHand hand;
private final int sequence;
+ public long timestamp; // Spigot
public PacketPlayInUseItem(EnumHand enumhand, MovingObjectPositionBlock movingobjectpositionblock) {
public PacketPlayInUseItem(EnumHand enumhand, MovingObjectPositionBlock movingobjectpositionblock, int i) {
this.hand = enumhand;
@@ -17,6 +18,7 @@ public class PacketPlayInUseItem implements Packet<PacketListenerPlayIn> {
@@ -19,6 +20,7 @@ public class PacketPlayInUseItem implements Packet<PacketListenerPlayIn> {
}
public PacketPlayInUseItem(PacketDataSerializer packetdataserializer) {
+ this.timestamp = System.currentTimeMillis(); // Spigot
this.hand = (EnumHand) packetdataserializer.readEnum(EnumHand.class);
this.blockHit = packetdataserializer.readBlockHitResult();
}
this.sequence = packetdataserializer.readVarInt();
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index 96404894f..de4011001 100644
index 907866c7a..b5633141a 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1500,10 +1500,30 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1532,10 +1532,30 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
}
}
@ -75,17 +76,17 @@ index 96404894f..de4011001 100644
PlayerConnectionUtils.ensureRunningOnSameThread(packetplayinuseitem, this, this.player.getLevel());
if (this.player.isImmobile()) return; // CraftBukkit
+ if (!checkLimit(packetplayinuseitem.timestamp)) return; // Spigot - check limit
this.player.connection.ackBlockChangesUpTo(packetplayinuseitem.getSequence());
WorldServer worldserver = this.player.getLevel();
EnumHand enumhand = packetplayinuseitem.getHand();
ItemStack itemstack = this.player.getItemInHand(enumhand);
@@ -1554,6 +1574,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1586,6 +1606,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
public void handleUseItem(PacketPlayInBlockPlace packetplayinblockplace) {
PlayerConnectionUtils.ensureRunningOnSameThread(packetplayinblockplace, this, this.player.getLevel());
if (this.player.isImmobile()) return; // CraftBukkit
+ if (!checkLimit(packetplayinblockplace.timestamp)) return; // Spigot - check limit
this.ackBlockChangesUpTo(packetplayinblockplace.getSequence());
WorldServer worldserver = this.player.getLevel();
EnumHand enumhand = packetplayinblockplace.getHand();
ItemStack itemstack = this.player.getItemInHand(enumhand);
--
2.25.1

View file

@ -1,14 +1,14 @@
From 3f11f4f96e738fbfc2afce08d04c6e4caa1a421f Mon Sep 17 00:00:00 2001
From 9e00e7b761dc5ac5e34fdbb8efd057f58e7f7451 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Wed, 2 Jul 2014 23:35:51 +0100
Subject: [PATCH] Better item validation
diff --git a/src/main/java/net/minecraft/network/PacketDataSerializer.java b/src/main/java/net/minecraft/network/PacketDataSerializer.java
index d241dd38b..8defe3019 100644
index e06014976..91bbb9ff4 100644
--- a/src/main/java/net/minecraft/network/PacketDataSerializer.java
+++ b/src/main/java/net/minecraft/network/PacketDataSerializer.java
@@ -481,6 +481,10 @@ public class PacketDataSerializer extends ByteBuf {
@@ -564,6 +564,10 @@ public class PacketDataSerializer extends ByteBuf {
NBTTagCompound nbttagcompound = null;
if (item.canBeDepleted() || item.shouldOverrideMultiplayerNbt()) {
@ -58,7 +58,7 @@ index 4229c88dd..d14b5c38d 100644
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index b3ab8c56c..82ef4a4b2 100644
index b4389c1a0..aca227cb2 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -77,6 +77,10 @@ import org.bukkit.inventory.meta.Repairable;

View file

@ -1,4 +1,4 @@
From 1ad219cb5c9fadac272c01fdefa6b176425571ed Mon Sep 17 00:00:00 2001
From 7e7e16af8fdf68d184cf4397d633d49845338459 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 4 Jul 2014 13:28:45 +1000
Subject: [PATCH] Further Seed Customisation
@ -6,43 +6,43 @@ Subject: [PATCH] Further Seed Customisation
Allow server admins that really want to to customise the seeds used in world generation even further.
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index 262de8928..9baab0e79 100644
index cc2e329ac..2b2487ac5 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -245,6 +245,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -262,6 +262,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
if (gen != null) {
chunkgenerator = new org.bukkit.craftbukkit.generator.CustomChunkGenerator(this, chunkgenerator, gen);
}
+ chunkgenerator.conf = spigotConfig; // Spigot
// CraftBukkit end
chunkgenerator.ensureStructuresGenerated();
boolean flag2 = minecraftserver.forceSynchronousWrites();
DataFixer datafixer = minecraftserver.getFixerUpper();
diff --git a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java
index 8f6baef3c..0b8b10f88 100644
index cc47b0cf2..43ed956ce 100644
--- a/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java
+++ b/src/main/java/net/minecraft/world/entity/monster/EntitySlime.java
@@ -322,7 +322,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
@@ -317,7 +317,7 @@ public class EntitySlime extends EntityInsentient implements IMonster {
}
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(blockposition);
- boolean flag = SeededRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((GeneratorAccessSeed) generatoraccess).getSeed(), 987234911L).nextInt(10) == 0;
+ boolean flag = SeededRandom.seedSlimeChunk(chunkcoordintpair.x, chunkcoordintpair.z, ((GeneratorAccessSeed) generatoraccess).getSeed(), generatoraccess.getMinecraftWorld().spigotConfig.slimeSeed).nextInt(10) == 0; // Spigot
if (random.nextInt(10) == 0 && flag && blockposition.getY() < 40) {
return checkMobSpawnRules(entitytypes, generatoraccess, enummobspawn, blockposition, random);
if (randomsource.nextInt(10) == 0 && flag && blockposition.getY() < 40) {
return checkMobSpawnRules(entitytypes, generatoraccess, enummobspawn, blockposition, randomsource);
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
index 4613925b6..dcb1fa378 100644
index ab7c631a9..23d3a9c07 100644
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
@@ -101,6 +101,7 @@ public abstract class ChunkGenerator implements BiomeManager.Provider {
/** @deprecated */
@Deprecated
public final long ringPlacementSeed;
@@ -98,6 +98,7 @@ public abstract class ChunkGenerator {
private final Map<Structure, List<StructurePlacement>> placementsForStructure;
private final Map<ConcentricRingsStructurePlacement, CompletableFuture<List<ChunkCoordIntPair>>> ringPositions;
private boolean hasGeneratedPositions;
+ public org.spigotmc.SpigotWorldConfig conf; // Spigot
protected static final <T extends ChunkGenerator> P1<Mu<T>, IRegistry<StructureSet>> commonCodec(Instance<T> instance) {
protected static <T extends ChunkGenerator> P1<Mu<T>, IRegistry<StructureSet>> commonCodec(Instance<T> instance) {
return instance.group(RegistryOps.retrieveRegistry(IRegistry.STRUCTURE_SET_REGISTRY).forGetter((chunkgenerator) -> {
@@ -126,11 +127,72 @@ public abstract class ChunkGenerator implements BiomeManager.Provider {
@@ -129,11 +130,72 @@ public abstract class ChunkGenerator {
return this.structureOverrides.isPresent() ? ((HolderSet) this.structureOverrides.get()).stream() : this.structureSets.holders().map(Holder::hackyErase);
}
@ -51,7 +51,7 @@ index 4613925b6..dcb1fa378 100644
+ return possibleStructureSets().map(Holder::value).map((structureset) -> {
+ if (structureset.placement() instanceof RandomSpreadStructurePlacement randomConfig) {
+ String name = structureSets.getKey(structureset).getPath();
+ int seed = randomConfig.salt();
+ int seed = randomConfig.salt;
+
+ switch (name) {
+ case "desert_pyramids":
@ -98,15 +98,15 @@ index 4613925b6..dcb1fa378 100644
+ break;
+ }
+
+ structureset = new StructureSet(structureset.structures(), new RandomSpreadStructurePlacement(randomConfig.spacing(), randomConfig.separation(), randomConfig.spreadType(), seed, randomConfig.locateOffset()));
+ structureset = new StructureSet(structureset.structures(), new RandomSpreadStructurePlacement(randomConfig.locateOffset, randomConfig.frequencyReductionMethod, randomConfig.frequency, seed, randomConfig.exclusionZone, randomConfig.spacing(), randomConfig.separation(), randomConfig.spreadType()));
+ }
+ return structureset;
+ });
+ }
+ // Spigot end
+
private void generatePositions() {
Set<Holder<BiomeBase>> set = this.runtimeBiomeSource.possibleBiomes();
private void generatePositions(RandomState randomstate) {
Set<Holder<BiomeBase>> set = this.biomeSource.possibleBiomes();
- this.possibleStructureSets().forEach((holder) -> {
- StructureSet structureset = (StructureSet) holder.value();
@ -114,24 +114,19 @@ index 4613925b6..dcb1fa378 100644
+ this.possibleStructureSetsSpigot().forEach((holder) -> {
+ StructureSet structureset = (StructureSet) holder;
+ // Spigot end
boolean flag = false;
Iterator iterator = structureset.structures().iterator();
while (iterator.hasNext()) {
@@ -157,11 +219,11 @@ public abstract class ChunkGenerator implements BiomeManager.Provider {
@@ -164,7 +226,7 @@ public abstract class ChunkGenerator {
});
}
- private CompletableFuture<List<ChunkCoordIntPair>> generateRingPositions(Holder<StructureSet> holder, ConcentricRingsStructurePlacement concentricringsstructureplacement) {
+ private CompletableFuture<List<ChunkCoordIntPair>> generateRingPositions(StructureSet holder, ConcentricRingsStructurePlacement concentricringsstructureplacement) { // Spigot
- private CompletableFuture<List<ChunkCoordIntPair>> generateRingPositions(Holder<StructureSet> holder, RandomState randomstate, ConcentricRingsStructurePlacement concentricringsstructureplacement) {
+ private CompletableFuture<List<ChunkCoordIntPair>> generateRingPositions(StructureSet holder, RandomState randomstate, ConcentricRingsStructurePlacement concentricringsstructureplacement) { // Spigot
return concentricringsstructureplacement.count() == 0 ? CompletableFuture.completedFuture(List.of()) : CompletableFuture.supplyAsync(SystemUtils.wrapThreadWithTaskName("placement calculation", () -> {
Stopwatch stopwatch = Stopwatch.createStarted(SystemUtils.TICKER);
List<ChunkCoordIntPair> list = new ArrayList();
- Set<Holder<BiomeBase>> set = (Set) ((StructureSet) holder.value()).structures().stream().flatMap((structureset_a) -> {
+ Set<Holder<BiomeBase>> set = (Set) ((StructureSet) holder).structures().stream().flatMap((structureset_a) -> { // Spigot
return ((StructureFeature) structureset_a.structure().value()).biomes().stream();
}).collect(Collectors.toSet());
int i = concentricringsstructureplacement.distance();
@@ -666,9 +728,11 @@ public abstract class ChunkGenerator implements BiomeManager.Provider {
@@ -655,9 +717,11 @@ public abstract class ChunkGenerator {
ChunkCoordIntPair chunkcoordintpair = ichunkaccess.getPos();
SectionPosition sectionposition = SectionPosition.bottomOf(ichunkaccess);
@ -147,10 +142,10 @@ index 4613925b6..dcb1fa378 100644
while (iterator.hasNext()) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index 0fc38f7f1..8d68f0567 100644
index 9818d6271..ed86a0674 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -220,7 +220,7 @@ public class CraftChunk implements Chunk {
@@ -221,7 +221,7 @@ public class CraftChunk implements Chunk {
@Override
public boolean isSlimeChunk() {
// 987234911L is deterimined in EntitySlime when seeing if a slime can spawn in a chunk

View file

@ -1,4 +1,4 @@
From 5a8df836eec161febd64dc340ba4152a5efaa5a9 Mon Sep 17 00:00:00 2001
From 66ad130b493067a27c9d166c3a717503ad9ec0af Mon Sep 17 00:00:00 2001
From: Suddenly <suddenly@suddenly.coffee>
Date: Tue, 8 Jul 2014 09:44:18 +1000
Subject: [PATCH] Safer JSON Loading
@ -24,7 +24,7 @@ index 1220c2e88..86fb74deb 100644
if (bufferedreader != null) {
try {
diff --git a/src/main/java/net/minecraft/server/players/UserCache.java b/src/main/java/net/minecraft/server/players/UserCache.java
index 45dd649be..c871a8cab 100644
index 89bbe9350..d5428f7ca 100644
--- a/src/main/java/net/minecraft/server/players/UserCache.java
+++ b/src/main/java/net/minecraft/server/players/UserCache.java
@@ -262,6 +262,11 @@ public class UserCache {

View file

@ -1,4 +1,4 @@
From 5782bfc607e8cf59d7d0d081d6ef9c29616a044a Mon Sep 17 00:00:00 2001
From 301407af5808cc295fbcbbd4c1e8da24e23bf9a6 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 9 Jul 2014 10:35:44 +1000
Subject: [PATCH] Add CommandLine EULA Flag
@ -8,10 +8,10 @@ This flag contains the same message as eula.txt (albeit with proper grammar for
This feature only exists for hosting companies and people who manage servers in bulk who wish to agree to the terms by setting a flag in a script.
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index 3f6b4603f..c2828b121 100644
index 420f558cc..f2556b213 100644
--- a/src/main/java/net/minecraft/server/Main.java
+++ b/src/main/java/net/minecraft/server/Main.java
@@ -121,7 +121,16 @@ public class Main {
@@ -122,7 +122,16 @@ public class Main {
return;
}

View file

@ -1,14 +1,14 @@
From 641bafaa37f8cb8dfa36bb6b836f4dcc397bf885 Mon Sep 17 00:00:00 2001
From d462701225a3d6727fb0063d1237ff9c4727f796 Mon Sep 17 00:00:00 2001
From: Thinkofdeath <thinkofdeath@spigotmc.org>
Date: Sat, 19 Jul 2014 19:54:41 +0100
Subject: [PATCH] Prevent a crash involving attributes
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6ebb7a545..83f8a08f2 100644
index fc07b273a..a9a615a1e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1730,7 +1730,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1728,7 +1728,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
AttributeModifiable dummy = new AttributeModifiable(GenericAttributes.MAX_HEALTH, (attribute) -> { });

View file

@ -1,14 +1,14 @@
From 70007b4e71dae3eac73d2afd33260d91fccc8fed Mon Sep 17 00:00:00 2001
From 2ec641e93a8df824d956170f5c363f8e8320567c Mon Sep 17 00:00:00 2001
From: Jonas Konrad <me@yawk.at>
Date: Fri, 4 Jul 2014 23:03:13 +0200
Subject: [PATCH] Make "moved wrongly" limit configurable
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index de4011001..b49ecff59 100644
index b5633141a..fed83fe7e 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -551,7 +551,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -579,7 +579,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
d10 = d6 * d6 + d7 * d7 + d8 * d8;
boolean flag2 = false;
@ -17,7 +17,7 @@ index de4011001..b49ecff59 100644
flag2 = true;
PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)});
}
@@ -1205,7 +1205,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1236,7 +1236,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
d11 = d7 * d7 + d8 * d8 + d9 * d9;
boolean flag2 = false;

View file

@ -1,14 +1,14 @@
From f9c35995e501b023f115fc0f9fabc72110189c86 Mon Sep 17 00:00:00 2001
From feedeebfb42cfd0f19e390fdbba72c7da45139c4 Mon Sep 17 00:00:00 2001
From: Jonas Konrad <me@yawk.at>
Date: Tue, 22 Jul 2014 15:59:01 +0200
Subject: [PATCH] Make "moved too quickly" limit configurable
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index b49ecff59..48a4a0eff 100644
index fed83fe7e..28e75378e 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -524,7 +524,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -552,7 +552,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
}
speed *= 2f; // TODO: Get the speed of the vehicle instead of the player
@ -17,7 +17,7 @@ index b49ecff59..48a4a0eff 100644
// CraftBukkit end
PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved too quickly! {},{},{}", new Object[]{entity.getName().getString(), this.player.getName().getString(), d6, d7, d8});
this.connection.send(new PacketPlayOutVehicleMove(entity));
@@ -1170,7 +1170,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1201,7 +1201,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
if (!this.player.isChangingDimension() && (!this.player.getLevel().getGameRules().getBoolean(GameRules.RULE_DISABLE_ELYTRA_MOVEMENT_CHECK) || !this.player.isFallFlying())) {
float f2 = this.player.isFallFlying() ? 300.0F : 100.0F;

View file

@ -1,4 +1,4 @@
From 301d4e677703bfe3396849129f60372bfaee7c5c Mon Sep 17 00:00:00 2001
From ccddb8c16a999a8911ae0d3eb7a348f8ddfef214 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sun, 27 Jul 2014 20:46:04 +1000
Subject: [PATCH] Apply NBTReadLimiter to more things.

View file

@ -1,23 +1,10 @@
From 79ce9ae574ceb6b0d22e092f255a276a1e7fc031 Mon Sep 17 00:00:00 2001
From 339772ebaf722c25fff5d7fbb39c5f940f11409f Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 28 Jul 2014 16:55:51 +1000
Subject: [PATCH] Allow Attribute Capping.
Apply some sensible defaults and allow server owners to customize the maximum values of selected common attributes.
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeRanged.java b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeRanged.java
index dd381de81..c83598d84 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeRanged.java
+++ b/src/main/java/net/minecraft/world/entity/ai/attributes/AttributeRanged.java
@@ -5,7 +5,7 @@ import net.minecraft.util.MathHelper;
public class AttributeRanged extends AttributeBase {
private final double minValue;
- public final double maxValue;
+ public double maxValue; // Spigot
public AttributeRanged(String s, double d0, double d1, double d2) {
super(s, d0);
diff --git a/src/main/java/net/minecraft/world/entity/ai/attributes/GenericAttributes.java b/src/main/java/net/minecraft/world/entity/ai/attributes/GenericAttributes.java
index 0d1c6e497..18bb28ad1 100644
--- a/src/main/java/net/minecraft/world/entity/ai/attributes/GenericAttributes.java

View file

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

View file

@ -1,14 +1,14 @@
From 7e90e83952988e43048b67273bd6b86e56a5e60a Mon Sep 17 00:00:00 2001
From 1c7a6bedc6fab09b02d4c67664b9573715675fac Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 8 Aug 2014 19:57:03 +1000
Subject: [PATCH] Plug WorldMap Memory Leak
diff --git a/src/main/java/net/minecraft/server/level/WorldServer.java b/src/main/java/net/minecraft/server/level/WorldServer.java
index 9baab0e79..d94972412 100644
index 2b2487ac5..6f98c017d 100644
--- a/src/main/java/net/minecraft/server/level/WorldServer.java
+++ b/src/main/java/net/minecraft/server/level/WorldServer.java
@@ -1925,6 +1925,29 @@ public class WorldServer extends World implements GeneratorAccessSeed {
@@ -2004,6 +2004,29 @@ public class WorldServer extends World implements GeneratorAccessSeed {
public void onTrackingEnd(Entity entity) {
org.spigotmc.AsyncCatcher.catchOp("entity unregister"); // Spigot

View file

@ -1,11 +1,11 @@
From 48a8528b94420a734029d9066a5ba513bfc57491 Mon Sep 17 00:00:00 2001
From 9777f32b94c1b7d5f3a30fb5c82e8403cfc9b5df Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Fri, 15 Aug 2014 18:11:09 -0400
Subject: [PATCH] Remove uneeded validation
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index 82ef4a4b2..d1d05442c 100644
index aca227cb2..ad1efdbe0 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -304,7 +304,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta {

View file

@ -1,14 +1,14 @@
From 9af83986ad60bfd9b85b6162dff7d9c1f8a27aad Mon Sep 17 00:00:00 2001
From 071e07c24fcbab95f657a4f259ab123506d6a57e Mon Sep 17 00:00:00 2001
From: lazertester <austin.techhead@gmail.com>
Date: Sun, 17 Aug 2014 19:56:17 +1000
Subject: [PATCH] Add Hunger Config Values
diff --git a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java
index a90a971cc..59eba6701 100644
index 4729c3e24..8a6cea609 100644
--- a/src/main/java/net/minecraft/world/entity/player/EntityHuman.java
+++ b/src/main/java/net/minecraft/world/entity/player/EntityHuman.java
@@ -1352,7 +1352,7 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1399,7 +1399,7 @@ public abstract class EntityHuman extends EntityLiving {
}
}
@ -17,7 +17,7 @@ index a90a971cc..59eba6701 100644
} else {
this.level.playSound((EntityHuman) null, this.getX(), this.getY(), this.getZ(), SoundEffects.PLAYER_ATTACK_NODAMAGE, this.getSoundSource(), 1.0F, 1.0F);
if (flag4) {
@@ -1525,9 +1525,9 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1577,9 +1577,9 @@ public abstract class EntityHuman extends EntityLiving {
super.jumpFromGround();
this.awardStat(StatisticList.JUMP);
if (this.isSprinting()) {
@ -29,7 +29,7 @@ index a90a971cc..59eba6701 100644
}
}
@@ -1600,19 +1600,19 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1652,19 +1652,19 @@ public abstract class EntityHuman extends EntityLiving {
i = Math.round((float) Math.sqrt(d0 * d0 + d1 * d1 + d2 * d2) * 100.0F);
if (i > 0) {
this.awardStat(StatisticList.SWIM_ONE_CM, i);
@ -52,7 +52,7 @@ index a90a971cc..59eba6701 100644
}
} else if (this.onClimbable()) {
if (d1 > 0.0D) {
@@ -1623,13 +1623,13 @@ public abstract class EntityHuman extends EntityLiving {
@@ -1675,13 +1675,13 @@ public abstract class EntityHuman extends EntityLiving {
if (i > 0) {
if (this.isSprinting()) {
this.awardStat(StatisticList.SPRINT_ONE_CM, i);

View file

@ -1,4 +1,4 @@
From e080d7f2ea8ec63ae83e988e442a3c1f06f8745e Mon Sep 17 00:00:00 2001
From 06e0fdfd64993e05dbbda15468555565fa3c6b73 Mon Sep 17 00:00:00 2001
From: Minecrell <dev@minecrell.net>
Date: Sun, 17 Aug 2014 12:42:53 +0200
Subject: [PATCH] Make debug logging togglable.

View file

@ -1,4 +1,4 @@
From dd462f56d8bdcc4abb0f10d07bfe09af6429f257 Mon Sep 17 00:00:00 2001
From 73982e50a43a2d0047227dfae5d4a850fa2172f6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 20 Aug 2014 18:12:32 -0400
Subject: [PATCH] Limit TNT Detonations per tick
@ -7,7 +7,7 @@ This gives a per-world control on how much TNT will be processed per-tick,
preventing a massive TNT detonation from lagging out the server.
diff --git a/src/main/java/net/minecraft/world/entity/item/EntityTNTPrimed.java b/src/main/java/net/minecraft/world/entity/item/EntityTNTPrimed.java
index dce854ccc..a3ced6037 100644
index dce854ccc..11c130bc1 100644
--- a/src/main/java/net/minecraft/world/entity/item/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/world/entity/item/EntityTNTPrimed.java
@@ -63,6 +63,7 @@ public class EntityTNTPrimed extends Entity {
@ -19,10 +19,10 @@ index dce854ccc..a3ced6037 100644
this.setDeltaMovement(this.getDeltaMovement().add(0.0D, -0.04D, 0.0D));
}
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index c57e2d40b..825bb3868 100644
index 57f63aa83..b2019384b 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -678,6 +678,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -636,6 +636,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
timings.tileEntityTick.stopTiming(); // Spigot
this.tickingBlockEntities = false;
gameprofilerfiller.pop();

View file

@ -1,14 +1,14 @@
From 776875de851246efad55456beef9d57282321ff9 Mon Sep 17 00:00:00 2001
From 9d774a90b6b72e73525010b0c94ffd02cbb2642e Mon Sep 17 00:00:00 2001
From: drXor <mcyoung@mit.edu>
Date: Sat, 9 Aug 2014 13:56:51 -0400
Subject: [PATCH] Configurable Hanging Tick
diff --git a/src/main/java/net/minecraft/world/entity/decoration/EntityHanging.java b/src/main/java/net/minecraft/world/entity/decoration/EntityHanging.java
index 0a79a2eee..b47fd1c13 100644
index 7d28b5e45..1dde5897c 100644
--- a/src/main/java/net/minecraft/world/entity/decoration/EntityHanging.java
+++ b/src/main/java/net/minecraft/world/entity/decoration/EntityHanging.java
@@ -117,7 +117,7 @@ public abstract class EntityHanging extends Entity {
@@ -120,7 +120,7 @@ public abstract class EntityHanging extends Entity {
public void tick() {
if (!this.level.isClientSide) {
this.checkOutOfWorld();

View file

@ -1,41 +1,46 @@
From fcaa2b347e66a09393c4ec1b4a45f4a822995e75 Mon Sep 17 00:00:00 2001
From 2e4255a49cba06e21f7872892fbcb984a6c0a080 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 13 Dec 2014 03:06:05 +0100
Subject: [PATCH] BungeeCord Chat API
diff --git a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java
index 484ab3140..5148f68a3 100644
--- a/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java
+++ b/src/main/java/net/minecraft/network/protocol/game/PacketPlayOutChat.java
@@ -10,6 +10,7 @@ import net.minecraft.network.protocol.Packet;
public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.java
index 69c974f42..114f48d80 100644
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.java
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSystemChatPacket.java
@@ -8,7 +8,17 @@ import net.minecraft.network.chat.ChatMessageType;
import net.minecraft.network.chat.IChatBaseComponent;
import net.minecraft.network.protocol.Packet;
private final IChatBaseComponent message;
+ public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot
private final ChatMessageType type;
private final UUID sender;
-public record ClientboundSystemChatPacket(IChatBaseComponent content, int typeId) implements Packet<PacketListenerPlayOut> {
+// Spigot start
+public record ClientboundSystemChatPacket(String content, int typeId) implements Packet<PacketListenerPlayOut> {
+
+ public ClientboundSystemChatPacket(IChatBaseComponent content, int typeId) {
+ this(IChatBaseComponent.ChatSerializer.toJson(content), typeId);
+ }
+
+ public ClientboundSystemChatPacket(net.md_5.bungee.api.chat.BaseComponent[] content, int typeId) {
+ this(net.md_5.bungee.chat.ComponentSerializer.toString(content), typeId);
+ }
+ // Spigot end
@@ -27,7 +28,13 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
public ClientboundSystemChatPacket(PacketDataSerializer packetdataserializer) {
this(packetdataserializer.readComponent(), packetdataserializer.readVarInt());
@@ -16,7 +26,7 @@ public record ClientboundSystemChatPacket(IChatBaseComponent content, int typeId
@Override
public void write(PacketDataSerializer packetdataserializer) {
- packetdataserializer.writeComponent(this.message);
+ // Spigot start
+ if (components != null) {
+ packetdataserializer.writeUtf(net.md_5.bungee.chat.ComponentSerializer.toString(components));
+ } else {
+ packetdataserializer.writeComponent(this.message);
+ }
+ // Spigot end
packetdataserializer.writeByte(this.type.getIndex());
packetdataserializer.writeUUID(this.sender);
- packetdataserializer.writeComponent(this.content);
+ packetdataserializer.writeUtf(this.content, 262144); // Spigot
packetdataserializer.writeVarInt(this.typeId);
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 6ea0d7404..159a184ae 100644
index 340765265..6f56e26bb 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -245,6 +245,8 @@ import org.yaml.snakeyaml.Yaml;
@@ -240,6 +240,8 @@ import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor;
import org.yaml.snakeyaml.error.MarkedYAMLException;
@ -44,7 +49,7 @@ index 6ea0d7404..159a184ae 100644
public final class CraftServer implements Server {
private final String serverName = "CraftBukkit";
private final String serverVersion;
@@ -2310,6 +2312,20 @@ public final class CraftServer implements Server {
@@ -2293,6 +2295,20 @@ public final class CraftServer implements Server {
public void restart() {
org.spigotmc.RestartCommand.restart();
}
@ -100,7 +105,7 @@ index 74558e852..13008357b 100644
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index b679deee7..12683cc96 100644
index 2b95bfe26..a4e36b96e 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
@ -111,7 +116,7 @@ index b679deee7..12683cc96 100644
import net.minecraft.core.BlockPosition;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
@@ -1088,6 +1089,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
@@ -1100,6 +1101,26 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
// Spigot start
private final org.bukkit.entity.Entity.Spigot spigot = new org.bukkit.entity.Entity.Spigot()
{
@ -139,10 +144,10 @@ index b679deee7..12683cc96 100644
public org.bukkit.entity.Entity.Spigot spigot()
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 83f8a08f2..206b68039 100644
index a9a615a1e..b230a1f2d 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -151,6 +151,8 @@ import org.bukkit.plugin.messaging.StandardMessenger;
@@ -149,6 +149,8 @@ import org.bukkit.plugin.messaging.StandardMessenger;
import org.bukkit.profile.PlayerProfile;
import org.bukkit.scoreboard.Scoreboard;
@ -151,7 +156,7 @@ index 83f8a08f2..206b68039 100644
@DelegateDeserialization(CraftOfflinePlayer.class)
public class CraftPlayer extends CraftHumanEntity implements Player {
private long firstPlayed = 0;
@@ -1951,6 +1953,58 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -1949,6 +1951,51 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
return java.util.Collections.unmodifiableSet( ret );
}
@ -163,11 +168,7 @@ index 83f8a08f2..206b68039 100644
+
+ @Override
+ public void sendMessage(BaseComponent... components) {
+ if ( getHandle().connection == null ) return;
+
+ PacketPlayOutChat packet = new PacketPlayOutChat(null, net.minecraft.network.chat.ChatMessageType.SYSTEM, SystemUtils.NIL_UUID);
+ packet.components = components;
+ getHandle().connection.send(packet);
+ this.sendMessage(net.md_5.bungee.api.ChatMessageType.SYSTEM, components);
+ }
+
+ @Override
@ -187,11 +188,7 @@ index 83f8a08f2..206b68039 100644
+
+ @Override
+ public void sendMessage(net.md_5.bungee.api.ChatMessageType position, BaseComponent... components) {
+ if ( getHandle().connection == null ) return;
+
+ PacketPlayOutChat packet = new PacketPlayOutChat(null, net.minecraft.network.chat.ChatMessageType.getForIndex((byte) position.ordinal()), SystemUtils.NIL_UUID);
+ packet.components = components;
+ getHandle().connection.send(packet);
+ this.sendMessage(position, null, components);
+ }
+
+ @Override
@ -203,9 +200,10 @@ index 83f8a08f2..206b68039 100644
+ public void sendMessage(net.md_5.bungee.api.ChatMessageType position, UUID sender, BaseComponent... components) {
+ if ( getHandle().connection == null ) return;
+
+ PacketPlayOutChat packet = new PacketPlayOutChat(null, net.minecraft.network.chat.ChatMessageType.getForIndex((byte) position.ordinal()), sender == null ? SystemUtils.NIL_UUID : sender);
+ packet.components = components;
+ getHandle().connection.send(packet);
+ net.minecraft.core.IRegistry<ChatMessageType> iregistry = CraftPlayer.this.getHandle().level.registryAccess().registryOrThrow(net.minecraft.core.IRegistry.CHAT_TYPE_REGISTRY);
+ int i = iregistry.getId((ChatMessageType) iregistry.get(ChatMessageType.SYSTEM));
+
+ getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSystemChatPacket(components, i));
+ }
};

View file

@ -1,4 +1,4 @@
From 301f71492f826fc71d316f13b5137c8a8da8b75d Mon Sep 17 00:00:00 2001
From 0dc87fe2bb1e006f754ee179c96958ac3f5669e4 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Fri, 20 Feb 2015 21:39:31 +1100
Subject: [PATCH] Allow Capping (Tile)Entity Tick Time.
@ -10,10 +10,10 @@ For tiles there is very little tradeoff for this option, as tile ticks are based
This feature was commisioned by Chunkr.
diff --git a/src/main/java/net/minecraft/world/level/World.java b/src/main/java/net/minecraft/world/level/World.java
index 825bb3868..6345b3cf0 100644
index b2019384b..fde96ff46 100644
--- a/src/main/java/net/minecraft/world/level/World.java
+++ b/src/main/java/net/minecraft/world/level/World.java
@@ -146,6 +146,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -152,6 +152,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public static BlockPosition lastPhysicsProblem; // Spigot
@ -23,7 +23,7 @@ index 825bb3868..6345b3cf0 100644
public CraftWorld getWorld() {
return this.world;
@@ -232,6 +235,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -243,6 +246,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
});
// CraftBukkit end
timings = new SpigotTimings.WorldTimingsHandler(this); // Spigot - code below can generate new world and access timings
@ -32,7 +32,7 @@ index 825bb3868..6345b3cf0 100644
}
@Override
@@ -656,20 +661,28 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -614,20 +619,28 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
timings.tileEntityPending.stopTiming(); // Spigot
timings.tileEntityTick.startTiming(); // Spigot
@ -64,7 +64,7 @@ index 825bb3868..6345b3cf0 100644
+ tilesThisCycle--;
+ this.blockEntityTickers.remove(tileTickPosition--);
+ // Spigot end
} else if (this.shouldTickBlocksAt(ChunkCoordIntPair.asLong(tickingblockentity.getPos()))) {
} else if (this.shouldTickBlocksAt(tickingblockentity.getPos())) {
tickingblockentity.tick();
}
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java

View file

@ -1,14 +1,14 @@
From 9f75f761f84fd81ca78b469d69ee74d49fd5de16 Mon Sep 17 00:00:00 2001
From 9685f097a0c3bfd97256b23591f635d727960198 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Mon, 13 Jul 2015 19:05:15 +1000
Subject: [PATCH] Use Map for getPlayer(String) lookup.
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index 6ffd915f1..169f25a18 100644
index fabbad4d2..8149e56a0 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -147,6 +147,7 @@ public abstract class PlayerList {
@@ -151,6 +151,7 @@ public abstract class PlayerList {
// CraftBukkit start
private CraftServer cserver;
@ -16,7 +16,7 @@ index 6ffd915f1..169f25a18 100644
public PlayerList(MinecraftServer minecraftserver, IRegistryCustom.Dimension iregistrycustom_dimension, WorldNBTStorage worldnbtstorage, int i) {
this.cserver = minecraftserver.server = new CraftServer((DedicatedServer) minecraftserver, this);
@@ -262,6 +263,7 @@ public abstract class PlayerList {
@@ -266,6 +267,7 @@ public abstract class PlayerList {
playerconnection.teleport(entityplayer.getX(), entityplayer.getY(), entityplayer.getZ(), entityplayer.getYRot(), entityplayer.getXRot());
this.players.add(entityplayer);
@ -24,7 +24,7 @@ index 6ffd915f1..169f25a18 100644
this.playersByUUID.put(entityplayer.getUUID(), entityplayer);
// this.broadcastAll(new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER, new EntityPlayer[]{entityplayer})); // CraftBukkit - replaced with loop below
@@ -515,6 +517,7 @@ public abstract class PlayerList {
@@ -519,6 +521,7 @@ public abstract class PlayerList {
worldserver.removePlayerImmediately(entityplayer, Entity.RemovalReason.UNLOADED_WITH_PLAYER);
entityplayer.getAdvancements().stopListening();
this.players.remove(entityplayer);
@ -32,7 +32,7 @@ index 6ffd915f1..169f25a18 100644
this.server.getCustomBossEvents().onPlayerDisconnect(entityplayer);
UUID uuid = entityplayer.getUUID();
EntityPlayer entityplayer1 = (EntityPlayer) this.playersByUUID.get(uuid);
@@ -659,6 +662,7 @@ public abstract class PlayerList {
@@ -663,6 +666,7 @@ public abstract class PlayerList {
public EntityPlayer respawn(EntityPlayer entityplayer, WorldServer worldserver, boolean flag, Location location, boolean avoidSuffocation) {
entityplayer.stopRiding(); // CraftBukkit
this.players.remove(entityplayer);
@ -40,7 +40,7 @@ index 6ffd915f1..169f25a18 100644
entityplayer.getLevel().removePlayerImmediately(entityplayer, Entity.RemovalReason.DISCARDED);
BlockPosition blockposition = entityplayer.getRespawnPosition();
float f = entityplayer.getRespawnAngle();
@@ -778,6 +782,7 @@ public abstract class PlayerList {
@@ -782,6 +786,7 @@ public abstract class PlayerList {
if (!entityplayer.connection.isDisconnected()) {
worldserver1.addRespawnedPlayer(entityplayer1);
this.players.add(entityplayer1);
@ -48,7 +48,7 @@ index 6ffd915f1..169f25a18 100644
this.playersByUUID.put(entityplayer1.getUUID(), entityplayer1);
}
// entityplayer1.initInventoryMenu();
@@ -981,19 +986,7 @@ public abstract class PlayerList {
@@ -985,19 +990,7 @@ public abstract class PlayerList {
@Nullable
public EntityPlayer getPlayerByName(String s) {

View file

@ -1,26 +1,26 @@
From ce2eaf355f0071400f7dde3e17081261f983fe3a Mon Sep 17 00:00:00 2001
From 2aeb2f5bad7f1bc4eac0244cc733cd471507db7e Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Wed, 22 Jul 2015 19:04:37 +1000
Subject: [PATCH] Clear Packet Queue on Disconnect
diff --git a/src/main/java/net/minecraft/network/NetworkManager.java b/src/main/java/net/minecraft/network/NetworkManager.java
index 927b59532..a4269e547 100644
index 3ddc3480c..3e702cfc5 100644
--- a/src/main/java/net/minecraft/network/NetworkManager.java
+++ b/src/main/java/net/minecraft/network/NetworkManager.java
@@ -415,6 +415,7 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
} else if (this.getPacketListener() != null) {
this.getPacketListener().onDisconnect(new ChatMessage("multiplayer.disconnect.generic"));
this.getPacketListener().onDisconnect(IChatBaseComponent.translatable("multiplayer.disconnect.generic"));
}
+ this.queue.clear(); // Free up packet queue.
}
}
diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java
index 48a4a0eff..215e2132e 100644
index 28e75378e..0cbfb61a9 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -1709,7 +1709,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
@@ -1750,7 +1750,7 @@ public class PlayerConnection implements ServerPlayerConnection, PacketListenerP
public void send(Packet<?> packet, @Nullable GenericFutureListener<? extends Future<? super Void>> genericfuturelistener) {
// CraftBukkit start

View file

@ -1,14 +1,14 @@
From 1bb5785f5ae79376421052c9bd83f8706528fe23 Mon Sep 17 00:00:00 2001
From fe992b3e3dd6aeb867d75f01b955bc0f09c53847 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Thu, 3 Mar 2016 19:45:46 +1100
Subject: [PATCH] Implement SpawnerSpawnEvent.
diff --git a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
index 452de2c89..bd0a49124 100644
index de82750c2..69c64e7ac 100644
--- a/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
+++ b/src/main/java/net/minecraft/world/level/MobSpawnerAbstract.java
@@ -152,6 +152,18 @@ public abstract class MobSpawnerAbstract {
@@ -154,6 +154,18 @@ public abstract class MobSpawnerAbstract {
}
// Spigot End
}

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