59 lines
3.1 KiB
Diff
59 lines
3.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 27 Dec 2016 15:02:42 -0500
|
|
Subject: [PATCH] String based Action Bar API
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetActionBarTextPacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetActionBarTextPacket.java
|
|
index 32ef3edebe94a2014168b7e438752a80b2687e5f..ab6c58eed6707ab7b0aa3e7549a871ad7dfad87f 100644
|
|
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSetActionBarTextPacket.java
|
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSetActionBarTextPacket.java
|
|
@@ -7,6 +7,7 @@ import net.minecraft.network.protocol.Packet;
|
|
public class ClientboundSetActionBarTextPacket implements Packet<ClientGamePacketListener> {
|
|
private final Component text;
|
|
public net.kyori.adventure.text.Component adventure$text; // Paper
|
|
+ public net.md_5.bungee.api.chat.BaseComponent[] components; // Paper
|
|
|
|
public ClientboundSetActionBarTextPacket(Component message) {
|
|
this.text = message;
|
|
@@ -21,6 +22,8 @@ public class ClientboundSetActionBarTextPacket implements Packet<ClientGamePacke
|
|
// Paper start
|
|
if (this.adventure$text != null) {
|
|
buf.writeComponent(this.adventure$text);
|
|
+ } else if (this.components != null) {
|
|
+ buf.writeComponent(this.components);
|
|
} else
|
|
// Paper end
|
|
buf.writeComponent(this.text);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index 4b7e5996b8b49d96f14cbd0d2167a0a09b47f4ec..843764d27c490e94bcf2becdafb15e5f1a68bc92 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -355,6 +355,26 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
}
|
|
|
|
// Paper start
|
|
+ @Override
|
|
+ public void sendActionBar(BaseComponent[] message) {
|
|
+ if (getHandle().connection == null) return;
|
|
+ net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket packet = new net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket((net.minecraft.network.chat.Component) null);
|
|
+ packet.components = message;
|
|
+ getHandle().connection.send(packet);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void sendActionBar(String message) {
|
|
+ if (getHandle().connection == null || message == null || message.isEmpty()) return;
|
|
+ getHandle().connection.send(new net.minecraft.network.protocol.game.ClientboundSetActionBarTextPacket(CraftChatMessage.fromStringOrNull(message)));
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void sendActionBar(char alternateChar, String message) {
|
|
+ if (message == null || message.isEmpty()) return;
|
|
+ sendActionBar(org.bukkit.ChatColor.translateAlternateColorCodes(alternateChar, message));
|
|
+ }
|
|
+
|
|
@Override
|
|
public void setPlayerListHeaderFooter(BaseComponent[] header, BaseComponent[] footer) {
|
|
if (header != null) {
|