2014-12-19 00:33:08 +01:00
|
|
|
From a55031efdfc7db45e85a65da6289f56e665d862e Mon Sep 17 00:00:00 2001
|
2014-12-14 22:54:10 +01:00
|
|
|
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 8b4b580..980dd99 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];
|
|
|
|
@@ -1689,6 +1690,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
|
2014-12-19 00:33:08 +01:00
|
|
|
index f291a66..9167baf 100644
|
2014-12-14 22:54:10 +01:00
|
|
|
--- 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.*;
|
|
|
|
|
2014-12-19 00:33:08 +01:00
|
|
|
@@ -1430,6 +1431,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
2014-12-14 22:54:10 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
|