2017-11-10 10:52:45 +11:00
|
|
|
From ae9d21f8f0026f8b035c4ceff9315ed63dc6a9c1 Mon Sep 17 00:00:00 2001
|
2014-12-13 13:06:31 +11:00
|
|
|
From: md_5 <git@md-5.net>
|
2016-04-11 19:17:52 +10:00
|
|
|
Date: Sat, 13 Dec 2014 03:06:05 +0100
|
2014-12-13 13:06:31 +11:00
|
|
|
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-11-07 19:39:07 +11:00
|
|
|
index b1fddee7..67666d35 100644
|
2016-03-01 08:33:06 +11:00
|
|
|
--- a/src/main/java/net/minecraft/server/PacketPlayOutChat.java
|
2014-12-13 13:06:31 +11:00
|
|
|
+++ 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;
|
2014-12-13 13:06:31 +11:00
|
|
|
+ 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);
|
2014-12-13 13:06:31 +11:00
|
|
|
+ // 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
|
|
|
}
|
|
|
|
|
2014-12-13 13:06:31 +11:00
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
2017-11-07 19:39:07 +11:00
|
|
|
index 494e4930..814be6ee 100644
|
2014-12-13 13:06:31 +11:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
2017-08-03 23:00:00 +10:00
|
|
|
@@ -133,6 +133,7 @@ import org.apache.commons.lang.StringUtils;
|
2017-05-14 12:00:00 +10:00
|
|
|
import org.bukkit.NamespacedKey;
|
|
|
|
import org.bukkit.craftbukkit.util.CraftNamespacedKey;
|
2016-05-19 20:48:52 +10:00
|
|
|
import org.bukkit.event.server.TabCompleteEvent;
|
2014-12-13 13:06:31 +11:00
|
|
|
+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-09-09 15:44:16 +10:00
|
|
|
@@ -1765,6 +1766,20 @@ public final class CraftServer implements Server {
|
2015-07-13 19:12:24 +10:00
|
|
|
public void restart() {
|
|
|
|
org.spigotmc.RestartCommand.restart();
|
2014-12-13 13:06:31 +11:00
|
|
|
}
|
|
|
|
+
|
|
|
|
+ @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);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
};
|
|
|
|
|
2017-05-15 15:44:15 +10:00
|
|
|
public Spigot spigot()
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ServerCommandSender.java b/src/main/java/org/bukkit/craftbukkit/command/ServerCommandSender.java
|
2017-11-07 19:39:07 +11:00
|
|
|
index c10a8445..5c3421dd 100644
|
2017-05-15 15:44:15 +10:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/command/ServerCommandSender.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/command/ServerCommandSender.java
|
|
|
|
@@ -81,6 +81,17 @@ public abstract class ServerCommandSender implements CommandSender {
|
|
|
|
// Spigot start
|
|
|
|
private final Spigot spigot = new Spigot()
|
|
|
|
{
|
|
|
|
+ @Override
|
|
|
|
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent component)
|
|
|
|
+ {
|
|
|
|
+ ServerCommandSender.this.sendMessage(net.md_5.bungee.api.chat.TextComponent.toLegacyText(component));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent... components)
|
|
|
|
+ {
|
|
|
|
+ ServerCommandSender.this.sendMessage(net.md_5.bungee.api.chat.TextComponent.toLegacyText(components));
|
|
|
|
+ }
|
|
|
|
};
|
|
|
|
|
|
|
|
@Override
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
2017-11-10 10:52:45 +11:00
|
|
|
index 0285242a..55fe6437 100644
|
2017-05-15 15:44:15 +10:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
2017-11-07 19:39:07 +11:00
|
|
|
@@ -737,6 +737,16 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
2017-05-15 15:44:15 +10:00
|
|
|
{
|
|
|
|
return getHandle().isInvulnerable(net.minecraft.server.DamageSource.GENERIC);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent component)
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public void sendMessage(net.md_5.bungee.api.chat.BaseComponent... components)
|
|
|
|
+ {
|
|
|
|
+ }
|
|
|
|
};
|
|
|
|
|
2014-12-13 13:06:31 +11:00
|
|
|
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-11-07 19:39:07 +11:00
|
|
|
index 3e883409..ca138fa6 100644
|
2014-12-13 13:06:31 +11:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
2017-05-27 19:09:48 +10:00
|
|
|
@@ -20,6 +20,7 @@ import java.util.Set;
|
2014-12-13 13:06:31 +11:00
|
|
|
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-07-26 13:22:16 +10:00
|
|
|
@@ -1592,6 +1593,38 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
2014-12-13 13:06:31 +11: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;
|
|
|
|
+
|
2017-05-15 15:44:15 +10:00
|
|
|
+ PacketPlayOutChat packet = new PacketPlayOutChat(null, ChatMessageType.CHAT);
|
2014-12-13 13:06:31 +11:00
|
|
|
+ packet.components = components;
|
|
|
|
+ getHandle().playerConnection.sendPacket(packet);
|
2016-04-11 19:17:52 +10:00
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @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()));
|
2017-06-08 19:04:38 +10:00
|
|
|
+ // Action bar doesn't render colours, replace colours with legacy section symbols
|
|
|
|
+ if (position == net.md_5.bungee.api.ChatMessageType.ACTION_BAR) {
|
|
|
|
+ components = new BaseComponent[]{new net.md_5.bungee.api.chat.TextComponent(BaseComponent.toLegacyText(components))};
|
|
|
|
+ }
|
2016-04-11 19:17:52 +10:00
|
|
|
+ packet.components = components;
|
|
|
|
+ getHandle().playerConnection.sendPacket(packet);
|
2014-12-13 13:06:31 +11:00
|
|
|
+ }
|
|
|
|
};
|
|
|
|
|
|
|
|
public Player.Spigot spigot()
|
|
|
|
--
|
2017-11-07 19:39:07 +11:00
|
|
|
2.14.1
|
2014-12-13 13:06:31 +11:00
|
|
|
|