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

Bukkit Changes:
93e39ce1 Clarify documentation regarding getMaterial with legacyName = true
c3aeaea0 Improve dependency tracker
14c9d275 Add support for transitive depends in load access warning
c8afe560 SPIGOT-5526: Add EntityEnterBlockEvent
6bb6f07d SPIGOT-5548: Show error that hints towards plugins misusing reflection
ed75537d SPIGOT-5546: Fix bad depend access using wrong provider in message
4e4c0ee9 Fix buggy classloader warning triggering for all classes
89586a4c Print warning when loading classes from depends that have not been specified
d4fe9680 Fix bug where disablePlugin could remove ConfigurationSerializable classes from other plugins
85e683b7 Add additional checkstyle checks
612fd8e1 Correct max page count in BookMeta docs
fa8a9781 Correct max title length in BookMeta docs

CraftBukkit Changes:
ab13a117 SPIGOT-5550: Cancelled ProjectileLaunchEvent still plays sound for eggs
44016b1d SPIGOT-5538: Using javaw to run GUI prints input error
e653ae76 SPIGOT-5526: Call EntityEnterBlockEvent for bees trying to enter hives
6515ea49 SPIGOT-5537: Bee nests generated by growing trees near flower have no bees
d82b3149 Remove unused CraftWorld.getId method
10763a88 Change some block == AIR checks to isAir to catch CAVE_AIR

Spigot Changes:
f2c1cd15 Rebuild patches
bcd458ad Reformat patches
This commit is contained in:
Shane Freeder 2020-01-28 19:43:57 +00:00
parent c9eebbb802
commit 5792c8626a
No known key found for this signature in database
GPG key ID: A3F61EA5A085289C
74 changed files with 596 additions and 597 deletions

View file

