1
0
Fork 0
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:
Zach Brown 2014-12-14 15:54:10 -06:00
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

View 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();
--

View file

@ -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();
}
--

View file

@ -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) {
--

View file

@ -15,6 +15,4 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
<Appenders>
<Console name="WINDOWS_COMPAT" target="SYSTEM_OUT"></Console>
<Queue name="TerminalConsole">
--
1.9.4.msysgit.2
--

View file

@ -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 {

View 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()
--