Updated Upstream (Bukkit/CraftBukkit/Spigot)

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Warning: this commit contains more mapping changes from upstream, As always, ensure that you
have working backups and test this build before deployment; Developers working on paper will,
yet again, need to delete their work/Minecraft/1.13.2 folder

Bukkit Changes:
7fca5fd4 SPIGOT-4558: Preserve user order in the face of copied defaults in configurations
15c9b1eb Ignore spurious slot IDs sent by client, e.g. in enchanting tables
5d2a10c5 SPIGOT-3747: Add API for force loaded chunks
d6dd2bb3 SPIGOT-3538: Add getHitBlockFace for ProjectileHitEvent
771db4aa SPIGOT-794: Call EntityPlaceEvent for Minecart placement
55462509 Add InventoryView#getSlotType
2f3ce5b6 Remove EntityTransformEvent and CustomItemTagContainer from draft API
f04ad7b6 Make ProjectileLaunchEvent extend EntitySpawnEvent
ccb85808 Define EntitySpawnEvent
b8cc3ebe Add PlayerItemDamageEvent
184a495d Ease ClassLoader Deadlocks Where Possible
11ac4728 Expand Boolean Prompt Values in Conversation API
aae62d51 Added getAllSessionData() to the Conversation API.
9290ff91 Add InventoryView#getInventory API
995e530f Add API to get / set base arrow damage

CraftBukkit Changes:
c4a67eed SPIGOT-4556: Fix plugins closing inventory during drop events
5be2ddcb Replace version constants with methods to prevent compiler inlining
a5b9c7b3 Use API method to create offset command completions
2bc7d1df SPIGOT-3747: Add API for force loaded chunks
a408f375 SPIGOT-3538: Add getHitBlockFace for ProjectileHitEvent
b54b9409 SPIGOT-2864: Make Arrow / Item setTicksLived behave like FallingBlock
79ded7a8 SPIGOT-1811: Death message not shown on respawn screen
b4a4f15d SPIGOT-943: InventoryCloseEvent called on death regardless of open inventory
0afed592 SPIGOT-794: Call EntityPlaceEvent for Minecart placement
2b2d084a Add InventoryView#getSlotType
01a9959a Do not use deprecated ItemSpawnEvent constructor
9642498d SPIGOT-4547: Call EntitySpawnEvent as general spawn fallback event
963f4a5f Add PlayerItemDamageEvent
63db0445 Add API to get / set base arrow damage
531c25d7 Add CraftMagicNumbers.MAPPINGS_VERSION for use by NMS plugins
d05c8b14 Mappings Update
bd36e200 SPIGOT-4551: Ignore invalid attribute modifier slots

