mirror of
https://github.com/PaperMC/Paper.git
synced 2025-02-23 13:08:32 +01:00
Update from upstream SpigotMC
3e3ea0bd0d8 320ed92779f 612de468951
This commit is contained in:
parent
6e2bd0745f
commit
de978d5161
90 changed files with 211 additions and 77 deletions
Bukkit-Patches
CraftBukkit-Patches
0072-Catch-stalling-on-corrupted-map-data-NBT-arrays.patch0072-Support-vanilla-s-direction-tag-on-fireballs.patch0073-Allow-toggling-of-ZombiePigmen-spawning-in-portal-bl.patch0073-Support-non-prefixed-URLs.patch0074-Highly-Optimized-Tick-Loop.patch0075-Add-Spigot-Links.patch0076-Configurable-Ping-Sample-Size.patch0077-Add-Optional-Tick-Shuffling.patch0078-Allow-Configuring-Chunks-per-Packet.patch0079-Implement-Locale-Getter-for-Players.patch0080-Cap-Entity-Collisions.patch0081-Fix-dispensing-bone-meal-not-having-the-correct-data.patch0082-Spam-Filter-Exclusions.patch0083-Add-Option-to-Silence-CommandBlock-Console.patch0084-Add-support-for-fetching-hidden-players.patch0085-Allow-Disabling-Creative-Item-Filter.patch0086-Cap-Channel-Registrations.patch0087-Allow-vanilla-commands-to-be-the-main-version-of-a-c.patch0088-Unfinalize-the-isDisconnected-method-by-bukkit.patch0089-Implement-Silenceable-Lightning-API.patch0090-Use-one-PermissibleBase-for-all-Command-Blocks.patch0091-Prevent-hoppers-from-loading-chunks.patch0092-Guard-Entity-List.patch0093-Fix-ConcurrentModificationException-while-being-idle.patch0094-Cancellable-WitherSkull-potion-effect.patch0095-Descriptive-kick-reasons-instead-of-Nope.patch0096-Configurable-dragon-death-and-wither-spawn-sounds.patch0097-Display-Spigot-in-client-crashes-server-lists-and-Mo.patch0098-Treat-Bungee-as-Online-Mode.patch0099-Add-Conversion-Message.patch0100-Properly-cancel-fishing-event.-Fixes-BUKKIT-5396.patch0101-Print-Stack-on-InternalException.patch0102-Use-Offline-Player-Data-Once-if-Required.patch0103-Use-Provided-Case-for-Non-Existent-Offline-Players.patch0104-Check-for-blank-OfflinePlayer-Names.patch0105-Fix-Player-Banning.patch0106-Fix-ban-expire-dates.patch0107-Correct-Ban-Expiration.patch0108-Convert-Horses-owner-to-UUID.patch0109-Expand-team-API-to-allow-arbitrary-strings.patch0110-Add-Score.isScoreSet-Z-API.patch0111-Log-null-TileEntity-Owner.patch0112-Don-t-special-case-invalid-usernames-for-UUIDs.patch0113-Convert-player-skulls-async.patch0114-Prevent-NoClassDefError-crash-and-notify-on-crash.patch0115-Check-Skull-canPlace.patch0116-Don-t-let-trees-replace-any-block.patch0117-Fix-race-condition-that-could-kill-connections-befor.patch0118-Configurable-UserCache-cap.patch0119-Implement-PlayerSpawnLocationEvent.patch0120-Cap-Objective-Score-Length.patch0121-Process-conversation-input-on-the-main-thread.-Fixes.patch0122-Configurable-save-on-stop-only-for-UserCache.patch0123-Prevent-Unbounded-IntCache-Growth.patch0124-Add-damager-to-the-unhandled-error.patch0125-Cross-World-Entity-Teleportation.patch0126-Limit-block-placement-interaction-packets.patch0127-Better-item-validation.patch0128-Further-Seed-Customisation.patch0129-Disable-ResourceLeakDetector.patch0130-Add-More-Information-to-session.lock-Errors.patch0131-Safer-JSON-Loading.patch0132-Fix-Slow-Loading-Libraries.patch0133-Add-CommandLine-EULA-Flag.patch0134-Fix-for-enchanting-table-wiping-meta-when-placing-st.patch0135-Don-t-spawn-bonus-ocelots-when-plugins-spawn-ocelots.patch0136-Prevent-a-crash-involving-attributes.patch0137-Make-moved-wrongly-limit-configurable.patch0138-Fix-Null-Tile-Entity-Worlds.patch0139-Make-moved-too-quickly-limit-configurable.patch0140-Alternative-Hopper-Ticking.patch0141-Apply-NBTReadLimiter-to-more-things.patch0142-Allow-Attribute-Capping.patch0143-Add-an-option-for-a-global-cache-for-any-request-on-.patch0144-Only-fetch-an-online-UUID-in-online-mode.patch0145-Filter-attribute-modifiers-which-cause-the-attribute.patch0146-Plug-WorldMap-Memory-Leak.patch0147-Fix-Corrupted-Trapped-Chest.patch0148-Remove-uneeded-validation.patch0149-Add-Hunger-Config-Values.patch0150-Make-debug-logging-togglable.patch0151-Skip-invalid-enchants-in-CraftMetaItem.patch0152-Limit-TNT-Detonations-per-tick.patch0153-Added-isUnbreakable-and-setUnbreakable-to-ItemMeta.patch0154-Configurable-Hanging-Tick.patch0155-Fix-Some-Memory-Leaks.patch0156-Refactor-ItemDoor-Place.patch0157-Don-t-Fire-InventoryCloseEvent-Unless-Required.patch0158-BungeeCord-Chat-API.patch
83
Bukkit-Patches/0031-BungeeCord-Chat-API.patch
Normal file
83
Bukkit-Patches/0031-BungeeCord-Chat-API.patch
Normal file
|
@ -0,0 +1,83 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <git@md-5.net>
|
||||
Date: Sat, 13 Dec 2014 12:59:14 +1100
|
||||
Subject: [PATCH] BungeeCord Chat API
|
||||
|
||||
|
||||
diff --git a/pom.xml b/pom.xml
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/pom.xml
|
||||
+++ b/pom.xml
|
||||
@@ -0,0 +0,0 @@
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
+ <dependency>
|
||||
+ <groupId>net.md-5</groupId>
|
||||
+ <artifactId>bungeecord-chat</artifactId>
|
||||
+ <version>1.8-SNAPSHOT</version>
|
||||
+ <type>jar</type>
|
||||
+ <scope>compile</scope>
|
||||
+ </dependency>
|
||||
|
||||
<!-- testing -->
|
||||
<dependency>
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -0,0 +0,0 @@ public interface Server extends PluginMessageRecipient {
|
||||
{
|
||||
throw new UnsupportedOperationException( "Not supported yet." );
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Sends the component to the player
|
||||
+ *
|
||||
+ * @param component the components to send
|
||||
+ */
|
||||
+ public void broadcast(net.md_5.bungee.api.chat.BaseComponent component) {
|
||||
+ throw new UnsupportedOperationException("Not supported yet.");
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sends an array of components as a single message to the player
|
||||
+ *
|
||||
+ * @param components the components to send
|
||||
+ */
|
||||
+ public void broadcast(net.md_5.bungee.api.chat.BaseComponent... components) {
|
||||
+ throw new UnsupportedOperationException("Not supported yet.");
|
||||
+ }
|
||||
}
|
||||
|
||||
Spigot spigot();
|
||||
diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/entity/Player.java
|
||||
+++ b/src/main/java/org/bukkit/entity/Player.java
|
||||
@@ -0,0 +0,0 @@ public interface Player extends HumanEntity, Conversable, CommandSender, Offline
|
||||
{
|
||||
throw new UnsupportedOperationException( "Not supported yet." );
|
||||
}
|
||||
+
|
||||
+ /**
|
||||
+ * Sends the component to the player
|
||||
+ *
|
||||
+ * @param component the components to send
|
||||
+ */
|
||||
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent component) {
|
||||
+ throw new UnsupportedOperationException("Not supported yet.");
|
||||
+ }
|
||||
+
|
||||
+ /**
|
||||
+ * Sends an array of components as a single message to the player
|
||||
+ *
|
||||
+ * @param components the components to send
|
||||
+ */
|
||||
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent... components) {
|
||||
+ throw new UnsupportedOperationException("Not supported yet.");
|
||||
+ }
|
||||
}
|
||||
|
||||
Spigot spigot();
|
||||
--
|
|
@ -1,34 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thinkofdeath <thethinkofdeath@gmail.com>
|
||||
Date: Sat, 18 Jan 2014 14:27:03 +0000
|
||||
Subject: [PATCH] Support vanilla's direction tag on fireballs
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityFireball.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityFireball.java
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityFireball extends Entity {
|
||||
nbttagcompound.setByte("inGround", (byte) (this.i ? 1 : 0));
|
||||
// CraftBukkit - Fix direction being mismapped to invalid variables
|
||||
nbttagcompound.set("power", this.a(new double[] { this.dirX, this.dirY, this.dirZ}));
|
||||
+ // Spigot - Support vanilla's direction tag
|
||||
+ nbttagcompound.set("direction", this.a(new double[] { this.motX, this.motY, this.motZ}));
|
||||
}
|
||||
|
||||
public void a(NBTTagCompound nbttagcompound) {
|
||||
@@ -0,0 +0,0 @@ public abstract class EntityFireball extends Entity {
|
||||
this.dirY = nbttaglist.d(1);
|
||||
this.dirZ = nbttaglist.d(2);
|
||||
// CraftBukkit end
|
||||
+ } else if (nbttagcompound.hasKeyOfType("direction", 9)) { // Spigot - Support vanilla's direction tag
|
||||
+ NBTTagList nbttaglist = nbttagcompound.getList("direction", 6);
|
||||
+
|
||||
+ this.motX = nbttaglist.d(0);
|
||||
+ this.motY = nbttaglist.d(1);
|
||||
+ this.motZ = nbttaglist.d(2);
|
||||
+
|
||||
} else {
|
||||
this.die();
|
||||
}
|
||||
--
|
|
@ -1,39 +0,0 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Thinkofdeath <thethinkofdeath@gmail.com>
|
||||
Date: Sat, 18 Jan 2014 19:32:42 +0000
|
||||
Subject: [PATCH] Support non-prefixed URLs
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftChatMessage.java
|
||||
@@ -0,0 +0,0 @@ import com.google.common.collect.ImmutableMap.Builder;
|
||||
public final class CraftChatMessage {
|
||||
private static class StringMessage {
|
||||
private static final Map<Character, EnumChatFormat> formatMap;
|
||||
- private static final Pattern INCREMENTAL_PATTERN = Pattern.compile("(" + String.valueOf(org.bukkit.ChatColor.COLOR_CHAR) + "[0-9a-fk-or])|(\\n)|(?:(https?://[^ ][^ ]*?)(?=[\\.\\?!,;:]?(?:[ \\n]|$)))", Pattern.CASE_INSENSITIVE);
|
||||
+ private static final Pattern INCREMENTAL_PATTERN = Pattern.compile("(" + String.valueOf(org.bukkit.ChatColor.COLOR_CHAR) + "[0-9a-fk-or])|(\\n)|((?:(?:https?)://)?(?:[-\\w_\\.]{2,}\\.[a-z]{2,4}.*?(?=[\\.\\?!,;:]?(?:[" + String.valueOf(org.bukkit.ChatColor.COLOR_CHAR) + " \\n]|$))))", Pattern.CASE_INSENSITIVE);
|
||||
|
||||
static {
|
||||
Builder<Character, EnumChatFormat> builder = ImmutableMap.builder();
|
||||
@@ -0,0 +0,0 @@ public final class CraftChatMessage {
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
+ if ( !( match.startsWith( "http://" ) || match.startsWith( "https://" ) ) ) {
|
||||
+ match = "http://" + match;
|
||||
+ }
|
||||
modifier.setChatClickable(new ChatClickable(EnumClickAction.OPEN_URL, match));
|
||||
appendNewComponent(matcher.end(groupId));
|
||||
modifier.setChatClickable((ChatClickable) null);
|
||||
@@ -0,0 +0,0 @@ public final class CraftChatMessage {
|
||||
appendNewComponent(message.length());
|
||||
}
|
||||
|
||||
- output = list.toArray(new IChatBaseComponent[0]);
|
||||
+ output = list.toArray(new IChatBaseComponent[list.size()]);
|
||||
}
|
||||
|
||||
private void appendNewComponent(int index) {
|
||||
--
|
|
@ -15,6 +15,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
<Appenders>
|
||||
<Console name="WINDOWS_COMPAT" target="SYSTEM_OUT"></Console>
|
||||
<Queue name="TerminalConsole">
|
||||
--
|
||||
1.9.4.msysgit.2
|
||||
|
||||
--
|
|
@ -19,7 +19,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
|||
this.lastY = this.locY;
|
||||
this.lastZ = this.locZ;
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
index 0000000000000000000000000000000000000000..00000000000000000000000000000000000000004 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
126
CraftBukkit-Patches/0158-BungeeCord-Chat-API.patch
Normal file
126
CraftBukkit-Patches/0158-BungeeCord-Chat-API.patch
Normal file
|
@ -0,0 +1,126 @@
|
|||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: md_5 <git@md-5.net>
|
||||
Date: Sat, 13 Dec 2014 13:06:05 +1100
|
||||
Subject: [PATCH] BungeeCord Chat API
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PacketPlayOutChat.java b/src/main/java/net/minecraft/server/PacketPlayOutChat.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/net/minecraft/server/PacketPlayOutChat.java
|
||||
@@ -0,0 +0,0 @@
|
||||
+package net.minecraft.server;
|
||||
+
|
||||
+public class PacketPlayOutChat implements Packet {
|
||||
+
|
||||
+ private IChatBaseComponent a;
|
||||
+ public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot
|
||||
+ private byte b;
|
||||
+
|
||||
+ public PacketPlayOutChat() {}
|
||||
+
|
||||
+ public PacketPlayOutChat(IChatBaseComponent ichatbasecomponent) {
|
||||
+ this(ichatbasecomponent, (byte) 1);
|
||||
+ }
|
||||
+
|
||||
+ public PacketPlayOutChat(IChatBaseComponent ichatbasecomponent, byte b0) {
|
||||
+ this.a = ichatbasecomponent;
|
||||
+ this.b = b0;
|
||||
+ }
|
||||
+
|
||||
+ public void a(PacketDataSerializer packetdataserializer) {
|
||||
+ this.a = packetdataserializer.d();
|
||||
+ this.b = packetdataserializer.readByte();
|
||||
+ }
|
||||
+
|
||||
+ public void b(PacketDataSerializer packetdataserializer) {
|
||||
+ // Spigot start
|
||||
+ if (components != null) {
|
||||
+ packetdataserializer.a(net.md_5.bungee.chat.ComponentSerializer.toString(components));
|
||||
+ } else {
|
||||
+ packetdataserializer.a(this.a);
|
||||
+ }
|
||||
+ // Spigot end
|
||||
+ packetdataserializer.writeByte(this.b);
|
||||
+ }
|
||||
+
|
||||
+ public void a(PacketListenerPlayOut packetlistenerplayout) {
|
||||
+ packetlistenerplayout.a(this);
|
||||
+ }
|
||||
+
|
||||
+ public boolean b() {
|
||||
+ return this.b == 1 || this.b == 2;
|
||||
+ }
|
||||
+
|
||||
+ public void a(PacketListener packetlistener) {
|
||||
+ this.a((PacketListenerPlayOut) packetlistener);
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -0,0 +0,0 @@ import io.netty.buffer.ByteBufOutputStream;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import io.netty.handler.codec.base64.Base64;
|
||||
import jline.console.ConsoleReader;
|
||||
+import net.md_5.bungee.api.chat.BaseComponent;
|
||||
|
||||
public final class CraftServer implements Server {
|
||||
private static final Player[] EMPTY_PLAYER_ARRAY = new Player[0];
|
||||
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
||||
{
|
||||
return org.spigotmc.SpigotConfig.config;
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public void broadcast(BaseComponent component) {
|
||||
+ for (Player player : getOnlinePlayers()) {
|
||||
+ player.spigot().sendMessage(component);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void broadcast(BaseComponent... components) {
|
||||
+ for (Player player : getOnlinePlayers()) {
|
||||
+ player.spigot().sendMessage(components);
|
||||
+ }
|
||||
+ }
|
||||
};
|
||||
|
||||
public Spigot spigot()
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -0,0 +0,0 @@ import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
+import net.md_5.bungee.api.chat.BaseComponent;
|
||||
|
||||
import net.minecraft.server.*;
|
||||
|
||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
|
||||
return java.util.Collections.unmodifiableSet( ret );
|
||||
}
|
||||
+
|
||||
+ @Override
|
||||
+ public void sendMessage(BaseComponent component) {
|
||||
+ sendMessage( new BaseComponent[] { component } );
|
||||
+ }
|
||||
+
|
||||
+ @Override
|
||||
+ public void sendMessage(BaseComponent... components) {
|
||||
+ if ( getHandle().playerConnection == null ) return;
|
||||
+
|
||||
+ PacketPlayOutChat packet = new PacketPlayOutChat();
|
||||
+ packet.components = components;
|
||||
+ getHandle().playerConnection.sendPacket(packet);
|
||||
+ }
|
||||
};
|
||||
|
||||
public Player.Spigot spigot()
|
||||
--
|
Loading…
Add table
Reference in a new issue