spigot/CraftBukkit-Patches/0130-BungeeCord-Chat-API.patch

117 lines
4.4 KiB
Diff
Raw Normal View History

2017-05-14 12:00:00 +10:00
From 6272d2730c09c87ece7ad5ae90b6453b1acdaf43 Mon Sep 17 00:00:00 2001
From: md_5 <git@md-5.net>
Date: Sat, 13 Dec 2014 03:06:05 +0100
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
2017-05-14 12:00:00 +10:00
index b1fddee7..67666d35 100644
2016-03-01 08:33:06 +11:00
--- a/src/main/java/net/minecraft/server/PacketPlayOutChat.java
+++ b/src/main/java/net/minecraft/server/PacketPlayOutChat.java
2016-03-01 08:33:06 +11:00
@@ -5,6 +5,7 @@ import java.io.IOException;
public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
private IChatBaseComponent a;
+ public net.md_5.bungee.api.chat.BaseComponent[] components; // Spigot
2017-05-14 12:00:00 +10:00
private ChatMessageType b;
2016-03-01 08:33:06 +11:00
public PacketPlayOutChat() {}
@@ -24,7 +25,13 @@ public class PacketPlayOutChat implements Packet<PacketListenerPlayOut> {
}
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
2017-05-14 12:00:00 +10:00
packetdataserializer.writeByte(this.b.a());
2016-03-01 08:33:06 +11:00
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
2017-05-14 12:00:00 +10:00
index 8ab9321f..8a0043d3 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
2017-05-14 12:00:00 +10:00
@@ -130,6 +130,7 @@ import jline.console.ConsoleReader;
import org.bukkit.NamespacedKey;
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
2016-05-19 20:48:52 +10:00
import org.bukkit.event.server.TabCompleteEvent;
+import net.md_5.bungee.api.chat.BaseComponent;
public final class CraftServer implements Server {
private static final Player[] EMPTY_PLAYER_ARRAY = new Player[0];
2017-05-14 12:00:00 +10:00
@@ -1733,6 +1734,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
2017-05-14 12:00:00 +10:00
index 1ea43796..e6dcddc6 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
2017-02-16 11:55:41 +11:00
@@ -21,6 +21,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.*;
2015-07-10 22:33:16 +10:00
import net.minecraft.server.PacketPlayOutTitle.EnumTitleAction;
2017-05-14 12:00:00 +10:00
@@ -1558,6 +1559,34 @@ 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);
+ }
+
+ @Override
+ public void sendMessage(net.md_5.bungee.api.ChatMessageType position, BaseComponent component) {
+ sendMessage( position, new BaseComponent[] { component } );
+ }
+
+ @Override
+ public void sendMessage(net.md_5.bungee.api.ChatMessageType position, BaseComponent... components) {
+ if ( getHandle().playerConnection == null ) return;
+
2017-05-14 12:00:00 +10:00
+ PacketPlayOutChat packet = new PacketPlayOutChat(null, ChatMessageType.a((byte) position.ordinal()));
+ packet.components = components;
+ getHandle().playerConnection.sendPacket(packet);
+ }
};
public Player.Spigot spigot()
--
2017-04-14 15:11:45 +10:00
2.11.0