461353e2cb
This was useful when plugins first started upgrading to uuid because each plugin would implement their own way for grabbing uuid's from mojang. Because none of them shared the result they would quickly hit the limits on the api causing the conversion to either fail or pause for long periods of time. The global api cache was a (very hacky) way to force all plugins to share a cache but caused a few issues with plugins that expected a full implementation of the HTTPURLConnection. Due to the fact that most servers/plugins have updated now it seems to be a good time to remove this as its usefulness mostly has expired.
128 lines
4.2 KiB
Diff
128 lines
4.2 KiB
Diff
From 06a72830d5a89704ea9b527d6231ace86df7e050 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 0000000..f9a25e9
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/minecraft/server/PacketPlayOutChat.java
|
|
@@ -0,0 +1,47 @@
|
|
+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 7cb8a31..d7e3919 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -121,6 +121,7 @@ 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];
|
|
@@ -1691,6 +1692,20 @@ 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 e529156..c81d5d2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -18,6 +18,7 @@ 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.*;
|
|
|
|
@@ -1428,6 +1429,20 @@ 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()
|
|
--
|
|
2.1.0
|
|
|