@ -1,4 +1,4 @@
From f6e991d49e6476fb94781ddaa0ec805bdd354243 Mon Sep 17 00:00:00 2001
From 060742f1c76bdb9323a7208250965788502ad043 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 29 Feb 2016 18:48:17 -0600
Subject: [PATCH] Timings v2
@ -3139,7 +3139,7 @@ index 00000000..5989ee21
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 0822b8e5..940c643d 100644
index bbc68de0..a85b8b86 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -574,7 +574,6 @@ public final class Bukkit {
@ -3151,11 +3151,11 @@ index 0822b8e5..940c643d 100644
/**
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 11c5c205..c197e381 100644
index 042db4f5..f4f0f3da 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1250,6 +1250,26 @@ public interface Server extends PluginMessageRecipient {
throw new UnsupportedOperationException( "Not supported yet." );
@@ -1248,6 +1248,26 @@ public interface Server extends PluginMessageRecipient {
throw new UnsupportedOperationException("Not supported yet.");
}
+ // Paper start
@ -3456,10 +3456,10 @@ index 81e4fa57..f020cb04 100644
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 6023e4f6..00000000
index 2a145d85..00000000
--- a/src/main/java/org/bukkit/command/defaults/TimingsCommand.java
+++ /dev/null
@@ -1,253 +0,0 @@
@@ -1,250 +0,0 @@
-package org.bukkit.command.defaults;
-
-import com.google.common.collect.ImmutableList;
@ -3506,26 +3506,23 @@ index 6023e4f6..00000000
-
- // Spigot start - redesigned Timings Command
- public void executeSpigotTimings(@NotNull CommandSender sender, @NotNull String[] args) {
- if ( "on".equals( args[0] ) )
- {
- ( (SimplePluginManager) Bukkit.getPluginManager() ).useTimings( true );
- if ("on".equals(args[0])) {
- ((SimplePluginManager) Bukkit.getPluginManager()).useTimings(true);
- CustomTimingsHandler.reload();
- sender.sendMessage( "Enabled Timings & Reset" );
- sender.sendMessage("Enabled Timings & Reset");
- return;
- } else if ( "off".equals( args[0] ) )
- {
- ( (SimplePluginManager) Bukkit.getPluginManager() ).useTimings( false );
- sender.sendMessage( "Disabled Timings" );
- } else if ("off".equals(args[0])) {
- ((SimplePluginManager) Bukkit.getPluginManager()).useTimings(false);
- sender.sendMessage("Disabled Timings");
- return;
- }
-
- if ( !Bukkit.getPluginManager().useTimings() )
- {
- sender.sendMessage( "Please enable timings by typing /timings on" );
- if (!Bukkit.getPluginManager().useTimings()) {
- sender.sendMessage("Please enable timings by typing /timings on");
- return;
- }
-
- boolean paste = "paste".equals( args[0] );
- boolean paste = "paste".equals(args[0]);
- if ("reset".equals(args[0])) {
- CustomTimingsHandler.reload();
- sender.sendMessage("Timings reset");
@ -3535,27 +3532,26 @@ index 6023e4f6..00000000
- File timingFolder = new File("timings");
- timingFolder.mkdirs();
- File timings = new File(timingFolder, "timings.txt");
- ByteArrayOutputStream bout = ( paste ) ? new ByteArrayOutputStream() : null;
- ByteArrayOutputStream bout = (paste) ? new ByteArrayOutputStream() : null;
- while (timings.exists()) timings = new File(timingFolder, "timings" + (++index) + ".txt");
- PrintStream fileTimings = null;
- try {
- fileTimings = ( paste ) ? new PrintStream( bout ) : new PrintStream( timings );
- fileTimings = (paste) ? new PrintStream(bout) : new PrintStream(timings);
-
- CustomTimingsHandler.printTimings(fileTimings);
- fileTimings.println( "Sample time " + sampleTime + " (" + sampleTime / 1E9 + "s)" );
- fileTimings.println("Sample time " + sampleTime + " (" + sampleTime / 1E9 + "s)");
-
- fileTimings.println( "<spigotConfig>" );
- fileTimings.println( Bukkit.spigot().getConfig().saveToString() );
- fileTimings.println( "</spigotConfig>" );
- fileTimings.println("<spigotConfig>");
- fileTimings.println(Bukkit.spigot().getConfig().saveToString());
- fileTimings.println("</spigotConfig>");
-
- if ( paste )
- {
- new PasteThread( sender, bout ).start();
- if (paste) {
- new PasteThread(sender, bout).start();
- return;
- }
-
- sender.sendMessage("Timings written to " + timings.getPath());
- sender.sendMessage( "Paste contents of file into form at http://www.spigotmc.org/go/timings to read results." );
- sender.sendMessage("Paste contents of file into form at http://www.spigotmc.org/go/timings to read results.");
-
- } catch (IOException e) {
- } finally {
@ -3570,11 +3566,16 @@ index 6023e4f6..00000000
- @Override
- public boolean execute(@NotNull CommandSender sender, @NotNull String currentAlias, @NotNull String[] args) {
- if (!testPermission(sender)) return true;
- if (args.length < 1) { // Spigot
- if (args.length < 1) { // Spigot
- sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage);
- return false;
- }
- if (true) { executeSpigotTimings(sender, args); return true; } // Spigot
- // Spigot start
- if (true) {
- executeSpigotTimings(sender, args);
- return true;
- }
- // Spigot end
- if (!sender.getServer().getPluginManager().useTimings()) {
- sender.sendMessage("Please enable timings by setting \"settings.plugin-profiling\" to true in bukkit.yml");
- return true;
@ -3613,8 +3614,9 @@ index 6023e4f6..00000000
- if (separate) {
- fileNames.println(pluginIdx + " " + plugin.getDescription().getFullName());
- fileTimings.println("Plugin " + pluginIdx);
- } else {
- fileTimings.println(plugin.getDescription().getFullName());
- }
- else fileTimings.println(plugin.getDescription().getFullName());
- for (RegisteredListener listener : HandlerList.getRegisteredListeners(plugin)) {
- if (listener instanceof TimedRegisteredListener) {
- TimedRegisteredListener trl = (TimedRegisteredListener) listener;
@ -3663,15 +3665,13 @@ index 6023e4f6..00000000
- }
-
- // Spigot start
- private static class PasteThread extends Thread
- {
- private static class PasteThread extends Thread {
-
- private final CommandSender sender;
- private final ByteArrayOutputStream bout;
-
- public PasteThread(@NotNull CommandSender sender, @NotNull ByteArrayOutputStream bout)
- {
- super( "Timings paste thread" );
- public PasteThread(@NotNull CommandSender sender, @NotNull ByteArrayOutputStream bout) {
- super("Timings paste thread");
- this.sender = sender;
- this.bout = bout;
- }
@ -3686,38 +3686,35 @@ index 6023e4f6..00000000
- }
-
- @Override
- public void run()
- {
- try
- {
- HttpURLConnection con = (HttpURLConnection) new URL( "https://timings.spigotmc.org/paste" ).openConnection();
- con.setDoOutput( true );
- con.setRequestMethod( "POST" );
- con.setInstanceFollowRedirects( false );
- public void run() {
- try {
- HttpURLConnection con = (HttpURLConnection) new URL("https://timings.spigotmc.org/paste").openConnection();
- con.setDoOutput(true);
- con.setRequestMethod("POST");
- con.setInstanceFollowRedirects(false);
-
- OutputStream out = con.getOutputStream();
- out.write( bout.toByteArray() );
- out.write(bout.toByteArray());
- out.close();
-
- com.google.gson.JsonObject location = new com.google.gson.Gson().fromJson(new java.io.InputStreamReader(con.getInputStream()), com.google.gson.JsonObject.class);
- con.getInputStream().close();
-
- String pasteID = location.get( "key" ).getAsString();
- sender.sendMessage( ChatColor.GREEN + "Timings results can be viewed at https://www.spigotmc.org/go/timings?url=" + pasteID );
- } catch ( IOException ex )
- {
- sender.sendMessage( ChatColor.RED + "Error pasting timings, check your console for more information" );
- Bukkit.getServer().getLogger().log( Level.WARNING, "Could not paste timings", ex );
- String pasteID = location.get("key").getAsString();
- sender.sendMessage(ChatColor.GREEN + "Timings results can be viewed at https://www.spigotmc.org/go/timings?url=" + pasteID);
- } catch (IOException ex) {
- sender.sendMessage(ChatColor.RED + "Error pasting timings, check your console for more information");
- Bukkit.getServer().getLogger().log(Level.WARNING, "Could not paste timings", ex);
- }
- }
- }
- // Spigot end
-}
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 0052cc71..4d9ed678 100644
index 9b0153f7..9d82a691 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1579,6 +1579,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1573,6 +1573,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent... components) {
throw new UnsupportedOperationException("Not supported yet.");
}
@ -3730,10 +3727,10 @@ index 0052cc71..4d9ed678 100644
@NotNull
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 2dfb8529..53e5045f 100644
index c4ef983e..3c5d8a0e 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -298,7 +298,6 @@ public final class SimplePluginManager implements PluginManager {
@@ -313,7 +313,6 @@ public final class SimplePluginManager implements PluginManager {
}
}
@ -3741,7 +3738,7 @@ index 2dfb8529..53e5045f 100644
return result.toArray(new Plugin[result.size()]);
}
@@ -337,7 +336,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -352,7 +351,7 @@ public final class SimplePluginManager implements PluginManager {
if (result != null) {
plugins.add(result);
@ -3750,7 +3747,7 @@ index 2dfb8529..53e5045f 100644
}
return result;
@@ -365,7 +364,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -380,7 +379,7 @@ public final class SimplePluginManager implements PluginManager {
@Override
@Nullable
public synchronized Plugin getPlugin(@NotNull String name) {
@ -3759,7 +3756,7 @@ index 2dfb8529..53e5045f 100644
}
@Override
@@ -586,7 +585,8 @@ public final class SimplePluginManager implements PluginManager {
@@ -602,7 +601,8 @@ public final class SimplePluginManager implements PluginManager {
throw new IllegalPluginAccessException("Plugin attempted to register " + event + " while not enabled");
}
@ -3769,7 +3766,7 @@ index 2dfb8529..53e5045f 100644
getEventListeners(event).register(new TimedRegisteredListener(listener, executor, priority, plugin, ignoreCancelled));
} else {
getEventListeners(event).register(new RegisteredListener(listener, executor, priority, plugin, ignoreCancelled));
@@ -783,7 +783,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -806,7 +806,7 @@ public final class SimplePluginManager implements PluginManager {
@Override
public boolean useTimings() {
@ -3778,7 +3775,7 @@ index 2dfb8529..53e5045f 100644
}
/**
@@ -792,6 +792,6 @@ public final class SimplePluginManager implements PluginManager {
@@ -815,6 +815,6 @@ public final class SimplePluginManager implements PluginManager {
* @param use True if per event timing code should be used
*/
public void useTimings(boolean use) {
@ -3787,22 +3784,22 @@ index 2dfb8529..53e5045f 100644
}
}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 1173e433..82e379d1 100644
index df8a5dcb..50a51394 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -53,7 +53,6 @@ public final class JavaPluginLoader implements PluginLoader {
private final Pattern[] fileFilters = new Pattern[] { Pattern.compile("\\.jar$"), };
private final Pattern[] fileFilters = new Pattern[]{Pattern.compile("\\.jar$")};
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
/**
* This class was not meant to be constructed explicitly
@@ -302,27 +301,21 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -301,27 +300,21 @@ public final class JavaPluginLoader implements PluginLoader {
}
}
- final CustomTimingsHandler timings = new CustomTimingsHandler("Plugin: " + plugin.getDescription().getFullName() + " Event: " + listener.getClass().getName() + "::" + method.getName()+"("+eventClass.getSimpleName()+")", pluginParentTimer); // Spigot
- final CustomTimingsHandler timings = new CustomTimingsHandler("Plugin: " + plugin.getDescription().getFullName() + " Event: " + listener.getClass().getName() + "::" + method.getName() + "(" + eventClass.getSimpleName() + ")", pluginParentTimer); // Spigot
- EventExecutor executor = new EventExecutor() {
+ EventExecutor executor = new co.aikar.timings.TimedEventExecutor(new EventExecutor() { // Paper
@Override
@ -3830,10 +3827,10 @@ index 1173e433..82e379d1 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 a0551225..7133be0a 100644
index 5830e8b9..36f542a8 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -25,7 +25,8 @@ import org.jetbrains.annotations.Nullable;
@@ -28,7 +28,8 @@ import org.jetbrains.annotations.Nullable;
/**
* A ClassLoader for plugins, to allow shared classes across multiple plugins
*/
@ -3867,7 +3864,7 @@ index 5ca863b3..612958a3 100644
+
+}
diff --git a/src/main/java/org/spigotmc/CustomTimingsHandler.java b/src/main/java/org/spigotmc/CustomTimingsHandler.java
index b71235f6..3cbe5c2b 100644
index 44badfed..3cbe5c2b 100644
--- a/src/main/java/org/spigotmc/CustomTimingsHandler.java
+++ b/src/main/java/org/spigotmc/CustomTimingsHandler.java
@@ -1,3 +1,26 @@
@ -3897,7 +3894,7 @@ index b71235f6..3cbe5c2b 100644
package org.spigotmc;
import java.io.PrintStream;
@@ -5,155 +28,84 @@ import java.util.Queue;
@@ -5,133 +28,84 @@ import java.util.Queue;
import java.util.concurrent.ConcurrentLinkedQueue;
import org.bukkit.Bukkit;
import org.bukkit.World;
@ -3923,14 +3920,8 @@ index b71235f6..3cbe5c2b 100644
+ * @deprecated
+ * @see co.aikar.timings.Timings#of
*/
-public class CustomTimingsHandler
-{
+@Deprecated
+public final class CustomTimingsHandler {
+ private final Timing handler;
+ private static Boolean sunReflectAvailable;
+ private static Method getCallerClass;
-public class CustomTimingsHandler {
-
- private static Queue<CustomTimingsHandler> HANDLERS = new ConcurrentLinkedQueue<CustomTimingsHandler>();
- /*========================================================================*/
- private final String name;
@ -3941,21 +3932,23 @@ index b71235f6..3cbe5c2b 100644
- private long totalTime = 0;
- private long curTickTotal = 0;
- private long violations = 0;
+ public CustomTimingsHandler(@NotNull String name) {
+@Deprecated
+public final class CustomTimingsHandler {
+ private final Timing handler;
+ private static Boolean sunReflectAvailable;
+ private static Method getCallerClass;
public CustomTimingsHandler(@NotNull String name) {
- this(name, null);
- }
+ if (sunReflectAvailable == null) {
+ String javaVer = System.getProperty("java.version");
+ String[] elements = javaVer.split("\\.");
- public CustomTimingsHandler(@NotNull String name)
- {
- this( name, null );
- }
-
- public CustomTimingsHandler(@NotNull String name, @Nullable CustomTimingsHandler parent)
- {
- public CustomTimingsHandler(@NotNull String name, @Nullable CustomTimingsHandler parent) {
- this.name = name;
- this.parent = parent;
- HANDLERS.add( this );
- HANDLERS.add(this);
- }
+ int major = Integer.parseInt(elements.length >= 2 ? elements[1] : javaVer);
+ if (major <= 8) {
@ -3966,15 +3959,12 @@ index b71235f6..3cbe5c2b 100644
- *
- * @param printStream output stream
- */
- public static void printTimings(@NotNull PrintStream printStream)
- {
- printStream.println( "Minecraft" );
- for ( CustomTimingsHandler timings : HANDLERS )
- {
- public static void printTimings(@NotNull PrintStream printStream) {
- printStream.println("Minecraft");
- for (CustomTimingsHandler timings : HANDLERS) {
- long time = timings.totalTime;
- long count = timings.count;
- if ( count == 0 )
- {
- if (count == 0) {
- continue;
+ try {
+ Class<?> reflection = Class.forName("sun.reflect.Reflection");
@ -3986,29 +3976,25 @@ index b71235f6..3cbe5c2b 100644
}
- long avg = time / count;
-
- printStream.println( " " + timings.name + " Time: " + time + " Count: " + count + " Avg: " + avg + " Violations: " + timings.violations );
- printStream.println(" " + timings.name + " Time: " + time + " Count: " + count + " Avg: " + avg + " Violations: " + timings.violations);
- }
- printStream.println( "# Version " + Bukkit.getVersion() );
- printStream.println("# Version " + Bukkit.getVersion());
- int entities = 0;
- int livingEntities = 0;
- for ( World world : Bukkit.getWorlds() )
- {
- for (World world : Bukkit.getWorlds()) {
- entities += world.getEntities().size();
- livingEntities += world.getLivingEntities().size();
}
- printStream.println( "# Entities " + entities );
- printStream.println( "# LivingEntities " + livingEntities );
- printStream.println("# Entities " + entities);
- printStream.println("# LivingEntities " + livingEntities);
- }
- /**
- * Resets all timings.
- */
- public static void reload()
- {
- if ( Bukkit.getPluginManager().useTimings() )
- {
- for ( CustomTimingsHandler timings : HANDLERS )
- {
- public static void reload() {
- if (Bukkit.getPluginManager().useTimings()) {
- for (CustomTimingsHandler timings : HANDLERS) {
- timings.reset();
+ Class calling = null;
+ if (sunReflectAvailable) {
@ -4024,15 +4010,11 @@ index b71235f6..3cbe5c2b 100644
- * Ticked every tick by CraftBukkit to count the number of times a timer
- * caused TPS loss.
- */
- public static void tick()
- {
- if ( Bukkit.getPluginManager().useTimings() )
- {
- for ( CustomTimingsHandler timings : HANDLERS )
- {
- if ( timings.curTickTotal > 50000000 )
- {
- timings.violations += Math.ceil( timings.curTickTotal / 50000000 );
- public static void tick() {
- if (Bukkit.getPluginManager().useTimings()) {
- for (CustomTimingsHandler timings : HANDLERS) {
- if (timings.curTickTotal > 50000000) {
- timings.violations += Math.ceil(timings.curTickTotal / 50000000);
- }
- timings.curTickTotal = 0;
- timings.timingDepth = 0; // incase reset messes this up
@ -4044,14 +4026,11 @@ index b71235f6..3cbe5c2b 100644
- /**
- * Starts timing to track a section of code.
- */
- public void startTiming()
- {
- public void startTiming() {
- // If second condtion fails we are already timing
- if ( Bukkit.getPluginManager().useTimings() && ++timingDepth == 1 )
- {
- if (Bukkit.getPluginManager().useTimings() && ++timingDepth == 1) {
- start = System.nanoTime();
- if ( parent != null && ++parent.timingDepth == 1 )
- {
- if (parent != null && ++parent.timingDepth == 1) {
- parent.start = start;
- }
- }
@ -4064,12 +4043,9 @@ index b71235f6..3cbe5c2b 100644
- /**
- * Stops timing a section of code.
- */
- public void stopTiming()
- {
- if ( Bukkit.getPluginManager().useTimings() )
- {
- if ( --timingDepth != 0 || start == 0 )
- {
- public void stopTiming() {
- if (Bukkit.getPluginManager().useTimings()) {
- if (--timingDepth != 0 || start == 0) {
- return;
- }
- long diff = System.nanoTime() - start;
@ -4077,8 +4053,7 @@ index b71235f6..3cbe5c2b 100644
- curTickTotal += diff;
- count++;
- start = 0;
- if ( parent != null )
- {
- if (parent != null) {
- parent.stopTiming();
+ new AuthorNagException("Deprecated use of CustomTimingsHandler. Please Switch to Timings.of ASAP").printStackTrace();
+ if (plugin != null) {
@ -4100,8 +4075,7 @@ index b71235f6..3cbe5c2b 100644
- /**
- * Reset this timer, setting all values to zero.
- */
- public void reset()
- {
- public void reset() {
- count = 0;
- violations = 0;
- curTickTotal = 0;
@ -4114,5 +4088,5 @@ index b71235f6..3cbe5c2b 100644
+
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 7b2e3ac64e82aa6b5d59c0e89989b8a21cf767e2 Mon Sep 17 00:00:00 2001
From 827f8b1953bf6c84be103bcebd58f25914563b5d Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Mon, 29 Feb 2016 17:50:31 -0600
Subject: [PATCH] Entity Origin API
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index d708d62b..8cfcc3a5 100644
index 6b550dda..4e4445d1 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -599,4 +599,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -598,4 +598,16 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@Override
Spigot spigot();
// Spigot end
@ -66,5 +66,5 @@ index 5a878932..3022b4a2 100644
+ }
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From e1e9d92d79906e193a159ecad87a1f2afd8ff06c Mon Sep 17 00:00:00 2001
From 2987610783b80ca353e9c6a6e4e463114c9d85ee Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 29 Feb 2016 19:45:21 -0600
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 82e379d1..12601db6 100644
index 50a51394..5cc37eee 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -345,6 +345,10 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -344,6 +344,10 @@ public final class JavaPluginLoader implements PluginLoader {
jPlugin.setEnabled(true);
} catch (Throwable ex) {
server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
@ -20,5 +20,5 @@ index 82e379d1..12601db6 100644
// Perhaps abort here, rather than continue going, but as it stands,
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From d411f2a704717d2fbb816b27fe96f7632abf64a3 Mon Sep 17 00:00:00 2001
From 7664bee9fabc104e5e97b7122e1e60bd112e747b Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Mon, 29 Feb 2016 19:48:59 -0600
Subject: [PATCH] Expose server CommandMap
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 9f87f333..63e48ef3 100644
index f712d27b..487ecdad 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1485,6 +1485,19 @@ public final class Bukkit {
@ -26,10 +26,10 @@ index 9f87f333..63e48ef3 100644
+ // Paper end
+
@NotNull
public static Server.Spigot spigot()
{
public static Server.Spigot spigot() {
return server.spigot();
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index e1dfa92a..87300a5d 100644
index be17dcc6..425d8781 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1106,6 +1106,15 @@ public interface Server extends PluginMessageRecipient {
@ -49,5 +49,5 @@ index e1dfa92a..87300a5d 100644
* Get the advancement specified by this key.
*
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From a838f3134bc88bddefc502559b123c6ce1e39bab Mon Sep 17 00:00:00 2001
From f29af31242cefc4315ca2a927877402fdb573e7b Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 20:24:35 -0600
Subject: [PATCH] Add exception reporting event
@ -506,10 +506,10 @@ index f020cb04..adfc7aae 100644
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 53e5045f..9a09b4d2 100644
index 3c5d8a0e..861d808c 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -19,6 +19,10 @@ import java.util.WeakHashMap;
@@ -23,6 +23,10 @@ import java.util.WeakHashMap;
import java.util.logging.Level;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -520,7 +520,7 @@ index 53e5045f..9a09b4d2 100644
import org.apache.commons.lang.Validate;
import org.bukkit.Server;
import org.bukkit.World;
@@ -415,7 +419,8 @@ public final class SimplePluginManager implements PluginManager {
@@ -430,7 +434,8 @@ public final class SimplePluginManager implements PluginManager {
try {
plugin.getPluginLoader().enablePlugin(plugin);
} catch (Throwable ex) {
@ -530,7 +530,7 @@ index 53e5045f..9a09b4d2 100644
}
HandlerList.bakeAll();
@@ -436,32 +441,37 @@ public final class SimplePluginManager implements PluginManager {
@@ -451,32 +456,37 @@ public final class SimplePluginManager implements PluginManager {
try {
plugin.getPluginLoader().disablePlugin(plugin);
} catch (Throwable ex) {
@ -573,7 +573,7 @@ index 53e5045f..9a09b4d2 100644
}
try {
@@ -474,6 +484,13 @@ public final class SimplePluginManager implements PluginManager {
@@ -489,6 +499,13 @@ public final class SimplePluginManager implements PluginManager {
}
}
@ -587,7 +587,7 @@ index 53e5045f..9a09b4d2 100644
@Override
public void clearPlugins() {
synchronized (this) {
@@ -540,7 +557,13 @@ public final class SimplePluginManager implements PluginManager {
@@ -556,7 +573,13 @@ public final class SimplePluginManager implements PluginManager {
));
}
} catch (Throwable ex) {
@ -603,5 +603,5 @@ index 53e5045f..9a09b4d2 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 8ecc2f468db20ab448dffd9684f101f3c2e3fa83 Mon Sep 17 00:00:00 2001
From 049f07e456fd74dff34a47eef4ffaa10706c8dbf Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Tue, 8 Mar 2016 13:05:59 -0800
Subject: [PATCH] Add BaseComponent sendMessage methods to CommandSender
diff --git a/src/main/java/org/bukkit/command/CommandSender.java b/src/main/java/org/bukkit/command/CommandSender.java
index 74816c63..be11d52a 100644
index a9020ecc..d3b3a8bf 100644
--- a/src/main/java/org/bukkit/command/CommandSender.java
+++ b/src/main/java/org/bukkit/command/CommandSender.java
@@ -62,4 +62,30 @@ public interface CommandSender extends Permissible {
@@ -61,4 +61,30 @@ public interface CommandSender extends Permissible {
@NotNull
Spigot spigot();
// Spigot end
@ -40,5 +40,5 @@ index 74816c63..be11d52a 100644
+ // Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From 984cee00d239d54cbff29eb607aee7ec665bc07e Mon Sep 17 00:00:00 2001
From f2621f0d4acb9489a76dea81ddf20287d8351561 Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Sat, 4 Apr 2015 22:59:54 -0400
Subject: [PATCH] Complete resource pack API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 2017a51d..307e5568 100644
index f0f02c32..943e6a64 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -1225,7 +1225,9 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ -79,8 +79,8 @@ index 2017a51d..307e5568 100644
+ // Paper end
+
// Spigot start
public class Spigot extends Entity.Spigot
{
public class Spigot extends Entity.Spigot {
diff --git a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java b/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
index b9819565..4c2102a1 100644
--- a/src/main/java/org/bukkit/event/player/PlayerResourcePackStatusEvent.java
@ -119,5 +119,5 @@ index b9819565..4c2102a1 100644
* Gets the status of this pack.
*
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From d3d0edba86d8318435145cb01dc7e8a9c7900d1a Mon Sep 17 00:00:00 2001
From 756aea639de4f25d902ce0c2fc794d3d4d1265d3 Mon Sep 17 00:00:00 2001
From: Techcable <Techcable@outlook.com>
Date: Thu, 3 Mar 2016 13:20:33 -0700
Subject: [PATCH] Use ASM for event executors.
@ -412,10 +412,10 @@ index a850f078..9026e108 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 12601db6..06b6724f 100644
index 5cc37eee..e72cbde4 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -301,21 +301,7 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -300,21 +300,7 @@ public final class JavaPluginLoader implements PluginLoader {
}
}
@ -439,5 +439,5 @@ index 12601db6..06b6724f 100644
eventSet.add(new TimedRegisteredListener(listener, executor, eh.priority(), plugin, eh.ignoreCancelled()));
} else {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 5b3f635c4a9f2014dfd33488958413331194b9f8 Mon Sep 17 00:00:00 2001
From b3b57a6566f5e8177cbbb4ee15fd5898a05feb42 Mon Sep 17 00:00:00 2001
From: William <admin@domnian.com>
Date: Fri, 18 Mar 2016 03:28:07 -0400
Subject: [PATCH] Add command to reload permissions.yml and require confirm to
@ -6,7 +6,7 @@ Subject: [PATCH] Add command to reload permissions.yml and require confirm to
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index b92304e9..a3682b29 100644
index f152a60f..58a183b9 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1516,6 +1516,13 @@ public final class Bukkit {
@ -24,10 +24,10 @@ index b92304e9..a3682b29 100644
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index d35d2def..18faba0e 100644
index 74f9d2bb..ca0b63fa 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1338,4 +1338,6 @@ public interface Server extends PluginMessageRecipient {
@@ -1336,4 +1336,6 @@ public interface Server extends PluginMessageRecipient {
@NotNull
Spigot spigot();
// Spigot end
@ -85,10 +85,10 @@ index 50cc311b..c62da413 100644
}
}
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 9a09b4d2..c7388d51 100644
index 861d808c..1c355a75 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -817,4 +817,13 @@ public final class SimplePluginManager implements PluginManager {
@@ -840,4 +840,13 @@ public final class SimplePluginManager implements PluginManager {
public void useTimings(boolean use) {
co.aikar.timings.Timings.setTimingsEnabled(use); // Paper
}
@ -103,5 +103,5 @@ index 9a09b4d2..c7388d51 100644
+
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From e947d31d9b14ec3f5e6ec961737a801429728238 Mon Sep 17 00:00:00 2001
From 716d04a625ad53d7c23629e6b0d9e169fcc3878e Mon Sep 17 00:00:00 2001
From: willies952002 <admin@domnian.com>
Date: Mon, 28 Nov 2016 10:16:39 -0500
Subject: [PATCH] Allow Reloading of Command Aliases
@ -6,7 +6,7 @@ Subject: [PATCH] Allow Reloading of Command Aliases
Reload the aliases stored in commands.yml
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index a3682b29..a0a8b540 100644
index 58a183b9..a8fe9925 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1523,6 +1523,15 @@ public final class Bukkit {
@ -26,10 +26,10 @@ index a3682b29..a0a8b540 100644
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 18faba0e..d20e044d 100644
index ca0b63fa..9e59c9bf 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1340,4 +1340,6 @@ public interface Server extends PluginMessageRecipient {
@@ -1338,4 +1338,6 @@ public interface Server extends PluginMessageRecipient {
// Spigot end
void reloadPermissions(); // Paper
@ -99,5 +99,5 @@ index c62da413..af8ab73f 100644
confirmed = true;
} else {
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From 5494d9b77576cb7705c385f9ce247ff1772fda1a Mon Sep 17 00:00:00 2001
From 6e5d036ae3b3f7115a03dba6e5cb6350a87c49d3 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 20 Dec 2016 15:55:55 -0500
Subject: [PATCH] Add String based Action Bar API
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
index 307e5568..85a5637f 100644
index 943e6a64..58a6795d 100644
--- a/src/main/java/org/bukkit/entity/Player.java
+++ b/src/main/java/org/bukkit/entity/Player.java
@@ -444,6 +444,26 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@ -47,7 +47,7 @@ index 307e5568..85a5637f 100644
public default void sendMessage(net.md_5.bungee.api.ChatMessageType position, net.md_5.bungee.api.chat.BaseComponent... components) {
spigot().sendMessage(position, components);
}
@@ -1794,9 +1816,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1788,9 +1810,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends the component to the specified screen position of this player
*
@ -59,7 +59,7 @@ index 307e5568..85a5637f 100644
public void sendMessage(@NotNull net.md_5.bungee.api.ChatMessageType position, @NotNull net.md_5.bungee.api.chat.BaseComponent component) {
throw new UnsupportedOperationException("Not supported yet.");
}
@@ -1804,9 +1828,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
@@ -1798,9 +1822,11 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM
/**
* Sends an array of components as a single message to the specified screen position of this player
*
@ -72,5 +72,5 @@ index 307e5568..85a5637f 100644
throw new UnsupportedOperationException("Not supported yet.");
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 151c09ccc86062ae1d57ba7de2f37e27389888d3 Mon Sep 17 00:00:00 2001
From a8e01b9271318336993e03ebd734cf22ec5472a6 Mon Sep 17 00:00:00 2001
From: kashike <kashike@vq.lc>
Date: Fri, 9 Jun 2017 07:24:24 -0700
Subject: [PATCH] Add configuration option to prevent player names from being
@ -6,7 +6,7 @@ Subject: [PATCH] Add configuration option to prevent player names from being
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index a0a8b540..b5b77b2d 100644
index a8fe9925..b4fef76b 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1532,6 +1532,16 @@ public final class Bukkit {
@ -27,10 +27,10 @@ index a0a8b540..b5b77b2d 100644
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index d20e044d..103897fb 100644
index 9e59c9bf..c108478a 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1342,4 +1342,14 @@ public interface Server extends PluginMessageRecipient {
@@ -1340,4 +1340,14 @@ public interface Server extends PluginMessageRecipient {
void reloadPermissions(); // Paper
boolean reloadCommandAliases(); // Paper
@ -58,5 +58,5 @@ index 7f153000..1e126487 100644
}
return completions;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 10fb919b099319913ad3b39f2ae5b3533fb0273a Mon Sep 17 00:00:00 2001
From 9cf9ffe4e56840183e198f65002c4d260a422437 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 15 Jan 2018 21:46:46 -0500
Subject: [PATCH] Basic PlayerProfile API
@ -235,7 +235,7 @@ index 00000000..7b3b6ef5
+ }
+}
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index b5b77b2d..161a714e 100644
index b4fef76b..c3bcc653 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1542,6 +1542,40 @@ public final class Bukkit {
@ -280,10 +280,10 @@ index b5b77b2d..161a714e 100644
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 103897fb..463724e4 100644
index c108478a..48d8c967 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1351,5 +1351,33 @@ public interface Server extends PluginMessageRecipient {
@@ -1349,5 +1349,33 @@ public interface Server extends PluginMessageRecipient {
* @return true if player names should be suggested
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
@ -318,5 +318,5 @@ index 103897fb..463724e4 100644
// Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 3508113428e6d92f80a705827efc4290fb961602 Mon Sep 17 00:00:00 2001
From 5c5b505bed7e25ccca0603f053eb434501af7f47 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sun, 18 Jun 2017 18:17:05 -0500
Subject: [PATCH] Entity#fromMobSpawner()
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 8cfcc3a5..bd8507f6 100644
index 4e4445d1..e2952209 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -610,5 +610,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -609,5 +609,12 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@Nullable
Location getOrigin();
@ -22,5 +22,5 @@ index 8cfcc3a5..bd8507f6 100644
// Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From d5c1e782cc2702e6378bd565345ed520567c6ce2 Mon Sep 17 00:00:00 2001
From c8c8741ee68669f675d4cb4dc5abc430d289bcf1 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Thu, 21 Sep 2017 19:41:20 +0200
Subject: [PATCH] Add workaround for plugins modifying the parent of the plugin
@ -87,18 +87,18 @@ index bb2e55e9..04fa3991 100644
/**
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
index 7133be0a..9924780d 100644
index 36f542a8..3a02dbe9 100644
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
@@ -38,6 +38,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
final JavaPlugin plugin;
@@ -42,6 +42,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
private JavaPlugin pluginInit;
private IllegalStateException pluginState;
private final Set<String> seenIllegalAccess = Collections.newSetFromMap(new ConcurrentHashMap<>());
+ private java.util.logging.Logger logger; // Paper - add field
static {
ClassLoader.registerAsParallelCapable();
@@ -55,6 +56,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@@ -59,6 +60,8 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
this.manifest = jar.getManifest();
this.url = file.toURI().toURL();
@ -107,7 +107,7 @@ index 7133be0a..9924780d 100644
try {
Class<?> jarClass;
try {
@@ -182,6 +185,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
@@ -203,6 +206,7 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
pluginState = new IllegalStateException("Initial initialization");
this.pluginInit = javaPlugin;
@ -116,5 +116,5 @@ index 7133be0a..9924780d 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From bc1c2155484fd5942bac31d5c13cd77777245af1 Mon Sep 17 00:00:00 2001
From 9e0104613a45d118b2cfb5f2d3440b4767bc3f0f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 May 2018 21:33:35 -0400
Subject: [PATCH] Close Plugin Class Loaders on Disable
@ -53,10 +53,10 @@ index 41e26451..86cc5025 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 c7388d51..132c861c 100644
index 1c355a75..7453230c 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -429,17 +429,28 @@ public final class SimplePluginManager implements PluginManager {
@@ -444,17 +444,28 @@ public final class SimplePluginManager implements PluginManager {
@Override
public void disablePlugins() {
@ -87,7 +87,7 @@ index c7388d51..132c861c 100644
} catch (Throwable ex) {
handlePluginException("Error occurred (in the plugin loader) while disabling "
+ plugin.getDescription().getFullName() + " (Is it up to date?)", ex, plugin); // Paper
@@ -494,7 +505,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -509,7 +520,7 @@ public final class SimplePluginManager implements PluginManager {
@Override
public void clearPlugins() {
synchronized (this) {
@ -95,12 +95,12 @@ index c7388d51..132c861c 100644
+ disablePlugins(true); // Paper - close Classloader on disable
plugins.clear();
lookupNames.clear();
HandlerList.unregisterAll();
dependencyGraph = GraphBuilder.directed().build();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 06b6724f..bc7bf6a3 100644
index e72cbde4..32ec68b4 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -332,7 +332,7 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -331,7 +331,7 @@ public final class JavaPluginLoader implements PluginLoader {
} catch (Throwable ex) {
server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
// Paper start - Disable plugins that fail to load
@ -109,7 +109,7 @@ index 06b6724f..bc7bf6a3 100644
return;
// Paper end
}
@@ -345,6 +345,12 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -344,6 +344,12 @@ public final class JavaPluginLoader implements PluginLoader {
@Override
public void disablePlugin(@NotNull Plugin plugin) {
@ -122,7 +122,7 @@ index 06b6724f..bc7bf6a3 100644
Validate.isTrue(plugin instanceof JavaPlugin, "Plugin is not associated with this PluginLoader");
if (plugin.isEnabled()) {
@@ -371,6 +377,16 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -370,6 +376,16 @@ public final class JavaPluginLoader implements PluginLoader {
for (String name : names) {
removeClass(name);
}
@ -140,5 +140,5 @@ index 06b6724f..bc7bf6a3 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 62b86fe6a124b31a9f3b3fdb75f33f77d65d2123 Mon Sep 17 00:00:00 2001
From efac18b9f2572a808c18cd111e0468d9a3e4be52 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 4 Jul 2018 02:25:48 -0400
Subject: [PATCH] Entity#getChunk API
@ -6,7 +6,7 @@ Subject: [PATCH] Entity#getChunk API
Get the chunk the entity is currently registered to
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index bd8507f6..79b94800 100644
index e2952209..a8dbf282 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -3,6 +3,7 @@ package org.bukkit.entity;
@ -17,7 +17,7 @@ index bd8507f6..79b94800 100644
import org.bukkit.EntityEffect;
import org.bukkit.Location;
import org.bukkit.Nameable;
@@ -617,5 +618,13 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -616,5 +617,13 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
* @return True if entity spawned from a mob spawner
*/
boolean fromMobSpawner();
@ -32,5 +32,5 @@ index bd8507f6..79b94800 100644
// Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 813ce8218fdf13b0b06e2524ce7fb885b1d2de28 Mon Sep 17 00:00:00 2001
From 877ce2e74abfa464cdf8952f5c8ec5dd18d779da Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 19 Jul 2018 22:07:02 +0200
Subject: [PATCH] Add an asterisk to legacy API plugins
@ -43,10 +43,10 @@ index d4e74d29..6cfd9f3c 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 bc7bf6a3..31a70b29 100644
index 32ec68b4..8ff228ce 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -316,7 +316,14 @@ public final class JavaPluginLoader implements PluginLoader {
@@ -315,7 +315,14 @@ public final class JavaPluginLoader implements PluginLoader {
Validate.isTrue(plugin instanceof JavaPlugin, "Plugin is not associated with this PluginLoader");
if (!plugin.isEnabled()) {
@ -63,5 +63,5 @@ index bc7bf6a3..31a70b29 100644
JavaPlugin jPlugin = (JavaPlugin) plugin;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 1977dda6546322ca3782b8ae3a4951690d74c696 Mon Sep 17 00:00:00 2001
From e7fbc30984f676f22c203d4a1eff91ae30f9e9dc Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 9 Sep 2018 00:32:05 -0400
Subject: [PATCH] Remove deadlock risk in firing async events
@ -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/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 79b94800..04365232 100644
index a8dbf282..b4069dbf 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -28,7 +28,7 @@ import org.jetbrains.annotations.Nullable;
@ -29,10 +29,10 @@ index 79b94800..04365232 100644
*
* @return a new copy of Location containing the position of this entity
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
index 132c861c..d0e735bc 100644
index 7453230c..634e51d5 100644
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
@@ -399,7 +399,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -414,7 +414,7 @@ public final class SimplePluginManager implements PluginManager {
* @return true if the plugin is enabled, otherwise false
*/
@Override
@ -41,7 +41,7 @@ index 132c861c..d0e735bc 100644
if ((plugin != null) && (plugins.contains(plugin))) {
return plugin.isEnabled();
} else {
@@ -408,7 +408,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -423,7 +423,7 @@ public final class SimplePluginManager implements PluginManager {
}
@Override
@ -50,7 +50,7 @@ index 132c861c..d0e735bc 100644
if (!plugin.isEnabled()) {
List<Command> pluginCommands = PluginCommandYamlParser.parse(plugin);
@@ -446,7 +446,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -461,7 +461,7 @@ public final class SimplePluginManager implements PluginManager {
}
@Override
@ -59,7 +59,7 @@ index 132c861c..d0e735bc 100644
// Paper end - close Classloader on disable
if (plugin.isEnabled()) {
try {
@@ -515,6 +515,7 @@ public final class SimplePluginManager implements PluginManager {
@@ -531,6 +531,7 @@ public final class SimplePluginManager implements PluginManager {
defaultPerms.get(false).clear();
}
}
@ -67,7 +67,7 @@ index 132c861c..d0e735bc 100644
/**
* Calls an event with the given details.
@@ -525,25 +526,13 @@ public final class SimplePluginManager implements PluginManager {
@@ -541,25 +542,13 @@ public final class SimplePluginManager implements PluginManager {
*/
@Override
public void callEvent(@NotNull Event event) {
@ -99,7 +99,7 @@ index 132c861c..d0e735bc 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 17dbe913..bae26ce7 100644
index f188cd4f..1941c9f4 100644
--- a/src/test/java/org/bukkit/plugin/PluginManagerTest.java
+++ b/src/test/java/org/bukkit/plugin/PluginManagerTest.java
@@ -17,7 +17,7 @@ public class PluginManagerTest {
@ -128,7 +128,7 @@ index 17dbe913..bae26ce7 100644
@Test
public void testAsyncLocked() throws InterruptedException {
final Event event = new TestEvent(true);
@@ -127,7 +127,7 @@ public class PluginManagerTest {
@@ -129,7 +129,7 @@ public class PluginManagerTest {
if (store.value == null) {
throw new IllegalStateException("No exception thrown");
}
@ -138,5 +138,5 @@ index 17dbe913..bae26ce7 100644
@Test
public void testRemovePermissionByNameLower() {
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From cee1e4c0473f12e2dc86ddefed433fb92443be5c Mon Sep 17 00:00:00 2001
From eb23a61d24f7150eb24130ce0ac936cb7fd8d93f Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 18 Nov 2018 19:44:54 +0000
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 0c519c41..2148a3c2 100644
index d1ac7856..ee03abae 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1557,6 +1557,15 @@ public final class Bukkit {
@ -25,10 +25,10 @@ index 0c519c41..2148a3c2 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 8a76df52..1cbb9bc6 100644
index 409c1624..e9e64060 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1364,6 +1364,13 @@ public interface Server extends PluginMessageRecipient {
@@ -1362,6 +1362,13 @@ public interface Server extends PluginMessageRecipient {
*/
boolean suggestPlayerNamesWhenNullTabCompletions();
@ -56,5 +56,5 @@ index 03bdc162..0b0d1bd7 100644
for (String line : permissionMessage.replace("<permission>", permission).split("\n")) {
target.sendMessage(line);
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From da96969afee7a4b6c69ae1020f4cb5992c95604e Mon Sep 17 00:00:00 2001
From 92e375b0ae0fbb4d606b7fee7132b646f824c52d Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Sun, 18 Nov 2018 15:53:43 +0000
Subject: [PATCH] Support cancellation supression of EntityDismount/VehicleExit
@ -64,34 +64,34 @@ index 963b9ead..a976c32d 100644
@Override
public HandlerList getHandlers() {
diff --git a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java
index a473b2c6..a5b4aed5 100644
index 00d8ec81..a7632c8f 100644
--- a/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java
+++ b/src/main/java/org/spigotmc/event/entity/EntityDismountEvent.java
@@ -16,11 +16,20 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable
@@ -14,10 +14,19 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancelled;
private final Entity dismounted;
+ private final boolean isCancellable; // Paper
public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted)
{
public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted) {
- super(what);
+ // Paper start
+ this(what, dismounted, true);
+ }
+
+ public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted, boolean isCancellable)
+ {
+
+ public EntityDismountEvent(@NotNull Entity what, @NotNull Entity dismounted, boolean isCancellable) {
+ // Paper end
super( what );
+ super( what );
this.dismounted = dismounted;
+ this.isCancellable = isCancellable; // Paper
}
@NotNull
@@ -38,9 +47,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable
@@ -32,9 +41,18 @@ public class EntityDismountEvent extends EntityEvent implements Cancellable {
@Override
public void setCancelled(boolean cancel)
{
public void setCancelled(boolean cancel) {
+ // Paper start
+ if (cancel && !isCancellable) {
+ return;
@ -106,7 +106,7 @@ index a473b2c6..a5b4aed5 100644
+
@NotNull
@Override
public HandlerList getHandlers()
public HandlerList getHandlers() {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 9ec32ef81405280984d6b00aecc95b492a2cc93e Mon Sep 17 00:00:00 2001
From 42fc4b022ca608cf75b768be5569d073156087e0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 24 Mar 2019 00:21:23 -0400
Subject: [PATCH] Entity#getEntitySpawnReason
@ -10,10 +10,10 @@ persistenting Living Entity, SPAWNER for spawners,
or DEFAULT since data was not stored.
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 83e02aea..60dbfab0 100644
index 45e0dffe..5518ecd2 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -650,5 +650,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@@ -649,5 +649,11 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
*/
@NotNull
Chunk getChunk();
@ -26,5 +26,5 @@ index 83e02aea..60dbfab0 100644
// Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From c50ead5ff128e961fe1f3b8e823a0f3a2036f08b Mon Sep 17 00:00:00 2001
From 4684a91a8eb0975c778bf782b33c512fc9b8aeb9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 20 Apr 2019 19:47:29 -0500
Subject: [PATCH] Expose the internal current tick
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index 6db69159..231bc6e3 100644
index 570c5bc8..388c2bbf 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -1599,6 +1599,10 @@ public final class Bukkit {
@ -20,10 +20,10 @@ index 6db69159..231bc6e3 100644
@NotNull
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 27d3b5ad..31470479 100644
index 5e94b2b0..a1371730 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -1398,5 +1398,12 @@ public interface Server extends PluginMessageRecipient {
@@ -1396,5 +1396,12 @@ public interface Server extends PluginMessageRecipient {
*/
@NotNull
com.destroystokyo.paper.profile.PlayerProfile createProfile(@Nullable UUID uuid, @Nullable String name);
@ -37,5 +37,5 @@ index 27d3b5ad..31470479 100644
// Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From acebed7739beb3bd86a6a94278fca6a8ad6401bc Mon Sep 17 00:00:00 2001
From 3ed4ec15e40b966cf7f295587891181cdc06efec Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Mon, 29 Feb 2016 21:02:09 -0600
Subject: [PATCH] Paper config files
@ -6,7 +6,7 @@ Subject: [PATCH] Paper config files
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
new file mode 100644
index 000000000..db899937b
index 0000000000..db899937be
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
@@ -0,0 +1,247 @@
@ -259,7 +259,7 @@ index 000000000..db899937b
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
new file mode 100644
index 000000000..273cdb598
index 0000000000..273cdb598b
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -0,0 +1,184 @@
@ -449,7 +449,7 @@ index 000000000..273cdb598
+}
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
new file mode 100644
index 000000000..a73865739
index 0000000000..a738657394
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -0,0 +1,67 @@
@ -521,10 +521,10 @@ index 000000000..a73865739
+ }
+}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index ba24b738d..1cde6fc9c 100644
index 136d1b50f1..9eed98e379 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -163,6 +163,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -170,6 +170,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
org.spigotmc.SpigotConfig.init((File) options.valueOf("spigot-settings"));
org.spigotmc.SpigotConfig.registerCommands();
// Spigot end
@ -541,7 +541,7 @@ index ba24b738d..1cde6fc9c 100644
this.setSpawnAnimals(dedicatedserverproperties.spawnAnimals);
this.setSpawnNPCs(dedicatedserverproperties.spawnNpcs);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 4c802459d..c07284d35 100644
index f14b37e51a..34cb00b0ba 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -135,9 +135,9 @@ public abstract class Entity implements INamableTileEntity, ICommandListener {
@ -558,7 +558,7 @@ index 4c802459d..c07284d35 100644
public long aa;
public long ab;
diff --git a/src/main/java/net/minecraft/server/EntityTypes.java b/src/main/java/net/minecraft/server/EntityTypes.java
index ddca89a13..f937b7294 100644
index ddca89a132..f937b72945 100644
--- a/src/main/java/net/minecraft/server/EntityTypes.java
+++ b/src/main/java/net/minecraft/server/EntityTypes.java
@@ -3,6 +3,7 @@ package net.minecraft.server;
@ -581,10 +581,10 @@ index ddca89a13..f937b7294 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a1ee67b30..692f8e4b7 100644
index cdd254a7e5..f0deeb3d28 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -85,6 +85,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -68,6 +68,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean populating;
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
@ -593,7 +593,7 @@ index a1ee67b30..692f8e4b7 100644
public final SpigotTimings.WorldTimingsHandler timings; // Spigot
public static BlockPosition lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
@@ -105,6 +107,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -88,6 +90,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
protected World(WorldData worlddata, DimensionManager dimensionmanager, BiFunction<World, WorldProvider, IChunkProvider> bifunction, GameProfilerFiller gameprofilerfiller, boolean flag, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
@ -602,7 +602,7 @@ index a1ee67b30..692f8e4b7 100644
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 4243460e4..57ad50403 100644
index 4243460e4d..57ad50403b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -757,6 +757,7 @@ public final class CraftServer implements Server {
@ -666,7 +666,7 @@ index 4243460e4..57ad50403 100644
+ // Paper end
}
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 766e0f6b1..3a0c01852 100644
index 766e0f6b1d..3a0c01852d 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -129,6 +129,14 @@ public class Main {
@ -685,7 +685,7 @@ index 766e0f6b1..3a0c01852 100644
};
diff --git a/src/main/java/org/spigotmc/SpigotWorldConfig.java b/src/main/java/org/spigotmc/SpigotWorldConfig.java
index 34964d285..5686a4f1a 100644
index 34964d2853..5686a4f1a0 100644
--- a/src/main/java/org/spigotmc/SpigotWorldConfig.java
+++ b/src/main/java/org/spigotmc/SpigotWorldConfig.java
@@ -39,36 +39,36 @@ public class SpigotWorldConfig
@ -732,5 +732,5 @@ index 34964d285..5686a4f1a 100644
config.addDefault( "world-settings.default." + path, def );
return config.getString( "world-settings." + worldName + "." + path, config.getString( "world-settings.default." + path ) );
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 8e4c5038f8c176fa625f4b32082042fb790494c5 Mon Sep 17 00:00:00 2001
From 49bcf6b220a0a6ab0d6a7fbbc54953b15e81a467 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:55:47 -0400
Subject: [PATCH] MC Utils
@ -2236,7 +2236,7 @@ index ba315131e1..cbe2aa4c0a 100644
IChunkAccess getChunkAt(int i, int j, ChunkStatus chunkstatus, boolean flag);
diff --git a/src/main/java/net/minecraft/server/ItemStack.java b/src/main/java/net/minecraft/server/ItemStack.java
index b5d45b43ce..766b1fe13c 100644
index 75308712d0..aa7501d366 100644
--- a/src/main/java/net/minecraft/server/ItemStack.java
+++ b/src/main/java/net/minecraft/server/ItemStack.java
@@ -37,10 +37,19 @@ import org.bukkit.event.world.StructureGrowEvent;
@ -3147,10 +3147,18 @@ index 7b92ecfff9..7e224ebeff 100644
public static long getTimeMillis() {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 692f8e4b71..8fc88f162c 100644
index f0deeb3d28..304dfac061 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -196,6 +196,40 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -22,6 +22,7 @@ import org.bukkit.craftbukkit.SpigotTimings; // Spigot
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.block.CapturedBlockState;
+import org.bukkit.craftbukkit.block.CraftBlockState;
import org.bukkit.craftbukkit.block.data.CraftBlockData;
import org.bukkit.event.block.BlockPhysicsEvent;
// CraftBukkit end
@@ -179,6 +180,39 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return (Chunk) this.getChunkAt(i, j, ChunkStatus.FULL);
}
@ -3165,10 +3173,9 @@ index 692f8e4b71..8fc88f162c 100644
+ public IBlockData getTypeIfLoaded(BlockPosition blockposition) {
+ // CraftBukkit start - tree generation
+ if (captureTreeGeneration) {
+ for (CraftBlockState previous : capturedBlockStates) {
+ if (previous.getX() == blockposition.getX() && previous.getY() == blockposition.getY() && previous.getZ() == blockposition.getZ()) {
+ return previous.getHandle();
+ }
+ CraftBlockState previous = capturedBlockStates.get(blockposition);
+ if (previous != null) {
+ return previous.getHandle();
+ }
+ }
+ // CraftBukkit end
@ -3191,7 +3198,7 @@ index 692f8e4b71..8fc88f162c 100644
@Override
public IChunkAccess getChunkAt(int i, int j, ChunkStatus chunkstatus, boolean flag) {
IChunkAccess ichunkaccess = this.chunkProvider.getChunkAt(i, j, chunkstatus, flag);
@@ -357,8 +391,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -330,8 +364,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public void a(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
@ -3276,5 +3283,5 @@ index 1aec70a1f1..f72c13beda 100644
private int initialCapacity;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 0bc5c16d73d2e593416aef85336d9d001a29c0e7 Mon Sep 17 00:00:00 2001
From 58a9ac42261c7614a19aef2e5303912a59027b5d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 04:00:11 -0600
Subject: [PATCH] Timings v2
@ -565,7 +565,7 @@ index ba40d5fbb5..ee42e1dfa4 100644
int k = 0;
CustomFunction.c[] acustomfunction_c = customfunction.b();
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 1cde6fc9c1..e636433b11 100644
index 9eed98e379..d6646d7e61 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -20,6 +20,8 @@ import java.util.List;
@ -586,7 +586,7 @@ index 1cde6fc9c1..e636433b11 100644
import org.bukkit.event.server.ServerCommandEvent;
import org.bukkit.craftbukkit.util.Waitable;
import org.bukkit.event.server.RemoteServerCommandEvent;
@@ -431,7 +433,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -438,7 +440,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
public void handleCommandQueue() {
@ -595,7 +595,7 @@ index 1cde6fc9c1..e636433b11 100644
while (!this.serverCommandQueue.isEmpty()) {
ServerCommand servercommand = (ServerCommand) this.serverCommandQueue.remove(0);
@@ -446,7 +448,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -453,7 +455,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
// CraftBukkit end
}
@ -604,7 +604,7 @@ index 1cde6fc9c1..e636433b11 100644
}
@Override
@@ -672,6 +674,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -679,6 +681,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@Override
public String executeRemoteCommand(String s) {
@ -612,7 +612,7 @@ index 1cde6fc9c1..e636433b11 100644
this.remoteControlCommandListener.clearMessages();
this.executeSync(() -> {
// CraftBukkit start - fire RemoteServerCommandEvent
@@ -680,10 +683,39 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -687,10 +690,39 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
if (event.isCancelled()) {
return;
}
@ -653,7 +653,7 @@ index 1cde6fc9c1..e636433b11 100644
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 3a969d92e0..2d8c37d73b 100644
index 306724e693..5635192f7c 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -29,7 +29,8 @@ import org.bukkit.command.CommandSender;
@ -1202,7 +1202,7 @@ index 820180ab3f..fa6400dccd 100644
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8fc88f162c..0087bd9b1c 100644
index 304dfac061..da3eb20d45 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,7 @@
@ -1213,15 +1213,16 @@ index 8fc88f162c..0087bd9b1c 100644
import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Collection;
@@ -20,7 +22,6 @@ import java.util.ArrayList;
@@ -18,7 +20,7 @@ import org.apache.logging.log4j.util.Supplier;
import java.util.HashMap;
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockState;
-import org.bukkit.craftbukkit.SpigotTimings; // Spigot
+import org.bukkit.block.BlockState;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.craftbukkit.CraftWorld;
import org.bukkit.craftbukkit.block.CraftBlockState;
@@ -87,7 +88,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
import org.bukkit.craftbukkit.block.CapturedBlockState;
@@ -71,7 +73,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
@ -1230,7 +1231,7 @@ index 8fc88f162c..0087bd9b1c 100644
public static BlockPosition lastPhysicsProblem; // Spigot
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
@@ -150,7 +151,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -134,7 +136,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public void c(WorldBorder worldborder, double d0) {}
});
// CraftBukkit end
@ -1239,7 +1240,7 @@ index 8fc88f162c..0087bd9b1c 100644
this.entityLimiter = new org.spigotmc.TickLimiter(spigotConfig.entityMaxTickTime);
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@@ -746,15 +747,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -716,15 +718,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
timings.tileEntityPending.stopTiming(); // Spigot
@ -1847,5 +1848,5 @@ index ca7789b5e0..4423839697 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From e94943ac122bf5ad88188d2154869dd248cf4e3b Mon Sep 17 00:00:00 2001
From a1b740262a5cde6f25349879fad15a4c26e450c0 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Thu, 3 Mar 2016 03:53:43 -0600
Subject: [PATCH] Allow for toggling of spawn chunks
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 284568641..8ee2b9bb1 100644
index 2845686411..8ee2b9bb1b 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -113,4 +113,10 @@ public class PaperWorldConfig {
@ -20,10 +20,10 @@ index 284568641..8ee2b9bb1 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0087bd9b1..28e67245a 100644
index da3eb20d45..dfca06cf7c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -152,6 +152,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -137,6 +137,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
});
// CraftBukkit end
timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
@ -32,5 +32,5 @@ index 0087bd9b1..28e67245a 100644
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From 5afaae6ebc8d1bf522cee00d8cef33821bcad970 Mon Sep 17 00:00:00 2001
From cf0ac8ca566b804db7eda4798fc0582bad42f01d Mon Sep 17 00:00:00 2001
From: Kyle Wood <demonwav@gmail.com>
Date: Thu, 1 Mar 2018 19:37:52 -0600
Subject: [PATCH] Add version history to version command
diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
index 5deed3e25..49a38c660 100644
index 5deed3e25f..49a38c6608 100644
--- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
+++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
@@ -25,7 +25,10 @@ public class PaperVersionFetcher implements VersionFetcher {
@ -42,7 +42,7 @@ index 5deed3e25..49a38c660 100644
}
diff --git a/src/main/java/com/destroystokyo/paper/VersionHistoryManager.java b/src/main/java/com/destroystokyo/paper/VersionHistoryManager.java
new file mode 100644
index 000000000..aac3f66cb
index 0000000000..aac3f66cb2
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/VersionHistoryManager.java
@@ -0,0 +1,145 @@
@ -192,10 +192,10 @@ index 000000000..aac3f66cb
+ }
+}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index e636433b1..a78896dc8 100644
index d6646d7e61..4b1f8c5373 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -173,6 +173,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -180,6 +180,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
return false;
}
com.destroystokyo.paper.PaperConfig.registerCommands();
@ -204,5 +204,5 @@ index e636433b1..a78896dc8 100644
this.setSpawnAnimals(dedicatedserverproperties.spawnAnimals);
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From 2065a0021b8e509b2b91bb778ff36e7164470362 Mon Sep 17 00:00:00 2001
From f52fb22b301460d966ba0fce4f61a16411181bc0 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 1 Mar 2016 23:52:34 -0600
Subject: [PATCH] Prevent tile entity and entity crashes
diff --git a/src/main/java/net/minecraft/server/TileEntity.java b/src/main/java/net/minecraft/server/TileEntity.java
index fa6400dcc..e2f3cec74 100644
index fa6400dccd..e2f3cec742 100644
--- a/src/main/java/net/minecraft/server/TileEntity.java
+++ b/src/main/java/net/minecraft/server/TileEntity.java
@@ -194,7 +194,12 @@ public abstract class TileEntity implements KeyedObject { // Paper
@ -23,10 +23,10 @@ index fa6400dcc..e2f3cec74 100644
}
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 28e67245a..806768aeb 100644
index dfca06cf7c..a7eb3e54e9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -687,11 +687,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -658,11 +658,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
gameprofilerfiller.exit();
} catch (Throwable throwable) {
@ -45,7 +45,7 @@ index 28e67245a..806768aeb 100644
}
// Spigot start
finally {
@@ -757,11 +759,12 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -728,11 +730,12 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
try {
consumer.accept(entity);
} catch (Throwable throwable) {
@ -64,5 +64,5 @@ index 28e67245a..806768aeb 100644
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From b75d6749802e94b6b8699d9513fe0a111d373ab6 Mon Sep 17 00:00:00 2001
From f29befd27959d00e4d67f2056b2a97458291ffab Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 11:59:48 -0600
Subject: [PATCH] Optimize explosions
@ -10,7 +10,7 @@ This patch adds a per-tick cache that is used for storing and retrieving
an entity's exposure during an explosion.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 50dec5cb5..f038d3f7d 100644
index 50dec5cb5e..f038d3f7dc 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -150,4 +150,10 @@ public class PaperWorldConfig {
@ -25,7 +25,7 @@ index 50dec5cb5..f038d3f7d 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
index d2c31ac1f..64cf5a29c 100644
index a063d1bfaa..5583860f15 100644
--- a/src/main/java/net/minecraft/server/Explosion.java
+++ b/src/main/java/net/minecraft/server/Explosion.java
@@ -177,7 +177,7 @@ public class Explosion {
@ -123,7 +123,7 @@ index d2c31ac1f..64cf5a29c 100644
+ // Paper end
}
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 7b8c523e6..3d580a666 100644
index 7b8c523e6d..3d580a666b 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1176,6 +1176,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@ -135,18 +135,10 @@ index 7b8c523e6..3d580a666 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 806768aeb..94eceac2f 100644
index a7eb3e54e9..ea86476ea5 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -19,6 +19,7 @@ import org.apache.logging.log4j.util.Supplier;
// CraftBukkit start
import com.google.common.collect.Maps;
import java.util.ArrayList;
+import java.util.HashMap; // Paper
import java.util.Map;
import org.bukkit.Bukkit;
import org.bukkit.block.BlockState;
@@ -93,6 +94,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -78,6 +78,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
private org.spigotmc.TickLimiter entityLimiter;
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
@ -155,5 +147,5 @@ index 806768aeb..94eceac2f 100644
public CraftWorld getWorld() {
return this.world;
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From f5ecc048426774f101e8e338b0f4ce954ac3bbdb Mon Sep 17 00:00:00 2001
From 658490eb2b4bae7747592176982a0622c834b9f0 Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 2 Mar 2016 23:45:17 -0600
Subject: [PATCH] Disable spigot tick limiters
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 94eceac2f..634ec82b1 100644
index ea86476ea5..ef00928466 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -658,9 +658,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -628,9 +628,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
// Spigot start
// Iterator iterator = this.tileEntityListTick.iterator();
int tilesThisCycle = 0;
@ -20,5 +20,5 @@ index 94eceac2f..634ec82b1 100644
TileEntity tileentity = (TileEntity) this.tileEntityListTick.get(tileTickPosition);
// Spigot start
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From a34e81c451d01fbd7f311f3795b76f30a71cce1b Mon Sep 17 00:00:00 2001
From 1e5c06435b406b7856ec9527fb7ebb607293a3e2 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:39:54 -0600
Subject: [PATCH] Change implementation of (tile)entity removal list
@ -6,10 +6,10 @@ Subject: [PATCH] Change implementation of (tile)entity removal list
use sets for faster removal
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 634ec82b1..cb369665c 100644
index ef00928466..caead09a64 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -40,7 +40,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -36,7 +36,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final List<TileEntity> tileEntityList = Lists.newArrayList();
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
protected final List<TileEntity> tileEntityListPending = Lists.newArrayList();
@ -19,5 +19,5 @@ index 634ec82b1..cb369665c 100644
private int c;
protected int i = (new Random()).nextInt();
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From b257a14b9a64d819e39d4128d92c262b38087324 Mon Sep 17 00:00:00 2001
From 058e5298ae051aef1224425039ae5e6042a61679 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event
@ -209,7 +209,7 @@ index d5e9bae709..1bcf01c09a 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index cb369665c4..0260078911 100644
index caead09a64..bf20ce9341 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2,6 +2,9 @@ package net.minecraft.server;
@ -222,7 +222,7 @@ index cb369665c4..0260078911 100644
import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Collection;
@@ -688,8 +691,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -658,8 +661,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
gameprofilerfiller.exit();
} catch (Throwable throwable) {
// Paper start - Prevent tile entity and entity crashes
@ -235,7 +235,7 @@ index cb369665c4..0260078911 100644
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
continue;
@@ -760,8 +766,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -730,8 +736,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
consumer.accept(entity);
} catch (Throwable throwable) {
// Paper start - Prevent tile entity and entity crashes
@ -306,5 +306,5 @@ index 8823f94f7b..552daf4376 100644
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 4f88e97498979375c61bbe0c22b24ada9606dd6f Mon Sep 17 00:00:00 2001
From 51f19a3999d3395db37833951feac5620f9ee18d Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 20:16:03 -0400
Subject: [PATCH] Add World Util Methods
@ -6,10 +6,10 @@ 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/World.java b/src/main/java/net/minecraft/server/World.java
index 026007891..37914c2f5 100644
index bf20ce9341..0d403ec707 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -235,6 +235,18 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -218,6 +218,18 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return chunk == null ? null : chunk.getFluid(blockposition);
}
@ -29,7 +29,7 @@ index 026007891..37914c2f5 100644
@Override
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
index 020e5c171..4ee13ac45 100644
index 020e5c171a..4ee13ac454 100644
--- a/src/main/java/net/minecraft/server/WorldBorder.java
+++ b/src/main/java/net/minecraft/server/WorldBorder.java
@@ -19,6 +19,7 @@ public class WorldBorder {
@ -41,5 +41,5 @@ index 020e5c171..4ee13ac45 100644
return (double) (blockposition.getX() + 1) > this.c() && (double) blockposition.getX() < this.e() && (double) (blockposition.getZ() + 1) > this.d() && (double) blockposition.getZ() < this.f();
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 36a26b5d1886726fd705a5d5fff6c85f3e568c2a Mon Sep 17 00:00:00 2001
From d4364f50671372762e805a576f9d1ac2c43add24 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 3 Mar 2016 02:07:55 -0600
Subject: [PATCH] Optimize isValidLocation, getType and getBlockData for inling
@ -77,10 +77,10 @@ index 652067757a..0d5deee365 100644
public ChunkSection(int i) {
this(i, (short) 0, (short) 0, (short) 0);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 37914c2f53..18ee29e507 100644
index 0d403ec707..d81178d26d 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -183,11 +183,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -167,11 +167,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
public static boolean isValidLocation(BlockPosition blockposition) {
@ -95,5 +95,5 @@ index 37914c2f53..18ee29e507 100644
public static boolean b(int i) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 67c11042b01cdc1657b9e6701d6572ae0a7a8760 Mon Sep 17 00:00:00 2001
From bfa1a2ec2f12d7b6b530b3742b20a3f91f02b5db Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 19:55:45 -0400
Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
@ -6,7 +6,7 @@ Subject: [PATCH] Only process BlockPhysicsEvent if a plugin has a listener
Saves on some object allocation and processing when no plugin listens to this
diff --git a/src/main/java/net/minecraft/server/BlockPlant.java b/src/main/java/net/minecraft/server/BlockPlant.java
index ed1da4f4b..a6891b9fa 100644
index ed1da4f4ba..a6891b9fa7 100644
--- a/src/main/java/net/minecraft/server/BlockPlant.java
+++ b/src/main/java/net/minecraft/server/BlockPlant.java
@@ -16,7 +16,7 @@ public class BlockPlant extends Block {
@ -19,7 +19,7 @@ index ed1da4f4b..a6891b9fa 100644
}
}
diff --git a/src/main/java/net/minecraft/server/BlockTallPlant.java b/src/main/java/net/minecraft/server/BlockTallPlant.java
index 42e86881b..6cdce1158 100644
index 42e86881bd..6cdce11581 100644
--- a/src/main/java/net/minecraft/server/BlockTallPlant.java
+++ b/src/main/java/net/minecraft/server/BlockTallPlant.java
@@ -55,7 +55,7 @@ public class BlockTallPlant extends BlockPlant {
@ -32,7 +32,7 @@ index 42e86881b..6cdce1158 100644
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 3d580a666..3094f763b 100644
index 3d580a666b..3094f763ba 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1142,6 +1142,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
@ -44,10 +44,10 @@ index 3d580a666..3094f763b 100644
this.methodProfiler.a(() -> {
return worldserver.getWorldData().getName() + " " + IRegistry.DIMENSION_TYPE.getKey(worldserver.worldProvider.getDimensionManager());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 18ee29e50..824a3513a 100644
index d81178d26d..528e53fc42 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -390,7 +390,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -363,7 +363,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
// CraftBukkit start
iblockdata1.b(this, blockposition, j); // Don't call an event for the old block to limit event spam
CraftWorld world = ((WorldServer) this).getWorld();
@ -56,7 +56,7 @@ index 18ee29e50..824a3513a 100644
BlockPhysicsEvent event = new BlockPhysicsEvent(world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()), CraftBlockData.fromData(iblockdata));
this.getServer().getPluginManager().callEvent(event);
@@ -502,7 +502,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -475,7 +475,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
try {
// CraftBukkit start
CraftWorld world = ((WorldServer) this).getWorld();
@ -66,7 +66,7 @@ index 18ee29e50..824a3513a 100644
this.getServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 0146573a3..9161d6fd6 100644
index 6c2107bd06..4e29746c14 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -75,6 +75,7 @@ public class WorldServer extends World {
@ -78,5 +78,5 @@ index 0146573a3..9161d6fd6 100644
// Add env and gen to constructor
public WorldServer(MinecraftServer minecraftserver, Executor executor, WorldNBTStorage worldnbtstorage, WorldData worlddata, DimensionManager dimensionmanager, GameProfilerFiller gameprofilerfiller, WorldLoadListener worldloadlistener, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 19db856846c074e7895453150b99b54385fe9392 Mon Sep 17 00:00:00 2001
From ae6ae40b92f953a6b03d912c7e06595d8b70c437 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 3 Apr 2016 17:48:50 -0400
Subject: [PATCH] Fix Cancelling BlockPlaceEvent triggering physics
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 824a3513a..e7d441b22 100644
index 528e53fc42..1323d1959a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -460,6 +460,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -433,6 +433,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public void b(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
public void applyPhysics(BlockPosition blockposition, Block block) {
@ -17,5 +17,5 @@ index 824a3513a..e7d441b22 100644
this.a(blockposition.east(), block, blockposition);
this.a(blockposition.down(), block, blockposition);
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From a5671d9f986739e5b97273f3f6941e89b30ba5b6 Mon Sep 17 00:00:00 2001
From 79a49715c5dcc16c725461a67d2c2f3ef2be20d8 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 13 Apr 2016 00:25:28 -0400
Subject: [PATCH] Remove unused World Tile Entity List
@ -6,10 +6,10 @@ Subject: [PATCH] Remove unused World Tile Entity List
Massive hit to performance and it is completely unnecessary.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index e7d441b22b..50c138d06d 100644
index 1323d1959a..5a80f35c91 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -40,7 +40,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -36,7 +36,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
protected static final Logger LOGGER = LogManager.getLogger();
private static final EnumDirection[] a = EnumDirection.values();
@ -18,7 +18,7 @@ index e7d441b22b..50c138d06d 100644
public final List<TileEntity> tileEntityListTick = Lists.newArrayList();
protected final List<TileEntity> tileEntityListPending = Lists.newArrayList();
protected final java.util.Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet();
@@ -628,9 +628,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -598,9 +598,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}, tileentity::getPosition});
}
@ -30,7 +30,7 @@ index e7d441b22b..50c138d06d 100644
this.tileEntityListTick.add(tileentity);
}
@@ -666,7 +666,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -636,7 +636,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
this.tileEntityListTick.removeAll(this.tileEntityListUnload);
@ -39,7 +39,7 @@ index e7d441b22b..50c138d06d 100644
this.tileEntityListUnload.clear();
}
@@ -727,7 +727,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -697,7 +697,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
tilesThisCycle--;
this.tileEntityListTick.remove(tileTickPosition--);
// Spigot end
@ -48,7 +48,7 @@ index e7d441b22b..50c138d06d 100644
if (this.isLoaded(tileentity.getPosition())) {
this.getChunkAtWorldCoords(tileentity.getPosition()).removeTileEntity(tileentity.getPosition());
}
@@ -757,7 +757,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -727,7 +727,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
this.notify(tileentity1.getPosition(), iblockdata, iblockdata, 3);
// CraftBukkit start
// From above, don't screw this up - SPIGOT-1746
@ -57,7 +57,7 @@ index e7d441b22b..50c138d06d 100644
this.a(tileentity1);
}
// CraftBukkit end
@@ -1024,7 +1024,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -993,7 +993,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
} else {
if (tileentity != null) {
this.tileEntityListPending.remove(tileentity);
@ -89,5 +89,5 @@ index dac6e10d25..7b3e3487fa 100644
while (iterator.hasNext()) {
TileEntity tileentity = (TileEntity) iterator.next();
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 8ee359809fdfa59eb43c143b10ffd3693f238ce2 Mon Sep 17 00:00:00 2001
From 3d92fba8c3d4117c565260429c47727bb900de5d Mon Sep 17 00:00:00 2001
From: Martin Panzer <postremus1996@googlemail.com>
Date: Mon, 23 May 2016 12:12:37 +0200
Subject: [PATCH] Faster redstone torch rapid clock removal
@ -6,7 +6,7 @@ Subject: [PATCH] Faster redstone torch rapid clock removal
Only resize the the redstone torch list once, since resizing arrays / lists is costly
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
index 98a255ae5..4c3062ece 100644
index 98a255ae57..4c3062ece9 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneTorch.java
@@ -11,7 +11,7 @@ import org.bukkit.event.block.BlockRedstoneEvent; // CraftBukkit
@ -77,10 +77,10 @@ index 98a255ae5..4c3062ece 100644
public RedstoneUpdateInfo(BlockPosition blockposition, long i) {
this.a = blockposition;
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 50c138d06..c7a4fab1c 100644
index 5a80f35c91..3898010774 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -98,6 +98,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -82,6 +82,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
private org.spigotmc.TickLimiter tileLimiter;
private int tileTickPosition;
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
@ -89,5 +89,5 @@ index 50c138d06..c7a4fab1c 100644
public CraftWorld getWorld() {
return this.world;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 9b0195f22a3d8c5de5d39de2a01de5335c32c84f Mon Sep 17 00:00:00 2001
From b8a1a6f9d0ea4937e32897cdd74f09e6e844b8b5 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 2 Dec 2016 00:11:43 -0500
Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z
@ -6,10 +6,10 @@ Subject: [PATCH] Optimize World.isLoaded(BlockPosition)Z
Reduce method invocations for World.isLoaded(BlockPosition)Z
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c7a4fab1c..58f1136df 100644
index 3898010774..f8b2d3abf9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -237,6 +237,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -220,6 +220,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return chunk == null ? null : chunk.getFluid(blockposition);
}
@ -22,5 +22,5 @@ index c7a4fab1c..58f1136df 100644
return getWorldBorder().isInBounds(blockposition) && getChunkIfLoadedImmediately(blockposition.getX() >> 4, blockposition.getZ() >> 4) != null;
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From fd449e849fdc1c5ead4a613a1f56bfe19feba32a Mon Sep 17 00:00:00 2001
From fdd7f9c24922595b93467af3066548f518ee3e39 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 19 Dec 2017 16:31:46 -0500
Subject: [PATCH] ExperienceOrbs API for Reason/Source/Triggering player
@ -8,7 +8,7 @@ Adds lots of information about why this orb exists.
Replaces isFromBottle() with logic that persists entity reloads too.
diff --git a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java
index 5de881371..5f261b9b9 100644
index 5de881371a..5f261b9b92 100644
--- a/src/main/java/net/minecraft/server/Block.java
+++ b/src/main/java/net/minecraft/server/Block.java
@@ -511,13 +511,13 @@ public class Block implements IMaterial {
@ -28,7 +28,7 @@ index 5de881371..5f261b9b9 100644
}
diff --git a/src/main/java/net/minecraft/server/ContainerGrindstone.java b/src/main/java/net/minecraft/server/ContainerGrindstone.java
index 2d2cd09ad..ed88e208d 100644
index 2d2cd09ad1..ed88e208d0 100644
--- a/src/main/java/net/minecraft/server/ContainerGrindstone.java
+++ b/src/main/java/net/minecraft/server/ContainerGrindstone.java
@@ -81,7 +81,7 @@ public class ContainerGrindstone extends Container {
@ -41,7 +41,7 @@ index 2d2cd09ad..ed88e208d 100644
world.triggerEffect(1042, blockposition, 0);
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java
index e0d240a89..07abcc1e2 100644
index 8762577696..138e2ea56a 100644
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java
+++ b/src/main/java/net/minecraft/server/EntityEnderDragon.java
@@ -616,7 +616,7 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
@ -54,7 +54,7 @@ index e0d240a89..07abcc1e2 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityExperienceOrb.java b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
index 0447800d9..d4275e733 100644
index 0447800d9d..d4275e733d 100644
--- a/src/main/java/net/minecraft/server/EntityExperienceOrb.java
+++ b/src/main/java/net/minecraft/server/EntityExperienceOrb.java
@@ -16,9 +16,59 @@ public class EntityExperienceOrb extends Entity {
@ -134,7 +134,7 @@ index 0447800d9..d4275e733 100644
@Override
diff --git a/src/main/java/net/minecraft/server/EntityFishingHook.java b/src/main/java/net/minecraft/server/EntityFishingHook.java
index 8ad0d0db1..8d48154e5 100644
index 8ad0d0db18..8d48154e5b 100644
--- a/src/main/java/net/minecraft/server/EntityFishingHook.java
+++ b/src/main/java/net/minecraft/server/EntityFishingHook.java
@@ -401,7 +401,7 @@ public class EntityFishingHook extends Entity {
@ -147,7 +147,7 @@ index 8ad0d0db1..8d48154e5 100644
// CraftBukkit end
if (itemstack1.getItem().a(TagsItem.FISHES)) {
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index dd1caec9d..2775afc32 100644
index dd1caec9da..2775afc327 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -1379,7 +1379,8 @@ public abstract class EntityLiving extends Entity {
@ -161,7 +161,7 @@ index dd1caec9d..2775afc32 100644
this.expToDrop = 0;
}
diff --git a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
index 0bfc0a773..ba2f90cc6 100644
index 0bfc0a773d..ba2f90cc6a 100644
--- a/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
+++ b/src/main/java/net/minecraft/server/EntityThrownExpBottle.java
@@ -43,7 +43,7 @@ public class EntityThrownExpBottle extends EntityProjectileThrowable {
@ -174,7 +174,7 @@ index 0bfc0a773..ba2f90cc6 100644
this.die();
diff --git a/src/main/java/net/minecraft/server/EntityTurtle.java b/src/main/java/net/minecraft/server/EntityTurtle.java
index c73cc9ae4..76296119a 100644
index c73cc9ae4b..76296119a1 100644
--- a/src/main/java/net/minecraft/server/EntityTurtle.java
+++ b/src/main/java/net/minecraft/server/EntityTurtle.java
@@ -510,7 +510,7 @@ public class EntityTurtle extends EntityAnimal {
@ -187,7 +187,7 @@ index c73cc9ae4..76296119a 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index 5e3835851..6ca4fa43c 100644
index 5e3835851d..6ca4fa43c4 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -509,7 +509,7 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
@ -200,7 +200,7 @@ index 5e3835851..6ca4fa43c 100644
}
diff --git a/src/main/java/net/minecraft/server/EntityVillagerTrader.java b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
index 530c69996..2ad8dba5c 100644
index 530c699964..2ad8dba5c0 100644
--- a/src/main/java/net/minecraft/server/EntityVillagerTrader.java
+++ b/src/main/java/net/minecraft/server/EntityVillagerTrader.java
@@ -147,7 +147,7 @@ public class EntityVillagerTrader extends EntityVillagerAbstract {
@ -213,7 +213,7 @@ index 530c69996..2ad8dba5c 100644
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
index 1ab2668e9..2b708761d 100644
index 1ab2668e91..2b708761d0 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalBreed.java
@@ -117,7 +117,7 @@ public class PathfinderGoalBreed extends PathfinderGoal {
@ -226,7 +226,7 @@ index 1ab2668e9..2b708761d 100644
// CraftBukkit end
}
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index f6c6ea4aa..dff3eb118 100644
index f6c6ea4aaf..dff3eb1188 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -374,7 +374,7 @@ public class PlayerInteractManager {
@ -239,7 +239,7 @@ index f6c6ea4aa..dff3eb118 100644
return true;
diff --git a/src/main/java/net/minecraft/server/SlotFurnaceResult.java b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
index d2698e847..edc4a5c34 100644
index d2698e847c..edc4a5c34e 100644
--- a/src/main/java/net/minecraft/server/SlotFurnaceResult.java
+++ b/src/main/java/net/minecraft/server/SlotFurnaceResult.java
@@ -2,7 +2,7 @@ package net.minecraft.server;
@ -252,7 +252,7 @@ index d2698e847..edc4a5c34 100644
public SlotFurnaceResult(EntityHuman entityhuman, IInventory iinventory, int i, int j, int k) {
diff --git a/src/main/java/net/minecraft/server/TileEntityFurnace.java b/src/main/java/net/minecraft/server/TileEntityFurnace.java
index 8dc47452a..560e2f42b 100644
index 8dc47452a4..560e2f42b7 100644
--- a/src/main/java/net/minecraft/server/TileEntityFurnace.java
+++ b/src/main/java/net/minecraft/server/TileEntityFurnace.java
@@ -554,7 +554,7 @@ public abstract class TileEntityFurnace extends TileEntityContainer implements I
@ -265,10 +265,10 @@ index 8dc47452a..560e2f42b 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index ec7396f2a..63b1cb2a4 100644
index 81fa77946b..cd6cf07f82 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1780,7 +1780,7 @@ public class CraftWorld implements World {
@@ -1775,7 +1775,7 @@ public class CraftWorld implements World {
} else if (TNTPrimed.class.isAssignableFrom(clazz)) {
entity = new EntityTNTPrimed(world, x, y, z, null);
} else if (ExperienceOrb.class.isAssignableFrom(clazz)) {
@ -278,7 +278,7 @@ index ec7396f2a..63b1cb2a4 100644
entity = new EntityLightning(world, x, y, z, false);
} else if (Firework.class.isAssignableFrom(clazz)) {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
index 1b512cc45..fbad04567 100644
index 1b512cc45c..fbad045675 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftExperienceOrb.java
@@ -20,6 +20,18 @@ public class CraftExperienceOrb extends CraftEntity implements ExperienceOrb {
@ -301,5 +301,5 @@ index 1b512cc45..fbad04567 100644
public EntityExperienceOrb getHandle() {
return (EntityExperienceOrb) entity;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 33ffa2db7d269531288bfa00c2cda19ae26060f4 Mon Sep 17 00:00:00 2001
From 8ce843a66ffed6165d5f5b0a90a0c8c6e0bfc5ad Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Fri, 9 Jun 2017 19:03:43 +0200
Subject: [PATCH] Use TerminalConsoleAppender for console improvements
@ -19,7 +19,7 @@ Other changes:
configuration
diff --git a/pom.xml b/pom.xml
index ee7d3d521..93c1a04bc 100644
index ee7d3d521e..93c1a04bc6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -41,10 +41,27 @@
@ -75,7 +75,7 @@ index ee7d3d521..93c1a04bc 100644
<groupId>org.apache.maven.plugins</groupId>
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
new file mode 100644
index 000000000..cd6e25923
index 0000000000..cd6e259239
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
@@ -0,0 +1,40 @@
@ -121,7 +121,7 @@ index 000000000..cd6e25923
+}
diff --git a/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java b/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java
new file mode 100644
index 000000000..685deaa0e
index 0000000000..685deaa0e5
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/console/TerminalConsoleCommandSender.java
@@ -0,0 +1,17 @@
@ -143,7 +143,7 @@ index 000000000..685deaa0e
+
+}
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index a78896dc8..886900006 100644
index 4b1f8c5373..d34f772fae 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -86,6 +86,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@ -154,9 +154,9 @@ index a78896dc8..886900006 100644
+ new com.destroystokyo.paper.console.PaperConsole(DedicatedServer.this).start();
+ /*
jline.console.ConsoleReader bufferedreader = reader;
// CraftBukkit end
@@ -118,6 +121,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
// MC-33041, SPIGOT-5538: if System.in is not valid due to javaw, then return
@@ -125,6 +128,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
DedicatedServer.LOGGER.error("Exception handling console input", ioexception);
}
@ -165,7 +165,7 @@ index a78896dc8..886900006 100644
}
};
@@ -129,6 +134,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -136,6 +141,9 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
global.addHandler(new org.bukkit.craftbukkit.util.ForwardLogHandler());
@ -175,7 +175,7 @@ index a78896dc8..886900006 100644
final org.apache.logging.log4j.core.Logger logger = ((org.apache.logging.log4j.core.Logger) LogManager.getRootLogger());
for (org.apache.logging.log4j.core.Appender appender : logger.getAppenders().values()) {
if (appender instanceof org.apache.logging.log4j.core.appender.ConsoleAppender) {
@@ -137,6 +145,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -144,6 +152,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
new org.bukkit.craftbukkit.util.TerminalConsoleWriterThread(System.out, this.reader).start();
@ -185,7 +185,7 @@ index a78896dc8..886900006 100644
System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true));
System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true));
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index e41352681..7016dac2d 100644
index e41352681a..7016dac2d7 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -57,7 +57,7 @@ import org.apache.commons.lang3.Validate;
@ -244,7 +244,7 @@ index e41352681..7016dac2d 100644
public KeyPair getKeyPair() {
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 1eb53f67e..308bc3baf 100644
index 1eb53f67ef..308bc3baf2 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -76,8 +76,7 @@ public abstract class PlayerList {
@ -258,7 +258,7 @@ index 1eb53f67e..308bc3baf 100644
this.k = new GameProfileBanList(PlayerList.b);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index f01d3d382..05efbd67d 100644
index f01d3d3823..05efbd67d9 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -41,7 +41,6 @@ import java.util.function.Consumer;
@ -284,7 +284,7 @@ index f01d3d382..05efbd67d 100644
@Override
public PluginCommand getPluginCommand(String name) {
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 40e7c895c..d1636ce21 100644
index 40e7c895c2..d1636ce218 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -13,7 +13,7 @@ import java.util.logging.Logger;
@ -335,7 +335,7 @@ index 40e7c895c..d1636ce21 100644
} catch (Throwable t) {
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ColouredConsoleSender.java b/src/main/java/org/bukkit/craftbukkit/command/ColouredConsoleSender.java
deleted file mode 100644
index fdf2f075e..000000000
index fdf2f075e2..0000000000
--- a/src/main/java/org/bukkit/craftbukkit/command/ColouredConsoleSender.java
+++ /dev/null
@@ -1,72 +0,0 @@
@ -412,7 +412,7 @@ index fdf2f075e..000000000
- }
-}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
index befcc19f9..5510266fb 100644
index befcc19f9b..5510266fb1 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/ConsoleCommandCompleter.java
@@ -4,20 +4,31 @@ import java.util.Collections;
@ -495,7 +495,7 @@ index befcc19f9..5510266fb 100644
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java
index 70f8d4299..449e99d1b 100644
index 70f8d42992..449e99d1b6 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/ServerShutdownThread.java
@@ -17,7 +17,7 @@ public class ServerShutdownThread extends Thread {
@ -509,7 +509,7 @@ index 70f8d4299..449e99d1b 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleWriterThread.java b/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleWriterThread.java
deleted file mode 100644
index 99564fed7..000000000
index 99564fed7c..0000000000
--- a/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleWriterThread.java
+++ /dev/null
@@ -1,58 +0,0 @@
@ -573,13 +573,13 @@ index 99564fed7..000000000
-}
diff --git a/src/main/resources/log4j2.component.properties b/src/main/resources/log4j2.component.properties
new file mode 100644
index 000000000..0694b2146
index 0000000000..0694b21465
--- /dev/null
+++ b/src/main/resources/log4j2.component.properties
@@ -0,0 +1 @@
+log4j.skipJansi=true
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 722ca8496..620b9490e 100644
index 722ca84968..620b9490e5 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -1,17 +1,14 @@
@ -617,5 +617,5 @@ index 722ca8496..620b9490e 100644
</Loggers>
</Configuration>
--
2.24.0
2.25.0

View file

@ -1,14 +1,14 @@
From 4ce92c4f165f461b8a363f1d3217764144872656 Mon Sep 17 00:00:00 2001
From 2a92dde62afcd6886d6ef65f028b9453f8df755d Mon Sep 17 00:00:00 2001
From: mezz <tehgeek@gmail.com>
Date: Wed, 9 Aug 2017 17:51:22 -0500
Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 58f1136df..eb5c95e37 100644
index f8b2d3abf9..0dd84c0977 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -671,7 +671,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -641,7 +641,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
gameprofilerfiller.enter("blockEntities");
timings.tileEntityTick.startTiming(); // Spigot
if (!this.tileEntityListUnload.isEmpty()) {
@ -22,5 +22,5 @@ index 58f1136df..eb5c95e37 100644
this.tileEntityListUnload.clear();
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 8e4e7526d65ab60ec0c5b51524448837abe6249d Mon Sep 17 00:00:00 2001
From 90408a8c1715bee9634ab40f404f1ec16be36062 Mon Sep 17 00:00:00 2001
From: Minecrell <minecrell@minecrell.net>
Date: Mon, 18 Sep 2017 12:00:03 +0200
Subject: [PATCH] Use Log4j IOStreams to redirect System.out/err to logger
@ -12,7 +12,7 @@ results in a separate line, even though it should not result in
a line break. Log4j's implementation handles it correctly.
diff --git a/pom.xml b/pom.xml
index 93c1a04bc..663eacfe2 100644
index 93c1a04bc6..663eacfe27 100644
--- a/pom.xml
+++ b/pom.xml
@@ -63,6 +63,11 @@
@ -28,10 +28,10 @@ index 93c1a04bc..663eacfe2 100644
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 886900006..0411fb3ee 100644
index d34f772fae..ec257ba31f 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -148,8 +148,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -155,8 +155,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
*/
// Paper end
@ -45,5 +45,5 @@ index 886900006..0411fb3ee 100644
thread.setDaemon(true);
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 535cc9801026b2c483133daab0b0da589c002b74 Mon Sep 17 00:00:00 2001
From af2afc1ededb2a1e727251af12bcca4040c46be4 Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Tue, 31 Oct 2017 03:26:18 +0100
Subject: [PATCH] Send attack SoundEffects only to players who can see the
@ -6,7 +6,7 @@ Subject: [PATCH] Send attack SoundEffects only to players who can see the
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
index 9717c40f4..be8b088fc 100644
index 3bd5ddba68..c86d22e7ae 100644
--- a/src/main/java/net/minecraft/server/EntityHuman.java
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
@@ -1023,6 +1023,15 @@ public abstract class EntityHuman extends EntityLiving {
@ -72,10 +72,10 @@ index 9717c40f4..be8b088fc 100644
entity.extinguish();
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index eb5c95e37..74bb96ebf 100644
index 0dd84c0977..361cc6a92e 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -608,6 +608,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -578,6 +578,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
this.playSound(entityhuman, (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, soundeffect, soundcategory, f, f1);
}
@ -88,5 +88,5 @@ index eb5c95e37..74bb96ebf 100644
public abstract void playSound(@Nullable EntityHuman entityhuman, Entity entity, SoundEffect soundeffect, SoundCategory soundcategory, float f, float f1);
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From ae2a08ed40765dbc4a9a32601932d43884796434 Mon Sep 17 00:00:00 2001
From 3b1555dec9a5b796fc8016f338ffcf0e06c8c38b Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Thu, 16 Nov 2017 12:12:41 +0000
Subject: [PATCH] use CB BlockState implementations for captured blocks
@ -18,18 +18,36 @@ the blockstate that will be valid for restoration, as opposed to dropping
information on restoration when the event is cancelled.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 74bb96ebf..9987adb6f 100644
index 361cc6a92e..2bc0368d04 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -299,7 +299,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -66,7 +66,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean captureBlockStates = false;
public boolean captureTreeGeneration = false;
- public Map<BlockPosition, CapturedBlockState> capturedBlockStates = new HashMap<>();
+ public Map<BlockPosition, org.bukkit.craftbukkit.block.CraftBlockState> capturedBlockStates = new HashMap<>(); // Paper
public Map<BlockPosition, TileEntity> capturedTileEntities = new HashMap<>();
public List<EntityItem> captureDrops;
public long ticksPerAnimalSpawns;
@@ -253,7 +253,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean setTypeAndData(BlockPosition blockposition, IBlockData iblockdata, int i) {
// CraftBukkit start - tree generation
if (this.captureTreeGeneration) {
- CapturedBlockState blockstate = capturedBlockStates.get(blockposition);
+ CraftBlockState blockstate = capturedBlockStates.get(blockposition);
if (blockstate == null) {
blockstate = CapturedBlockState.getTreeBlockState(this, blockposition, i);
this.capturedBlockStates.put(blockposition.immutableCopy(), blockstate);
@@ -272,7 +272,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
// CraftBukkit start - capture blockstates
CraftBlockState blockstate = null;
if (this.captureBlockStates) {
- blockstate = org.bukkit.craftbukkit.block.CraftBlockState.getBlockState(this, blockposition, i);
+ blockstate = (CraftBlockState) world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()).getState(); // Paper - use CB getState to get a suitable snapshot
this.capturedBlockStates.add(blockstate);
if (this.captureBlockStates && !this.capturedBlockStates.containsKey(blockposition)) {
- CapturedBlockState blockstate = CapturedBlockState.getBlockState(this, blockposition, i);
+ CraftBlockState blockstate = (CraftBlockState) world.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()).getState(); // Paper - use CB getState to get a suitable snapshot
this.capturedBlockStates.put(blockposition.immutableCopy(), blockstate);
}
// CraftBukkit end
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 2a1b3e555dfff49e833776ac75b648013a211515 Mon Sep 17 00:00:00 2001
From a7875a15cbd233d4e1ca6768cd6f4a7bfebb779e Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 15 Aug 2017 22:29:12 -0400
Subject: [PATCH] Expand World.spawnParticle API and add Builder
@ -43,10 +43,10 @@ index 69d2e2c3b5..62a16173b9 100644
if (this.a(entityplayer, force, d0, d1, d2, packetplayoutworldparticles)) { // CraftBukkit
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 63b1cb2a4c..59036635d7 100644
index cd6cf07f82..bbc338c000 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2250,11 +2250,17 @@ public class CraftWorld implements World {
@@ -2245,11 +2245,17 @@ public class CraftWorld implements World {
@Override
public <T> void spawnParticle(Particle particle, double x, double y, double z, int count, double offsetX, double offsetY, double offsetZ, double extra, T data, boolean force) {
@ -66,5 +66,5 @@ index 63b1cb2a4c..59036635d7 100644
x, y, z, // Position
count, // Count
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 4f31cdeae215ee9d214801cd8f3403a34423fc49 Mon Sep 17 00:00:00 2001
From 9ac8394975cb87ea9ddaca287713379d21f5925b Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 4 Jun 2018 20:39:20 -0400
Subject: [PATCH] Allow spawning Item entities with World.spawnEntity
@ -8,10 +8,10 @@ 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 59036635d..66026f5a4 100644
index bbc338c000..7368625685 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1472,6 +1472,10 @@ public class CraftWorld implements World {
@@ -1467,6 +1467,10 @@ public class CraftWorld implements World {
if (Boat.class.isAssignableFrom(clazz)) {
entity = new EntityBoat(world, x, y, z);
entity.setPositionRotation(x, y, z, yaw, pitch);
@ -23,5 +23,5 @@ index 59036635d..66026f5a4 100644
entity = new EntityFallingBlock(world, x, y, z, world.getType(new BlockPosition(x, y, z)));
} else if (Projectile.class.isAssignableFrom(clazz)) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 7e642c7be08e270da1bf557d38a05ece64c975e1 Mon Sep 17 00:00:00 2001
From 01f18e0f63089747e2aaba8ca9bde12940b51e84 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 20 Jun 2018 23:17:24 -0400
Subject: [PATCH] Expand Explosions API
@ -6,10 +6,10 @@ Subject: [PATCH] Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 66026f5a4..6b04a031e 100644
index 7368625685..2aa016921a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -881,6 +881,11 @@ public class CraftWorld implements World {
@@ -876,6 +876,11 @@ public class CraftWorld implements World {
public boolean createExplosion(double x, double y, double z, float power, boolean setFire, boolean breakBlocks, Entity source) {
return !world.createExplosion(source == null ? null : ((CraftEntity) source).getHandle(), x, y, z, power, setFire, breakBlocks ? Explosion.Effect.BREAK : Explosion.Effect.NONE).wasCanceled;
}
@ -22,5 +22,5 @@ index 66026f5a4..6b04a031e 100644
@Override
public boolean createExplosion(Location loc, float power) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 2a7ceb4f880d6a4e1b6f651230e3588a96da4051 Mon Sep 17 00:00:00 2001
From 008b67783326349d2fa10cc86fb8244b618591ac Mon Sep 17 00:00:00 2001
From: Brokkonaut <hannos17@gmx.de>
Date: Tue, 3 Jul 2018 16:08:14 +0200
Subject: [PATCH] Implement World.getEntity(UUID) API
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 6b04a031e..a257dce8f 100644
index 2aa016921a..89705e5ffa 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1274,6 +1274,15 @@ public class CraftWorld implements World {
@@ -1269,6 +1269,15 @@ public class CraftWorld implements World {
return list;
}
@ -25,5 +25,5 @@ index 6b04a031e..a257dce8f 100644
public void save() {
org.spigotmc.AsyncCatcher.catchOp("world save"); // Spigot
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 2178fef21e20a74545ee6cb6ab61548a87cd76f3 Mon Sep 17 00:00:00 2001
From 140f2f8cd05bce6212189c86a58921b55a2d2b0a Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 21 Jul 2018 08:25:40 -0400
Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues
@ -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 591e2ad56c..e5987be450 100644
index 7364b92f41..5ca3233c00 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -76,6 +76,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -40,10 +40,10 @@ index bf80af2354..e93741a8e8 100644
protected void g() {
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9987adb6f4..9d9e8fed27 100644
index 2bc0368d04..a5af0f9d35 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -67,6 +67,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -63,6 +63,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public boolean pvpMode;
public boolean keepSpawnInMemory = true;
public org.bukkit.generator.ChunkGenerator generator;
@ -122,5 +122,5 @@ index d46a664bdb..3d5a50ddcc 100644
// CraftBukkit start - SPIGOT-5278
if (entity instanceof EntityDrowned) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From dcbdb23f806c68ebb5eff19bd0b90408855c2a6f Mon Sep 17 00:00:00 2001
From 9b045e16c6c9e4db7d5a27110f5c9cc5710a0c1a Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 12:57:39 +0200
Subject: [PATCH] Option to prevent armor stands from doing entity lookups
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 387e0dcb9..eaaa51e4b 100644
index 387e0dcb9f..eaaa51e4bf 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -388,4 +388,9 @@ public class PaperWorldConfig {
@ -19,10 +19,10 @@ index 387e0dcb9..eaaa51e4b 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9d9e8fed2..6b09e2732 100644
index a5af0f9d35..0d12deeb55 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -805,6 +805,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -775,6 +775,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
}
@ -38,5 +38,5 @@ index 9d9e8fed2..6b09e2732 100644
int i = MathHelper.floor(axisalignedbb.minX);
int j = MathHelper.f(axisalignedbb.maxX);
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From 6f58377aaf6174c5f68b3ec3c2818ef100e0ceea Mon Sep 17 00:00:00 2001
From 7c3e711274745dd5725d61548466ab75040d6cf6 Mon Sep 17 00:00:00 2001
From: Hugo Manrique <hugmanrique@gmail.com>
Date: Mon, 23 Jul 2018 14:22:26 +0200
Subject: [PATCH] Vanished players don't have rights
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e5987be45..8e23f336a 100644
index 5ca3233c00..fcc47182c8 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -98,7 +98,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -18,7 +18,7 @@ index e5987be45..8e23f336a 100644
protected int j;
@Nullable
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
index 3a1ad2346..9ab57be85 100644
index 3a1ad2346b..9ab57be850 100644
--- a/src/main/java/net/minecraft/server/IBlockData.java
+++ b/src/main/java/net/minecraft/server/IBlockData.java
@@ -146,6 +146,7 @@ public class IBlockData extends BlockDataAbstract<Block, IBlockData> implements
@ -30,7 +30,7 @@ index 3a1ad2346..9ab57be85 100644
return this.getBlock().b(this, iblockaccess, blockposition, voxelshapecollision);
}
diff --git a/src/main/java/net/minecraft/server/ItemBlock.java b/src/main/java/net/minecraft/server/ItemBlock.java
index ab875a736..aed353365 100644
index ab875a7365..aed353365b 100644
--- a/src/main/java/net/minecraft/server/ItemBlock.java
+++ b/src/main/java/net/minecraft/server/ItemBlock.java
@@ -136,7 +136,8 @@ public class ItemBlock extends Item {
@ -44,7 +44,7 @@ index ab875a736..aed353365 100644
BlockCanBuildEvent event = new BlockCanBuildEvent(CraftBlock.at(blockactioncontext.getWorld(), blockactioncontext.getClickPosition()), player, CraftBlockData.fromData(iblockdata), defaultReturn);
diff --git a/src/main/java/net/minecraft/server/VoxelShape.java b/src/main/java/net/minecraft/server/VoxelShape.java
index 0f64a3c05..0f95bcbcc 100644
index 0f64a3c056..0f95bcbccb 100644
--- a/src/main/java/net/minecraft/server/VoxelShape.java
+++ b/src/main/java/net/minecraft/server/VoxelShape.java
@@ -46,6 +46,7 @@ public abstract class VoxelShape {
@ -56,7 +56,7 @@ index 0f64a3c05..0f95bcbcc 100644
return (VoxelShape) (this.isEmpty() ? VoxelShapes.a() : new VoxelShapeArray(this.a, new DoubleListOffset(this.a(EnumDirection.EnumAxis.X), d0), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Y), d1), new DoubleListOffset(this.a(EnumDirection.EnumAxis.Z), d2)));
}
diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java
index 143be566c..08c83c62d 100644
index 143be566c6..08c83c62df 100644
--- a/src/main/java/net/minecraft/server/VoxelShapes.java
+++ b/src/main/java/net/minecraft/server/VoxelShapes.java
@@ -33,6 +33,7 @@ public final class VoxelShapes {
@ -76,10 +76,10 @@ index 143be566c..08c83c62d 100644
if (operatorboolean.apply(false, false)) {
throw (IllegalArgumentException) SystemUtils.c(new IllegalArgumentException());
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 6b09e2732..eb8cadf5c 100644
index 0d12deeb55..c7b4734e94 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -164,6 +164,46 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -148,6 +148,46 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
this.tileLimiter = new org.spigotmc.TickLimiter(spigotConfig.tileMaxTickTime);
}
@ -127,7 +127,7 @@ index 6b09e2732..eb8cadf5c 100644
public boolean p_() {
return this.isClientSide;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index f931fa48b..317a5bf4e 100644
index f931fa48b4..317a5bf4ef 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -1171,6 +1171,14 @@ public class CraftEventFactory {
@ -146,5 +146,5 @@ index f931fa48b..317a5bf4e 100644
return event;
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From b6ec7c795015192dd516d7c7cd8a741fbd66b9d7 Mon Sep 17 00:00:00 2001
From 3993ccb409951da42b475f821c3e6134b3982777 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 28 Jul 2018 12:18:27 -0400
Subject: [PATCH] Ignore Dead Entities in entityList iteration
@ -51,7 +51,7 @@ index 2004f7fbe1..7ecff4443a 100644
if (oclass.isInstance(t0) && t0.getBoundingBox().c(axisalignedbb) && (predicate == null || predicate.test(t0))) { // Spigot - instance check
list.add(t0);
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e761f71487..ca794328a7 100644
index 09ec144eb6..4880ece947 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -196,6 +196,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -92,10 +92,10 @@ index 3d5a50ddcc..12cdb0cc9a 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index a257dce8f0..0fb47579f6 100644
index 89705e5ffa..fe91e08f22 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1010,6 +1010,7 @@ public class CraftWorld implements World {
@@ -1005,6 +1005,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@ -103,7 +103,7 @@ index a257dce8f0..0fb47579f6 100644
Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null
@@ -1029,6 +1030,7 @@ public class CraftWorld implements World {
@@ -1024,6 +1025,7 @@ public class CraftWorld implements World {
for (Object o : world.entitiesById.values()) {
if (o instanceof net.minecraft.server.Entity) {
net.minecraft.server.Entity mcEnt = (net.minecraft.server.Entity) o;
@ -111,7 +111,7 @@ index a257dce8f0..0fb47579f6 100644
Entity bukkitEntity = mcEnt.getBukkitEntity();
// Assuming that bukkitEntity isn't null
@@ -1055,6 +1057,7 @@ public class CraftWorld implements World {
@@ -1050,6 +1052,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) {
@ -119,7 +119,7 @@ index a257dce8f0..0fb47579f6 100644
Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity();
if (bukkitEntity == null) {
@@ -1078,6 +1081,7 @@ public class CraftWorld implements World {
@@ -1073,6 +1076,7 @@ public class CraftWorld implements World {
for (Object entity: world.entitiesById.values()) {
if (entity instanceof net.minecraft.server.Entity) {
@ -128,5 +128,5 @@ index a257dce8f0..0fb47579f6 100644
if (bukkitEntity == null) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 5632d26dd961b00051930945ccc100df3d16b34f Mon Sep 17 00:00:00 2001
From 97036c2d66087267395e463dc61d8d31b69f4424 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sun, 12 Aug 2018 02:33:39 -0400
Subject: [PATCH] Use a Queue for Queueing Commands
@ -6,7 +6,7 @@ Subject: [PATCH] Use a Queue for Queueing Commands
Lists are bad as Queues mmmkay.
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 0411fb3ee..a74fae9ed 100644
index ec257ba31f..349a0ea213 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -44,7 +44,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@ -18,7 +18,7 @@ index 0411fb3ee..a74fae9ed 100644
private RemoteStatusListener remoteStatusListener;
public final RemoteControlCommandListener remoteControlCommandListener;
private RemoteControlListener remoteControlListener;
@@ -447,8 +447,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -454,8 +454,10 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
public void handleCommandQueue() {
MinecraftTimings.serverCommandTimer.startTiming(); // Spigot
@ -32,5 +32,5 @@ index 0411fb3ee..a74fae9ed 100644
// CraftBukkit start - ServerCommand for preprocessing
ServerCommandEvent event = new ServerCommandEvent(console, servercommand.command);
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 5b1eeb8047141b4b62bdac06095b41e77a9a0f36 Mon Sep 17 00:00:00 2001
From cb12a917cc83d97e3290ad2ba868745f2f6c3b95 Mon Sep 17 00:00:00 2001
From: Mystiflow <mystiflow@gmail.com>
Date: Fri, 6 Jul 2018 13:21:30 +0100
Subject: [PATCH] Send nearby packets from world player list not server list
@ -68,10 +68,10 @@ index 12cdb0cc9a..f12cadc735 100644
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 0fb47579f6..bc151d8d25 100644
index fe91e08f22..bb908f0712 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2085,7 +2085,7 @@ public class CraftWorld implements World {
@@ -2080,7 +2080,7 @@ public class CraftWorld implements World {
double z = loc.getZ();
PacketPlayOutCustomSoundEffect packet = new PacketPlayOutCustomSoundEffect(new MinecraftKey(sound), SoundCategory.valueOf(category.name()), new Vec3D(x, y, z), volume, pitch);
@ -81,5 +81,5 @@ index 0fb47579f6..bc151d8d25 100644
private static Map<String, GameRules.GameRuleKey<?>> gamerules;
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From ef5516debcf0b8fcb094fb0c53fec0a1d1ece2b4 Mon Sep 17 00:00:00 2001
From 5e08229a2b5be563604c95a6c2dce34720af0964 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sun, 7 Oct 2018 00:54:21 -0500
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 5ca281172..e259c868e 100644
index 5ca281172d..e259c868e1 100644
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
@@ -1334,6 +1334,7 @@ public abstract class EntityInsentient extends EntityLiving {
@ -17,10 +17,10 @@ index 5ca281172..e259c868e 100644
if (this.world.isDay() && !this.world.isClientSide) {
float f = this.aI();
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 7c7302853..20e4be0e3 100644
index 9f356e8004..c50301fd8a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -862,6 +862,13 @@ public class CraftWorld implements World {
@@ -857,6 +857,13 @@ public class CraftWorld implements World {
}
}
@ -35,7 +35,7 @@ index 7c7302853..20e4be0e3 100644
public boolean createExplosion(double x, double y, double z, float power) {
return createExplosion(x, y, z, power, false, true);
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
index 53c2d154e..56c233872 100644
index 53c2d154ed..56c233872b 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftMob.java
@@ -68,4 +68,11 @@ public abstract class CraftMob extends CraftLivingEntity implements Mob {
@ -51,5 +51,5 @@ index 53c2d154e..56c233872 100644
+ // Paper end
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 1b28776ff4559ef02b0e274969f236b70dfe381a Mon Sep 17 00:00:00 2001
From 49f6b5e50f8bb65c54272dda0b98f7afa6b8ad18 Mon Sep 17 00:00:00 2001
From: theosib <millerti@172.16.221.1>
Date: Thu, 27 Sep 2018 01:43:35 -0600
Subject: [PATCH] Optimize redstone algorithm
@ -19,7 +19,7 @@ Aside from making the obvious class/function renames and obfhelpers I didn't nee
Just added Bukkit's event system and took a few liberties with dead code and comment misspellings.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 0862a1d62..4ba72275b 100644
index 0862a1d629..4ba72275b9 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -432,4 +432,14 @@ public class PaperWorldConfig {
@ -39,7 +39,7 @@ index 0862a1d62..4ba72275b 100644
}
diff --git a/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java b/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java
new file mode 100644
index 000000000..b69803cbf
index 0000000000..b69803cbf2
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/util/RedstoneWireTurbo.java
@@ -0,0 +1,915 @@
@ -959,7 +959,7 @@ index 000000000..b69803cbf
+ }
+}
diff --git a/src/main/java/net/minecraft/server/BlockRedstoneWire.java b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
index 5bf2fc0b3..52a4982ec 100644
index 5bf2fc0b3f..52a4982ecd 100644
--- a/src/main/java/net/minecraft/server/BlockRedstoneWire.java
+++ b/src/main/java/net/minecraft/server/BlockRedstoneWire.java
@@ -1,5 +1,7 @@
@ -1127,10 +1127,10 @@ index 5bf2fc0b3..52a4982ec 100644
c(iblockdata, world, blockposition);
world.a(blockposition, false);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index eb8cadf5c..d62ef02e5 100644
index c7b4734e94..2a1359f7d9 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -543,6 +543,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -516,6 +516,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
@ -1138,7 +1138,7 @@ index eb8cadf5c..d62ef02e5 100644
public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
if (!this.isClientSide) {
IBlockData iblockdata = this.getType(blockposition);
@@ -1302,6 +1303,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1271,6 +1272,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return this.getBlockFacePower(blockposition.down(), EnumDirection.DOWN) > 0 ? true : (this.getBlockFacePower(blockposition.up(), EnumDirection.UP) > 0 ? true : (this.getBlockFacePower(blockposition.north(), EnumDirection.NORTH) > 0 ? true : (this.getBlockFacePower(blockposition.south(), EnumDirection.SOUTH) > 0 ? true : (this.getBlockFacePower(blockposition.west(), EnumDirection.WEST) > 0 ? true : this.getBlockFacePower(blockposition.east(), EnumDirection.EAST) > 0))));
}
@ -1147,5 +1147,5 @@ index eb8cadf5c..d62ef02e5 100644
int i = 0;
EnumDirection[] aenumdirection = World.a;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 0c99ceec43afdfcac3eb6a5afa3316c0d4a1c790 Mon Sep 17 00:00:00 2001
From e6732167512195d5173b8bea486fa770551ad295 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 6 Feb 2019 00:20:33 -0500
Subject: [PATCH] BlockDestroyEvent
@ -11,10 +11,10 @@ floating in the air.
This can replace many uses of BlockPhysicsEvent
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index d62ef02e5..a5b451877 100644
index 2a1359f7d9..0409d62e71 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -473,8 +473,20 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -446,8 +446,20 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return false;
} else {
Fluid fluid = this.getFluid(blockposition);
@ -37,5 +37,5 @@ index d62ef02e5..a5b451877 100644
TileEntity tileentity = iblockdata.getBlock().isTileEntity() ? this.getTileEntity(blockposition) : null;
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 9ec887b5bd8dd36f90b5163e878a8a26767f4f42 Mon Sep 17 00:00:00 2001
From c4e2eca4927f4d396d64e5eb88995c9291baa4b2 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 6 Apr 2019 10:16:48 -0400
Subject: [PATCH] Optimize Captured TileEntity Lookup
@ -10,10 +10,10 @@ Optimize to check if the captured list even has values in it, and also to
just do a get call since the value can never be null.
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a5b451877..13ff6a11f 100644
index 0409d62e71..065cb3c29a 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1023,12 +1023,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -992,12 +992,13 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return null;
} else {
// CraftBukkit start
@ -31,5 +31,5 @@ index a5b451877..13ff6a11f 100644
if (this.tickingTileEntities) {
tileentity = this.e(blockposition);
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From 7b721e8893480246abe64b581c87da17ea868e51 Mon Sep 17 00:00:00 2001
From e44e10db8320471ccff9da39048391ff83625a25 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Tue, 1 Jan 2019 02:22:01 -0800
Subject: [PATCH] Add Heightmap API
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 13ff6a11f..6fd6c343d 100644
index 065cb3c29a..61faf87179 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -594,8 +594,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -567,8 +567,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
}
@ -20,7 +20,7 @@ index 13ff6a11f..6fd6c343d 100644
if (i >= -30000000 && j >= -30000000 && i < 30000000 && j < 30000000) {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 20e4be0e3..007a74f90 100644
index c50301fd8a..426971b55b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -340,6 +340,29 @@ public class CraftWorld implements World {
@ -54,5 +54,5 @@ index 20e4be0e3..007a74f90 100644
public Location getSpawnLocation() {
BlockPosition spawn = world.getSpawn();
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From c5d691e244cfd8140cea50a7c15406bceceb97c7 Mon Sep 17 00:00:00 2001
From c99dab6b65809f4e585a9ac14c8b7efd1755edfd Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 13 Sep 2014 23:14:43 -0400
Subject: [PATCH] Configurable Keep Spawn Loaded range per world
@ -207,10 +207,10 @@ index 36d5466138..32da4eb4e0 100644
public LongSet getForceLoadedChunks() {
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 4287492381..9787d53326 100644
index 57c9982c75..b742bb7617 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1913,15 +1913,21 @@ public class CraftWorld implements World {
@@ -1908,15 +1908,21 @@ public class CraftWorld implements World {
@Override
public void setKeepSpawnInMemory(boolean keepLoaded) {
@ -237,5 +237,5 @@ index 4287492381..9787d53326 100644
@Override
--
2.25.0.windows.1
2.25.0

View file

@ -1,14 +1,14 @@
From c951ac74acbd752fdea1bd1aa958d5a184e78115 Mon Sep 17 00:00:00 2001
From c560f95e0058d4975a17edee255e9c62f0442d9c Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Fri, 24 May 2019 07:53:16 +0100
Subject: [PATCH] Fix some generation concurrency issues
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 6fd6c343d..d981dfd43 100644
index 61faf87179..c089080a90 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -100,6 +100,23 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -84,6 +84,23 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
private int tileTickPosition;
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
public java.util.ArrayDeque<BlockRedstoneTorch.RedstoneUpdateInfo> redstoneUpdateInfos; // Paper - Move from Map in BlockRedstoneTorch to here
@ -33,7 +33,7 @@ index 6fd6c343d..d981dfd43 100644
public CraftWorld getWorld() {
return this.world;
diff --git a/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java b/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
index 22e14fe1e..e2af6d43b 100644
index 22e14fe1e9..e2af6d43b2 100644
--- a/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
+++ b/src/main/java/net/minecraft/server/WorldGenFeatureStateProviderWeighted.java
@@ -23,18 +23,18 @@ public class WorldGenFeatureStateProviderWeighted extends WorldGenFeatureStatePr
@ -59,7 +59,7 @@ index 22e14fe1e..e2af6d43b 100644
builder.put(dynamicops.createString("type"), dynamicops.createString(IRegistry.t.getKey(this.a).toString())).put(dynamicops.createString("entries"), this.b.a(dynamicops, (iblockdata) -> {
diff --git a/src/main/java/net/minecraft/server/WorldGenStronghold.java b/src/main/java/net/minecraft/server/WorldGenStronghold.java
index fc4348b60..44be7169f 100644
index fc4348b602..44be7169ff 100644
--- a/src/main/java/net/minecraft/server/WorldGenStronghold.java
+++ b/src/main/java/net/minecraft/server/WorldGenStronghold.java
@@ -10,10 +10,12 @@ import javax.annotation.Nullable;
@ -222,5 +222,5 @@ index fc4348b60..44be7169f 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 74d8489304e14d2b6ffd00976fc48142492ca132 Mon Sep 17 00:00:00 2001
From 1774cd5c93235fad7e6f9f9fa318b358f40cb6de Mon Sep 17 00:00:00 2001
From: stonar96 <minecraft.stonar96@gmail.com>
Date: Mon, 20 Aug 2018 03:03:58 +0200
Subject: [PATCH] Anti-Xray
@ -1648,7 +1648,7 @@ index a905a29e75..335b644351 100644
public static <T> TicketType<T> a(String s, Comparator<T> comparator) {
return new TicketType<>(s, comparator, 0L);
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index d981dfd434..a1b777ac03 100644
index c089080a90..bcf326c859 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -2,6 +2,8 @@ package net.minecraft.server;
@ -1660,7 +1660,7 @@ index d981dfd434..a1b777ac03 100644
import com.destroystokyo.paper.event.server.ServerExceptionEvent;
import com.destroystokyo.paper.exception.ServerInternalException;
import com.google.common.base.MoreObjects;
@@ -92,6 +94,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -76,6 +78,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
public final org.spigotmc.SpigotWorldConfig spigotConfig; // Spigot
public final com.destroystokyo.paper.PaperWorldConfig paperConfig; // Paper
@ -1668,7 +1668,7 @@ index d981dfd434..a1b777ac03 100644
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
public static BlockPosition lastPhysicsProblem; // Spigot
@@ -133,6 +136,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -117,6 +120,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
protected World(WorldData worlddata, DimensionManager dimensionmanager, BiFunction<World, WorldProvider, IChunkProvider> bifunction, GameProfilerFiller gameprofilerfiller, boolean flag, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig(worlddata.getName(), this.spigotConfig); // Paper
@ -1676,7 +1676,7 @@ index d981dfd434..a1b777ac03 100644
this.generator = gen;
this.world = new CraftWorld((WorldServer) this, gen, env);
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
@@ -363,6 +367,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -336,6 +340,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
// CraftBukkit end
IBlockData iblockdata1 = chunk.setType(blockposition, iblockdata, (i & 64) != 0, (i & 1024) == 0); // CraftBukkit custom NO_PLACE flag
@ -1710,5 +1710,5 @@ index 7772d59005..4570ed9991 100644
return section;
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From b2c12a10d2992373cd9bb7830bdb876772582175 Mon Sep 17 00:00:00 2001
From 198c099e09176e239533ad40e814da2ef02dcae1 Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sat, 13 Jul 2019 09:23:10 -0700
Subject: [PATCH] Asynchronous chunk IO and loading
@ -4026,7 +4026,7 @@ index 0f652e58e1..5eb52817f1 100644
// CraftBukkit start
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index f56ec3d341..1a6a88b178 100644
index c3ee5411c3..9fe9098089 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -555,22 +555,23 @@ public class CraftWorld implements World {
@ -4061,7 +4061,7 @@ index f56ec3d341..1a6a88b178 100644
// fall through to load
// we do this so we do not re-read the chunk data on disk
@@ -2395,6 +2396,25 @@ public class CraftWorld implements World {
@@ -2390,6 +2391,25 @@ public class CraftWorld implements World {
return persistentRaid.raids.values().stream().map(CraftRaid::new).collect(Collectors.toList());
}
@ -4108,5 +4108,5 @@ index 07936eeba2..5bdcdcf9e8 100644
log.log( Level.SEVERE, "------------------------------" );
//
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 3b0d0c226a4f9ef09c808fe10c82420a978a140a Mon Sep 17 00:00:00 2001
From 0a16c31383daff812445a168e9316b3b7758e80e Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Mon, 8 Jul 2019 00:13:36 -0700
Subject: [PATCH] Use getChunkIfLoadedImmediately in places
@ -8,7 +8,7 @@ ticket level 33 (yes getChunkIfLoaded will actually perform a chunk
load in that case).
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 7c7cd851c..bbfbe4b1e 100644
index a92f251ca5..2917e1bd42 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -204,7 +204,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@ -21,7 +21,7 @@ index 7c7cd851c..bbfbe4b1e 100644
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index 8c54022e0..f6fbba36f 100644
index 8c54022e07..f6fbba36f4 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -989,7 +989,7 @@ public class PlayerConnection implements PacketListenerPlayIn {
@ -34,10 +34,10 @@ index 8c54022e0..f6fbba36f 100644
return;
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index a1b777ac0..0944ce045 100644
index bcf326c859..9f12d765bd 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -130,8 +130,16 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -114,8 +114,16 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
public Chunk getChunkIfLoaded(int x, int z) {
@ -55,7 +55,7 @@ index a1b777ac0..0944ce045 100644
protected World(WorldData worlddata, DimensionManager dimensionmanager, BiFunction<World, WorldProvider, IChunkProvider> bifunction, GameProfilerFiller gameprofilerfiller, boolean flag, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) {
this.spigotConfig = new org.spigotmc.SpigotWorldConfig( worlddata.getName() ); // Spigot
@@ -1134,14 +1142,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1103,14 +1111,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
}
public boolean n(BlockPosition blockposition) {
@ -73,7 +73,7 @@ index a1b777ac0..0944ce045 100644
return ichunkaccess == null ? false : ichunkaccess.getType(blockposition).a((IBlockAccess) this, blockposition, entity);
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index f86404f83..92601c581 100644
index f86404f83a..92601c581c 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -143,9 +143,10 @@ public class ActivationRange
@ -90,5 +90,5 @@ index f86404f83..92601c581 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 087ba4eb1b20e81032cb81fd141eedbeae580ded Mon Sep 17 00:00:00 2001
From 74e2a3bcae10c712efac79d61974edaa0dc5be7e Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Fri, 19 Jul 2019 03:29:14 -0700
Subject: [PATCH] Reduce sync loads
@ -280,10 +280,10 @@ index e10035d461..92b22b9996 100644
this.serverThreadQueue.awaitTasks(completablefuture::isDone);
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 0944ce0458..9df079d8af 100644
index 9f12d765bd..79175c637c 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1198,7 +1198,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1167,7 +1167,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
for (int i1 = i; i1 <= j; ++i1) {
for (int j1 = k; j1 <= l; ++j1) {
@ -292,7 +292,7 @@ index 0944ce0458..9df079d8af 100644
if (chunk != null) {
chunk.a(entity, axisalignedbb, list, predicate);
@@ -1219,7 +1219,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1188,7 +1188,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
for (int i1 = i; i1 < j; ++i1) {
for (int j1 = k; j1 < l; ++j1) {
@ -301,7 +301,7 @@ index 0944ce0458..9df079d8af 100644
if (chunk != null) {
chunk.a(entitytypes, axisalignedbb, list, predicate);
@@ -1242,7 +1242,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1211,7 +1211,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
for (int i1 = i; i1 < j; ++i1) {
for (int j1 = k; j1 < l; ++j1) {
@ -328,5 +328,5 @@ index 5eb52817f1..6d362316f7 100644
// Add env and gen to constructor
public WorldServer(MinecraftServer minecraftserver, Executor executor, WorldNBTStorage worldnbtstorage, WorldData worlddata, DimensionManager dimensionmanager, GameProfilerFiller gameprofilerfiller, WorldLoadListener worldloadlistener, org.bukkit.World.Environment env, org.bukkit.generator.ChunkGenerator gen) {
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 4e6c0d35f3089a469d2dc5fe45c51a7fccbb0bc2 Mon Sep 17 00:00:00 2001
From 685a505a55a6d57d1c53d627ccf4559214af98df Mon Sep 17 00:00:00 2001
From: MisterErwin <git@askarian.net>
Date: Wed, 30 Oct 2019 16:57:54 +0100
Subject: [PATCH] Fix spawning of hanging entities that are not ItemFrames and
@ -6,10 +6,10 @@ Subject: [PATCH] Fix spawning of hanging entities that are not ItemFrames and
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index 1a6a88b17..be8b617f2 100644
index 9fe9098089..7654519c9e 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -1831,7 +1831,12 @@ public class CraftWorld implements World {
@@ -1826,7 +1826,12 @@ public class CraftWorld implements World {
height = 9;
}
@ -24,5 +24,5 @@ index 1a6a88b17..be8b617f2 100644
for (BlockFace dir : faces) {
IBlockData nmsBlock = world.getType(pos.shift(CraftBlock.blockFaceToNotch(dir)));
--
2.25.0.windows.1
2.25.0

View file

@ -1,11 +1,11 @@
From ac9aaf1721701a758bb444c38c8ff02b6acd7780 Mon Sep 17 00:00:00 2001
From 21011ca9f386aea65f2e9c521b391745bc9e9974 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
Date: Sat, 21 Jul 2018 03:11:03 -0500
Subject: [PATCH] PlayerLaunchProjectileEvent
diff --git a/src/main/java/net/minecraft/server/InteractionResultWrapper.java b/src/main/java/net/minecraft/server/InteractionResultWrapper.java
index 5cab47a28..886babdcd 100644
index 5cab47a282..886babdcda 100644
--- a/src/main/java/net/minecraft/server/InteractionResultWrapper.java
+++ b/src/main/java/net/minecraft/server/InteractionResultWrapper.java
@@ -10,6 +10,7 @@ public class InteractionResultWrapper<T> {
@ -17,14 +17,15 @@ index 5cab47a28..886babdcd 100644
return this.a;
}
diff --git a/src/main/java/net/minecraft/server/ItemEgg.java b/src/main/java/net/minecraft/server/ItemEgg.java
index c72f618bb..a41ccc8f6 100644
index 6fccd70a03..16f1b734e0 100644
--- a/src/main/java/net/minecraft/server/ItemEgg.java
+++ b/src/main/java/net/minecraft/server/ItemEgg.java
@@ -16,13 +16,32 @@ public class ItemEgg extends Item {
@@ -16,21 +16,35 @@ public class ItemEgg extends Item {
entityegg.setItem(itemstack);
entityegg.a(entityhuman, entityhuman.pitch, entityhuman.yaw, 0.0F, 1.5F, 1.0F);
- world.addEntity(entityegg);
- // CraftBukkit start
- if (!world.addEntity(entityegg)) {
+ // Paper start
+ com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent event = new com.destroystokyo.paper.event.player.PlayerLaunchProjectileEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(itemstack), (org.bukkit.entity.Projectile) entityegg.getBukkitEntity());
+ if (event.callEvent() && world.addEntity(entityegg)) {
@ -37,13 +38,18 @@ index c72f618bb..a41ccc8f6 100644
+ world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_EGG_THROW, SoundCategory.PLAYERS, 0.5F, 0.4F / (Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
+ entityhuman.b(StatisticList.ITEM_USED.b(this));
+ } else {
+ if (entityhuman instanceof EntityPlayer) {
+ ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
+ }
if (entityhuman instanceof EntityPlayer) {
((EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
}
- return InteractionResultWrapper.fail(itemstack);
+ return new InteractionResultWrapper<ItemStack>(EnumInteractionResult.FAIL, itemstack);
+ }
}
- // CraftBukkit end
+ // Paper end
+
+
}
world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_EGG_THROW, SoundCategory.PLAYERS, 0.5F, 0.4F / (ItemEgg.i.nextFloat() * 0.4F + 0.8F)); // CraftBukkit - from above
+ /* // Paper start - moved up
entityhuman.b(StatisticList.ITEM_USED.b(this));
@ -55,7 +61,7 @@ index c72f618bb..a41ccc8f6 100644
return InteractionResultWrapper.success(itemstack);
}
diff --git a/src/main/java/net/minecraft/server/ItemEnderPearl.java b/src/main/java/net/minecraft/server/ItemEnderPearl.java
index cab869e8e..b57e9f7e7 100644
index cab869e8e9..b57e9f7e72 100644
--- a/src/main/java/net/minecraft/server/ItemEnderPearl.java
+++ b/src/main/java/net/minecraft/server/ItemEnderPearl.java
@@ -16,22 +16,37 @@ public class ItemEnderPearl extends Item {
@ -107,7 +113,7 @@ index cab869e8e..b57e9f7e7 100644
return InteractionResultWrapper.success(itemstack);
}
diff --git a/src/main/java/net/minecraft/server/ItemExpBottle.java b/src/main/java/net/minecraft/server/ItemExpBottle.java
index 071688b3a..1d575af52 100644
index 071688b3ab..1d575af526 100644
--- a/src/main/java/net/minecraft/server/ItemExpBottle.java
+++ b/src/main/java/net/minecraft/server/ItemExpBottle.java
@@ -15,19 +15,38 @@ public class ItemExpBottle extends Item {
@ -152,7 +158,7 @@ index 071688b3a..1d575af52 100644
return InteractionResultWrapper.success(itemstack);
}
diff --git a/src/main/java/net/minecraft/server/ItemLingeringPotion.java b/src/main/java/net/minecraft/server/ItemLingeringPotion.java
index c19b678cf..7672e31fc 100644
index c19b678cfb..7672e31fc0 100644
--- a/src/main/java/net/minecraft/server/ItemLingeringPotion.java
+++ b/src/main/java/net/minecraft/server/ItemLingeringPotion.java
@@ -8,7 +8,11 @@ public class ItemLingeringPotion extends ItemPotionThrowable {
@ -170,7 +176,7 @@ index c19b678cf..7672e31fc 100644
}
}
diff --git a/src/main/java/net/minecraft/server/ItemPotionThrowable.java b/src/main/java/net/minecraft/server/ItemPotionThrowable.java
index 5d1f118c5..d1beab1ab 100644
index 5d1f118c51..d1beab1ab7 100644
--- a/src/main/java/net/minecraft/server/ItemPotionThrowable.java
+++ b/src/main/java/net/minecraft/server/ItemPotionThrowable.java
@@ -15,13 +15,31 @@ public class ItemPotionThrowable extends ItemPotion {
@ -207,10 +213,10 @@ index 5d1f118c5..d1beab1ab 100644
return InteractionResultWrapper.success(itemstack);
}
diff --git a/src/main/java/net/minecraft/server/ItemSnowball.java b/src/main/java/net/minecraft/server/ItemSnowball.java
index d38776b7e..e6044e654 100644
index 56ec508959..e6044e654b 100644
--- a/src/main/java/net/minecraft/server/ItemSnowball.java
+++ b/src/main/java/net/minecraft/server/ItemSnowball.java
@@ -17,18 +17,27 @@ public class ItemSnowball extends Item {
@@ -17,19 +17,27 @@ public class ItemSnowball extends Item {
entitysnowball.setItem(itemstack);
entitysnowball.a(entityhuman, entityhuman.pitch, entityhuman.yaw, 0.0F, 1.5F, 1.0F);
@ -225,7 +231,8 @@ index d38776b7e..e6044e654 100644
+ ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
}
- world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (ItemSnowball.i.nextFloat() * 0.4F + 0.8F)); } else if (entityhuman instanceof EntityPlayer) {
- world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (ItemSnowball.i.nextFloat() * 0.4F + 0.8F));
- } else if (entityhuman instanceof EntityPlayer) {
- ((EntityPlayer) entityhuman).getBukkitEntity().updateInventory();
+ world.playSound((EntityHuman) null, entityhuman.locX(), entityhuman.locY(), entityhuman.locZ(), SoundEffects.ENTITY_SNOWBALL_THROW, SoundCategory.NEUTRAL, 0.5F, 0.4F / (Entity.SHARED_RANDOM.nextFloat() * 0.4F + 0.8F));
+ entityhuman.b(StatisticList.ITEM_USED.b(this));
@ -244,7 +251,7 @@ index d38776b7e..e6044e654 100644
/*
if (!entityhuman.abilities.canInstantlyBuild) {
diff --git a/src/main/java/net/minecraft/server/ItemSplashPotion.java b/src/main/java/net/minecraft/server/ItemSplashPotion.java
index 18bd846ce..e71e933ff 100644
index 18bd846cee..e71e933fff 100644
--- a/src/main/java/net/minecraft/server/ItemSplashPotion.java
+++ b/src/main/java/net/minecraft/server/ItemSplashPotion.java
@@ -8,7 +8,11 @@ public class ItemSplashPotion extends ItemPotionThrowable {
@ -262,5 +269,5 @@ index 18bd846ce..e71e933ff 100644
}
}
--
2.25.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From f6980b7867cefdfbb83471c04034465e6e3f004e Mon Sep 17 00:00:00 2001
From d3a017dd1bdedd27276373fc7fe80d677f4a390e Mon Sep 17 00:00:00 2001
From: Phoenix616 <mail@moep.tv>
Date: Mon, 13 Jan 2020 15:40:32 +0100
Subject: [PATCH] Seed based feature search
@ -15,7 +15,7 @@ changes but this should usually not happen. A config option to disable
this improvement is added though in case that should ever be necessary.
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index 3b8488d3f..bce502181 100644
index 3b8488d3ff..bce502181f 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -359,6 +359,12 @@ public class PaperWorldConfig {
@ -32,7 +32,7 @@ index 3b8488d3f..bce502181 100644
private void maxEntityCollision() {
maxCollisionsPerEntity = getInt( "max-entity-collisions", this.spigotConfig.getInt("max-entity-collisions", 8) );
diff --git a/src/main/java/net/minecraft/server/BiomeManager.java b/src/main/java/net/minecraft/server/BiomeManager.java
index e96f544f1..68423645d 100644
index e96f544f12..68423645df 100644
--- a/src/main/java/net/minecraft/server/BiomeManager.java
+++ b/src/main/java/net/minecraft/server/BiomeManager.java
@@ -12,10 +12,12 @@ public class BiomeManager {
@ -49,7 +49,7 @@ index e96f544f1..68423645d 100644
return this.c.a(this.b, blockposition.getX(), blockposition.getY(), blockposition.getZ(), this.a);
}
diff --git a/src/main/java/net/minecraft/server/ChunkCoordIntPair.java b/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
index f2a19acd8..09f1308b0 100644
index f2a19acd84..09f1308b0d 100644
--- a/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
+++ b/src/main/java/net/minecraft/server/ChunkCoordIntPair.java
@@ -64,10 +64,12 @@ public class ChunkCoordIntPair {
@ -66,7 +66,7 @@ index f2a19acd8..09f1308b0 100644
return this.z << 4;
}
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
index e8ce2ecf2..acfe732af 100644
index e8ce2ecf23..acfe732af5 100644
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
@@ -109,6 +109,15 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
@ -94,10 +94,10 @@ index e8ce2ecf2..acfe732af 100644
public abstract StructureGenerator.a a();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 9df079d8a..8a2bb79ad 100644
index 79175c637c..44fb13f8db 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1588,8 +1588,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -1557,8 +1557,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
return this.methodProfiler;
}
@ -109,5 +109,5 @@ index 9df079d8a..8a2bb79ad 100644
}
}
--
2.18.0.windows.1
2.25.0

View file

@ -1,4 +1,4 @@
From 17c2e5b74e4cb8b5317863e8e7b17a96b93efef3 Mon Sep 17 00:00:00 2001
From 8bc9117823abd132236349acd3e33318571b314b Mon Sep 17 00:00:00 2001
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
Date: Sat, 25 Jan 2020 17:04:35 -0800
Subject: [PATCH] Optimise getChunkAt calls for loaded chunks
@ -65,10 +65,10 @@ index 72919e4c64..42c559ad4f 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 8a2bb79ad9..abd8b751ba 100644
index 44fb13f8db..03bd681172 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -271,6 +271,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@@ -255,6 +255,14 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
@Override
public Chunk getChunkAt(int i, int j) {
@ -84,5 +84,5 @@ index 8a2bb79ad9..abd8b751ba 100644
}
--
2.25.0.windows.1
2.25.0

@ -1 +1 @@
Subproject commit e601e7aaa1372fb30ee4334f446d73273a0a3cd1
Subproject commit 93e39ce1934a9a7675550c12a7bd4861a2030f2b

@ -1 +1 @@
Subproject commit e911c70f855e7785f79ffb8b428a12d0e8c31fec
Subproject commit ab13a117a910635638886991a2d77a82261b2cb6

@ -1 +1 @@
Subproject commit 800b93fb8cfcad0ac393eb401e00a40475722be3
Subproject commit f2c1cd15d99e523ef21cd1f761914a2b9eb940b8