Readd configurable max chunk gens per tick

This commit is contained in:
Aikar 2018-07-21 17:24:18 -04:00
parent 34404e60c9
commit bf2c56e8ae
No known key found for this signature in database
GPG Key ID: 401ADFC9891FAAFE
77 changed files with 227 additions and 320 deletions

View File

@ -0,0 +1,111 @@
From 49fd7e234581b6c8da9707da2854313aae503874 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 1 Jan 2018 16:10:24 -0500
Subject: [PATCH] Configurable Max Chunk Gens per Tick
Limit the number of generations that can occur in a single tick, forcing them
to be spread out more.
Defaulting to 10 as an average generation is going to be 3-6ms, which means 10 will
likely cause the server to lose TPS, but constrain how much.
This should result in no noticeable speed reduction in generation for servers not
lagging, and let larger servers reduce this value according to their own desires.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 703642c0b..faa7597b3 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -376,4 +376,15 @@ public class PaperWorldConfig {
}
log("Max Chunk Sends Per Tick: " + maxChunkSendsPerTick);
}
+
+ public int maxChunkGensPerTick = 10;
+ private void maxChunkGensPerTick() {
+ maxChunkGensPerTick = getInt("max-chunk-gens-per-tick", maxChunkGensPerTick);
+ if (maxChunkGensPerTick <= 0) {
+ maxChunkGensPerTick = Integer.MAX_VALUE;
+ log("Max Chunk Gens Per Tick: Unlimited (NOT RECOMMENDED)");
+ } else {
+ log("Max Chunk Gens Per Tick: " + maxChunkGensPerTick);
+ }
+ }
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index 344b95233..fcd9f5491 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -28,6 +28,7 @@ public class PlayerChunk {
// CraftBukkit start - add fields
// You know the drill, https://hub.spigotmc.org/stash/projects/SPIGOT/repos/craftbukkit/browse
// All may seem good at first, but there's deeper issues if you play for a bit
+ boolean chunkExists; // Paper
private boolean loadInProgress = false;
private Runnable loadedRunnable = new Runnable() {
public void run() {
@@ -49,6 +50,7 @@ public class PlayerChunk {
this.playerChunkMap = playerchunkmap;
this.location = new ChunkCoordIntPair(i, j);
this.chunk = playerchunkmap.getWorld().getChunkProviderServer().getOrLoadChunkAt(i, j);
+ this.chunkExists = this.chunk != null || ChunkIOExecutor.hasQueuedChunkLoad(playerChunkMap.getWorld(), i, j); // Paper
markChunkUsed(); // Paper - delay chunk unloads
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 9fd07f859..e29aaab2d 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -140,6 +140,7 @@ public class PlayerChunkMap {
// Spigot start
org.spigotmc.SlackActivityAccountant activityAccountant = this.world.getMinecraftServer().slackActivityAccountant;
activityAccountant.startActivity(0.5);
+ int chunkGensAllowed = world.paperConfig.maxChunkGensPerTick; // Paper
// Spigot end
Iterator iterator1 = this.h.iterator();
@@ -149,6 +150,11 @@ public class PlayerChunkMap {
if (playerchunk1.f() == null) {
boolean flag = playerchunk1.a(PlayerChunkMap.b);
+ // Paper start
+ if (flag && !playerchunk1.chunkExists && chunkGensAllowed-- <= 0) {
+ continue;
+ }
+ // Paper end
if (playerchunk1.a(flag)) {
iterator1.remove();
diff --git a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOExecutor.java b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOExecutor.java
index 9aaca21a7..f50d55c8e 100644
--- a/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOExecutor.java
+++ b/src/main/java/org/bukkit/craftbukkit/chunkio/ChunkIOExecutor.java
@@ -35,4 +35,10 @@ public class ChunkIOExecutor {
public static void tick() {
instance.finishActive();
}
+
+ // Paper start
+ public static boolean hasQueuedChunkLoad(World world, int x, int z) {
+ return instance.hasTask(new QueuedChunk(x, z, null, world, null));
+ }
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/AsynchronousExecutor.java b/src/main/java/org/bukkit/craftbukkit/util/AsynchronousExecutor.java
index 193c3621c..cf1258c55 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/AsynchronousExecutor.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/AsynchronousExecutor.java
@@ -351,4 +351,10 @@ public final class AsynchronousExecutor<P, T, C, E extends Throwable> {
public void setActiveThreads(final int coreSize) {
pool.setCorePoolSize(coreSize);
}
+
+ // Paper start
+ public boolean hasTask(P parameter) throws IllegalStateException {
+ return tasks.get(parameter) != null;
+ }
+ // Paper end
}
--
2.18.0

View File

@ -1,4 +1,4 @@
From a7d52d9da454870e13059c9cee1ea2b09943c662 Mon Sep 17 00:00:00 2001
From 8717d750efce7685cb40fb5a2aada1deeca9a537 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 11 Jan 2018 16:47:28 -0600
Subject: [PATCH] Make max squid spawn height configurable
@ -7,30 +7,18 @@ I don't know why upstream made only the minimum height configurable but
whatever
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 703642c0b..a33c55f41 100644
index faa7597b3..fddd52caf 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -376,4 +376,21 @@ public class PaperWorldConfig {
@@ -387,4 +387,9 @@ public class PaperWorldConfig {
log("Max Chunk Gens Per Tick: " + maxChunkGensPerTick);
}
log("Max Chunk Sends Per Tick: " + maxChunkSendsPerTick);
}
+
+ public int maxChunkGensPerTick = 10;
+ private void maxChunkGensPerTick() {
+ maxChunkGensPerTick = getInt("max-chunk-gens-per-tick", maxChunkGensPerTick);
+ if (maxChunkGensPerTick <= 0) {
+ maxChunkGensPerTick = Integer.MAX_VALUE;
+ log("Max Chunk Gens Per Tick: Unlimited (NOT RECOMMENDED)");
+ } else {
+ log("Max Chunk Gens Per Tick: " + maxChunkGensPerTick);
+ }
+ }
+
+ public double squidMaxSpawnHeight;
+ private void squidMaxSpawnHeight() {
+ squidMaxSpawnHeight = getDouble("squid-spawn-height.maximum", 0.0D);
+ }
+
}
diff --git a/src/main/java/net/minecraft/server/EntitySquid.java b/src/main/java/net/minecraft/server/EntitySquid.java
index ffc6d0b68..70b251210 100644

View File

@ -1,4 +1,4 @@
From 6e4911557836aeeaf25a0ee89018de637d0149a9 Mon Sep 17 00:00:00 2001
From 58be61c968baa7692620f453e152388df99e325e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 14 Jan 2018 17:01:31 -0500
Subject: [PATCH] PreCreatureSpawnEvent

View File

@ -1,4 +1,4 @@
From d3c65296d8baec00ffccc097fbd32c984eda341e Mon Sep 17 00:00:00 2001
From 003dd0a240eaccbd9e0f2b221ced65a8fcd825e7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 14 Jan 2018 17:36:02 -0500
Subject: [PATCH] PlayerNaturallySpawnCreaturesEvent

View File

@ -1,4 +1,4 @@
From 50b9db3c2112d6d203c3ba1d3ce14e0e494e3c44 Mon Sep 17 00:00:00 2001
From 6df26539d98a00ba824fba020dfb08a68c3b673c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 19 Jan 2018 00:36:25 -0500
Subject: [PATCH] Add SkullMeta.setPlayerProfile API

View File

@ -1,4 +1,4 @@
From 4e3afed7ad46f7fb12501512b3b056d43845b225 Mon Sep 17 00:00:00 2001
From 8679d7a0df439bb22997dd86d4ce8789676d7a59 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 2 Jan 2018 00:31:26 -0500
Subject: [PATCH] Fill Profile Property Events

View File

@ -1,4 +1,4 @@
From 746b48fb737927fc6f25497d06fdbb40ef59be9b Mon Sep 17 00:00:00 2001
From ac99b992d5076653bb7d4a4870b297ef15c78fc9 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 19 Jan 2018 08:15:29 -0600
Subject: [PATCH] PlayerAdvancementCriterionGrantEvent

View File

@ -1,4 +1,4 @@
From 461048847edbe22761d50fc017204a5f8ec15950 Mon Sep 17 00:00:00 2001
From 3169647239cfc18b81e98e3ea928845f28bc0cc0 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 27 Jan 2018 17:04:14 -0500
Subject: [PATCH] Add ArmorStand Item Meta

View File

@ -1,4 +1,4 @@
From 0fb78f02246374d62846d855b0a0774ea91877cb Mon Sep 17 00:00:00 2001
From 0d24007fe52669e5bd8aa604109f15490ae7cd07 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 11 Feb 2018 10:43:46 +0000
Subject: [PATCH] Extend Player Interact cancellation
@ -13,7 +13,7 @@ Update adjacent blocks of doors, double plants, pistons and beds
when cancelling interaction.
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index e34198e4..e375e255 100644
index e34198e40..e375e2556 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -110,6 +110,7 @@ public class PlayerInteractManager {
@ -98,5 +98,5 @@ index e34198e4..e375e255 100644
enuminteractionresult = (event.useItemInHand() != Event.Result.ALLOW) ? EnumInteractionResult.SUCCESS : EnumInteractionResult.PASS;
} else if (this.gamemode == EnumGamemode.SPECTATOR) {
--
2.16.1.windows.1
2.18.0

View File

@ -1,4 +1,4 @@
From b88bf8f54e70c80c89c723a466518a0a0bc7881d Mon Sep 17 00:00:00 2001
From 0cc66b09744a98309a2bd93c8617d954006a83af Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 24 Feb 2018 01:14:55 -0500
Subject: [PATCH] Tameable#getOwnerUniqueId API

View File

@ -1,11 +1,11 @@
From c343647c7c1da02fcf1fb959638cdf50c4517dbf Mon Sep 17 00:00:00 2001
From 2da97a3a645321975638551ed8b7b0b1e79b4783 Mon Sep 17 00:00:00 2001
From: MiniDigger <admin@minidigger.me>
Date: Sat, 10 Mar 2018 00:50:24 +0100
Subject: [PATCH] Toggleable player crits, helps mitigate hacked clients.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index a33c55f41..4ca31c8eb 100644
index fddd52caf..79df2c171 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -179,6 +179,11 @@ public class PaperWorldConfig {
@ -21,7 +21,7 @@ index a33c55f41..4ca31c8eb 100644
private void allChunksAreSlimeChunks() {
allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false);
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index ae4dd621d..4fb300468 100644
index 28688f2ac..98fdfcb60 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1021,6 +1021,7 @@ public abstract class EntityHuman extends EntityLiving {

View File

@ -1,4 +1,4 @@
From 60e36541916056a066dfbad3f6cba828ad68fd88 Mon Sep 17 00:00:00 2001
From 8fb609894fd5ae64febc7444fc485735a565cbe6 Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sat, 10 Mar 2018 13:03:49 +0000
Subject: [PATCH] Fix NPE when getting location from InventoryEnderChest opened

View File

@ -1,4 +1,4 @@
From 566c2f52f198e39d6ba6c4c94a0242ffc7e2d7a1 Mon Sep 17 00:00:00 2001
From c0843c56ac5dec0d56f164336ba713dfe9349178 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 10 Mar 2018 16:33:15 -0500
Subject: [PATCH] Prevent Frosted Ice from loading/holding chunks

View File

@ -1,4 +1,4 @@
From 63e1dbdab75cf30b185ca29a91c5ce9f106f9da7 Mon Sep 17 00:00:00 2001
From 630db698e03a4dbf59460f3ea2d1ea32a9a9081c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 11 Mar 2018 14:13:33 -0400
Subject: [PATCH] Disable Explicit Network Manager Flushing

View File

@ -1,4 +1,4 @@
From a663e14dc508e217a3ea771b2d515553552b3f7d Mon Sep 17 00:00:00 2001
From a1e5ecf741cca8862642895e14580b92151b92ff Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Wed, 11 Oct 2017 15:56:26 +0200
Subject: [PATCH] Implement extended PaperServerListPingEvent

View File

@ -1,4 +1,4 @@
From f476b5d557791b1d72e162a31a0d6c1ba6225039 Mon Sep 17 00:00:00 2001
From f06918c9b3d5ea2e59d9fdb97964765cc67e41f3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 16 Mar 2018 22:59:43 -0400
Subject: [PATCH] Improved Async Task Scheduler

View File

@ -1,4 +1,4 @@
From 4603e7767cf800889109614583659c4824185d35 Mon Sep 17 00:00:00 2001
From fa21f31032976ddd5f0e58dd0b58a3dbdafe665d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 18 Mar 2018 11:45:57 -0400
Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent

View File

@ -1,4 +1,4 @@
From 3d002d32e0ca98b0fe7dde739c78504adc12da55 Mon Sep 17 00:00:00 2001
From 7c0b2a1664a8e7e9836aecccf5ae44c1562d669c Mon Sep 17 00:00:00 2001
From: MiniDigger <admin@minidigger.me>
Date: Sun, 18 Mar 2018 15:44:44 +0100
Subject: [PATCH] Call PortalCreateEvent for exit portals

View File

@ -1,4 +1,4 @@
From b1272fc90f5669440ddbcb89feeb838d83930742 Mon Sep 17 00:00:00 2001
From 6345c6f66496c41addcec4bb59a20042d54113fa Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 18 Mar 2018 12:29:48 -0400
Subject: [PATCH] Player.setPlayerProfile API
@ -6,7 +6,7 @@ Subject: [PATCH] Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 4fb300468..65f4ea6cc 100644
index 98fdfcb60..de1b6ac86 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -67,7 +67,7 @@ public abstract class EntityHuman extends EntityLiving {

View File

@ -1,4 +1,4 @@
From f115c470c9ec36d4a124b3ce10a655f0b4a1a6ea Mon Sep 17 00:00:00 2001
From 2c68ce035af26d50da287bf6ffdf0cdab51c0cc8 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 21 Mar 2018 20:52:07 -0400
Subject: [PATCH] Fix Dragon Server Crashes

View File

@ -1,4 +1,4 @@
From 8b072f7bcac5a64cbeb681a56c0a70d3b1760e45 Mon Sep 17 00:00:00 2001
From 3cf669e70d479742197c2514cda5bd38a37c53d6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 22 Mar 2018 01:40:24 -0400
Subject: [PATCH] getPlayerUniqueId API
@ -9,7 +9,7 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index d605e5792..0b361d82f 100644
index b1d3f2a5e..f3050b126 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1379,6 +1379,26 @@ public final class CraftServer implements Server {

View File

@ -1,4 +1,4 @@
From 252500c4df07e3b9ddca3342251edfc69eba13e2 Mon Sep 17 00:00:00 2001
From 725c61e238b9e9a113f136f26b39315df99de52a Mon Sep 17 00:00:00 2001
From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Date: Mon, 26 Mar 2018 18:30:53 +0300
Subject: [PATCH] Make player data saving configurable

View File

@ -1,4 +1,4 @@
From d9e2a3cf0ea3d161fe6ec584a55cefdffc86b308 Mon Sep 17 00:00:00 2001
From c61ddf237a78a4fd0f77adf6bfef362304616d49 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Wed, 11 Oct 2017 18:22:50 +0200
Subject: [PATCH] Make legacy ping handler more reliable

View File

@ -1,4 +1,4 @@
From 3cfed1cabdc149a5016551c477c05fea9dab436d Mon Sep 17 00:00:00 2001
From 5eb3fa9c26c608913ef6ccf7f4c22fea153fa472 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Wed, 11 Oct 2017 19:30:51 +0200
Subject: [PATCH] Call PaperServerListPingEvent for legacy pings

View File

@ -1,4 +1,4 @@
From cfcc5a751071bb5a3d54c5147ed2d0b1ce0652fc Mon Sep 17 00:00:00 2001
From 98b33a4a6b8621669d139259b2c3906add1012ac Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sat, 31 Mar 2018 17:04:26 +0100
Subject: [PATCH] Flag to disable the channel limit

View File

@ -1,4 +1,4 @@
From 0f0a1e0abec3f8dd616b1356ff2fd571fa693d28 Mon Sep 17 00:00:00 2001
From 3ff982bb8588ed6f368c4c5bf145261dac55ba46 Mon Sep 17 00:00:00 2001
From: Mark Vainomaa <mikroskeem@mikroskeem.eu>
Date: Sun, 1 Apr 2018 02:29:37 +0300
Subject: [PATCH] Add method to open already placed sign

View File

@ -1,11 +1,11 @@
From 1b5e237639a102046ad53bf1e8f0993344645ce7 Mon Sep 17 00:00:00 2001
From edbff1c504156c4ac399e840b6d4124b259151b4 Mon Sep 17 00:00:00 2001
From: Kyle Wood <demonwav@gmail.com>
Date: Thu, 1 Mar 2018 19:38:14 -0600
Subject: [PATCH] Load version history at server start
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 927cbeedcd..ae7a8c1046 100644
index 927cbeedc..ae7a8c104 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -207,6 +207,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer

View File

@ -1,4 +1,4 @@
From 272351def6380d58c578121249084b58c33fb005 Mon Sep 17 00:00:00 2001
From c825dfa73f7484821534a66ee58be1ed28c5a33b Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Sat, 14 Apr 2018 20:20:46 +0200
Subject: [PATCH] Configurable sprint interruption on attack
@ -6,20 +6,21 @@ Subject: [PATCH] Configurable sprint interruption on attack
If the sprint interruption is disabled players continue sprinting when they attack entities.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 4ca31c8eb..b07ff9587 100644
index 79df2c171..b07ff9587 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -398,4 +398,8 @@ public class PaperWorldConfig {
@@ -397,4 +397,9 @@ public class PaperWorldConfig {
private void squidMaxSpawnHeight() {
squidMaxSpawnHeight = getDouble("squid-spawn-height.maximum", 0.0D);
}
+
+ public boolean disableSprintInterruptionOnAttack;
+ private void disableSprintInterruptionOnAttack() {
+ disableSprintInterruptionOnAttack = getBoolean("game-mechanics.disable-sprint-interruption-on-attack", false);
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 65f4ea6cc..a766a1467 100644
index de1b6ac86..4aba5716c 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1073,7 +1073,11 @@ public abstract class EntityHuman extends EntityLiving {

View File

@ -1,4 +1,4 @@
From 6728452343b99a6782ba86e8f06c8efc541ec1ce Mon Sep 17 00:00:00 2001
From ec23704c6f67afe3004f9fe597196b976071492d Mon Sep 17 00:00:00 2001
From: 0x22 <0x22@futureclient.net>
Date: Thu, 26 Apr 2018 04:41:11 -0400
Subject: [PATCH] Fix exploit that allowed colored signs to be created

View File

@ -1,4 +1,4 @@
From eff134b277d169c072ec4e9e4a625b4eed570ad8 Mon Sep 17 00:00:00 2001
From b5b9280ab8819c53ce5fdcaf92e9967a002bc18a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 30 Apr 2018 13:15:55 -0400
Subject: [PATCH] EndermanEscapeEvent

View File

@ -1,4 +1,4 @@
From 4aa456490016a276e95bc4671452be27080de984 Mon Sep 17 00:00:00 2001
From 880a89e66ceb7046eff5ee0e63c34e8c58789991 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 30 Apr 2018 13:29:44 -0400
Subject: [PATCH] Enderman.teleportRandomly()

View File

@ -1,4 +1,4 @@
From 1a3f838cf2b440c14f09906a39b4ce9d3296c3b0 Mon Sep 17 00:00:00 2001
From 6e8f677a4eafa9506dd5330ae0007c16e706226b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 30 Apr 2018 17:15:26 -0400
Subject: [PATCH] Block Enderpearl Travel Exploit

View File

@ -1,4 +1,4 @@
From c2a083674e1af22455c5b81ea3d35a854280b245 Mon Sep 17 00:00:00 2001
From 46f6693f3d0851bfe551d2ef6d25ccb0a2e5538c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 15 Aug 2017 22:29:12 -0400
Subject: [PATCH] Expand World.spawnParticle API and add Builder
@ -9,7 +9,7 @@ the standard API is to send the packet to everyone in the world, which is ineffe
This adds a new Builder API which is much friendlier to use.
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index c5da2cde3..4ac2d39c5 100644
index 23414c776..9e3804579 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1205,14 +1205,20 @@ public class WorldServer extends World implements IAsyncTaskHandler {

View File

@ -1,4 +1,4 @@
From c021ee56772971a27376c93715633f054136944d Mon Sep 17 00:00:00 2001
From a8c38caffb5b627db4b48c26b6091cae36ae6140 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 May 2018 20:18:54 -0400
Subject: [PATCH] EndermanAttackPlayerEvent

View File

@ -1,4 +1,4 @@
From b8489746b3b8239af444718a14db63df9a013f9e Mon Sep 17 00:00:00 2001
From 0cbe97f322932b592af43ff5b7382b9a102e6f41 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 16 May 2018 20:35:16 -0400
Subject: [PATCH] WitchConsumePotionEvent
@ -6,7 +6,7 @@ Subject: [PATCH] WitchConsumePotionEvent
Fires when a witch consumes the potion in their hand
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index 71d8b6f8f..cf0669589 100644
index 524d84c5b..c77328e76 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -67,7 +67,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity {

View File

@ -1,4 +1,4 @@
From 29d89398140ce66b1a3209076b0c1928e6998cef Mon Sep 17 00:00:00 2001
From 9cb40d40ad0b4f9ca8d6ec60318d3a5479b47887 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 16 May 2018 20:44:58 -0400
Subject: [PATCH] WitchThrowPotionEvent
@ -6,7 +6,7 @@ Subject: [PATCH] WitchThrowPotionEvent
Fired when a witch throws a potion at a player
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index cf0669589..59f3f4404 100644
index c77328e76..2d8e307e7 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -154,7 +154,15 @@ public class EntityWitch extends EntityMonster implements IRangedEntity {

View File

@ -1,4 +1,4 @@
From dc479ddb30269b2192d02a677dfee75596be4123 Mon Sep 17 00:00:00 2001
From 73f57a0e2462538caca787a27b268815f6e8d629 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 4 Jun 2018 20:39:20 -0400
Subject: [PATCH] Allow spawning Item entities with World.spawnEntity

View File

@ -1,4 +1,4 @@
From c84eb9a263bf5bf86b6ed453989bce78ef18670f Mon Sep 17 00:00:00 2001
From c6bbd29322e952519d7f2c351d868ee6cb60cf76 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Jun 2018 00:32:22 -0400
Subject: [PATCH] Don't load chunks for villager door checks

View File

@ -1,11 +1,11 @@
From 6a0a12787818097574820822ec616173d555934d Mon Sep 17 00:00:00 2001
From 8b9681193930f2c02174ea5fb7e6b1aca5ea07ad Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Jun 2018 22:47:26 -0400
Subject: [PATCH] WitchReadyPotionEvent
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index 59f3f4404..45b6e2b7b 100644
index 2d8e307e7..b6f4ec842 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -100,7 +100,11 @@ public class EntityWitch extends EntityMonster implements IRangedEntity {

View File

@ -1,4 +1,4 @@
From 2447f92f25673681de873f0f7c2c828e66749b07 Mon Sep 17 00:00:00 2001
From b3a02b96725d11d0db406f34c2ff4dc2dec7aee6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 5 Jun 2018 23:00:29 -0400
Subject: [PATCH] ItemStack#getMaxItemUseDuration

View File

@ -1,4 +1,4 @@
From 94174eb07753ceb680c9deb800186df594922629 Mon Sep 17 00:00:00 2001
From b62e515f95531fb8a44ed48d0773987b0622100f Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sat, 9 Jun 2018 14:08:39 +0200
Subject: [PATCH] Implement EntityTeleportEndGatewayEvent

View File

@ -1,4 +1,4 @@
From d8cc785ed1c99aaa99a903e700fd4af772fc8622 Mon Sep 17 00:00:00 2001
From 6ed48dc3d24f2c96bc25877a4b9039fb81dfe608 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 10 Jun 2018 01:18:49 -0400
Subject: [PATCH] Unset Ignited flag on cancel of Explosion Event

View File

@ -1,4 +1,4 @@
From e8322305c667ce125bb50e00bd4e90c377f5348b Mon Sep 17 00:00:00 2001
From 8b876416290e13c07102b3f283e01512f9725557 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 10 Jun 2018 20:04:42 -0400
Subject: [PATCH] Properly remove entities on dimension teleport

View File

@ -1,4 +1,4 @@
From 401b1eabffdb3192c2f5d29b2ae00ed856bc6f19 Mon Sep 17 00:00:00 2001
From c19ab61ae52201550ca2cd3bd0b8d1046d94b7e7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 10 Jun 2018 20:20:15 -0400
Subject: [PATCH] Fix CraftEntity hashCode

View File

@ -1,4 +1,4 @@
From 0bd14e1218f146e26524a3c799209482a53e99e0 Mon Sep 17 00:00:00 2001
From bb83f7424505fdfcbde00c4a03cf33d1f5084158 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 15 Jun 2018 00:30:32 -0400
Subject: [PATCH] Configurable Alternative LootPool Luck Formula

View File

@ -1,4 +1,4 @@
From f20915ce41068548c77552bce50c39b26cf2a669 Mon Sep 17 00:00:00 2001
From 0174cd4916ed9847dc297dae74940d3053c18011 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 15 Jun 2018 20:37:03 -0400
Subject: [PATCH] Print Error details when failing to save player data

View File

@ -1,4 +1,4 @@
From 3bfec59ed4647d0c87081489077dfa8289754c27 Mon Sep 17 00:00:00 2001
From 8d4c2d59264801c858ea9086dcda25380a409942 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sat, 16 Jun 2018 01:18:16 -0500
Subject: [PATCH] Make shield blocking delay configurable

View File

@ -1,4 +1,4 @@
From 4d81780db6fefcf2f2854874aaff39f758fd2c23 Mon Sep 17 00:00:00 2001
From aadf97220e1f6f86636f331da7fe9f0eaad87fa5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 16 Jun 2018 16:23:38 -0400
Subject: [PATCH] Ignore Missing Recipes in RecipeBook to avoid data errors

View File

@ -1,4 +1,4 @@
From ce9ae41f9c1a58dfb36d50e022a54f9a693baf9b Mon Sep 17 00:00:00 2001
From ab2bedbe6a0f08e88ef7726bf5693669443a2bbf Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 15 Jun 2013 19:51:17 -0400
Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
@ -6,7 +6,7 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
Adds ability to get what arrow was shot, and control if it should be consumed.
diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
index c2bc8060ac..1ae967d1c0 100644
index c2bc8060a..1ae967d1c 100644
--- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
+++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
@@ -160,7 +160,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
@ -19,7 +19,7 @@ index c2bc8060ac..1ae967d1c0 100644
event.getProjectile().remove();
return;
diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java
index 4aa3b6249f..c8fc180458 100644
index 4aa3b6249..c8fc18045 100644
--- a/src/main/java/net/minecraft/server/ItemBow.java
+++ b/src/main/java/net/minecraft/server/ItemBow.java
@@ -57,6 +57,7 @@ public class ItemBow extends Item {
@ -58,7 +58,7 @@ index 4aa3b6249f..c8fc180458 100644
if (itemstack1.isEmpty()) {
entityhuman.inventory.f(itemstack1);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8df07536f8..28b156e439 100644
index 8df07536f..28b156e43 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -244,7 +244,7 @@ public class CraftEventFactory {

View File

@ -1,4 +1,4 @@
From afc01323c53932b9808ec3b3b386bf5bc371b41d Mon Sep 17 00:00:00 2001
From 7f76c01206344b8ab4296cec33cd11c3be5763e6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 18 Jun 2018 01:12:53 -0400
Subject: [PATCH] PlayerReadyArrowEvent

View File

@ -1,11 +1,11 @@
From 6bdfc29966cb4da65d45841001ec76f154cbf34c Mon Sep 17 00:00:00 2001
From f0b6ccf18509b9884389988eae1ee25d85819505 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 18 Jun 2018 22:19:36 -0400
Subject: [PATCH] Fire EntityShootBowEvent for Illusioner
diff --git a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
index d03fa6318..16c3be42e 100644
index d64664c4d..4832fdd02 100644
--- a/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
+++ b/src/main/java/net/minecraft/server/EntityIllagerIllusioner.java
@@ -123,8 +123,18 @@ public class EntityIllagerIllusioner extends EntityIllagerWizard implements IRan

View File

@ -1,4 +1,4 @@
From 5d0b0c840d82488619f181d2b576147a2b0f194b Mon Sep 17 00:00:00 2001
From 121cd30c4f384f19b62d0ba25b4a7a31d0b9e6ef Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Mon, 18 Jun 2018 15:46:23 +0200
Subject: [PATCH] Implement EntityKnockbackByEntityEvent

View File

@ -1,4 +1,4 @@
From 72cd1ffe96f7827b81fbbca604f1e55ffe645d8e Mon Sep 17 00:00:00 2001
From 11db157dbfdbc9b58395db8ec6042f0b839d2b91 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 20 Jun 2018 23:17:24 -0400
Subject: [PATCH] Expand Explosions API

View File

@ -1,4 +1,4 @@
From d249802a700c76fd6306b36fc4aa5d808f5000da Mon Sep 17 00:00:00 2001
From a8a715a958825c0714c667dd9fb939e330e09551 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 29 Jun 2018 00:21:28 -0400
Subject: [PATCH] LivingEntity Hand Raised/Item Use API

View File

@ -1,4 +1,4 @@
From a00c8433613cb510195c2a63ac60ce2f14c41a6b Mon Sep 17 00:00:00 2001
From 420a90ce0cca816c8a0599edb797468e80b1d779 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 26 Jun 2018 22:00:49 -0400
Subject: [PATCH] RangedEntity API

View File

@ -1,4 +1,4 @@
From ac0823ffa12e8a2db3761180150b1eb95ce4f15b Mon Sep 17 00:00:00 2001
From fd187d957c8bf19ff2a0c3ae4e740f288f12ea83 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 1 Jul 2018 22:06:29 -0400
Subject: [PATCH] Add SentientNPC Interface to Entities

View File

@ -1,4 +1,4 @@
From 82b68d951b4bd0d4016c4ff31929c87fe6b7365c Mon Sep 17 00:00:00 2001
From 70fe646bea2f7c4ca1178600fccadf5c353679b1 Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Sat, 30 Jun 2018 05:45:39 +0200
Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the
@ -6,7 +6,7 @@ Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 28b156e439..8ac599b7a2 100644
index 28b156e43..8ac599b7a 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -823,7 +823,7 @@ public class CraftEventFactory {

View File

@ -1,4 +1,4 @@
From 0caefe772325cd5a57cffef2e691f1be25a4deee Mon Sep 17 00:00:00 2001
From 055edcc6b62bace3a2471207d453296e73532325 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Fri, 22 Jun 2018 10:38:31 -0500
Subject: [PATCH] Add config to disable ender dragon legacy check

View File

@ -1,4 +1,4 @@
From 4a50c881283ee28bd0e56a8072dfb5dfb0001b73 Mon Sep 17 00:00:00 2001
From 8055597cb297475d5e271dcffc2495a85b2a2702 Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Tue, 3 Jul 2018 16:08:14 +0200
Subject: [PATCH] Implement World.getEntity(UUID) API

View File

@ -1,4 +1,4 @@
From a4b348249773be2b2366d73f8e54d35aa39c2e21 Mon Sep 17 00:00:00 2001
From 087cf44f244fd8c9afe5831e5714891a26585028 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 3 Jul 2018 21:56:23 -0400
Subject: [PATCH] InventoryCloseEvent Reason API
@ -7,7 +7,7 @@ Allows you to determine why an inventory was closed, enabling plugin developers
to "confirm" things based on if it was player triggered close or not.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index f31524eb02..2612d4207f 100644
index ac90ca802..9e798038b 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -886,7 +886,7 @@ public class Chunk implements IChunkAccess {
@ -29,7 +29,7 @@ index f31524eb02..2612d4207f 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 4aba5716ce..d84bb0e40c 100644
index 4aba5716c..d84bb0e40 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -153,7 +153,7 @@ public abstract class EntityHuman extends EntityLiving {
@ -56,7 +56,7 @@ index 4aba5716ce..d84bb0e40c 100644
this.activeContainer = this.defaultContainer;
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index 5db6e07640..99c638857b 100644
index 5db6e0764..99c638857 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -343,7 +343,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@ -110,7 +110,7 @@ index 5db6e07640..99c638857b 100644
this.m();
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 067f7b9908..97b315bca0 100644
index 067f7b990..97b315bca 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -2038,7 +2038,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
@ -123,7 +123,7 @@ index 067f7b9908..97b315bca0 100644
this.player.m();
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 879780c5b1..907f0232bf 100644
index 879780c5b..907f0232b 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -422,7 +422,7 @@ public abstract class PlayerList {
@ -136,7 +136,7 @@ index 879780c5b1..907f0232bf 100644
PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game");
cserver.getPluginManager().callEvent(playerQuitEvent);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index 4b9ecb4a62..b602a5d1b9 100644
index 4b9ecb4a6..b602a5d1b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -402,8 +402,13 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {
@ -155,7 +155,7 @@ index 4b9ecb4a62..b602a5d1b9 100644
public boolean isBlocking() {
return getHandle().isBlocking();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 60bc6d3316..b25980027b 100644
index 60bc6d331..b25980027 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -687,7 +687,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@ -168,7 +168,7 @@ index 60bc6d3316..b25980027b 100644
// Check if the fromWorld and toWorld are the same.
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 8ac599b7a2..cf398cd250 100644
index 8ac599b7a..cf398cd25 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -913,8 +913,19 @@ public class CraftEventFactory {

View File

@ -1,4 +1,4 @@
From b774b0ac70ae00b43fd54c2c65648d60e096175c Mon Sep 17 00:00:00 2001
From e447edc0e8d60a97f6c61bf5c498f2cb90d5d0e7 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 03:39:51 -0400
Subject: [PATCH] Avoid Chunk Lookups for Entity/TileEntity Current Chunk
@ -10,7 +10,7 @@ to the object directly on the Entity/TileEntity object we can directly grab.
Use that local value instead to reduce lookups in many hot places.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 2612d4207..b3cdc0b7d 100644
index 9e798038b..03afa1236 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -721,6 +721,7 @@ public class Chunk implements IChunkAccess {

View File

@ -1,4 +1,4 @@
From a597b4290dec2a27e9682b460854fecab8a225a3 Mon Sep 17 00:00:00 2001
From bf9f070bd5c6e334801791d85ebb2af51a53a1e6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 15:22:06 -0400
Subject: [PATCH] Configurable Bed Search Radius

View File

@ -1,4 +1,4 @@
From d1b09605870a98731d5ea3f2cf15f20c60969243 Mon Sep 17 00:00:00 2001
From 3ec7cf2dd409d5331a0b0715086104d1147d4f7e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 15:30:22 -0400
Subject: [PATCH] Vex#getOwner API

View File

@ -1,4 +1,4 @@
From 82702cb25e3b6fb831782517c7c57c4733876eab Mon Sep 17 00:00:00 2001
From 2f8f876bb0fd67dc5c808631f0f2e5b4d96bae3f Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Fri, 13 Jul 2018 14:54:43 +0200
Subject: [PATCH] Refresh player inventory when cancelling

View File

@ -1,4 +1,4 @@
From c7a2c715e0925f5129d329923893d2b3ec42c530 Mon Sep 17 00:00:00 2001
From c6f4d4c98bc7fd4c6a536160e1c3150f4117b387 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 19 Jul 2018 01:05:00 -0400
Subject: [PATCH] Don't change the Entity Random seed for squids

View File

@ -1,4 +1,4 @@
From 9f56f07c54c891e59a6eb024f9f5df8426c00a85 Mon Sep 17 00:00:00 2001
From 2546c359772a7d9a0a6b347c8e07a6562fefcc37 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 19 Jul 2018 01:08:05 -0400
Subject: [PATCH] Re-add vanilla entity warnings for duplicates
@ -8,7 +8,7 @@ These are a critical sign that somethin went wrong, and you've lost some data...
We should kind of know about these things you know.
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index d6d3ffa6f..2c5004e61 100644
index 44d867663..fcb5f68f8 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -979,7 +979,7 @@ public class WorldServer extends World implements IAsyncTaskHandler {

View File

@ -1,4 +1,4 @@
From 0c344c05aeeb72e97f326c21aed89d3fa3ce316d Mon Sep 17 00:00:00 2001
From 525217b8e83b87a99cd4e9733f5729c0d4cb9ac3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 19 Jul 2018 01:23:00 -0400
Subject: [PATCH] Don't process despawn if entity is in a chunk scheduled for

View File

@ -1,4 +1,4 @@
From b2e003731c21eab3980ab9b81ff1cf52b6411e81 Mon Sep 17 00:00:00 2001
From 5528d5deb733bbad1d1aa7f9e9820750bbec2813 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 16 Jul 2018 12:42:20 +0200
Subject: [PATCH] Avoid item merge if stack size above max stack size

View File

@ -1,4 +1,4 @@
From 3136e6f07a5a0626b4855b8be5470e0df089e9c5 Mon Sep 17 00:00:00 2001
From 1b2b2a7ce9672bd95eb9708047a5761eb9b64b80 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Tue, 17 Jul 2018 16:42:17 +0200
Subject: [PATCH] Use asynchronous Log4j 2 loggers

View File

@ -1,4 +1,4 @@
From 978703a87b11832ffaecca876f32c3610f67fd56 Mon Sep 17 00:00:00 2001
From ba47092b597856758723b579a1eae506c01d7d54 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 19 Jul 2018 01:13:28 -0400
Subject: [PATCH] add more information to Entity.toString()

View File

@ -1,4 +1,4 @@
From 0318662b299542a2245da28c82d08f5a3455fa69 Mon Sep 17 00:00:00 2001
From c7266c6cc9e99625f22a54a8cbbca62a10d7acf0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 08:25:40 -0400
Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues

View File

@ -1,4 +1,4 @@
From fec119593dd482c5e813c4b3e343f17cfa6185d9 Mon Sep 17 00:00:00 2001
From 98c8705126dd30ffab51ce8a21ee8069941c7477 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 14:23:31 -0400
Subject: [PATCH] Additional Paper Config options

View File

@ -1,4 +1,4 @@
From 728fd7183c4e5a63f03aec4b53bfabb64d62f533 Mon Sep 17 00:00:00 2001
From 5f6f08cc867183a3e8e3e5d52a3d31d030100e4c Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 14:27:34 -0400
Subject: [PATCH] Duplicate UUID Resolve Option

View File

@ -1,4 +1,4 @@
From 589d50e9902c7adfcd9837768bbcddbfdd809ebd Mon Sep 17 00:00:00 2001
From c956b264d891943cfe291d01eb7218d88eabe347 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 16:55:04 -0400
Subject: [PATCH] Add async chunk load API

View File

@ -1,4 +1,4 @@
From eb46618fcdc4a12a5c3b48cbe4c9b3b2d1813ac5 Mon Sep 17 00:00:00 2001
From 48823e6b74986eb521e651c82065f4ffcea3673e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Apr 2018 11:21:48 -0400
Subject: [PATCH] Configurable Allowance of Permanent Chunk Loaders

View File

@ -1,199 +0,0 @@
From 13d727f38a8615e821d1794176154b34780c0c19 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 11 Nov 2017 17:57:39 -0500
Subject: [PATCH] Improve Structures Checking
Improves performance by keying every chunk thats part of a structure to a hashmap
instead of only the first one.
This allows us to avoid iterating the entire structures value set to see
if a block position is inside of a structure.
This should have pretty decent performance improvement to any standard world
that has been around for a whilewith lots of structures due to ineffeciencies
in how MC stores structures (even unloaded chunks has structured data loaded)
diff --git a/src/main/java/net/minecraft/server/StructureBoundingBox.java b/src/main/java/net/minecraft/server/StructureBoundingBox.java
index db419cd99..d9329bd42 100644
--- a/src/main/java/net/minecraft/server/StructureBoundingBox.java
+++ b/src/main/java/net/minecraft/server/StructureBoundingBox.java
@@ -4,12 +4,14 @@ import com.google.common.base.MoreObjects;
public class StructureBoundingBox {
- public int a;
- public int b;
- public int c;
- public int d;
- public int e;
- public int f;
+ public int a; // Paper - If changes, verify low/high getters
+ public int b; // Paper - If changes, verify low/high getters
+ public int c; // Paper - If changes, verify low/high getters
+ public int d; // Paper - If changes, verify low/high getters
+ public int e; // Paper - If changes, verify low/high getters
+ public int f; // Paper - If changes, verify low/high getters
+ public BaseBlockPosition getLowPosition() { return new BaseBlockPosition(a, b, c); } // Paper
+ public BaseBlockPosition getHighPosition() { return new BaseBlockPosition(d, e, f); } // Paper
public StructureBoundingBox() {}
@@ -114,6 +116,7 @@ public class StructureBoundingBox {
this.f += k;
}
+ public boolean contains(BaseBlockPosition baseblockposition) { return b(baseblockposition); } // Paper - OBFHELPER
public boolean b(BaseBlockPosition baseblockposition) {
return baseblockposition.getX() >= this.a && baseblockposition.getX() <= this.d && baseblockposition.getZ() >= this.c && baseblockposition.getZ() <= this.f && baseblockposition.getY() >= this.b && baseblockposition.getY() <= this.e;
}
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index e8263baa4..f4dfba8f3 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -6,6 +6,7 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
import it.unimi.dsi.fastutil.longs.Long2ObjectOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectIterator;
import java.util.Iterator;
+import java.util.List;
import java.util.Random;
import javax.annotation.Nullable;
@@ -14,6 +15,7 @@ public abstract class StructureGenerator extends WorldGenBase {
private final Timing timing = MinecraftTimings.getStructureTiming(this); // Paper
private PersistentStructure a;
protected Long2ObjectMap<StructureStart> c = new Long2ObjectOpenHashMap(1024);
+ protected Long2ObjectMap<StructureStart> allStructures = new Long2ObjectOpenHashMap(1024); // Paper - Holds ref to structures for every chunk its part of, where as the one above this only holds the vanilla oriented ones.
public StructureGenerator() {}
@@ -29,6 +31,7 @@ public abstract class StructureGenerator extends WorldGenBase {
if (this.a(i, j)) {
StructureStart structurestart = this.b(i, j);
+ populateStructure(structurestart); // Paper
this.c.put(ChunkCoordIntPair.a(i, j), structurestart);
if (structurestart.a()) {
this.a(i, j, structurestart);
@@ -106,6 +109,19 @@ public abstract class StructureGenerator extends WorldGenBase {
@Nullable
protected StructureStart c(BlockPosition blockposition) {
+ // Paper start - replace method
+ StructureStart structureStart = allStructures.get(ChunkCoordIntPair.asLong(blockposition));
+ if (structureStart != null && structureStart.isSizeable() && structureStart.getBoundingBox().contains(blockposition)) {
+ List<StructurePiece> structurePieces = structureStart.getStructurePieces();
+ for (StructurePiece piece : structurePieces) {
+ if (piece.getBoundingBox().contains(blockposition)) {
+ return structureStart;
+ }
+ }
+ }
+
+ return null;
+ /*
ObjectIterator objectiterator = this.c.values().iterator();
while (objectiterator.hasNext()) {
@@ -125,11 +141,16 @@ public abstract class StructureGenerator extends WorldGenBase {
}
return null;
+ */
}
public boolean a(World world, BlockPosition blockposition) {
if (this.g == null) return false; // Paper
this.a(world);
+ // Paper start - Replace method
+ StructureStart structureStart = this.allStructures.get(ChunkCoordIntPair.asLong(blockposition));
+ return structureStart != null && structureStart.isSizeable() && structureStart.getBoundingBox().contains(blockposition);
+ /* // comment out rest
ObjectIterator objectiterator = this.c.values().iterator();
StructureStart structurestart;
@@ -142,7 +163,7 @@ public abstract class StructureGenerator extends WorldGenBase {
structurestart = (StructureStart) objectiterator.next();
} while (!structurestart.a() || !structurestart.b().b((BaseBlockPosition) blockposition));
- return true;
+ return true;*/ // Paper end
}
@Nullable
@@ -177,6 +198,7 @@ public abstract class StructureGenerator extends WorldGenBase {
StructureStart structurestart = WorldGenFactory.a(nbttagcompound1, world);
if (structurestart != null) {
+ populateStructure(structurestart); // Paper
this.c.put(ChunkCoordIntPair.a(i, j), structurestart);
}
}
@@ -187,6 +209,27 @@ public abstract class StructureGenerator extends WorldGenBase {
}
+ // Paper start
+ private void populateStructure(StructureStart structurestart) {
+ for (StructurePiece piece : structurestart.getStructurePieces()) {
+ populateStructure(structurestart, piece.getBoundingBox());
+ }
+ populateStructure(structurestart, structurestart.getBoundingBox());
+ }
+ private void populateStructure(StructureStart structurestart, StructureBoundingBox bb) {
+ if (bb == null) {
+ return;
+ }
+ final BaseBlockPosition low = bb.getLowPosition();
+ final BaseBlockPosition high = bb.getHighPosition();
+ for (int x = low.getX() >> 4, maxX = high.getX() >> 4; x <= maxX; x++) {
+ for (int z = low.getZ() >> 4, maxZ = high.getZ() >> 4; z <= maxZ; z++) {
+ allStructures.put(ChunkCoordIntPair.asLong(x, z), structurestart);
+ }
+ }
+ }
+ // Paper end
+
private void a(int i, int j, StructureStart structurestart) {
this.a.a(structurestart.a(i, j), i, j);
this.a.c();
diff --git a/src/main/java/net/minecraft/server/StructurePiece.java b/src/main/java/net/minecraft/server/StructurePiece.java
index 93903bc67..fcc13f811 100644
--- a/src/main/java/net/minecraft/server/StructurePiece.java
+++ b/src/main/java/net/minecraft/server/StructurePiece.java
@@ -53,6 +53,7 @@ public abstract class StructurePiece {
public abstract boolean a(World world, Random random, StructureBoundingBox structureboundingbox);
+ public StructureBoundingBox getBoundingBox() { return d(); } // Paper - OBFHELPER
public StructureBoundingBox d() {
return this.l;
}
diff --git a/src/main/java/net/minecraft/server/StructureStart.java b/src/main/java/net/minecraft/server/StructureStart.java
index b6abc74e0..f9bb953d0 100644
--- a/src/main/java/net/minecraft/server/StructureStart.java
+++ b/src/main/java/net/minecraft/server/StructureStart.java
@@ -19,10 +19,12 @@ public abstract class StructureStart {
this.d = j;
}
+ public StructureBoundingBox getBoundingBox() { return b(); } // Paper - OBFHELPER
public StructureBoundingBox b() {
return this.b;
}
+ public List<StructurePiece> getStructurePieces() { return c(); } // Paper - OBFHELPER
public List<StructurePiece> c() {
return this.a;
}
@@ -137,7 +139,7 @@ public abstract class StructureStart {
}
- public boolean a() {
+ public boolean isSizeable() { return a(); } public boolean a() { // Paper - OBFHELPER
return true;
}
--
2.18.0

View File

@ -69,8 +69,14 @@ for f in $files; do
fi
done
import NBTList
import NBTBase
# Temporarily add new NMS dev imports here before you run paper patch
# but after you have paper rb'd your changes, remove the line from this file before committing.
# we do not need any lines added to this file
# import FileName
set -e
cd "$workdir/Spigot/Spigot-Server/"