From d49b826db9f982fd0909efd219787ce33707c356 Mon Sep 17 00:00:00 2001 From: md_5 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 index c5147b6..c0e1199 100644 --- a/src/main/java/net/minecraft/server/PacketPlayOutChat.java +++ b/src/main/java/net/minecraft/server/PacketPlayOutChat.java @@ -5,6 +5,7 @@ import java.io.IOException; public class PacketPlayOutChat implements Packet { private IChatBaseComponent a; + public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot private byte b; public PacketPlayOutChat() {} @@ -24,7 +25,13 @@ public class PacketPlayOutChat implements Packet { } public void b(PacketDataSerializer packetdataserializer) throws IOException { - packetdataserializer.a(this.a); + // 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); } diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index cabb3e5..7831a12 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -126,6 +126,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]; @@ -1721,6 +1722,20 @@ public final class CraftServer implements Server { public void restart() { org.spigotmc.RestartCommand.restart(); } + + @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 b1521b6..9298344 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -19,6 +19,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.*; import net.minecraft.server.PacketPlayOutTitle.EnumTitleAction; @@ -1521,6 +1522,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.5.0