Spigot Changes:
518206a1 Remove redundant trove depend
1959ad21 MC-11211,SPIGOT-4552: Fix placing double slabs at y = 255
29ab5e43 SPIGOT-3661: Allow arguments in restart-script
7cc46316 SPIGOT-852: Growth modifiers for beetroots, potatoes, carrots
82e117e1 Squelch "fatal: Resolve operation not in progress" message
0a1a68e7 Mappings Update & Patch Rebuild
This commit is contained in:
Shane Freeder 2019-01-01 03:15:55 +00:00
parent 8ef9dc94ca
commit 08b01ae4df
363 changed files with 1838 additions and 2537 deletions

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index b347a3ccf..8a8043351 100644
index 33cd0ea0..35407d5e 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -0,0 +0,0 @@ public interface Chunk {

View file

@ -1,53 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Wed, 29 Aug 2018 00:37:30 -0400
Subject: [PATCH] Add Force-Loaded Chunk API
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index 8a804335..4b9e0ca4 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -0,0 +0,0 @@ public interface Chunk {
* @return true if slimes are able to spawn in this chunk
*/
boolean isSlimeChunk();
+
+ // Paper start - Force-Loaded Chunk API
+ /**
+ * Checks if the chunk is currently force-loaded
+ *
+ * @return true if the chunk is force-loaded, otherwise false
+ */
+ boolean isForceLoaded();
+
+ /**
+ * Set's whether a chunk is force-loaded or not
+ *
+ * @param force whether or not to force load this chunk
+ */
+ void setForceLoaded(boolean force);
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index de89122e..aa28c452 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {
return isChunkGenerated((int) chunkKey, (int) (chunkKey >> 32));
}
+ /**
+ * Checks if a chunk is force-loaded.
+ * Note: This will only return true if the chunk is also generated
+ *
+ * @param x X-coordinate of the chunk
+ * @param z Z-coordinate of the chunk
+ * @return true if the chunk is force-loaded. otherwise false
+ */
+ public boolean isChunkForceLoaded(int x, int z);
+
/**
* This is the Legacy API before Java 8 was supported. Java 8 Consumer is provided,
* as well as future support
--

View file

@ -9,7 +9,7 @@ Allows creating recipes that must match isSimilar to full item stack.
diff --git a/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java b/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java
new file mode 100644
index 000000000..43e6576b1
index 00000000..43e6576b
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/inventory/ItemStackRecipeChoice.java
@@ -0,0 +0,0 @@

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity
diff --git a/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java b/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java
new file mode 100644
index 000000000..5df8eed23
index 00000000..5df8eed2
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/entity/TargetEntityInfo.java
@@ -0,0 +0,0 @@
@ -46,7 +46,7 @@ index 000000000..5df8eed23
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index bd47e7209..34a8fe3f7 100644
index bd47e720..34a8fe3f 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -0,0 +0,0 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource

View file

@ -8,7 +8,7 @@ are related to each other by a trait.
diff --git a/src/main/java/com/destroystokyo/paper/MaterialSetTag.java b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
new file mode 100644
index 000000000..b4f78e075
index 00000000..b4f78e07
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/MaterialSetTag.java
@@ -0,0 +0,0 @@
@ -153,7 +153,7 @@ index 000000000..b4f78e075
+}
diff --git a/src/main/java/com/destroystokyo/paper/MaterialTags.java b/src/main/java/com/destroystokyo/paper/MaterialTags.java
new file mode 100644
index 000000000..7a48445da
index 00000000..7a48445d
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/MaterialTags.java
@@ -0,0 +0,0 @@
@ -536,7 +536,7 @@ index 000000000..7a48445da
+}
diff --git a/src/test/java/com/destroystokyo/paper/MaterialTagsTest.java b/src/test/java/com/destroystokyo/paper/MaterialTagsTest.java
new file mode 100644
index 000000000..328c51471
index 00000000..328c5147
--- /dev/null
+++ b/src/test/java/com/destroystokyo/paper/MaterialTagsTest.java
@@ -0,0 +0,0 @@
@ -566,7 +566,7 @@ index 000000000..328c51471
+ }
+}
diff --git a/src/test/java/org/bukkit/TestServer.java b/src/test/java/org/bukkit/TestServer.java
index 2d8403206..613675c3b 100644
index 2d840320..613675c3 100644
--- a/src/test/java/org/bukkit/TestServer.java
+++ b/src/test/java/org/bukkit/TestServer.java
@@ -0,0 +0,0 @@ public class TestServer implements InvocationHandler {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add TNTPrimeEvent
diff --git a/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java b/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java
new file mode 100644
index 000000000..2ae8826bb
index 00000000..2ae8826b
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/block/TNTPrimeEvent.java
@@ -0,0 +0,0 @@

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index e83b2ac7..7c700cc2 100644
index 70e7c9e3..301d9418 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -217,7 +217,7 @@ index fe8d3468..074769c1 100644
return key;
}
diff --git a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
index df51f3ca..e9f640fb 100644
index 4d0351c4..03e3cfd4 100644
--- a/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
+++ b/src/main/java/org/bukkit/inventory/meta/ItemMeta.java
@@ -0,0 +0,0 @@ public interface ItemMeta extends Cloneable, ConfigurationSerializable {

View file

@ -7,7 +7,7 @@ Not here to name and shame, only so server admins can be aware of which
plugins have and haven't been updated.
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
index a4aabfe7f..f462b631b 100644
index a4aabfe7..f462b631 100644
--- a/src/main/java/org/bukkit/UnsafeValues.java
+++ b/src/main/java/org/bukkit/UnsafeValues.java
@@ -0,0 +0,0 @@ public interface UnsafeValues {
@ -22,7 +22,7 @@ index a4aabfe7f..f462b631b 100644
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
index b1d384e82..72c0c0bc6 100644
index b1d384e8..72c0c0bc 100644
--- a/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
+++ b/src/main/java/org/bukkit/command/defaults/PluginsCommand.java
@@ -0,0 +0,0 @@ public class PluginsCommand extends BukkitCommand {
@ -42,7 +42,7 @@ index b1d384e82..72c0c0bc6 100644
StringBuilder pluginList = new StringBuilder();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 3cff01b6b..2b9aad0a7 100644
index c7782e7d..39f92d88 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add hand to bucket events
diff --git a/src/main/java/org/bukkit/event/player/PlayerBucketEmptyEvent.java b/src/main/java/org/bukkit/event/player/PlayerBucketEmptyEvent.java
index 8fb121a91..7b9596f30 100644
index 8fb121a9..7b9596f3 100644
--- a/src/main/java/org/bukkit/event/player/PlayerBucketEmptyEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerBucketEmptyEvent.java
@@ -0,0 +0,0 @@ import org.bukkit.block.Block;
@ -30,7 +30,7 @@ index 8fb121a91..7b9596f30 100644
public HandlerList getHandlers() {
return handlers;
diff --git a/src/main/java/org/bukkit/event/player/PlayerBucketEvent.java b/src/main/java/org/bukkit/event/player/PlayerBucketEvent.java
index 56584687f..3dbe428ba 100644
index 56584687..3dbe428b 100644
--- a/src/main/java/org/bukkit/event/player/PlayerBucketEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerBucketEvent.java
@@ -0,0 +0,0 @@ import org.bukkit.block.Block;
@ -82,7 +82,7 @@ index 56584687f..3dbe428ba 100644
return cancelled;
}
diff --git a/src/main/java/org/bukkit/event/player/PlayerBucketFillEvent.java b/src/main/java/org/bukkit/event/player/PlayerBucketFillEvent.java
index 94e042a36..884b9240b 100644
index 94e042a3..884b9240 100644
--- a/src/main/java/org/bukkit/event/player/PlayerBucketFillEvent.java
+++ b/src/main/java/org/bukkit/event/player/PlayerBucketFillEvent.java
@@ -0,0 +0,0 @@ import org.bukkit.block.Block;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add more Witch API
diff --git a/src/main/java/org/bukkit/entity/Witch.java b/src/main/java/org/bukkit/entity/Witch.java
index 7ac07ac07ac0..7ac07ac07ac0 100644
index 4b27f689..64ec8409 100644
--- a/src/main/java/org/bukkit/entity/Witch.java
+++ b/src/main/java/org/bukkit/entity/Witch.java
@@ -0,0 +0,0 @@ package org.bukkit.entity;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add player view distance API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index a631529df..4208b0d2c 100644
index a631529d..4208b0d2 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity
diff --git a/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java b/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java
new file mode 100644
index 000000000..fe43d9557
index 00000000..fe43d955
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/block/TargetBlockInfo.java
@@ -0,0 +0,0 @@
@ -61,7 +61,7 @@ index 000000000..fe43d9557
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java
index e3bc04e1c..bd47e7209 100644
index e3bc04e1..bd47e720 100644
--- a/src/main/java/org/bukkit/entity/LivingEntity.java
+++ b/src/main/java/org/bukkit/entity/LivingEntity.java
@@ -0,0 +0,0 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index aa28c452..27e58136 100644
index 668c9b7a..67e062b8 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -14,7 +14,7 @@ parent of the plugin logger to avoid this.
diff --git a/src/main/java/com/destroystokyo/paper/utils/PaperPluginLogger.java b/src/main/java/com/destroystokyo/paper/utils/PaperPluginLogger.java
new file mode 100644
index 000000000..d052b2f55
index 00000000..d052b2f5
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/utils/PaperPluginLogger.java
@@ -0,0 +0,0 @@
@ -58,7 +58,7 @@ index 000000000..d052b2f55
+
+}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
index a81dae439..15f22ade2 100644
index a81dae43..15f22ade 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
@@ -0,0 +0,0 @@ public abstract class JavaPlugin extends PluginBase {
@ -85,7 +85,7 @@ index a81dae439..15f22ade2 100644
/**
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
index 44093af29..ab79b71bf 100644
index bc33ff33..213f6234 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -0,0 +0,0 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@ -94,8 +94,8 @@ index 44093af29..ab79b71bf 100644
private IllegalStateException pluginState;
+ private java.util.logging.Logger logger; // Paper - add field
// Spigot Start
static
static {
ClassLoader.registerAsParallelCapable();
@@ -0,0 +0,0 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
this.manifest = jar.getManifest();
this.url = file.toURI().toURL();

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Additional world.getNearbyEntities API's
Provides more methods to get nearby entities, and filter by types and predicates
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 849ad2cb..99fbf327 100644
index e66caa41..d9010176 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ package org.bukkit;

View file

@ -49,7 +49,7 @@ index 8dcb15fb..7e1ee875 100644
* @return A new location where X/Y/Z are the center of the block
*/
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 6635285f..071a8490 100644
index 92688252..1467debe 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Allow disabling armour stand ticking
diff --git a/src/main/java/org/bukkit/entity/ArmorStand.java b/src/main/java/org/bukkit/entity/ArmorStand.java
index 099da6ce1..859f166fb 100644
index 099da6ce..859f166f 100644
--- a/src/main/java/org/bukkit/entity/ArmorStand.java
+++ b/src/main/java/org/bukkit/entity/ArmorStand.java
@@ -0,0 +0,0 @@ public interface ArmorStand extends LivingEntity {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] AnvilDamageEvent
diff --git a/src/main/java/com/destroystokyo/paper/event/block/AnvilDamagedEvent.java b/src/main/java/com/destroystokyo/paper/event/block/AnvilDamagedEvent.java
new file mode 100644
index 000000000..fd3c5c02e
index 00000000..fd3c5c02
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/block/AnvilDamagedEvent.java
@@ -0,0 +0,0 @@

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Arrow pickup rule API
diff --git a/src/main/java/org/bukkit/entity/Arrow.java b/src/main/java/org/bukkit/entity/Arrow.java
index 99814eee..34dde443 100644
index b74d5f9d..99a44006 100644
--- a/src/main/java/org/bukkit/entity/Arrow.java
+++ b/src/main/java/org/bukkit/entity/Arrow.java
@@ -0,0 +0,0 @@ public interface Arrow extends Projectile {

View file

@ -8,7 +8,7 @@ Adds API's to load or generate chunks asynchronously.
Also adds utility methods to Entity to teleport asynchronously.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 00d72565..8e322cab 100644
index deabd400..92688252 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {
@ -365,7 +365,7 @@ index 00d72565..8e322cab 100644
/**
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index f94160bf..5ee57656 100644
index 2dd7a03c..59787c47 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -0,0 +0,0 @@ public interface Entity extends Metadatable, CommandSender, Nameable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Automatically disable plugins that fail to load
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 81b42822..3af99b5b 100644
index 54594546..bf972302 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {

View file

@ -7,7 +7,7 @@ This should close more memory leaks from /reload and disabling plugins,
by closing the class loader and the jar file.
diff --git a/src/main/java/org/bukkit/plugin/PluginLoader.java b/src/main/java/org/bukkit/plugin/PluginLoader.java
index e7981a1d9..d34756f15 100644
index e7981a1d..d34756f1 100644
--- a/src/main/java/org/bukkit/plugin/PluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/PluginLoader.java
@@ -0,0 +0,0 @@ public interface PluginLoader {
@ -31,7 +31,7 @@ index e7981a1d9..d34756f15 100644
+ // Paper end - close Classloader on disable
}
diff --git a/src/main/java/org/bukkit/plugin/PluginManager.java b/src/main/java/org/bukkit/plugin/PluginManager.java
index e5638d560..b72d5a9bc 100644
index e5638d56..b72d5a9b 100644
--- a/src/main/java/org/bukkit/plugin/PluginManager.java
+++ b/src/main/java/org/bukkit/plugin/PluginManager.java
@@ -0,0 +0,0 @@ public interface PluginManager {
@ -54,7 +54,7 @@ index e5638d560..b72d5a9bc 100644
* Gets a {@link Permission} from its fully qualified name
*
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index bd0588a20..cb2b0b9cb 100644
index bd0588a2..cb2b0b9c 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@ -100,7 +100,7 @@ index bd0588a20..cb2b0b9cb 100644
lookupNames.clear();
HandlerList.unregisterAll();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 72d506d1f..3411a365c 100644
index 77207f14..c7782e7d 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Don't use snapshots for Timings Tile Entity reports
diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java
index c2c2fb83..769facd8 100644
index 28d0954a..7ad9400a 100644
--- a/src/main/java/co/aikar/timings/TimingHistory.java
+++ b/src/main/java/co/aikar/timings/TimingHistory.java
@@ -0,0 +0,0 @@ public class TimingHistory {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] EnderDragon Events
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java
new file mode 100644
index 000000000..ef2a8dab9
index 00000000..ef2a8dab
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFireballHitEvent.java
@@ -0,0 +0,0 @@
@ -84,7 +84,7 @@ index 000000000..ef2a8dab9
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java
new file mode 100644
index 000000000..d8c3ab330
index 00000000..d8c3ab33
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonFlameEvent.java
@@ -0,0 +0,0 @@
@ -146,7 +146,7 @@ index 000000000..d8c3ab330
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java
new file mode 100644
index 000000000..aa70dda10
index 00000000..aa70dda1
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/EnderDragonShootFireballEvent.java
@@ -0,0 +0,0 @@

View file

@ -8,7 +8,7 @@ Add the following:
- Enable/Disable slot interactions
diff --git a/src/main/java/org/bukkit/entity/ArmorStand.java b/src/main/java/org/bukkit/entity/ArmorStand.java
index 859f166fb..eda4873d5 100644
index 859f166f..eda4873d 100644
--- a/src/main/java/org/bukkit/entity/ArmorStand.java
+++ b/src/main/java/org/bukkit/entity/ArmorStand.java
@@ -0,0 +0,0 @@

View file

@ -98,7 +98,7 @@ index 162a76e8..056a4d6b 100644
@Override
public boolean equals(Object obj) {
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 1f63eba8..e83b2ac7 100644
index 379fd2fa..70e7c9e3 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Expand Location Manipulation API
Adds set(x, y, z), add(base, x, y, z), subtract(base, x, y, z);
diff --git a/src/main/java/org/bukkit/Location.java b/src/main/java/org/bukkit/Location.java
index 056a4d6bb..8dcb15fb8 100644
index 056a4d6b..8dcb15fb 100644
--- a/src/main/java/org/bukkit/Location.java
+++ b/src/main/java/org/bukkit/Location.java
@@ -0,0 +0,0 @@ public class Location implements Cloneable, ConfigurationSerializable {

View file

@ -452,7 +452,7 @@ index 4d0acaf5..827aa00c 100644
* Options which can be applied to redstone dust particles - a particle
* color and size.
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 3cc161de..c9b3ff76 100644
index d9010176..379fd2fa 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Expose attack cooldown methods for Player
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index c9f027f99..7f6ae5d16 100644
index c9f027f9..7f6ae5d1 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM

View file

@ -21,7 +21,7 @@ index 43239f84..fe8d3468 100644
*/
@Deprecated
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 04573ec2..0750d64c 100644
index 6ce38e03..e66caa41 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -1,55 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Sat, 30 Jun 2018 05:45:04 +0200
Subject: [PATCH] Improve ProjectileHitEvent to include the BlockFace where the
projectile has hit
diff --git a/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java b/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
index 35f4148bb..db105e764 100644
--- a/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
+++ b/src/main/java/org/bukkit/event/entity/ProjectileHitEvent.java
@@ -0,0 +0,0 @@ public class ProjectileHitEvent extends EntityEvent {
private static final HandlerList handlers = new HandlerList();
private final Entity hitEntity;
private final Block hitBlock;
+ private final org.bukkit.block.BlockFace hitBlockFace; // Paper
public ProjectileHitEvent(final Projectile projectile) {
this(projectile, null, null);
@@ -0,0 +0,0 @@ public class ProjectileHitEvent extends EntityEvent {
}
public ProjectileHitEvent(final Projectile projectile, Entity hitEntity, Block hitBlock) {
+ // Paper Start - Add a constructor that includes a BlockFace parameter
+ this(projectile, hitEntity, hitBlock, null);
+ }
+
+ public ProjectileHitEvent(final Projectile projectile, Entity hitEntity, Block hitBlock, org.bukkit.block.BlockFace hitBlockFace) {
+ // Paper End
super(projectile);
this.hitEntity = hitEntity;
this.hitBlock = hitBlock;
+ this.hitBlockFace = hitBlockFace; // Paper
}
@Override
@@ -0,0 +0,0 @@ public class ProjectileHitEvent extends EntityEvent {
return hitBlock;
}
+ // Paper Start
+ /**
+ * Gets the face of the block that the projectile has hit.
+ *
+ * @return hit block face or else null
+ */
+ public org.bukkit.block.BlockFace getHitBlockFace() {
+ return hitBlockFace;
+ }
+ // Paper End
+
/**
* Gets the entity that was hit, if it was an entity that was hit.
*
--

View file

@ -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/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
index ca789867d..d4b3caebd 100644
index ca789867..d4b3caeb 100644
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
@@ -0,0 +0,0 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
@ -27,7 +27,7 @@ index ca789867d..d4b3caebd 100644
* Returns the ItemStack currently in your hand, can be empty.
*
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
index 19889b278..e6e45b936 100644
index 19889b27..e6e45b93 100644
--- a/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
+++ b/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
@@ -0,0 +0,0 @@ import org.bukkit.inventory.InventoryView;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Make the default permission message configurable
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 233a71540..22ca2900c 100644
index 233a7154..22ca2900 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -0,0 +0,0 @@ public final class Bukkit {
@ -24,7 +24,7 @@ index 233a71540..22ca2900c 100644
* Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index b8076fc3f..9c78f18f6 100644
index b8076fc3..9c78f18f 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@ -41,7 +41,7 @@ index b8076fc3f..9c78f18f6 100644
* Creates a PlayerProfile for the specified uuid, with name as null
* @param uuid UUID to create profile for
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index 4a479627d..77171cd17 100644
index 4a479627..77171cd1 100644
--- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java
@@ -0,0 +0,0 @@ public abstract class Command {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Material API additions
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
index 14cae61fb..393024343 100644
index 14cae61f..39302434 100644
--- a/src/main/java/org/bukkit/Material.java
+++ b/src/main/java/org/bukkit/Material.java
@@ -0,0 +0,0 @@ import org.bukkit.material.MaterialData;

View file

@ -13,7 +13,7 @@ You can use EntityPathfindEvent to cancel new pathfinds from overriding your cur
diff --git a/src/main/java/com/destroystokyo/paper/entity/Pathfinder.java b/src/main/java/com/destroystokyo/paper/entity/Pathfinder.java
new file mode 100644
index 000000000..d6953b390
index 00000000..d6953b39
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/entity/Pathfinder.java
@@ -0,0 +0,0 @@
@ -185,7 +185,7 @@ index 000000000..d6953b390
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Mob.java b/src/main/java/org/bukkit/entity/Mob.java
index d029d34ea..48eddcd30 100644
index d029d34e..48eddcd3 100644
--- a/src/main/java/org/bukkit/entity/Mob.java
+++ b/src/main/java/org/bukkit/entity/Mob.java
@@ -0,0 +0,0 @@ import org.bukkit.loot.Lootable;

View file

@ -18,7 +18,7 @@ Optimized it to simply be a single get call cutting permission map
lookups in half.
diff --git a/src/main/java/org/bukkit/permissions/PermissibleBase.java b/src/main/java/org/bukkit/permissions/PermissibleBase.java
index d4cb00a82..486f69f86 100644
index d4cb00a8..486f69f8 100644
--- a/src/main/java/org/bukkit/permissions/PermissibleBase.java
+++ b/src/main/java/org/bukkit/permissions/PermissibleBase.java
@@ -0,0 +0,0 @@ public class PermissibleBase implements Permissible {

View file

@ -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/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 5f3e085e3..1e349066d 100644
index 5f3e085e..1e349066 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -0,0 +0,0 @@ package org.bukkit.entity;

View file

@ -6,7 +6,7 @@ Subject: [PATCH] PlayerElytraBoostEvent
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java
new file mode 100644
index 000000000..cecb2182c
index 00000000..cecb2182
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerElytraBoostEvent.java
@@ -0,0 +0,0 @@

View file

@ -6,7 +6,7 @@ Subject: [PATCH] PlayerLaunchProjectileEvent
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerLaunchProjectileEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerLaunchProjectileEvent.java
new file mode 100644
index 000000000..d2b244a41
index 00000000..d2b244a4
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerLaunchProjectileEvent.java
@@ -0,0 +0,0 @@

View file

@ -10,7 +10,7 @@ spawners.
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
new file mode 100644
index 000000000..d72212105
index 00000000..d7221210
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/PreSpawnerSpawnEvent.java
@@ -0,0 +0,0 @@

View file

@ -7,7 +7,7 @@ Allows you to easily access the chunks X/z as a long, and a method
to look up by the long key too.
diff --git a/src/main/java/org/bukkit/Chunk.java b/src/main/java/org/bukkit/Chunk.java
index 079b9feb..b347a3cc 100644
index 441ed7ad..33cd0ea0 100644
--- a/src/main/java/org/bukkit/Chunk.java
+++ b/src/main/java/org/bukkit/Chunk.java
@@ -0,0 +0,0 @@ public interface Chunk {
@ -44,7 +44,7 @@ index 079b9feb..b347a3cc 100644
* Gets the world containing this chunk
*
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index 7c700cc2..00d72565 100644
index 301d9418..deabd400 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Remove Precondition on name for AttributeModifier
Vanilla allows empty names
diff --git a/src/main/java/org/bukkit/attribute/AttributeModifier.java b/src/main/java/org/bukkit/attribute/AttributeModifier.java
index 2bc9878ff..0943eee46 100644
index 2bc9878f..0943eee4 100644
--- a/src/main/java/org/bukkit/attribute/AttributeModifier.java
+++ b/src/main/java/org/bukkit/attribute/AttributeModifier.java
@@ -0,0 +0,0 @@ public class AttributeModifier implements ConfigurationSerializable {

View file

@ -16,7 +16,7 @@ which results in a hard crash.
This change removes the synchronize and adds some protection around enable/disable
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index cb2b0b9cb..a7dd902fb 100644
index cb2b0b9c..a7dd902f 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@ -79,7 +79,7 @@ index cb2b0b9cb..a7dd902fb 100644
RegisteredListener[] listeners = handlers.getRegisteredListeners();
diff --git a/src/test/java/org/bukkit/plugin/PluginManagerTest.java b/src/test/java/org/bukkit/plugin/PluginManagerTest.java
index 6b86128e1..56308c0c6 100644
index 6b86128e..56308c0c 100644
--- a/src/test/java/org/bukkit/plugin/PluginManagerTest.java
+++ b/src/test/java/org/bukkit/plugin/PluginManagerTest.java
@@ -0,0 +0,0 @@ public class PluginManagerTest {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] SkeletonHorse Additions
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java
new file mode 100644
index 000000000..55bae018e
index 00000000..55bae018
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/SkeletonHorseTrapEvent.java
@@ -0,0 +0,0 @@
@ -54,7 +54,7 @@ index 000000000..55bae018e
+}
+
diff --git a/src/main/java/org/bukkit/entity/SkeletonHorse.java b/src/main/java/org/bukkit/entity/SkeletonHorse.java
index b2c6b6a86..ba9983463 100644
index b2c6b6a8..ba998346 100644
--- a/src/main/java/org/bukkit/entity/SkeletonHorse.java
+++ b/src/main/java/org/bukkit/entity/SkeletonHorse.java
@@ -0,0 +0,0 @@ package org.bukkit.entity;

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Timings v2
diff --git a/src/main/java/co/aikar/timings/FullServerTickHandler.java b/src/main/java/co/aikar/timings/FullServerTickHandler.java
new file mode 100644
index 000000000..98079dc0c
index 00000000..98079dc0
--- /dev/null
+++ b/src/main/java/co/aikar/timings/FullServerTickHandler.java
@@ -0,0 +0,0 @@
@ -94,7 +94,7 @@ index 000000000..98079dc0c
+}
diff --git a/src/main/java/co/aikar/timings/NullTimingHandler.java b/src/main/java/co/aikar/timings/NullTimingHandler.java
new file mode 100644
index 000000000..8c43e2061
index 00000000..8c43e206
--- /dev/null
+++ b/src/main/java/co/aikar/timings/NullTimingHandler.java
@@ -0,0 +0,0 @@
@ -161,7 +161,7 @@ index 000000000..8c43e2061
+}
diff --git a/src/main/java/co/aikar/timings/TimedEventExecutor.java b/src/main/java/co/aikar/timings/TimedEventExecutor.java
new file mode 100644
index 000000000..feddcdbd4
index 00000000..feddcdbd
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimedEventExecutor.java
@@ -0,0 +0,0 @@
@ -248,7 +248,7 @@ index 000000000..feddcdbd4
+}
diff --git a/src/main/java/co/aikar/timings/Timing.java b/src/main/java/co/aikar/timings/Timing.java
new file mode 100644
index 000000000..b2260104c
index 00000000..b2260104
--- /dev/null
+++ b/src/main/java/co/aikar/timings/Timing.java
@@ -0,0 +0,0 @@
@ -330,7 +330,7 @@ index 000000000..b2260104c
+}
diff --git a/src/main/java/co/aikar/timings/TimingData.java b/src/main/java/co/aikar/timings/TimingData.java
new file mode 100644
index 000000000..f222d6b7d
index 00000000..f222d6b7
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingData.java
@@ -0,0 +0,0 @@
@ -456,7 +456,7 @@ index 000000000..f222d6b7d
+}
diff --git a/src/main/java/co/aikar/timings/TimingHandler.java b/src/main/java/co/aikar/timings/TimingHandler.java
new file mode 100644
index 000000000..521c985e6
index 00000000..521c985e
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHandler.java
@@ -0,0 +0,0 @@
@ -662,7 +662,7 @@ index 000000000..521c985e6
+}
diff --git a/src/main/java/co/aikar/timings/TimingHistory.java b/src/main/java/co/aikar/timings/TimingHistory.java
new file mode 100644
index 000000000..28d0954a3
index 00000000..28d0954a
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHistory.java
@@ -0,0 +0,0 @@
@ -1013,7 +1013,7 @@ index 000000000..28d0954a3
+}
diff --git a/src/main/java/co/aikar/timings/TimingHistoryEntry.java b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
new file mode 100644
index 000000000..0e114eb32
index 00000000..0e114eb3
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingHistoryEntry.java
@@ -0,0 +0,0 @@
@ -1074,7 +1074,7 @@ index 000000000..0e114eb32
+}
diff --git a/src/main/java/co/aikar/timings/TimingIdentifier.java b/src/main/java/co/aikar/timings/TimingIdentifier.java
new file mode 100644
index 000000000..a7f1f44d7
index 00000000..a7f1f44d
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingIdentifier.java
@@ -0,0 +0,0 @@
@ -1186,7 +1186,7 @@ index 000000000..a7f1f44d7
+}
diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java
new file mode 100644
index 000000000..f907649ba
index 00000000..f907649b
--- /dev/null
+++ b/src/main/java/co/aikar/timings/Timings.java
@@ -0,0 +0,0 @@
@ -1476,7 +1476,7 @@ index 000000000..f907649ba
+}
diff --git a/src/main/java/co/aikar/timings/TimingsCommand.java b/src/main/java/co/aikar/timings/TimingsCommand.java
new file mode 100644
index 000000000..56b10e898
index 00000000..56b10e89
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsCommand.java
@@ -0,0 +0,0 @@
@ -1601,7 +1601,7 @@ index 000000000..56b10e898
+}
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
new file mode 100644
index 000000000..df7f42595
index 00000000..df7f4259
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
@@ -0,0 +0,0 @@
@ -1949,7 +1949,7 @@ index 000000000..df7f42595
+}
diff --git a/src/main/java/co/aikar/timings/TimingsManager.java b/src/main/java/co/aikar/timings/TimingsManager.java
new file mode 100644
index 000000000..f63e7033c
index 00000000..f63e7033
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsManager.java
@@ -0,0 +0,0 @@
@ -2142,7 +2142,7 @@ index 000000000..f63e7033c
+}
diff --git a/src/main/java/co/aikar/timings/TimingsReportListener.java b/src/main/java/co/aikar/timings/TimingsReportListener.java
new file mode 100644
index 000000000..e7c389c05
index 00000000..e7c389c0
--- /dev/null
+++ b/src/main/java/co/aikar/timings/TimingsReportListener.java
@@ -0,0 +0,0 @@
@ -2220,7 +2220,7 @@ index 000000000..e7c389c05
+}
diff --git a/src/main/java/co/aikar/timings/UnsafeTimingHandler.java b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
new file mode 100644
index 000000000..5edaba128
index 00000000..5edaba12
--- /dev/null
+++ b/src/main/java/co/aikar/timings/UnsafeTimingHandler.java
@@ -0,0 +0,0 @@
@ -2277,7 +2277,7 @@ index 000000000..5edaba128
+}
diff --git a/src/main/java/co/aikar/util/Counter.java b/src/main/java/co/aikar/util/Counter.java
new file mode 100644
index 000000000..23ac07f2c
index 00000000..23ac07f2
--- /dev/null
+++ b/src/main/java/co/aikar/util/Counter.java
@@ -0,0 +0,0 @@
@ -2318,7 +2318,7 @@ index 000000000..23ac07f2c
+}
diff --git a/src/main/java/co/aikar/util/JSONUtil.java b/src/main/java/co/aikar/util/JSONUtil.java
new file mode 100644
index 000000000..962749750
index 00000000..96274975
--- /dev/null
+++ b/src/main/java/co/aikar/util/JSONUtil.java
@@ -0,0 +0,0 @@
@ -2453,7 +2453,7 @@ index 000000000..962749750
+}
diff --git a/src/main/java/co/aikar/util/LoadingIntMap.java b/src/main/java/co/aikar/util/LoadingIntMap.java
new file mode 100644
index 000000000..24eae4bea
index 00000000..24eae4be
--- /dev/null
+++ b/src/main/java/co/aikar/util/LoadingIntMap.java
@@ -0,0 +0,0 @@
@ -2530,7 +2530,7 @@ index 000000000..24eae4bea
+}
diff --git a/src/main/java/co/aikar/util/LoadingMap.java b/src/main/java/co/aikar/util/LoadingMap.java
new file mode 100644
index 000000000..9a4f9dca8
index 00000000..9a4f9dca
--- /dev/null
+++ b/src/main/java/co/aikar/util/LoadingMap.java
@@ -0,0 +0,0 @@
@ -2875,7 +2875,7 @@ index 000000000..9a4f9dca8
+}
diff --git a/src/main/java/co/aikar/util/MRUMapCache.java b/src/main/java/co/aikar/util/MRUMapCache.java
new file mode 100644
index 000000000..df592d855
index 00000000..df592d85
--- /dev/null
+++ b/src/main/java/co/aikar/util/MRUMapCache.java
@@ -0,0 +0,0 @@
@ -2982,7 +2982,7 @@ index 000000000..df592d855
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 2ce174401..7fdd1a084 100644
index 2ce17440..7fdd1a08 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -0,0 +0,0 @@ public final class Bukkit {
@ -2994,7 +2994,7 @@ index 2ce174401..7fdd1a084 100644
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 63392d5e7..0e7a81c88 100644
index 63392d5e..0e7a81c8 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
@ -3028,7 +3028,7 @@ index 63392d5e7..0e7a81c88 100644
*
diff --git a/src/main/java/org/bukkit/command/BufferedCommandSender.java b/src/main/java/org/bukkit/command/BufferedCommandSender.java
new file mode 100644
index 000000000..fd452bce4
index 00000000..fd452bce
--- /dev/null
+++ b/src/main/java/org/bukkit/command/BufferedCommandSender.java
@@ -0,0 +0,0 @@
@ -3051,7 +3051,7 @@ index 000000000..fd452bce4
+ }
+}
diff --git a/src/main/java/org/bukkit/command/Command.java b/src/main/java/org/bukkit/command/Command.java
index 4c931f186..4a479627d 100644
index 4c931f18..4a479627 100644
--- a/src/main/java/org/bukkit/command/Command.java
+++ b/src/main/java/org/bukkit/command/Command.java
@@ -0,0 +0,0 @@ public abstract class Command {
@ -3081,7 +3081,7 @@ index 4c931f186..4a479627d 100644
return true;
}
diff --git a/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
index 502578837..9c80f4640 100644
index 50257883..9c80f464 100644
--- a/src/main/java/org/bukkit/command/FormattedCommandAlias.java
+++ b/src/main/java/org/bukkit/command/FormattedCommandAlias.java
@@ -0,0 +0,0 @@ public class FormattedCommandAlias extends Command {
@ -3104,7 +3104,7 @@ index 502578837..9c80f4640 100644
}
diff --git a/src/main/java/org/bukkit/command/MessageCommandSender.java b/src/main/java/org/bukkit/command/MessageCommandSender.java
new file mode 100644
index 000000000..5527e7c86
index 00000000..5527e7c8
--- /dev/null
+++ b/src/main/java/org/bukkit/command/MessageCommandSender.java
@@ -0,0 +0,0 @@
@ -3214,7 +3214,7 @@ index 000000000..5527e7c86
+
+}
diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java
index d9183db2f..43e52a77a 100644
index d9183db2..43e52a77 100644
--- a/src/main/java/org/bukkit/command/SimpleCommandMap.java
+++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java
@@ -0,0 +0,0 @@ public class SimpleCommandMap implements CommandMap {
@ -3249,7 +3249,7 @@ index d9183db2f..43e52a77a 100644
// Note: we don't return the result of target.execute as thats success / failure, we return handled (true) or not handled (false)
diff --git a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java b/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
deleted file mode 100644
index bba914d7f..000000000
index bba914d7..00000000
--- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
+++ /dev/null
@@ -0,0 +0,0 @@
@ -3507,7 +3507,7 @@ index bba914d7f..000000000
- // Spigot end
-}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 5054276ff..0993f31b1 100644
index 5054276f..0993f31b 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ -3523,7 +3523,7 @@ index 5054276ff..0993f31b1 100644
@Override
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 8b130abb7..80c152ba9 100644
index 8b130abb..80c152ba 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -0,0 +0,0 @@ public final class SimplePluginManager implements PluginManager {
@ -3580,7 +3580,7 @@ index 8b130abb7..80c152ba9 100644
}
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 113b899cc..81b428222 100644
index 2d4c75ab..54594546 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -0,0 +0,0 @@ import org.bukkit.plugin.PluginLoader;
@ -3593,7 +3593,7 @@ index 113b899cc..81b428222 100644
/**
@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {
private final Pattern[] fileFilters = new Pattern[] { Pattern.compile("\\.jar$"), };
private final Map<String, Class<?>> classes = new java.util.concurrent.ConcurrentHashMap<String, Class<?>>(); // Spigot
private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>();
private final List<PluginClassLoader> loaders = new CopyOnWriteArrayList<PluginClassLoader>();
- public static final CustomTimingsHandler pluginParentTimer = new CustomTimingsHandler("** Plugins"); // Spigot
@ -3629,7 +3629,7 @@ index 113b899cc..81b428222 100644
eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled()));
} else {
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
index af8af8ef0..44093af29 100644
index 7a8abe75..bc33ff33 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -0,0 +0,0 @@ import org.bukkit.plugin.PluginDescriptionFile;
@ -3640,10 +3640,10 @@ index af8af8ef0..44093af29 100644
+public final class PluginClassLoader extends URLClassLoader { // Spigot
+ public JavaPlugin getPlugin() { return plugin; } // Spigot
private final JavaPluginLoader loader;
private final Map<String, Class<?>> classes = new java.util.concurrent.ConcurrentHashMap<String, Class<?>>(); // Spigot
private final Map<String, Class<?>> classes = new ConcurrentHashMap<String, Class<?>>();
private final PluginDescriptionFile description;
diff --git a/src/main/java/org/bukkit/util/CachedServerIcon.java b/src/main/java/org/bukkit/util/CachedServerIcon.java
index 5ca863b36..048047067 100644
index 5ca863b3..04804706 100644
--- a/src/main/java/org/bukkit/util/CachedServerIcon.java
+++ b/src/main/java/org/bukkit/util/CachedServerIcon.java
@@ -0,0 +0,0 @@ import org.bukkit.event.server.ServerListPingEvent;
@ -3655,7 +3655,7 @@ index 5ca863b36..048047067 100644
+ public String getData(); // Spigot
+}
diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java
index 8d982974e..e9f76006e 100644
index 8d982974..e9f76006 100644
--- a/src/main/java/org/spigotmc/CustomTimingsHandler.java
+++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java
@@ -0,0 +0,0 @@

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Turtle API
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java
new file mode 100644
index 000000000..11248ee93
index 00000000..11248ee9
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java
@@ -0,0 +0,0 @@
@ -57,7 +57,7 @@ index 000000000..11248ee93
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
new file mode 100644
index 000000000..7cb00f78d
index 00000000..7cb00f78
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
@@ -0,0 +0,0 @@
@ -144,7 +144,7 @@ index 000000000..7cb00f78d
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
new file mode 100644
index 000000000..5d53ee08b
index 00000000..5d53ee08
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
@@ -0,0 +0,0 @@
@ -206,7 +206,7 @@ index 000000000..5d53ee08b
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Turtle.java b/src/main/java/org/bukkit/entity/Turtle.java
index 0a4cd2993..e547eead4 100644
index 0a4cd299..e547eead 100644
--- a/src/main/java/org/bukkit/entity/Turtle.java
+++ b/src/main/java/org/bukkit/entity/Turtle.java
@@ -0,0 +0,0 @@

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Use ASM for event executors.
Uses method handles for private or static methods.
diff --git a/pom.xml b/pom.xml
index b5cc156cd..310c30bb6 100644
index f9fbc40a..1d42d42a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -0,0 +0,0 @@
@ -29,7 +29,7 @@ index b5cc156cd..310c30bb6 100644
<build>
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
new file mode 100644
index 000000000..9ff99e3b3
index 00000000..9ff99e3b
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/MethodHandleEventExecutor.java
@@ -0,0 +0,0 @@
@ -75,7 +75,7 @@ index 000000000..9ff99e3b3
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/StaticMethodHandleEventExecutor.java b/src/main/java/com/destroystokyo/paper/event/executor/StaticMethodHandleEventExecutor.java
new file mode 100644
index 000000000..f60f01005
index 00000000..f60f0100
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/StaticMethodHandleEventExecutor.java
@@ -0,0 +0,0 @@
@ -120,7 +120,7 @@ index 000000000..f60f01005
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java b/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java
new file mode 100644
index 000000000..140cf0ad3
index 00000000..140cf0ad
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/asm/ASMEventExecutorGenerator.java
@@ -0,0 +0,0 @@
@ -170,7 +170,7 @@ index 000000000..140cf0ad3
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/asm/ClassDefiner.java b/src/main/java/com/destroystokyo/paper/event/executor/asm/ClassDefiner.java
new file mode 100644
index 000000000..6941d9fbf
index 00000000..6941d9fb
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/asm/ClassDefiner.java
@@ -0,0 +0,0 @@
@ -208,7 +208,7 @@ index 000000000..6941d9fbf
+}
diff --git a/src/main/java/com/destroystokyo/paper/event/executor/asm/SafeClassDefiner.java b/src/main/java/com/destroystokyo/paper/event/executor/asm/SafeClassDefiner.java
new file mode 100644
index 000000000..1473ff8cd
index 00000000..1473ff8c
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/event/executor/asm/SafeClassDefiner.java
@@ -0,0 +0,0 @@
@ -277,7 +277,7 @@ index 000000000..1473ff8cd
+}
diff --git a/src/main/java/com/destroystokyo/paper/utils/UnsafeUtils.java b/src/main/java/com/destroystokyo/paper/utils/UnsafeUtils.java
new file mode 100644
index 000000000..62acbf821
index 00000000..62acbf82
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/utils/UnsafeUtils.java
@@ -0,0 +0,0 @@
@ -315,7 +315,7 @@ index 000000000..62acbf821
+ }
+}
diff --git a/src/main/java/org/bukkit/plugin/EventExecutor.java b/src/main/java/org/bukkit/plugin/EventExecutor.java
index 3b2c99ea7..b45b6c1c3 100644
index 3b2c99ea..b45b6c1c 100644
--- a/src/main/java/org/bukkit/plugin/EventExecutor.java
+++ b/src/main/java/org/bukkit/plugin/EventExecutor.java
@@ -0,0 +0,0 @@ import org.bukkit.event.Event;
@ -401,7 +401,7 @@ index 3b2c99ea7..b45b6c1c3 100644
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 3af99b5bd..72d506d1f 100644
index bf972302..77207f14 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -0,0 +0,0 @@ public final class JavaPluginLoader implements PluginLoader {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Vex#getSummoner API
Get's the Mob that summoned this Vex
diff --git a/src/main/java/org/bukkit/entity/Vex.java b/src/main/java/org/bukkit/entity/Vex.java
index a2f2fcaec..d395e405d 100644
index a2f2fcae..d395e405 100644
--- a/src/main/java/org/bukkit/entity/Vex.java
+++ b/src/main/java/org/bukkit/entity/Vex.java
@@ -0,0 +0,0 @@ package org.bukkit.entity;

View file

@ -33,7 +33,7 @@ index 7e1ee875..9457832b 100644
/**
* Sets the position of this Location and returns itself
diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java
index adace47c..de89122e 100644
index 1467debe..668c9b7a 100644
--- a/src/main/java/org/bukkit/World.java
+++ b/src/main/java/org/bukkit/World.java
@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable {

View file

@ -10,7 +10,7 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/net/minecraft/server/EnchantmentManager.java b/src/main/java/net/minecraft/server/EnchantmentManager.java
index e1ea8da88..f1921e151 100644
index 108ec49aa..72f0bec4e 100644
--- a/src/main/java/net/minecraft/server/EnchantmentManager.java
+++ b/src/main/java/net/minecraft/server/EnchantmentManager.java
@@ -0,0 +0,0 @@ public class EnchantmentManager {
@ -19,8 +19,8 @@ index e1ea8da88..f1921e151 100644
+ public static ItemStack getRandomEquippedItemWithEnchant(Enchantment enchantment, EntityLiving entityliving) { return b(enchantment, entityliving); } // Paper - OBFHELPER
public static ItemStack b(Enchantment enchantment, EntityLiving entityliving) {
List<ItemStack> list = enchantment.a(entityliving);// Paper - decompile fix
if (list.isEmpty()) {
List<ItemStack> list = enchantment.a(entityliving);
diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index 4bcae2c21..09d85764b 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@ -39,7 +39,7 @@ index 4bcae2c21..09d85764b 100644
return i * 2;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 8046a2a5f..45f7a4143 100644
index eb0330ee1..5a01466e2 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Ability to change PlayerProfile in AsyncPreLoginEvent
This will allow you to change the players name or skin on login.
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
index 30be39b0c..ca3a211a5 100644
index 15c01333e..da5a7b3e9 100644
--- a/src/main/java/net/minecraft/server/LoginListener.java
+++ b/src/main/java/net/minecraft/server/LoginListener.java
@@ -0,0 +0,0 @@

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Ability to get Tile Entities from a chunk without snapshots
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
index 76d395c4e..12c6d850d 100644
index e65768499..9ba2fa5de 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
@@ -0,0 +0,0 @@ public class CraftChunk implements Chunk {

View file

@ -10,7 +10,7 @@ Fixes and adds new Immunities to improve gameplay behavior
Adds water Mobs to activation range config and nerfs fish
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
index c9019260b..e980e31fc 100644
index 507c93804..a4c282220 100644
--- a/src/main/java/net/minecraft/server/BlockPosition.java
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
@@ -0,0 +0,0 @@ public class BlockPosition extends BaseBlockPosition {
@ -22,7 +22,7 @@ index c9019260b..e980e31fc 100644
return new BlockPosition(this);
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 69645d517..9682b0a01 100644
index 583cee415..192f0aedd 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -46,7 +46,7 @@ index 20b7c2c6d..d659c57db 100644
private float b;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index ac250182b..06bb8cf1f 100644
index 4809af8f0..7401bafa9 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
@ -68,7 +68,7 @@ index ac250182b..06bb8cf1f 100644
return this.moveController;
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 95af2d529..162de836e 100644
index fe1c5a49b..f58ebe3c2 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {
@ -81,7 +81,7 @@ index 95af2d529..162de836e 100644
protected int ticksFarFromPlayer;
protected float aZ;
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index 9c48bb3c9..22cea8552 100644
index b19bd2b99..5e1976871 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -0,0 +0,0 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@ -93,29 +93,31 @@ index 9c48bb3c9..22cea8552 100644
return this.bQ != null;
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
index acc099e95..339c78eec 100644
index a146a8b45..a19853463 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -0,0 +0,0 @@ public abstract class PathfinderGoal {
}
public void d() {
public void c() {}
- public void d() {}
+ public void d() {
+ onTaskReset(); // Paper
}
+ }
+ public void onTaskReset() {} // Paper
public void e() {
}
public void e() {}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
index 9a75cb63b..cf10605aa 100644
index d5c08aa7c..756d63239 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
@@ -0,0 +0,0 @@
package net.minecraft.server;
@@ -0,0 +0,0 @@ package net.minecraft.server;
public abstract class PathfinderGoalGotoTarget extends PathfinderGoal {
- private final EntityCreature f;
+ private final EntityCreature f; public EntityCreature getEntity() { return f; } // Paper - OBFHELPER
+ private final EntityCreature f;public EntityCreature getEntity() { return f; } // Paper - OBFHELPER
public double a;
protected int b;
protected int c;
@ -126,8 +128,8 @@ index 9a75cb63b..cf10605aa 100644
private final int i;
private final int j;
@@ -0,0 +0,0 @@ public abstract class PathfinderGoalGotoTarget extends PathfinderGoal {
public PathfinderGoalGotoTarget(EntityCreature entitycreature, double d0, int ix) {
this(entitycreature, d0, ix, 1);
public PathfinderGoalGotoTarget(EntityCreature entitycreature, double d0, int i) {
this(entitycreature, d0, i, 1);
}
+ // Paper start - activation range improvements
+ @Override
@ -137,22 +139,22 @@ index 9a75cb63b..cf10605aa 100644
+ }
+ // Paper end
public PathfinderGoalGotoTarget(EntityCreature entitycreature, double d0, int ix, int jx) {
public PathfinderGoalGotoTarget(EntityCreature entitycreature, double d0, int i, int j) {
this.d = BlockPosition.ZERO;
@@ -0,0 +0,0 @@ public abstract class PathfinderGoalGotoTarget extends PathfinderGoal {
blockposition$mutableblockposition.g(blockposition).d(i1, k - 1, j1);
if (this.f.f(blockposition$mutableblockposition) && this.a(this.f.world, blockposition$mutableblockposition)) {
this.d = blockposition$mutableblockposition;
+ setTarget(blockposition$mutableblockposition.toBlockPosition()); // Paper
blockposition_mutableblockposition.g(blockposition).d(i1, k - 1, j1);
if (this.f.f((BlockPosition) blockposition_mutableblockposition) && this.a(this.f.world, blockposition_mutableblockposition)) {
this.d = blockposition_mutableblockposition;
+ setTarget(blockposition_mutableblockposition.toBlockPosition()); // Paper
return true;
}
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
index ae21eb84d..8f35f71f8 100644
index f3df91181..3e2f9c749 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalSelector.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
public class PathfinderGoalSelector {
@@ -0,0 +0,0 @@ public class PathfinderGoalSelector {
private static final Logger a = LogManager.getLogger();
private final Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> b = Sets.newLinkedHashSet();
- private final Set<PathfinderGoalSelector.PathfinderGoalSelectorItem> c = Sets.newLinkedHashSet();
@ -385,7 +387,7 @@ index 09df00e94..d08ef3fe1 100644
{
isActive = false;
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 87bc8e2d9..06d84a0b6 100644
index d3c2abc39..1d222eaff 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -0,0 +0,0 @@ public class SpigotWorldConfig

View file

@ -40,7 +40,7 @@ index d1a546c8f..284630f74 100644
case TRAPPED_CHEST:
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java
new file mode 100644
index 000000000..0e8acf12e
index 000000000..c00b89c8d
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaArmorStand.java
@@ -0,0 +0,0 @@
@ -55,6 +55,8 @@ index 000000000..0e8acf12e
+import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.NBTBase;
+import net.minecraft.server.NBTTagCompound;
+
+import org.bukkit.Bukkit;
+import org.bukkit.Material;
+import org.bukkit.configuration.serialization.DelegateDeserialization;
+import org.bukkit.craftbukkit.util.CraftMagicNumbers;
@ -224,7 +226,7 @@ index 000000000..0e8acf12e
+
+ if (tag.hasKey(ENTITY_TAG.NBT)) {
+ entityTag = tag.getCompound(ENTITY_TAG.NBT);
+ MinecraftServer.getServer().dataConverterManager.update(DataConverterTypes.ENTITY, new Dynamic(DynamicOpsNBT.a, entityTag), -1, CraftMagicNumbers.DATA_VERSION);
+ MinecraftServer.getServer().dataConverterManager.update(DataConverterTypes.ENTITY, new Dynamic(DynamicOpsNBT.a, entityTag), -1, Bukkit.getUnsafe().getDataVersion());
+
+ if (entityTag.hasKey(INVISIBLE.NBT)) {
+ invisible = entityTag.getBoolean(INVISIBLE.NBT);
@ -354,7 +356,7 @@ index 000000000..0e8acf12e
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
index c00ced8e8..197563552 100644
index 1c94fd908..05d3ff969 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java
@@ -0,0 +0,0 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add BeaconEffectEvent
diff --git a/src/main/java/net/minecraft/server/TileEntityBeacon.java b/src/main/java/net/minecraft/server/TileEntityBeacon.java
index 7bd27ad7f9..eafd207467 100644
index fecd65ddb..c6bd54a2c 100644
--- a/src/main/java/net/minecraft/server/TileEntityBeacon.java
+++ b/src/main/java/net/minecraft/server/TileEntityBeacon.java
@@ -0,0 +0,0 @@ import org.bukkit.entity.HumanEntity;

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues
Add -Ddebug.entities=true to your JVM flags to gain more information
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 9f1610326..1581edc4a 100644
index 969e43ed1..8bab03bd0 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -18,7 +18,7 @@ index 9f1610326..1581edc4a 100644
if (bukkitEntity == null) {
bukkitEntity = CraftEntity.getEntity(world.getServer(), this);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 7711b2eff..67ef109a5 100644
index 84efc1cc3..601fe77c5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -30,7 +30,7 @@ index 7711b2eff..67ef109a5 100644
public boolean captureBlockStates = false;
public boolean captureTreeGeneration = false;
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 45851cd0c..f37e85eb0 100644
index 702a5d9d6..be475288e 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {

View file

@ -36,7 +36,7 @@ index a92914576..f3f2a0b69 100644
public static int tabSpamLimit = 500;
private static void tabSpamLimiters() {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index c3efb5e1b..ca72e6ad1 100644
index a55ab0fd9..5a0dbcb42 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -0,0 +0,0 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
@ -48,7 +48,7 @@ index c3efb5e1b..ca72e6ad1 100644
long start = System.nanoTime(), curTime, wait, tickSection = start; // Paper - Further improve server tick loop
lastTick = start - TICK_TIME; // Paper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 71d1929c1..93a8f4cdf 100644
index ec197ef51..392cd0e3d 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
@ -68,7 +68,7 @@ index 71d1929c1..93a8f4cdf 100644
@Override
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index eed96c60c..496c5cbdf 100644
index 9c442dee2..fb09fb097 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -0,0 +0,0 @@ public class SpigotConfig

View file

@ -22,7 +22,7 @@ index 7ef67350a..9dc2d8be2 100644
if (CraftEventFactory.callPigZapEvent(this, entitylightning, entitypigzombie).isCancelled()) {
return;
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index d2572b3e1..ddf170180 100644
index f8e05b75d..213d0b18c 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -0,0 +0,0 @@ public class EntityVillager extends EntityAgeable implements NPC, IMerchant {
@ -39,7 +39,7 @@ index d2572b3e1..ddf170180 100644
entitywitch.prepare(this.world.getDamageScaler(new BlockPosition(entitywitch)), (GroupDataEntity) null, (NBTTagCompound) null);
entitywitch.setNoAI(this.isNoAI());
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 35992c4ba..075e6f04e 100644
index 4d3bfd69e..b8bf1fbef 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -0,0 +0,0 @@ public class CraftEventFactory {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add LivingEntity#getTargetEntity
diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java
index 19819b134..49228a884 100644
index c5e541985..d6a5c7407 100644
--- a/src/main/java/net/minecraft/server/AxisAlignedBB.java
+++ b/src/main/java/net/minecraft/server/AxisAlignedBB.java
@@ -0,0 +0,0 @@ public class AxisAlignedBB {
@ -44,9 +44,9 @@ index 19819b134..49228a884 100644
+ public MovingObjectPosition calculateIntercept(Vec3D vec3d, Vec3D vec3d1) { return b(vec3d, vec3d1); } // Paper - OBFHELPER
@Nullable
public MovingObjectPosition b(Vec3D vec3d, Vec3D vec3d1) {
return this.a(vec3d, vec3d1, (BlockPosition)null);
return this.a(vec3d, vec3d1, (BlockPosition) null);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 0f646ac7e..23e6f45bf 100644
index f26056dd5..35715e434 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -71,7 +71,7 @@ index 0f646ac7e..23e6f45bf 100644
return this.d(this.pitch, this.yaw);
}
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 46a4e37a2..34b649dad 100644
index 60aaf0547..710ad8b17 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -0,0 +0,0 @@ package net.minecraft.server;
@ -130,16 +130,16 @@ index 46a4e37a2..34b649dad 100644
public int getShieldBlockingDelay() {
diff --git a/src/main/java/net/minecraft/server/IEntitySelector.java b/src/main/java/net/minecraft/server/IEntitySelector.java
index 42b3d3fc5..61806bbc4 100644
index f6916fd45..71f08d53c 100644
--- a/src/main/java/net/minecraft/server/IEntitySelector.java
+++ b/src/main/java/net/minecraft/server/IEntitySelector.java
@@ -0,0 +0,0 @@ public final class IEntitySelector {
public static final Predicate<Entity> e = (entity) -> {
return !(entity instanceof EntityHuman) || !((EntityHuman)entity).isSpectator() && !((EntityHuman)entity).u();
return !(entity instanceof EntityHuman) || !((EntityHuman) entity).isSpectator() && !((EntityHuman) entity).u();
};
+ public static Predicate<Entity> notSpectator() { return f; } // Paper - OBFHELPER
public static final Predicate<Entity> f = (entity) -> {
return !(entity instanceof EntityHuman) || !((EntityHuman)entity).isSpectator();
return !(entity instanceof EntityHuman) || !((EntityHuman) entity).isSpectator();
};
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
index eeab59379..d6a4bc64a 100644

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add MinecraftKey Information to Objects
Stores the reference to the objects respective MinecraftKey
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
index 961966e169..56700fc596 100644
index 961966e16..56700fc59 100644
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -0,0 +0,0 @@ public class PaperCommand extends Command {
@ -19,7 +19,7 @@ index 961966e169..56700fc596 100644
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index ffaa425ec8..19a3ba79f2 100644
index b1a4a6d70..e72ccefc2 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.EntityPortalEvent;
@ -64,7 +64,7 @@ index ffaa425ec8..19a3ba79f2 100644
+ }
@Nullable
public final String getSaveID() {
- EntityTypes entitytypes = this.P();
- EntityTypes<?> entitytypes = this.P();
- MinecraftKey minecraftkey = EntityTypes.getName(entitytypes);
-
- return entitytypes.a() && minecraftkey != null ? minecraftkey.toString() : null;
@ -75,7 +75,7 @@ index ffaa425ec8..19a3ba79f2 100644
protected abstract void a(NBTTagCompound nbttagcompound);
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index 5c1ab6a0b6..cd411a1423 100644
index a07ee150c..d74bfa120 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -0,0 +0,0 @@ public class EntityTypes<T extends Entity> {
@ -88,7 +88,7 @@ index 5c1ab6a0b6..cd411a1423 100644
}
diff --git a/src/main/java/net/minecraft/server/KeyedObject.java b/src/main/java/net/minecraft/server/KeyedObject.java
new file mode 100644
index 0000000000..743142d030
index 000000000..743142d03
--- /dev/null
+++ b/src/main/java/net/minecraft/server/KeyedObject.java
@@ -0,0 +0,0 @@
@ -102,7 +102,7 @@ index 0000000000..743142d030
+ }
+}
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index 62b6e6eb38..7390061bf0 100644
index 62b6e6eb3..7390061bf 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add More Creeper API
diff --git a/src/main/java/net/minecraft/server/EntityCreeper.java b/src/main/java/net/minecraft/server/EntityCreeper.java
index 569248abb..b1752d66f 100644
index a07337ae4..945a75dd6 100644
--- a/src/main/java/net/minecraft/server/EntityCreeper.java
+++ b/src/main/java/net/minecraft/server/EntityCreeper.java
@@ -0,0 +0,0 @@ public class EntityCreeper extends EntityMonster {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add PhantomPreSpawnEvent
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 60cb6f583..7a48719c9 100644
index a99d90efc..f576264a8 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -0,0 +0,0 @@ public class EntityPhantom extends EntityFlying implements IMonster {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index a6457e870..fadf1df28 100644
index 6e96cea08..ffff7390e 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -0,0 +0,0 @@
@ -30,11 +30,11 @@ index a6457e870..fadf1df28 100644
if (!itemstack.isEmpty()) {
this.getAttributeMap().a(itemstack.a(enumitemslot));
diff --git a/src/main/java/net/minecraft/server/EnumItemSlot.java b/src/main/java/net/minecraft/server/EnumItemSlot.java
index a13515a7f..bad1020c0 100644
index a9a133993..8f4b5dca9 100644
--- a/src/main/java/net/minecraft/server/EnumItemSlot.java
+++ b/src/main/java/net/minecraft/server/EnumItemSlot.java
@@ -0,0 +0,0 @@ public enum EnumItemSlot {
this.j = s1;
this.j = s;
}
+ public EnumItemSlot.Function getType() { return this.a(); } // Paper - OBFHELPER

View file

@ -34,7 +34,7 @@ how PlayerPreLoginEvent interacts with PlayerConnectionCloseEvent
is undefined.
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
index 95d34fbfe..d20545bad 100644
index ca76f2a38..dfe7a029f 100644
--- a/src/main/java/net/minecraft/server/LoginListener.java
+++ b/src/main/java/net/minecraft/server/LoginListener.java
@@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener, ITickable {
@ -50,7 +50,7 @@ index 95d34fbfe..d20545bad 100644
private SecretKey loginKey;
private EntityPlayer l;
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index 065bede4c..21e92b921 100644
index 0b8796d0a..553637239 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -0,0 +0,0 @@ import io.netty.handler.timeout.TimeoutException;

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add PlayerInitialSpawnEvent
For modifying a player's initial spawn location as they join the server
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 26df2ff32f..4320efaef5 100644
index c2bb79fe8..4f9c97a08 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -0,0 +0,0 @@ public abstract class PlayerList {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerJumpEvent
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index d6333d9bb..96e3d20e3 100644
index ca6b9063b..7343eb25c 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
@ -17,7 +17,7 @@ index d6333d9bb..96e3d20e3 100644
super.cH();
this.a(StatisticList.JUMP);
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index c8b251e69..00751a9d9 100644
index 691c16271..067de3b5f 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -0,0 +0,0 @@ import org.bukkit.inventory.CraftingInventory;

View file

@ -5,20 +5,20 @@ Subject: [PATCH] Add PlayerUseUnknownEntityEvent
diff --git a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
index a4b98c81f..53d38ea40 100644
index 77440ac81..8711462e1 100644
--- a/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
+++ b/src/main/java/net/minecraft/server/PacketPlayInUseEntity.java
@@ -0,0 +0,0 @@ import java.io.IOException;
import javax.annotation.Nullable;
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
public class PacketPlayInUseEntity implements Packet<PacketListenerPlayIn> {
- private int a;
+ private int a; public int getEntityId() { return this.a; } // Paper - add accessor
private PacketPlayInUseEntity.EnumEntityUseAction action;
private Vec3D c;
private EnumHand d;
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index b67861519..dc2c143c8 100644
index 91eb73b73..f35714fa1 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add ProjectileCollideEvent
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index cc38cfb04..46606ed5c 100644
index 6dee9e169..2aaa27789 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
@@ -0,0 +0,0 @@ public abstract class EntityArrow extends Entity implements IProjectile {
@ -46,7 +46,7 @@ index 3e3619d79..58cc4824c 100644
this.a(movingobjectposition);
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index cffb40efb..45a326779 100644
index 16aa2b5f2..23f7d36b5 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -0,0 +0,0 @@ public class EntityFishingHook extends Entity {
@ -67,7 +67,7 @@ index cffb40efb..45a326779 100644
vec3d1 = new Vec3D(movingobjectposition.pos.x, movingobjectposition.pos.y, movingobjectposition.pos.z);
}
diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
index 11638221b..431afaf2f 100644
index 751ea456b..bab5b89fe 100644
--- a/src/main/java/net/minecraft/server/EntityProjectile.java
+++ b/src/main/java/net/minecraft/server/EntityProjectile.java
@@ -0,0 +0,0 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
@ -87,7 +87,7 @@ index 11638221b..431afaf2f 100644
if (movingobjectposition.type == MovingObjectPosition.EnumMovingObjectType.BLOCK && this.world.getType(movingobjectposition.getBlockPosition()).getBlock() == Blocks.NETHER_PORTAL) {
this.e(movingobjectposition.getBlockPosition());
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 2a06cbf85..464c5cfc9 100644
index 717cd0f42..943963047 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -0,0 +0,0 @@ public class CraftEventFactory {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add TNTPrimeEvent
diff --git a/src/main/java/net/minecraft/server/BlockFire.java b/src/main/java/net/minecraft/server/BlockFire.java
index 35a265fa2..3bacd8958 100644
index 3f421d46a..0fbcd352c 100644
--- a/src/main/java/net/minecraft/server/BlockFire.java
+++ b/src/main/java/net/minecraft/server/BlockFire.java
@@ -0,0 +0,0 @@ package net.minecraft.server;
@ -112,7 +112,7 @@ index f97fccf56..c821e6b3b 100644
world.setAir(blockposition);
}
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index 473773724..a49f1208b 100644
index 79d8be8d4..fcc82d8eb 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;

View file

@ -127,7 +127,7 @@ index 000000000..fdd8708f9
+ }
+}
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
index 64d2b8aec..95d34fbfe 100644
index c5801122d..ca76f2a38 100644
--- a/src/main/java/net/minecraft/server/LoginListener.java
+++ b/src/main/java/net/minecraft/server/LoginListener.java
@@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener, ITickable {
@ -203,7 +203,7 @@ index 64d2b8aec..95d34fbfe 100644
}
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index e5cc77c6d..120416b30 100644
index 4c1110479..c53697914 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@ -244,27 +244,27 @@ index b95836d44..621aad150 100644
int j = this.g();
diff --git a/src/main/java/net/minecraft/server/PacketLoginInCustomPayload.java b/src/main/java/net/minecraft/server/PacketLoginInCustomPayload.java
index e3c0094f7..edfd4a506 100644
index bdac03da4..430445cc6 100644
--- a/src/main/java/net/minecraft/server/PacketLoginInCustomPayload.java
+++ b/src/main/java/net/minecraft/server/PacketLoginInCustomPayload.java
@@ -0,0 +0,0 @@ package net.minecraft.server;
import java.io.IOException;
@@ -0,0 +0,0 @@ import java.io.IOException;
public class PacketLoginInCustomPayload implements Packet<PacketLoginInListener> {
- private int a;
- private PacketDataSerializer b;
+ private int a; public int getId() { return a; } // Paper - OBFHELPER
+ private PacketDataSerializer b; public PacketDataSerializer getBuf() { return b; } // Paper - OBFHELPER
public PacketLoginInCustomPayload() {
}
public PacketLoginInCustomPayload() {}
diff --git a/src/main/java/net/minecraft/server/PacketLoginOutCustomPayload.java b/src/main/java/net/minecraft/server/PacketLoginOutCustomPayload.java
index 9c5559ece..9de0421bb 100644
index 345843a7f..23c96f44b 100644
--- a/src/main/java/net/minecraft/server/PacketLoginOutCustomPayload.java
+++ b/src/main/java/net/minecraft/server/PacketLoginOutCustomPayload.java
@@ -0,0 +0,0 @@ public class PacketLoginOutCustomPayload implements Packet<PacketLoginOutListene
public PacketLoginOutCustomPayload() {
}
public PacketLoginOutCustomPayload() {}
+ // Paper start
+ public PacketLoginOutCustomPayload(int id, MinecraftKey channel, PacketDataSerializer buf) {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add World Util Methods
Methods that can be used for other patches to help improve logic.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 37bea8dbe..eca041265 100644
index 446e464b7..dcb036f31 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
@ -18,13 +18,13 @@ index 37bea8dbe..eca041265 100644
return this.a(blockposition, i, this.world.o().g());
}
diff --git a/src/main/java/net/minecraft/server/IWorldReader.java b/src/main/java/net/minecraft/server/IWorldReader.java
index f5c56de0c..9b972e65d 100644
index 237a34082..cf53118cc 100644
--- a/src/main/java/net/minecraft/server/IWorldReader.java
+++ b/src/main/java/net/minecraft/server/IWorldReader.java
@@ -0,0 +0,0 @@ public interface IWorldReader extends IBlockAccess {
}
int getLightLevel(BlockPosition var1, int var2);
int getLightLevel(BlockPosition blockposition, int i);
+ // Paper start
+ default @Nullable
+ IBlockData getTypeIfLoaded(BlockPosition var1) {
@ -42,24 +42,15 @@ index f5c56de0c..9b972e65d 100644
+ }
+ // Paper end
boolean isChunkLoaded(int var1, int var2, boolean var3);
boolean isChunkLoaded(int i, int j, boolean flag);
@@ -0,0 +0,0 @@ public interface IWorldReader extends IBlockAccess {
WorldBorder worldborder = this.getWorldBorder();
boolean flag1 = worldborder.b() < (double)i && (double)j < worldborder.d() && worldborder.c() < (double)i1 && (double)j1 < worldborder.e();
VoxelShapeBitSet voxelshapebitset = new VoxelShapeBitSet(j - i, l - k, j1 - i1);
- Predicate predicate = (voxelshape3) -> {
+ Predicate<VoxelShape> predicate = (voxelshape3) -> { // Paper - decompile fix
return !voxelshape3.isEmpty() && VoxelShapes.c(voxelshape, voxelshape3, OperatorBoolean.AND);
};
Stream stream = StreamSupport.stream(BlockPosition.MutableBlockPosition.b(i, k, i1, j - 1, l - 1, j1 - 1).spliterator(), false).map((blockposition$mutableblockposition) -> {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0e70a3d68..4093d3486 100644
index ae7e4a7fa..96442ad7d 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
public final List<Entity> k = Lists.newArrayList();
protected final IntHashMap<Entity> entitiesById = new IntHashMap();
protected final IntHashMap<Entity> entitiesById = new IntHashMap<>();
private final long F = 16777215L;
- private int G;
+ private int G; public int getSkylightSubtracted() { return this.G; } public void setSkylightSubtracted(int value) { this.G = value;} // Paper - OBFHELPER

View file

@ -24,7 +24,7 @@ index 973ea8bca..7c7d5595a 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/BlockIceFrost.java b/src/main/java/net/minecraft/server/BlockIceFrost.java
index 1100073f3..598621fbb 100644
index 7cac7cc90..792a69ad5 100644
--- a/src/main/java/net/minecraft/server/BlockIceFrost.java
+++ b/src/main/java/net/minecraft/server/BlockIceFrost.java
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
@ -32,16 +32,19 @@ index 1100073f3..598621fbb 100644
public void a(IBlockData iblockdata, World world, BlockPosition blockposition, Random random) {
+ if (!world.paperConfig.frostedIceEnabled) return; // Paper - add ability to disable frosted ice
if ((random.nextInt(3) == 0 || this.a(world, blockposition, 4)) && world.getLightLevel(blockposition) > 11 - iblockdata.get(a) - iblockdata.b(world, blockposition) && this.c(iblockdata, world, blockposition)) {
try (BlockPosition.b blockposition$b = BlockPosition.b.r()) {
for(EnumDirection enumdirection : EnumDirection.values()) {
blockposition$b.g(blockposition).c(enumdirection);
IBlockData iblockdata1 = world.getType(blockposition$b);
if (iblockdata1.getBlock() == this && !this.c(iblockdata1, world, blockposition$b)) {
- world.getBlockTickList().a(blockposition$b, this, MathHelper.nextInt(random, 20, 40));
+ world.getBlockTickList().a(blockposition$b, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
if ((random.nextInt(3) == 0 || this.a(world, blockposition, 4)) && world.getLightLevel(blockposition) > 11 - (Integer) iblockdata.get(BlockIceFrost.a) - iblockdata.b(world, blockposition) && this.c(iblockdata, world, blockposition)) {
BlockPosition.b blockposition_b = BlockPosition.b.r();
Throwable throwable = null;
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
IBlockData iblockdata1 = world.getType(blockposition_b);
if (iblockdata1.getBlock() == this && !this.c(iblockdata1, world, blockposition_b)) {
- world.getBlockTickList().a(blockposition_b, this, MathHelper.nextInt(random, 20, 40));
+ world.getBlockTickList().a(blockposition_b, this, MathHelper.nextInt(random, world.paperConfig.frostedIceDelayMin, world.paperConfig.frostedIceDelayMax)); // Paper - use configurable min/max delay
}
}
} catch (Throwable throwable1) {
@@ -0,0 +0,0 @@ public class BlockIceFrost extends BlockIce {
}
} else {

View file

@ -19,25 +19,26 @@ index 875650b8d..74185b31f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java
index 1e22aa531..e6da1c30f 100644
index a6259d9e6..aad7ce93f 100644
--- a/src/main/java/net/minecraft/server/EnderDragonBattle.java
+++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java
@@ -0,0 +0,0 @@ public class EnderDragonBattle {
private int h;
private int i;
private int j;
+ private void setDragonKilled(boolean dragonKilled) { this.k = dragonKilled; } // Paper - OBFHELPER
private boolean k;
- private boolean k;
+ private boolean k; private void setDragonKilled(boolean dragonKilled) { this.k = dragonKilled; } // Paper - OBFHELPER
private boolean l;
private UUID m;
- private boolean n = true;
+ private boolean n = true; private void setScanForLegacyFight(boolean scanForLegacyFight) { this.n = scanForLegacyFight; } private boolean scanForLegacyFight() { return this.n; } // Paper - OBFHELPER
- private boolean n;
+ private boolean n; private void setScanForLegacyFight(boolean scanForLegacyFight) { this.n = scanForLegacyFight; } private boolean scanForLegacyFight() { return this.n; } // Paper - OBFHELPER
private BlockPosition o;
private EnumDragonRespawn p;
private int q;
private List<EntityEnderCrystal> r;
public EnderDragonBattle(WorldServer worldserver, NBTTagCompound nbttagcompound) {
@@ -0,0 +0,0 @@ public class EnderDragonBattle {
this.bossBattle = (BossBattleServer) (new BossBattleServer(new ChatMessage("entity.minecraft.ender_dragon", new Object[0]), BossBattle.BarColor.PINK, BossBattle.BarStyle.PROGRESS)).setPlayMusic(true).c(true);
this.e = Lists.newArrayList();
this.n = true;
+ // Paper start
+ setScanForLegacyFight(worldserver.paperConfig.scanForLegacyEnderDragon);
+ if (!scanForLegacyFight()) setDragonKilled(true);
@ -45,13 +46,4 @@ index 1e22aa531..e6da1c30f 100644
this.d = worldserver;
if (nbttagcompound.hasKeyOfType("DragonKilled", 99)) {
if (nbttagcompound.b("DragonUUID")) {
@@ -0,0 +0,0 @@ public class EnderDragonBattle {
hashset.add(entityplayer);
}
- HashSet hashset1 = Sets.newHashSet(this.bossBattle.getPlayers());
+ HashSet<EntityPlayer> hashset1 = Sets.newHashSet(this.bossBattle.getPlayers()); // Paper - decomp fix
hashset1.removeAll(hashset);
for(EntityPlayer entityplayer1 : hashset1) {
--

View file

@ -30,7 +30,7 @@ index 341038fc4..3e1f4be10 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 9d4d8c697..8f4319c80 100644
index f31f31c37..42a073d70 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {

View file

@ -49,7 +49,7 @@ index 000000000..f699ce18c
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index c5d562dca..37bea8dbe 100644
index d1b6344ce..446e464b7 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@
@ -88,12 +88,12 @@ index c5d562dca..37bea8dbe 100644
}
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 6a9b9fa2a..557aa5180 100644
index fe189a841..9a8894238 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -0,0 +0,0 @@ import java.util.function.BooleanSupplier;
@@ -0,0 +0,0 @@ import java.util.concurrent.CompletableFuture;
import java.util.function.BooleanSupplier;
import java.util.function.Consumer;
import java.util.function.Function;
import javax.annotation.Nullable;
+import com.destroystokyo.paper.exception.ServerInternalException;
import org.apache.logging.log4j.LogManager;
@ -119,7 +119,7 @@ index 6a9b9fa2a..557aa5180 100644
}
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
index 95120be5d..5977d3b48 100644
index 09ef8729d..bf67dbf54 100644
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -0,0 +0,0 @@
@ -130,7 +130,7 @@ index 95120be5d..5977d3b48 100644
import com.google.common.collect.Maps;
import com.google.common.io.Files;
@@ -0,0 +0,0 @@ public class NameReferencingFileConverter {
root = NBTCompressedStreamTools.a(new java.io.FileInputStream(file1));
root = NBTCompressedStreamTools.a(new java.io.FileInputStream(file5));
} catch (Exception exception) {
exception.printStackTrace();
+ ServerInternalException.reportInternalException(exception); // Paper
@ -146,7 +146,7 @@ index 95120be5d..5977d3b48 100644
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index 66fe6ff86..06417b9ec 100644
index e8d9f33c8..5b48bb0b7 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -0,0 +0,0 @@
@ -165,7 +165,7 @@ index 66fe6ff86..06417b9ec 100644
}
@@ -0,0 +0,0 @@ public class RegionFile {
this.b(i, j, (int)(SystemUtils.getTimeMillis() / 1000L));
this.b(i, j, (int) (SystemUtils.getTimeMillis() / 1000L));
} catch (IOException ioexception) {
ioexception.printStackTrace();
+ ServerInternalException.reportInternalException(ioexception); // Paper
@ -192,7 +192,7 @@ index c5ca89691..e507a996f 100644
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 4233b94a1..1ff5dcd85 100644
index 6720a9648..2aa0db5c2 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.LogManager;
@ -220,7 +220,7 @@ index 4233b94a1..1ff5dcd85 100644
}
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
index e649d662a..560edb523 100644
index 58122b18e..0ac1fb53a 100644
--- a/src/main/java/net/minecraft/server/VillageSiege.java
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
@@ -0,0 +0,0 @@
@ -240,7 +240,7 @@ index e649d662a..560edb523 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a9239ee7b..0e70a3d68 100644
index ae14fb182..ae7e4a7fa 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@
@ -277,16 +277,16 @@ index a9239ee7b..0e70a3d68 100644
this.tileEntityListTick.remove(tileTickPosition--);
continue;
diff --git a/src/main/java/net/minecraft/server/WorldPersistentData.java b/src/main/java/net/minecraft/server/WorldPersistentData.java
index f0a826cd1..2dee02669 100644
index 478bf4997..8d51af286 100644
--- a/src/main/java/net/minecraft/server/WorldPersistentData.java
+++ b/src/main/java/net/minecraft/server/WorldPersistentData.java
@@ -0,0 +0,0 @@ public class WorldPersistentData {
int j = nbttagcompound.hasKeyOfType("DataVersion", 99) ? nbttagcompound.getInt("DataVersion") : 1343;
nbttagcompound1 = GameProfileSerializer.a(idatamanager.i(), DataFixTypes.SAVED_DATA, nbttagcompound, j, i);
} catch (Throwable throwable2) {
+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable2); // Paper
throwable = throwable2;
throw throwable2;
nbttagcompound = GameProfileSerializer.a(idatamanager.i(), DataFixTypes.SAVED_DATA, nbttagcompound1, j, i);
} catch (Throwable throwable1) {
+ com.destroystokyo.paper.exception.ServerInternalException.reportInternalException(throwable1); // Paper
throwable = throwable1;
throw throwable1;
} finally {
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index 311c4f5ca..e76882b8e 100644

View file

@ -18,13 +18,13 @@ index 5ac88166f..5874d2993 100644
if (event.isCancelled()) {
return false;
diff --git a/src/main/java/net/minecraft/server/ItemBucket.java b/src/main/java/net/minecraft/server/ItemBucket.java
index 6e12bf84f..5d8568a1c 100644
index 6f5dda880..a064897fc 100644
--- a/src/main/java/net/minecraft/server/ItemBucket.java
+++ b/src/main/java/net/minecraft/server/ItemBucket.java
@@ -0,0 +0,0 @@ public class ItemBucket extends Item {
if (iblockdata.getBlock() instanceof IFluidSource) {
// CraftBukkit start
FluidType dummyFluid = ((IFluidSource) iblockdata.getBlock()).a(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata);
FluidType dummyFluid = ((IFluidSource) iblockdata.getBlock()).removeFluid(DummyGeneratorAccess.INSTANCE, blockposition, iblockdata);
- PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, blockposition.getX(), blockposition.getY(), blockposition.getZ(), null, itemstack, dummyFluid.b());
+ PlayerBucketFillEvent event = CraftEventFactory.callPlayerBucketFillEvent(entityhuman, blockposition.getX(), blockposition.getY(), blockposition.getZ(), null, itemstack, dummyFluid.b(), enumhand); // Paper - add enumHand
@ -67,7 +67,7 @@ index 6e12bf84f..5d8568a1c 100644
((EntityPlayer) entityhuman).playerConnection.sendPacket(new PacketPlayOutBlockChange(world, blockposition)); // SPIGOT-4238: needed when looking through entity
((EntityPlayer) entityhuman).getBukkitEntity().updateInventory(); // SPIGOT-4541
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 41b05f231..c6cd2f3be 100644
index fa3bb1047..a2841ee53 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -0,0 +0,0 @@ public class CraftEventFactory {

View file

@ -6,7 +6,7 @@ Subject: [PATCH] Add missing coverages for getTileEntity in order to attempt
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index b5b1a2637..b80315bc5 100644
index b17069e41..44b003325 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add more Witch API
diff --git a/src/main/java/net/minecraft/server/EntityWitch.java b/src/main/java/net/minecraft/server/EntityWitch.java
index f334ad88d..e3c77839b 100644
index feedfc9d9..955e0e19b 100644
--- a/src/main/java/net/minecraft/server/EntityWitch.java
+++ b/src/main/java/net/minecraft/server/EntityWitch.java
@@ -0,0 +0,0 @@

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add more Zombie API
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
index f25bcfd8f..72ea3ba76 100644
index 92ad1ad15..85465879d 100644
--- a/src/main/java/net/minecraft/server/EntityZombie.java
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
@@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster {
@ -13,9 +13,9 @@ index f25bcfd8f..72ea3ba76 100644
private static final DataWatcherObject<Boolean> bC = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
private static final DataWatcherObject<Integer> bD = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
- private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
- public static final DataWatcherObject<Boolean> bF = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); // PAIL
+ private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> armsRaised = bE; // Paper - OBFHELPER
+ public static final DataWatcherObject<Boolean> bF = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> drowning = bF; // Paper - OBFHELPER
- public static final DataWatcherObject<Boolean> DROWN_CONVERTING = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
+ private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> armsRaised = bE; // Paper - OBFHELPER
+ public static final DataWatcherObject<Boolean> DROWN_CONVERTING = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> drowning = DROWN_CONVERTING; // Paper - OBFHELPER
private final PathfinderGoalBreakDoor bG;
private boolean bH;
private int bI;
@ -28,12 +28,12 @@ index f25bcfd8f..72ea3ba76 100644
public EntityZombie(EntityTypes<?> entitytypes, World world) {
super(entitytypes, world);
@@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster {
this.getDataWatcher().register(EntityZombie.bF, false);
this.getDataWatcher().register(EntityZombie.DROWN_CONVERTING, false);
}
+ public boolean isDrowning() { return isDrownConverting(); } // Paper - OBFHELPER
public boolean isDrownConverting() {
return (Boolean) this.getDataWatcher().get(EntityZombie.bF);
return (Boolean) this.getDataWatcher().get(EntityZombie.DROWN_CONVERTING);
}
+ public void setArmsRaised(boolean raised) { s(raised); } // Paper - OBFHELPER
@ -51,13 +51,7 @@ index f25bcfd8f..72ea3ba76 100644
return this.bH;
}
@@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster {
super.movementTick();
}
+ public void startDrowning(int drownedConversionTime) { a(drownedConversionTime); } // Paper - OBFHELPER
public void a(int i) { // PAIL
this.drownedConversionTime = i;
this.getDataWatcher().set(EntityZombie.bF, true);
this.getDataWatcher().set(EntityZombie.DROWN_CONVERTING, true);
}
+ // Paper start
@ -99,7 +93,7 @@ index f25bcfd8f..72ea3ba76 100644
public void a(NBTTagCompound nbttagcompound) {
@@ -0,0 +0,0 @@ public class EntityZombie extends EntityMonster {
if (nbttagcompound.hasKeyOfType("DrownedConversionTime", 99) && nbttagcompound.getInt("DrownedConversionTime") > -1) {
this.a(nbttagcompound.getInt("DrownedConversionTime"));
this.startDrownedConversion(nbttagcompound.getInt("DrownedConversionTime"));
}
-
+ // Paper start
@ -111,11 +105,11 @@ index f25bcfd8f..72ea3ba76 100644
public void b(EntityLiving entityliving) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
index 7af4ea9f8..4d4c50212 100644
index e93ecb076..c516d3475 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
@@ -0,0 +0,0 @@ public class CraftZombie extends CraftMonster implements Zombie {
getHandle().a(time);
getHandle().startDrownedConversion(time);
}
}
+
@ -125,7 +119,7 @@ index 7af4ea9f8..4d4c50212 100644
+ }
+
+ public void startDrowning(int drownedConversionTime) {
+ getHandle().startDrowning(drownedConversionTime);
+ getHandle().startDrownedConversion(drownedConversionTime);
+ }
+
+ public void stopDrowning() {

View file

@ -26,7 +26,7 @@ index e49eb0caf..aefb0ce97 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 16a8cee3e..86c6beefe 100644
index f1314831f..651133eb9 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
@ -39,7 +39,7 @@ index 16a8cee3e..86c6beefe 100644
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 03b986bfa..c8b251e69 100644
index 1491de7e7..877598a54 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {

View file

@ -20,7 +20,7 @@ index 48920b045..77368b17a 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index f2f977fff..96db9121b 100644
index 8899ad0f6..f78c6e991 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -0,0 +0,0 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add player view distance API
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 1aec6d7c3..1185769ca 100644
index 70d5a69f8..f28ca6bb4 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -0,0 +0,0 @@ public abstract class EntityHuman extends EntityLiving {
@ -25,7 +25,7 @@ index 1aec6d7c3..1185769ca 100644
// CraftBukkit start
public boolean fauxSleeping;
diff --git a/src/main/java/net/minecraft/server/EntityTracker.java b/src/main/java/net/minecraft/server/EntityTracker.java
index d7f33bd53..63e22bd9a 100644
index 45ab33d1a..3854ae976 100644
--- a/src/main/java/net/minecraft/server/EntityTracker.java
+++ b/src/main/java/net/minecraft/server/EntityTracker.java
@@ -0,0 +0,0 @@ public class EntityTracker {
@ -37,7 +37,7 @@ index d7f33bd53..63e22bd9a 100644
Iterator iterator = this.c.iterator();
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 6a622f72e..4272d2036 100644
index d00401ce1..dd6c84b4a 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -0,0 +0,0 @@ public class EntityTrackerEntry {
@ -50,7 +50,7 @@ index 6a622f72e..4272d2036 100644
return d0 >= (double) (-i) && d0 <= (double) i && d1 >= (double) (-i) && d1 <= (double) i && this.tracker.a(entityplayer);
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 29e24940f..653031af4 100644
index e01222ad2..55161af9c 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -0,0 +0,0 @@ public class PlayerChunkMap {
@ -221,7 +221,7 @@ index 29e24940f..653031af4 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index ff564508f..4233b94a1 100644
index 4eaa5d93b..6720a9648 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -0,0 +0,0 @@ public final class SpawnerCreature {
@ -234,7 +234,7 @@ index ff564508f..4233b94a1 100644
for (int i1 = -b0; i1 <= b0; ++i1) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 6635f1a4a..d2ff18cf7 100644
index 31140ed18..1a4527f30 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add ray tracing methods to LivingEntity
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 1dcb9a7e9..5ea5d4b78 100644
index 8f5ff37c2..b4dcdda0c 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {

View file

@ -31,7 +31,7 @@ index e10055b7d..2ae623e7d 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
index 5977d3b48..c3f3ae03a 100644
index bf67dbf54..dcaba3c40 100644
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -0,0 +0,0 @@ public class NameReferencingFileConverter {

View file

@ -9,7 +9,7 @@ This should hopefully avoid duplicate entities ever being created
if the entity was to end up in 2 different chunk slices
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index f7990fbdb..4f01140e7 100644
index 42b76b212..ca236a315 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
@ -73,7 +73,7 @@ index f7990fbdb..4f01140e7 100644
// Do not pass along players, as doing so can get them stuck outside of time.
// (which for example disables inventory icon updates and prevents block breaking)
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index fe0590dea..469dce5df 100644
index 12ab5def2..50e616179 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add source block to BlockPhysicsEvent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e8891d078..0d401bf1d 100644
index 823c3900b..b4c9df025 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc

View file

@ -18,7 +18,7 @@ index 808d1a120..3030dd9c3 100644
this.die();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 075e6f04e..2a06cbf85 100644
index b8bf1fbef..717cd0f42 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -0,0 +0,0 @@ import org.bukkit.entity.Player;

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Add sun related API
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 877337eed..48c1ae624 100644
index 8317ecea8..2aa49aaee 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
@ -17,7 +17,7 @@ index 877337eed..48c1ae624 100644
if (this.world.L() && !this.world.isClientSide) {
float f = this.az();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9fc0d7576..c8a7f5e59 100644
index 55cd98ae2..a186637f5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
@ -29,7 +29,7 @@ index 9fc0d7576..c8a7f5e59 100644
return this.G < 4;
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 162ff3414..86e70f236 100644
index b5a87cfaf..e33135ada 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -0,0 +0,0 @@ public class CraftWorld implements World {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Allow chests to be placed with NBT data
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index d32ea9c92..d1000805a 100644
index 99dab7a47..5a67e1f92 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -0,0 +0,0 @@ public final class ItemStack {
@ -25,7 +25,7 @@ index d32ea9c92..d1000805a 100644
for (BlockState blockstate : blocks) {
blockstate.update(true, false);
diff --git a/src/main/java/net/minecraft/server/TileEntityChest.java b/src/main/java/net/minecraft/server/TileEntityChest.java
index f00c7dade..961e9d62c 100644
index c46b761cc..2e0f782f6 100644
--- a/src/main/java/net/minecraft/server/TileEntityChest.java
+++ b/src/main/java/net/minecraft/server/TileEntityChest.java
@@ -0,0 +0,0 @@ public class TileEntityChest extends TileEntityLootable { // Paper - Remove ITic

View file

@ -20,7 +20,7 @@ index 4059c7a72..10efe6b3d 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/EntityArmorStand.java b/src/main/java/net/minecraft/server/EntityArmorStand.java
index 1dcc482c0..c5bddb1da 100644
index c604182dd..2c54e3e34 100644
--- a/src/main/java/net/minecraft/server/EntityArmorStand.java
+++ b/src/main/java/net/minecraft/server/EntityArmorStand.java
@@ -0,0 +0,0 @@ public class EntityArmorStand extends EntityLiving {
@ -141,7 +141,7 @@ index 1dcc482c0..c5bddb1da 100644
public Vector3f r() {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 3e9af4481..1dcb9a7e9 100644
index 87715c302..8f5ff37c2 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -0,0 +0,0 @@ public abstract class EntityLiving extends Entity {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Allow for toggling of spawn chunks
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 02f7e506e3..cef0c47ac7 100644
index 3e1f4be10..3f734327c 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -0,0 +0,0 @@ public class PaperWorldConfig {
@ -20,7 +20,7 @@ index 02f7e506e3..cef0c47ac7 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c3c435cab9..30a46a50fb 100644
index 209091a9c..ed227d8e8 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc

View file

@ -19,7 +19,7 @@ index a55163a45..341038fc4 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/ControllerJump.java b/src/main/java/net/minecraft/server/ControllerJump.java
index 74a40671e..5d6260ded 100644
index 4ed5192c6..489beed26 100644
--- a/src/main/java/net/minecraft/server/ControllerJump.java
+++ b/src/main/java/net/minecraft/server/ControllerJump.java
@@ -0,0 +0,0 @@ public class ControllerJump {
@ -31,7 +31,7 @@ index 74a40671e..5d6260ded 100644
this.b.o(this.a);
this.a = false;
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
index 7cf459d26..9d4d8c697 100644
index cca047b04..f31f31c37 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving {
@ -56,7 +56,7 @@ index 7cf459d26..9d4d8c697 100644
}
// Spigot End
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
index 15c04f890..7db180fa9 100644
index 0d9505138..38a0b2db1 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalFloat.java
@@ -0,0 +0,0 @@ public class PathfinderGoalFloat extends PathfinderGoal {

View file

@ -5,7 +5,7 @@ Subject: [PATCH] Allow setting the vex's summoner
diff --git a/src/main/java/net/minecraft/server/EntityVex.java b/src/main/java/net/minecraft/server/EntityVex.java
index 90028c802..6915e5d11 100644
index c3864b869..589b13f4e 100644
--- a/src/main/java/net/minecraft/server/EntityVex.java
+++ b/src/main/java/net/minecraft/server/EntityVex.java
@@ -0,0 +0,0 @@ public class EntityVex extends EntityMonster {

View file

@ -8,7 +8,7 @@ This API has more capabilities than .dropItem with the Consumer function
Item can be set inside of the Consumer pre spawn function.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index d3be0211f..b50785aa0 100644
index d06496762..a436ded60 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -0,0 +0,0 @@ public class CraftWorld implements World {

View file

@ -27,7 +27,7 @@ index 3f59e060b..305a1258f 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/LoginListener.java b/src/main/java/net/minecraft/server/LoginListener.java
index 90d1096e5..b682b3a43 100644
index 852dc7162..74bc08f85 100644
--- a/src/main/java/net/minecraft/server/LoginListener.java
+++ b/src/main/java/net/minecraft/server/LoginListener.java
@@ -0,0 +0,0 @@ public class LoginListener implements PacketLoginInListener, ITickable {

View file

@ -8,7 +8,7 @@ which can keep them in the chunk when they shouldnt be if done
during entity ticking.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 78e85aacf..f5f1452b7 100644
index 93b0544e0..2dd617de9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc

View file

@ -1049,7 +1049,7 @@ index 000000000..37093419c
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 414c27516..c3a54576f 100644
index edf4d9130..71d865b76 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
@ -1071,7 +1071,7 @@ index 414c27516..c3a54576f 100644
this.initLighting();
}
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index 41a7103ef..c12db3cfa 100644
index 450c9e79b..f3e766967 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -1093,7 +1093,7 @@ index 41a7103ef..c12db3cfa 100644
chunksection.getBlocks().a(nbttagcompound, "Palette", "BlockStates");
chunksection.a(new NibbleArray(nbttagcompound.getByteArray("BlockLight")));
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
index 7e4c79a1c..bdfc7d81f 100644
index 621ed1fc5..2af07ae59 100644
--- a/src/main/java/net/minecraft/server/ChunkSection.java
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
@@ -0,0 +0,0 @@ public class ChunkSection {
@ -1108,13 +1108,13 @@ index 7e4c79a1c..bdfc7d81f 100644
+
+ public ChunkSection(int i, boolean flag, IChunkAccess chunk, IWorldReader world, boolean initializeBlocks) { // Paper - Anti-Xray
this.yPos = i;
- this.blockIds = new DataPaletteBlock<IBlockData>(GLOBAL_PALETTE, Block.REGISTRY_ID, GameProfileSerializer::d, GameProfileSerializer::a, Blocks.AIR.getBlockData());
+ this.blockIds = new DataPaletteBlock<IBlockData>(GLOBAL_PALETTE, Block.REGISTRY_ID, GameProfileSerializer::d, GameProfileSerializer::a, Blocks.AIR.getBlockData(), world instanceof GeneratorAccess ? ((GeneratorAccess) world).getMinecraftWorld().chunkPacketBlockController.getPredefinedBlockData(world, chunk, this, flag, initializeBlocks) : null, initializeBlocks); // Paper - Anti-Xray - Add predefined block data
- this.blockIds = new DataPaletteBlock<>(ChunkSection.GLOBAL_PALETTE, Block.REGISTRY_ID, GameProfileSerializer::d, GameProfileSerializer::a, Blocks.AIR.getBlockData());
+ this.blockIds = new DataPaletteBlock<>(ChunkSection.GLOBAL_PALETTE, Block.REGISTRY_ID, GameProfileSerializer::d, GameProfileSerializer::a, Blocks.AIR.getBlockData(), world instanceof GeneratorAccess ? ((GeneratorAccess) world).getMinecraftWorld().chunkPacketBlockController.getPredefinedBlockData(world, chunk, this, flag, initializeBlocks) : null, initializeBlocks); // Paper - Anti-Xray - Add predefined block data
this.emittedLight = new NibbleArray();
if (flag) {
this.skyLight = new NibbleArray();
diff --git a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
index 9deab61fc..ad7e4a036 100644
index 56958a5ce..d3898599f 100644
--- a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
+++ b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
@@ -0,0 +0,0 @@ public class ChunkTaskScheduler extends Scheduler<ChunkCoordIntPair, ChunkStatus
@ -1136,7 +1136,7 @@ index 9deab61fc..ad7e4a036 100644
}) : (Scheduler.a) this.progressCache.get(chunkcoordintpair.a());
}
diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java
index 6e7454b13..71a3636be 100644
index 6fcfc5ef7..454903a0e 100644
--- a/src/main/java/net/minecraft/server/DataPaletteBlock.java
+++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java
@@ -0,0 +0,0 @@
@ -1157,18 +1157,18 @@ index 6e7454b13..71a3636be 100644
@@ -0,0 +0,0 @@ public class DataPaletteBlock<T> implements DataPaletteExpandable<T> {
}
public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T object) {
public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T t0) {
+ // Paper start - Anti-Xray - Support default constructor
+ this(datapalette, registryblockid, function, function1, object, null, true);
+ this(datapalette, registryblockid, function, function1, t0, null, true);
+ }
+
+ public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T object, T[] predefinedObjects, boolean initialize) {
+ public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T t0, T[] predefinedObjects, boolean initialize) {
+ // Paper end - Anti-Xray - Add predefined objects
this.b = datapalette;
this.d = registryblockid;
this.e = function;
this.f = function1;
this.g = (T)object;
this.g = t0;
- this.b(4);
+ // Paper start - Anti-Xray - Add predefined objects
+ this.predefinedObjects = predefinedObjects;
@ -1198,7 +1198,7 @@ index 6e7454b13..71a3636be 100644
+ // Paper end
}
private static int b(int ix, int jx, int k) {
private static int b(int i, int j, int k) {
@@ -0,0 +0,0 @@ public class DataPaletteBlock<T> implements DataPaletteExpandable<T> {
}
}
@ -1212,18 +1212,20 @@ index 6e7454b13..71a3636be 100644
+ }
+ }
+ // Paper end
public int onResize(int ix, T object) {
+
public int onResize(int i, T t0) {
this.b();
DataBits databits = this.a;
DataPalette<T> datapalette = this.h; // Paper - decompile fix
this.b(ix);
@@ -0,0 +0,0 @@ public class DataPaletteBlock<T> implements DataPaletteExpandable<T> {
int j;
+ this.addPredefinedObjects(); // Paper - Anti-Xray - Add predefined objects
for(int jx = 0; jx < databits.b(); ++jx) {
T object1 = datapalette.a(databits.a(jx)); // Paper - decompile fix
if (object1 != null) {
for (j = 0; j < databits.b(); ++j) {
T t1 = datapalette.a(databits.a(j));
@@ -0,0 +0,0 @@ public class DataPaletteBlock<T> implements DataPaletteExpandable<T> {
return (T)(object == null ? this.g : object);
return t0 == null ? this.g : t0;
}
- public void writeDataPaletteBlock(PacketDataSerializer packetDataSerializer) { this.b(packetDataSerializer); } // Paper - OBFHELPER
@ -1256,22 +1258,22 @@ index 6e7454b13..71a3636be 100644
public void a(NBTTagCompound nbttagcompound, String s, String s1) {
this.b();
NBTTagList nbttaglist = nbttagcompound.getList(s, 10);
- int ix = Math.max(4, MathHelper.d(nbttaglist.size()));
- if (ix != this.i) {
- int i = Math.max(4, MathHelper.d(nbttaglist.size()));
+ // Paper - Anti-Xray - TODO: Should this.predefinedObjects.length just be added here (faster) or should the contents be compared to calculate the size (less RAM)?
+ int ix = Math.max(4, MathHelper.d(nbttaglist.size() + (this.predefinedObjects == null ? 0 : this.predefinedObjects.length))); // Paper - Anti-Xray - Calculate the size with predefined objects
+
+ if (true || ix != this.i) { // Paper - Anti-Xray - Not initialized yet
this.b(ix);
+ int i = Math.max(4, MathHelper.d(nbttaglist.size() + (this.predefinedObjects == null ? 0 : this.predefinedObjects.length))); // Paper - Anti-Xray - Calculate the size with predefined objects
- if (i != this.i) {
+ if (true || i != this.i) { // Paper - Anti-Xray - Not initialized yet
this.b(i);
}
this.h.a(nbttaglist);
+ this.addPredefinedObjects(); // Paper - Anti-Xray - Add predefined objects
long[] along = nbttagcompound.o(s1);
int jx = along.length * 64 / 4096;
if (this.h == this.b) {
int j = along.length * 64 / 4096;
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
index e75b1a76e..e5cc77c6d 100644
index 4a50aab51..4c1110479 100644
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ b/src/main/java/net/minecraft/server/NetworkManager.java
@@ -0,0 +0,0 @@ public class NetworkManager extends SimpleChannelInboundHandler<Packet<?>> {
@ -1332,7 +1334,7 @@ index e75b1a76e..e5cc77c6d 100644
public void a() {
this.o();
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
index 22a262bb6..40ec398ee 100644
index 18ef7232e..8e35d14f9 100644
--- a/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutMapChunk.java
@@ -0,0 +0,0 @@
@ -1348,9 +1350,10 @@ index 22a262bb6..40ec398ee 100644
private boolean f;
+ private volatile boolean ready = false; // Paper - Async-Anti-Xray - Ready flag for the network manager
public PacketPlayOutMapChunk() {
- public PacketPlayOutMapChunk() {}
+ public PacketPlayOutMapChunk() {
+ this.ready = true; // Paper - Async-Anti-Xray - Set the ready flag to true
}
+ }
public PacketPlayOutMapChunk(Chunk chunk, int i) {
+ ChunkPacketInfo<IBlockData> chunkPacketInfo = chunk.world.chunkPacketBlockController.getChunkPacketInfo(this, chunk, i); // Paper - Anti-Xray - Add chunk packet info
@ -1358,6 +1361,7 @@ index 22a262bb6..40ec398ee 100644
this.b = chunk.locZ;
this.f = i == 65535;
boolean flag = chunk.getWorld().worldProvider.g();
this.d = new byte[this.a(chunk, flag, i)];
- this.c = this.a(new PacketDataSerializer(this.h()), chunk, flag, i);
+
@ -1369,8 +1373,8 @@ index 22a262bb6..40ec398ee 100644
+
+ this.c = this.writeChunk(new PacketDataSerializer(this.h()), chunk, flag, i, chunkPacketInfo); // Paper - Anti-Xray - Add chunk packet info
this.e = Lists.newArrayList();
Iterator iterator = chunk.getTileEntities().entrySet().iterator();
for(Entry entry : chunk.getTileEntities().entrySet()) {
@@ -0,0 +0,0 @@ public class PacketPlayOutMapChunk implements Packet<PacketListenerPlayOut> {
}
}
@ -1381,16 +1385,15 @@ index 22a262bb6..40ec398ee 100644
+ // Paper start - Async-Anti-Xray - Getter and Setter for the ready flag
+ public boolean isReady() {
+ return this.ready;
}
+ }
+
+ public void setReady(boolean ready) {
+ this.ready = ready;
+ }
}
+ // Paper end
+
public void a(PacketDataSerializer packetdataserializer) throws IOException {
this.a = packetdataserializer.readInt();
this.b = packetdataserializer.readInt();
@@ -0,0 +0,0 @@ public class PacketPlayOutMapChunk implements Packet<PacketListenerPlayOut> {
return bytebuf;
}
@ -1409,7 +1412,7 @@ index 22a262bb6..40ec398ee 100644
ChunkSection[] achunksection = chunk.getSections();
int k = 0;
@@ -0,0 +0,0 @@ public class PacketPlayOutMapChunk implements Packet<PacketListenerPlayOut> {
ChunkSection chunksection = achunksection[k];
if (chunksection != Chunk.a && (!this.f() || !chunksection.a()) && (i & 1 << k) != 0) {
j |= 1 << k;
- chunksection.getBlocks().b(packetdataserializer);
@ -1418,7 +1421,7 @@ index 22a262bb6..40ec398ee 100644
if (flag) {
packetdataserializer.writeBytes(chunksection.getSkyLightArray().asBytes());
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index db43a8a9a..b58683e6f 100644
index 7d3f846a1..240f59066 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -0,0 +0,0 @@ public class PlayerChunk {
@ -1445,11 +1448,11 @@ index db43a8a9a..b58683e6f 100644
+ // Paper - Anti-Xray - Loading chunks here could cause a ConcurrentModificationException #1104
+ // Paper - Anti-Xray - TODO: Check if this is still the case for 1.13
+ //this.chunk.world.chunkPacketBlockController.onChunkPacketCreate(this.chunk, this.h, true); // Paper - Anti-Xray - Load nearby chunks if necessary
this.a(new PacketPlayOutMapChunk(this.chunk, this.h));
this.a((Packet) (new PacketPlayOutMapChunk(this.chunk, this.h)));
} else {
this.a(new PacketPlayOutMultiBlockChange(this.dirtyCount, this.dirtyBlocks, this.chunk));
this.a((Packet) (new PacketPlayOutMultiBlockChange(this.dirtyCount, this.dirtyBlocks, this.chunk)));
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index 23223e89d..23fc4d8e1 100644
index c884fcd34..1d76c4c99 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -0,0 +0,0 @@ public class PlayerInteractManager {
@ -1462,7 +1465,7 @@ index 23223e89d..23fc4d8e1 100644
public void a(BlockPosition blockposition) {
diff --git a/src/main/java/net/minecraft/server/ProtoChunk.java b/src/main/java/net/minecraft/server/ProtoChunk.java
index faaad0f41..9fd966dfb 100644
index 16e3469d0..e4c0cc6a3 100644
--- a/src/main/java/net/minecraft/server/ProtoChunk.java
+++ b/src/main/java/net/minecraft/server/ProtoChunk.java
@@ -0,0 +0,0 @@ public class ProtoChunk implements IChunkAccess {
@ -1472,9 +1475,9 @@ index faaad0f41..9fd966dfb 100644
+ private GeneratorAccess world; // Paper - Anti-Xray
+ // Paper start - Anti-Xray - Support default constructors
public ProtoChunk(int ix, int jx, ChunkConverter chunkconverter) {
- this(new ChunkCoordIntPair(ix, jx), chunkconverter);
+ this(new ChunkCoordIntPair(ix, jx), chunkconverter, null);
public ProtoChunk(int i, int j, ChunkConverter chunkconverter) {
- this(new ChunkCoordIntPair(i, j), chunkconverter);
+ this(new ChunkCoordIntPair(i, j), chunkconverter, null);
}
public ProtoChunk(ChunkCoordIntPair chunkcoordintpair, ChunkConverter chunkconverter) {
@ -1495,11 +1498,11 @@ index faaad0f41..9fd966dfb 100644
return iblockdata;
}
- this.j[jx >> 4] = new ChunkSection(jx >> 4 << 4, this.x());
+ this.j[jx >> 4] = new ChunkSection(jx >> 4 << 4, this.x(), this, this.world, true); // Paper - Anti-Xray
- this.j[j >> 4] = new ChunkSection(j >> 4 << 4, this.x());
+ this.j[j >> 4] = new ChunkSection(j >> 4 << 4, this.x(), this, this.world, true); // Paper - Anti-Xray
}
IBlockData iblockdata1 = this.j[jx >> 4].getType(ix & 15, jx & 15, kx & 15);
IBlockData iblockdata1 = this.j[j >> 4].getType(i & 15, j & 15, k & 15);
@@ -0,0 +0,0 @@ public class ProtoChunk implements IChunkAccess {
return;
}
@ -1510,7 +1513,7 @@ index faaad0f41..9fd966dfb 100644
if (enumskyblock == EnumSkyBlock.SKY) {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 780c0a7e8..67b20c056 100644
index b4c9df025..a95c8df4b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@

View file

@ -5,12 +5,12 @@ Subject: [PATCH] AnvilDamageEvent
diff --git a/src/main/java/net/minecraft/server/ContainerAnvil.java b/src/main/java/net/minecraft/server/ContainerAnvil.java
index a7b04a967..c8f988c2c 100644
index 1560dd382..d206e0465 100644
--- a/src/main/java/net/minecraft/server/ContainerAnvil.java
+++ b/src/main/java/net/minecraft/server/ContainerAnvil.java
@@ -0,0 +0,0 @@ public class ContainerAnvil extends Container {
if (!world.isClientSide) {
if (!entityhuman.abilities.canInstantlyBuild && iblockdata.a(TagsBlock.ANVIL) && entityhuman.getRandom().nextFloat() < 0.12F) {
if (!entityhuman1.abilities.canInstantlyBuild && iblockdata.a(TagsBlock.ANVIL) && entityhuman1.getRandom().nextFloat() < 0.12F) {
IBlockData iblockdata1 = BlockAnvil.a_(iblockdata);
+ // Paper start
+ com.destroystokyo.paper.event.block.AnvilDamagedEvent event = new com.destroystokyo.paper.event.block.AnvilDamagedEvent(getBukkitView(), iblockdata1 != null ? org.bukkit.craftbukkit.block.data.CraftBlockData.fromData(iblockdata1) : null);

View file

@ -458,7 +458,7 @@ index 000000000..8f18c2869
+
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 25e49de19..8246194df 100644
index 71d865b76..6d3f5b651 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
@ -562,7 +562,7 @@ index 2021c0d02..154ab09e0 100644
public void putAll(Map<? extends Long, ? extends Chunk> map) {
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index b9f8a86aa..4fe173cfb 100644
index fce3f673d..7b460d7dd 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -0,0 +0,0 @@ public class ChunkProviderServer implements IChunkProvider {
@ -712,7 +712,7 @@ index b9f8a86aa..4fe173cfb 100644
}
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
index c12db3cfa..6cacacb0b 100644
index f3e766967..c70308198 100644
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
@ -739,7 +739,7 @@ index c12db3cfa..6cacacb0b 100644
completion = new Supplier<NBTTagCompound>() {
public NBTTagCompound get() {
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
index bdfc7d81f..a5c4564d6 100644
index 2af07ae59..9c6844d44 100644
--- a/src/main/java/net/minecraft/server/ChunkSection.java
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
@@ -0,0 +0,0 @@ public class ChunkSection {
@ -759,18 +759,18 @@ index bdfc7d81f..a5c4564d6 100644
+ // Paper end
public IBlockData getType(int i, int j, int k) {
return this.blockIds.a(i, j, k);
return (IBlockData) this.blockIds.a(i, j, k);
diff --git a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
index ad7e4a036..f10f235ed 100644
index d3898599f..8f061f5ca 100644
--- a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
+++ b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
@@ -0,0 +0,0 @@ public class ChunkTaskScheduler extends Scheduler<ChunkCoordIntPair, ChunkStatus
private final ChunkGenerator<?> d;
private final IChunkLoader e;
private final IAsyncTaskHandler f;
- private final Long2ObjectMap<Scheduler.a> progressCache = new ExpiringMap<Scheduler.a>(8192, 5000) { // CraftBukkit - decompile error
+ final Long2ObjectMap<Scheduler.a> progressCache = new ExpiringMap<Scheduler.a>(8192, 5000) { // CraftBukkit - decompile error // Paper - protected
protected boolean a(Scheduler.a scheduler_a) {
- private final Long2ObjectMap<Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a> progressCache = new ExpiringMap<Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a>(8192, 5000) {
+ protected final Long2ObjectMap<Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a> progressCache = new ExpiringMap<Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a>(8192, 5000) { // Paper - protected
protected boolean a(Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a scheduler_a) {
ProtoChunk protochunk = (ProtoChunk) scheduler_a.a();
return !protochunk.ab_() /*&& !protochunk.h()*/; // Paper
@ -781,7 +781,7 @@ index ad7e4a036..f10f235ed 100644
public ChunkTaskScheduler(int i, World world, ChunkGenerator<?> chunkgenerator, IChunkLoader ichunkloader, IAsyncTaskHandler iasynctaskhandler) {
super("WorldGen", i, ChunkStatus.FINALIZED, () -> {
@@ -0,0 +0,0 @@ public class ChunkTaskScheduler extends Scheduler<ChunkCoordIntPair, ChunkStatus
protected Scheduler.a a(ChunkCoordIntPair chunkcoordintpair, boolean flag) {
protected Scheduler<ChunkCoordIntPair, ChunkStatus, ProtoChunk>.a a(ChunkCoordIntPair chunkcoordintpair, boolean flag) {
IChunkLoader ichunkloader = this.e;
- synchronized (this.e) {
@ -832,7 +832,7 @@ index ad7e4a036..f10f235ed 100644
protected ProtoChunk a(ChunkCoordIntPair chunkcoordintpair, ChunkStatus chunkstatus, Map<ChunkCoordIntPair, ProtoChunk> map) {
diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java
index 71a3636be..ff0fe2541 100644
index 454903a0e..dcbcb655c 100644
--- a/src/main/java/net/minecraft/server/DataPaletteBlock.java
+++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java
@@ -0,0 +0,0 @@ package net.minecraft.server;
@ -868,12 +868,13 @@ index 71a3636be..ff0fe2541 100644
- private void b() {
- if (this.j.isLocked() && !this.j.isHeldByCurrentThread()) {
- String s = (String)Thread.getAllStackTraces().keySet().stream().filter(Objects::nonNull).map((thread) -> {
- return thread.getName() + ": \n\tat " + (String)Arrays.stream(thread.getStackTrace()).map(Object::toString).collect(Collectors.joining("\n\tat "));
- String s = (String) Thread.getAllStackTraces().keySet().stream().filter(Objects::nonNull).map((thread) -> {
- return thread.getName() + ": \n\tat " + (String) Arrays.stream(thread.getStackTrace()).map(Object::toString).collect(Collectors.joining("\n\tat "));
- }).collect(Collectors.joining("\n"));
- CrashReport crashreport = new CrashReport("Writing into PalettedContainer from multiple threads", new IllegalStateException());
- CrashReportSystemDetails crashreportsystemdetails = crashreport.a("Thread dumps");
- crashreportsystemdetails.a("Thread dumps", s);
-
- crashreportsystemdetails.a("Thread dumps", (Object) s);
- throw new ReportedException(crashreport);
- } else {
- this.j.lock();
@ -889,6 +890,7 @@ index 71a3636be..ff0fe2541 100644
+ readLock = NOOP_LOCK;
+ writeLock = NOOP_LOCK;
+ }
+
+ private void b() {
+ writeLock.lock();
+ }
@ -898,17 +900,18 @@ index 71a3636be..ff0fe2541 100644
}
+ // Paper end
public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T object) {
public DataPaletteBlock(DataPalette<T> datapalette, RegistryBlockID<T> registryblockid, Function<NBTTagCompound, T> function, Function<T, NBTTagCompound> function1, T t0) {
// Paper start - Anti-Xray - Support default constructor
@@ -0,0 +0,0 @@ public class DataPaletteBlock<T> implements DataPaletteExpandable<T> {
}
protected T a(int ix) {
- T object = this.h.a(this.a.a(ix)); // Paper - decompile fix
- return (T)(object == null ? this.g : object);
protected T a(int i) {
- T t0 = this.h.a(this.a.a(i));
-
- return t0 == null ? this.g : t0;
+ try { // Paper start - read lock
+ readLock.lock();
+ T object = this.h.a(this.a.a(ix)); // Paper - decompile fix
+ T object = this.h.a(this.a.a(i)); // Paper - decompile fix
+ return (T)(object == null ? this.g : object);
+ } finally {
+ readLock.unlock();
@ -917,12 +920,12 @@ index 71a3636be..ff0fe2541 100644
// Paper start - Anti-Xray - Support default methods
diff --git a/src/main/java/net/minecraft/server/DefinedStructureManager.java b/src/main/java/net/minecraft/server/DefinedStructureManager.java
index 271dc41d4..bd15534c2 100644
index f5a6387f2..f45685099 100644
--- a/src/main/java/net/minecraft/server/DefinedStructureManager.java
+++ b/src/main/java/net/minecraft/server/DefinedStructureManager.java
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
public class DefinedStructureManager implements IResourcePackListener {
private static final Logger a = LogManager.getLogger();
- private final Map<MinecraftKey, DefinedStructure> b = Maps.newHashMap();
+ private final Map<MinecraftKey, DefinedStructure> b = Maps.newConcurrentMap(); // Paper
@ -930,7 +933,7 @@ index 271dc41d4..bd15534c2 100644
private final MinecraftServer d;
private final java.nio.file.Path e;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index ef5a21505..93171edb4 100644
index 11d5c2655..80e395b1a 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -956,19 +959,28 @@ index 4698ee99f..dfb45cc4e 100644
Chunk a(GeneratorAccess generatoraccess, int i, int j, Consumer<Chunk> consumer) throws IOException;
diff --git a/src/main/java/net/minecraft/server/MathHelper.java b/src/main/java/net/minecraft/server/MathHelper.java
index 49fba0979..9ad646f8d 100644
index 8bb2593aa..67bb28954 100644
--- a/src/main/java/net/minecraft/server/MathHelper.java
+++ b/src/main/java/net/minecraft/server/MathHelper.java
@@ -0,0 +0,0 @@ import java.util.function.IntPredicate;
public class MathHelper {
public static final float a = c(2.0F);
- private static final float[] b = (float[]) SystemUtils.a((Object) (new float[65536]), (afloat) -> {
+ private static final float[] b = (float[]) SystemUtils.a((new float[65536]), (afloat) -> { // Paper - Decompile fix
for (int i = 0; i < afloat.length; ++i) {
afloat[i] = (float) Math.sin((double) i * 3.141592653589793D * 2.0D / 65536.0D);
}
@@ -0,0 +0,0 @@ public class MathHelper {
return Math.floorMod(i, j);
}
+ public static float normalizeYaw(float fx) { return g(fx); } // Paper - OBFHELPER
public static float g(float fx) {
fx = fx % 360.0F;
if (fx >= 180.0F) {
public static float g(float f) {
f %= 360.0F;
if (f >= 180.0F) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 63b5cdd41..32aee07d1 100644
index d0be8d2fb..84d588122 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -0,0 +0,0 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
@ -983,25 +995,25 @@ index 63b5cdd41..32aee07d1 100644
}
BlockPosition blockposition = worldserver.getSpawn();
- ArrayList arraylist = Lists.newArrayList();
+ List<ChunkCoordIntPair> arraylist = worldserver.getChunkProvider().getSpiralOutChunks(blockposition, worldserver.paperConfig.keepLoadedRange >> 4); // Paper
Set set = Sets.newConcurrentHashSet();
- List<ChunkCoordIntPair> list = Lists.newArrayList();
+ List<ChunkCoordIntPair> list = worldserver.getChunkProvider().getSpiralOutChunks(blockposition, worldserver.paperConfig.keepLoadedRange >> 4); // Paper
Set<ChunkCoordIntPair> set = Sets.newConcurrentHashSet();
- // Paper start
- short radius = worldserver.paperConfig.keepLoadedRange;
- for (int i = -radius; i <= radius && this.isRunning(); i += 16) {
- for (int j = -radius; j <= radius && this.isRunning(); j += 16) {
- // Paper end
- arraylist.add(new ChunkCoordIntPair(blockposition.getX() + i >> 4, blockposition.getZ() + j >> 4));
- list.add(new ChunkCoordIntPair(blockposition.getX() + i >> 4, blockposition.getZ() + j >> 4));
- }
- } // Paper
+ // Paper - remove arraylist creation, call spiral above
if (this.isRunning()) { // Paper
int expected = arraylist.size(); // Paper
int expected = list.size(); // Paper
- CompletableFuture completablefuture = worldserver.getChunkProvider().a((Iterable) arraylist, (chunk) -> {
+ CompletableFuture completablefuture = worldserver.getChunkProvider().loadAllChunks((Iterable) arraylist, (chunk) -> { // Paper
-
- CompletableFuture completablefuture = worldserver.getChunkProvider().a((Iterable) list, (chunk) -> {
+ CompletableFuture completablefuture = worldserver.getChunkProvider().loadAllChunks(list, (chunk) -> { // Paper
set.add(chunk.getPos());
- if (set.size() < expected && set.size() % 25 == 0) this.a(new ChatMessage("menu.preparingSpawn", new Object[0]), set.size() * 100 / expected); // Paper
+ if (waitForChunks && (set.size() == expected || (set.size() < expected && set.size() % (set.size() / 10) == 0))) {
@ -1718,7 +1730,7 @@ index 000000000..e9a38f9d9
+
+}
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
index b58683e6f..e61538b3c 100644
index 240f59066..e4cf8548d 100644
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
@@ -0,0 +0,0 @@ public class PlayerChunk {
@ -1772,15 +1784,16 @@ index b58683e6f..e61538b3c 100644
+ return Math.sqrt((x * x) + (z * z));
+ }
public PlayerChunk(PlayerChunkMap playerchunkmap, int ix, int j) {
public PlayerChunk(PlayerChunkMap playerchunkmap, int i, int j) {
this.playerChunkMap = playerchunkmap;
this.location = new ChunkCoordIntPair(ix, j);
@@ -0,0 +0,0 @@ public class PlayerChunk {
ChunkProviderServer chunkproviderserver = playerchunkmap.getWorld().getChunkProvider();
chunkproviderserver.a(ix, j);
- this.chunk = chunkproviderserver.getChunkAt(ix, j, true, false);
- this.chunkExists = this.chunk != null || org.bukkit.craftbukkit.chunkio.ChunkIOExecutor.hasQueuedChunkLoad(playerChunkMap.getWorld(), ix, j); // Paper
+ this.chunk = chunkproviderserver.getChunkAt(ix, j, false, false); // Paper
+ this.chunkExists = this.chunk != null || chunkproviderserver.chunkGoingToExists(ix, j); // Paper
chunkproviderserver.a(i, j);
- this.chunk = chunkproviderserver.getChunkAt(i, j, true, false);
- this.chunkExists = this.chunk != null || org.bukkit.craftbukkit.chunkio.ChunkIOExecutor.hasQueuedChunkLoad(playerChunkMap.getWorld(), i, j); // Paper
+ this.chunk = chunkproviderserver.getChunkAt(i, j, false, false); // Paper
+ this.chunkExists = this.chunk != null || chunkproviderserver.chunkGoingToExists(i, j); // Paper
markChunkUsed(); // Paper - delay chunk unloads
}
@ -1815,7 +1828,7 @@ index b58683e6f..e61538b3c 100644
}
}
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 27343174d..77b36ff89 100644
index 679488a3c..b7dda8e28 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -0,0 +0,0 @@ public class PlayerChunkMap {
@ -1875,7 +1888,7 @@ index 27343174d..77b36ff89 100644
private void e() {
diff --git a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
index d0b3e43c0..eb7f03898 100644
index de6dd4fed..da6df06d8 100644
--- a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
+++ b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
@@ -0,0 +0,0 @@ public class RegionLimitedWorldAccess implements GeneratorAccess {
@ -1888,7 +1901,7 @@ index d0b3e43c0..eb7f03898 100644
this.m = world.getChunkProvider().getChunkGenerator().getSettings();
this.i = world.getSeaLevel();
diff --git a/src/main/java/net/minecraft/server/SchedulerBatch.java b/src/main/java/net/minecraft/server/SchedulerBatch.java
index d868149d1..0d45d933e 100644
index 8e909d9ca..f214a74a2 100644
--- a/src/main/java/net/minecraft/server/SchedulerBatch.java
+++ b/src/main/java/net/minecraft/server/SchedulerBatch.java
@@ -0,0 +0,0 @@ public class SchedulerBatch<K, T extends SchedulerTask<K, T>, R> {
@ -1916,7 +1929,7 @@ index d868149d1..0d45d933e 100644
}
+ public CompletableFuture<R> add(K k0) { return a(k0); } // Paper - OBFHELPER
public CompletableFuture<R> a(K object) {
public CompletableFuture<R> a(K k0) {
if (!this.c) {
throw new RuntimeException("Batch not properly started. Please use startBatch to create a new batch.");
@@ -0,0 +0,0 @@ public class SchedulerBatch<K, T extends SchedulerTask<K, T>, R> {
@ -1943,7 +1956,7 @@ index d868149d1..0d45d933e 100644
}
}
diff --git a/src/main/java/net/minecraft/server/StructurePiece.java b/src/main/java/net/minecraft/server/StructurePiece.java
index 510543db4..ce9e5d4e0 100644
index d9def7135..945a005e9 100644
--- a/src/main/java/net/minecraft/server/StructurePiece.java
+++ b/src/main/java/net/minecraft/server/StructurePiece.java
@@ -0,0 +0,0 @@ public abstract class StructurePiece {
@ -1953,41 +1966,53 @@ index 510543db4..ce9e5d4e0 100644
- private static final Set<Block> d = ImmutableSet.builder().add(Blocks.NETHER_BRICK_FENCE).add(Blocks.TORCH).add(Blocks.WALL_TORCH).add(Blocks.OAK_FENCE).add(Blocks.SPRUCE_FENCE).add(Blocks.DARK_OAK_FENCE).add(Blocks.ACACIA_FENCE).add(Blocks.BIRCH_FENCE).add(Blocks.JUNGLE_FENCE).add(Blocks.LADDER).add(Blocks.IRON_BARS).build();
+ private static final Set<Block> d = ImmutableSet.<Block>builder().add(Blocks.NETHER_BRICK_FENCE).add(Blocks.TORCH).add(Blocks.WALL_TORCH).add(Blocks.OAK_FENCE).add(Blocks.SPRUCE_FENCE).add(Blocks.DARK_OAK_FENCE).add(Blocks.ACACIA_FENCE).add(Blocks.BIRCH_FENCE).add(Blocks.JUNGLE_FENCE).add(Blocks.LADDER).add(Blocks.IRON_BARS).build(); // Paper - decompile error
public StructurePiece() {
}
public StructurePiece() {}
@@ -0,0 +0,0 @@ public abstract class StructurePiece {
}
public static StructurePiece a(List<StructurePiece> list, StructureBoundingBox structureboundingbox) {
- for(StructurePiece structurepiece : list) {
+ synchronized (list) { for(StructurePiece structurepiece : list) { // Paper - synchronize main structure list
if (structurepiece.d() != null && structurepiece.d().a(structureboundingbox)) {
return structurepiece;
}
- }
+ }} // Paper
+ StructurePiece structurepiece; // Paper
+ synchronized (list) { // Paper - synchronize main structure list
Iterator iterator = list.iterator();
return null;
- StructurePiece structurepiece;
+ //StructurePiece structurepiece; // Paper - move up
do {
if (!iterator.hasNext()) {
@@ -0,0 +0,0 @@ public abstract class StructurePiece {
structurepiece = (StructurePiece) iterator.next();
} while (structurepiece.d() == null || !structurepiece.d().a(structureboundingbox));
-
+ } // Paper
return structurepiece;
}
diff --git a/src/main/java/net/minecraft/server/StructureStart.java b/src/main/java/net/minecraft/server/StructureStart.java
index 1926c902a..1117e4ae2 100644
index 284e96710..8b08efe1f 100644
--- a/src/main/java/net/minecraft/server/StructureStart.java
+++ b/src/main/java/net/minecraft/server/StructureStart.java
@@ -0,0 +0,0 @@ import java.util.List;
import java.util.Random;
@@ -0,0 +0,0 @@ import java.util.Random;
public abstract class StructureStart {
- protected final List<StructurePiece> a = Lists.newArrayList();
+ protected final List<StructurePiece> a = java.util.Collections.synchronizedList(Lists.newArrayList()); // Paper
protected StructureBoundingBox b;
protected int c;
protected int d;
@@ -0,0 +0,0 @@ public abstract class StructureStart {
protected void a(IBlockAccess var1) {
this.b = StructureBoundingBox.a();
- for(StructurePiece structurepiece : this.a) {
+ synchronized (this.a) {for(StructurePiece structurepiece : this.a) { // Paper - synchronize
protected void a(IBlockAccess iblockaccess) {
this.b = StructureBoundingBox.a();
+ synchronized (this.a) { // Paper - synchronize
Iterator iterator = this.a.iterator();
while (iterator.hasNext()) {
StructurePiece structurepiece = (StructurePiece) iterator.next();
this.b.b(structurepiece.d());
- }
+ }} // Paper
@ -1996,10 +2021,14 @@ index 1926c902a..1117e4ae2 100644
@@ -0,0 +0,0 @@ public abstract class StructureStart {
int l = k - this.b.e;
this.b.a(0, l, 0);
- for(StructurePiece structurepiece : this.a) {
+ synchronized (this.a) {for(StructurePiece structurepiece : this.a) { // Paper - synchronize
this.b.a(0, l, 0);
+ synchronized (this.a) { // Paper - synchronize
Iterator iterator = this.a.iterator();
while (iterator.hasNext()) {
StructurePiece structurepiece = (StructurePiece) iterator.next();
structurepiece.a(0, l, 0);
- }
+ }} // Paper
@ -2008,10 +2037,14 @@ index 1926c902a..1117e4ae2 100644
@@ -0,0 +0,0 @@ public abstract class StructureStart {
int i1 = l - this.b.b;
this.b.a(0, i1, 0);
- for(StructurePiece structurepiece : this.a) {
+ synchronized (this.a) {for(StructurePiece structurepiece : this.a) { // Paper - synchronize
this.b.a(0, i1, 0);
+ synchronized (this.a) {
Iterator iterator = this.a.iterator();
while (iterator.hasNext()) {
StructurePiece structurepiece = (StructurePiece) iterator.next();
structurepiece.a(0, i1, 0);
- }
+ }} // Paper
@ -2019,7 +2052,7 @@ index 1926c902a..1117e4ae2 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cb09e1052..cd31792b7 100644
index f48d5d9f7..b5b0fcf8c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
@ -2116,13 +2149,13 @@ index cb09e1052..cd31792b7 100644
if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); return true; } // Paper
if (!CraftEventFactory.doEntityAddEventCalling(this, entity, spawnReason)) {
diff --git a/src/main/java/net/minecraft/server/WorldGenStronghold.java b/src/main/java/net/minecraft/server/WorldGenStronghold.java
index fa99fe014..4f49786aa 100644
index 69d8a25bd..d0eaa9e9f 100644
--- a/src/main/java/net/minecraft/server/WorldGenStronghold.java
+++ b/src/main/java/net/minecraft/server/WorldGenStronghold.java
@@ -0,0 +0,0 @@ import java.util.Random;
import javax.annotation.Nullable;
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrongholdConfiguration> {
- private boolean b;
- private ChunkCoordIntPair[] c;
- private long d;
@ -2132,10 +2165,9 @@ index fa99fe014..4f49786aa 100644
+ //private long d;
+ // Paper end
public WorldGenStronghold() {
}
public WorldGenStronghold() {}
protected boolean a(ChunkGenerator<?> chunkgenerator, Random var2, int i, int j) {
protected boolean a(ChunkGenerator<?> chunkgenerator, Random random, int i, int j) {
- if (this.d != chunkgenerator.getSeed()) {
+ // Paper start
+ /*if (this.d != chunkgenerator.getSeed()) {
@ -2153,11 +2185,11 @@ index fa99fe014..4f49786aa 100644
+ }} // Paper
+ // Paper end
- for(ChunkCoordIntPair chunkcoordintpair : this.c) {
+ for(ChunkCoordIntPair chunkcoordintpair : chunkgenerator.getWorld().strongholdCoords) { // Paper
if (i == chunkcoordintpair.x && j == chunkcoordintpair.z) {
return true;
}
- ChunkCoordIntPair[] achunkcoordintpair = this.c;
+ ChunkCoordIntPair[] achunkcoordintpair = chunkgenerator.getWorld().strongholdCoords; // Paper
int k = achunkcoordintpair.length;
for (int l = 0; l < k; ++l) {
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
}
@ -2193,77 +2225,84 @@ index fa99fe014..4f49786aa 100644
+ // Paper end
BlockPosition blockposition1 = null;
BlockPosition.MutableBlockPosition blockposition$mutableblockposition = new BlockPosition.MutableBlockPosition(0, 0, 0);
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(0, 0, 0);
double d0 = Double.MAX_VALUE;
+ // Paper start
+ /*
ChunkCoordIntPair[] achunkcoordintpair = this.c;
int j = achunkcoordintpair.length;
- for(ChunkCoordIntPair chunkcoordintpair : this.c) {
+ for(ChunkCoordIntPair chunkcoordintpair : chunkgenerator.getWorld().strongholdCoords) { // Paper
blockposition$mutableblockposition.c((chunkcoordintpair.x << 4) + 8, 32, (chunkcoordintpair.z << 4) + 8);
double d1 = blockposition$mutableblockposition.n(blockposition);
if (blockposition1 == null) {
for (int k = 0; k < j; ++k) {
- ChunkCoordIntPair chunkcoordintpair = achunkcoordintpair[k];
+ */
+ for (ChunkCoordIntPair chunkcoordintpair : world.strongholdCoords) {
+ // Paper end
blockposition_mutableblockposition.c((chunkcoordintpair.x << 4) + 8, 32, (chunkcoordintpair.z << 4) + 8);
double d1 = blockposition_mutableblockposition.n(blockposition);
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
}
private void a(ChunkGenerator<?> chunkgenerator) {
- this.d = chunkgenerator.getSeed();
+ //this.d = chunkgenerator.getSeed(); // Paper
ArrayList arraylist = Lists.newArrayList();
List<BiomeBase> list = Lists.newArrayList();
Iterator iterator = IRegistry.BIOME.iterator();
for(BiomeBase biomebase : IRegistry.BIOME) {
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
int i2 = chunkgenerator.getSettings().e();
int j2 = chunkgenerator.getSettings().f();
int i = chunkgenerator.getSettings().g();
- this.c = new ChunkCoordIntPair[j2];
+ ChunkCoordIntPair[] strongholdCoords = chunkgenerator.getWorld().strongholdCoords = new ChunkCoordIntPair[j2]; // Paper
int j = 0;
Long2ObjectMap long2objectmap = chunkgenerator.getStructureStartCache(this);
synchronized(long2objectmap) {
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
int j = chunkgenerator.getSettings().f();
int k = chunkgenerator.getSettings().g();
while(objectiterator.hasNext()) {
StructureStart structurestart = (StructureStart)objectiterator.next();
- if (j < this.c.length) {
- this.c[j++] = new ChunkCoordIntPair(structurestart.e(), structurestart.f());
+ if (j < strongholdCoords.length) { // Paper
+ strongholdCoords[j++] = new ChunkCoordIntPair(structurestart.e(), structurestart.f()); // Paper
- this.c = new ChunkCoordIntPair[j];
+ ChunkCoordIntPair[] strongholdCoords = chunkgenerator.getWorld().strongholdCoords = new ChunkCoordIntPair[j]; // Paper
int l = 0;
Long2ObjectMap<StructureStart> long2objectmap = chunkgenerator.getStructureStartCache(this);
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
while (objectiterator.hasNext()) {
StructureStart structurestart = (StructureStart) objectiterator.next();
- if (l < this.c.length) {
- this.c[l++] = new ChunkCoordIntPair(structurestart.e(), structurestart.f());
+ if (l < strongholdCoords.length) { // Paper
+ strongholdCoords[l++] = new ChunkCoordIntPair(structurestart.e(), structurestart.f()); // Paper
}
}
}
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
random.setSeed(chunkgenerator.getSeed());
double d1 = random.nextDouble() * Math.PI * 2.0D;
int k = long2objectmap.size();
- if (k < this.c.length) {
+ if (k < strongholdCoords.length) { // Paper
int l = 0;
int i1 = 0;
double d0 = random.nextDouble() * 3.141592653589793D * 2.0D;
int i1 = long2objectmap.size();
- for(int j1 = 0; j1 < this.c.length; ++j1) {
+ for(int j1 = 0; j1 < strongholdCoords.length; ++j1) { // Paper
double d0 = (double)(4 * i2 + i2 * i1 * 6) + (random.nextDouble() - 0.5D) * (double)i2 * 2.5D;
int k1 = (int)Math.round(Math.cos(d1) * d0);
int l1 = (int)Math.round(Math.sin(d1) * d0);
- if (i1 < this.c.length) {
+ if (i1 < strongholdCoords.length) { // Paper
int j1 = 0;
int k1 = 0;
- for (int l1 = 0; l1 < this.c.length; ++l1) {
+ for (int l1 = 0; l1 < strongholdCoords.length; ++l1) { // Paper
double d1 = (double) (4 * i + i * k1 * 6) + (random.nextDouble() - 0.5D) * (double) i * 2.5D;
int i2 = (int) Math.round(Math.cos(d0) * d1);
int j2 = (int) Math.round(Math.sin(d0) * d1);
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
}
if (j1 >= k) {
- this.c[j1] = new ChunkCoordIntPair(k1, l1);
+ strongholdCoords[j1] = new ChunkCoordIntPair(k1, l1); // Paper
if (l1 >= i1) {
- this.c[l1] = new ChunkCoordIntPair(i2, j2);
+ strongholdCoords[l1] = new ChunkCoordIntPair(i2, j2); // Paper
}
d1 += (Math.PI * 2D) / (double)i;
d0 += 6.283185307179586D / (double) k;
@@ -0,0 +0,0 @@ public class WorldGenStronghold extends StructureGenerator<WorldGenFeatureStrong
++i1;
l = 0;
i = i + 2 * i / (i1 + 1);
- i = Math.min(i, this.c.length - j1);
+ i = Math.min(i, strongholdCoords.length - j1); // Paper
d1 += random.nextDouble() * Math.PI * 2.0D;
++k1;
j1 = 0;
k += 2 * k / (k1 + 1);
- k = Math.min(k, this.c.length - l1);
+ k = Math.min(k, strongholdCoords.length - l1); // Paper
d0 += random.nextDouble() * 3.141592653589793D * 2.0D;
}
}
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index b355c3f53..27c8a97be 100644
index 0a1ffd009..82cfd694a 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@ -2304,7 +2343,7 @@ index a0f255ff1..eb4b3c7a2 100644
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 7ef3c7746..162ff3414 100644
index 95fe3a91b..b5a87cfaf 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -0,0 +0,0 @@ public class CraftWorld implements World {
@ -2342,7 +2381,7 @@ index 7ef3c7746..162ff3414 100644
if (isChunkLoaded(chunkCoordX + x, chunkCoordZ + z)) {
unloadChunk(chunkCoordX + x, chunkCoordZ + z);
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index f87d2bed7..603f43b7e 100644
index fdab6734f..140415687 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -0,0 +0,0 @@ public class CraftEventFactory {

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