Add chat position API.
This commit is contained in:
parent
772c8d7f2b
commit
f19cc7fe4f
@ -4,6 +4,7 @@ import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import net.md_5.bungee.api.Callback;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.CommandSender;
|
||||
import net.md_5.bungee.api.Title;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
@ -31,6 +32,22 @@ public interface ProxiedPlayer extends Connection, CommandSender
|
||||
*/
|
||||
void setDisplayName(String name);
|
||||
|
||||
/**
|
||||
* Send a message to the specified screen position of this player.
|
||||
*
|
||||
* @param position the screen position
|
||||
* @param message the message to send
|
||||
*/
|
||||
public void sendMessage(ChatMessageType position, BaseComponent... message);
|
||||
|
||||
/**
|
||||
* Send a message to the specified screen position of this player.
|
||||
*
|
||||
* @param position the screen position
|
||||
* @param message the message to send
|
||||
*/
|
||||
public void sendMessage(ChatMessageType position, BaseComponent message);
|
||||
|
||||
/**
|
||||
* Connects / transfers this user to the specified connection, gracefully
|
||||
* closing the current one. Depending on the implementation, this method
|
||||
|
11
chat/src/main/java/net/md_5/bungee/api/ChatMessageType.java
Normal file
11
chat/src/main/java/net/md_5/bungee/api/ChatMessageType.java
Normal file
@ -0,0 +1,11 @@
|
||||
package net.md_5.bungee.api;
|
||||
|
||||
/**
|
||||
* Represents the position on the screen where a message will appear.
|
||||
*/
|
||||
public enum ChatMessageType
|
||||
{
|
||||
CHAT,
|
||||
SYSTEM,
|
||||
ACTION_BAR
|
||||
}
|
@ -24,6 +24,7 @@ import lombok.NonNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.Setter;
|
||||
import net.md_5.bungee.api.Callback;
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.ProxyServer;
|
||||
import net.md_5.bungee.api.Title;
|
||||
import net.md_5.bungee.api.chat.BaseComponent;
|
||||
@ -370,13 +371,44 @@ public final class UserConnection implements ProxiedPlayer
|
||||
@Override
|
||||
public void sendMessage(BaseComponent... message)
|
||||
{
|
||||
unsafe().sendPacket( new Chat( ComponentSerializer.toString( message ) ) );
|
||||
sendMessage( ChatMessageType.CHAT, message );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(BaseComponent message)
|
||||
{
|
||||
unsafe().sendPacket( new Chat( ComponentSerializer.toString( message ) ) );
|
||||
sendMessage( ChatMessageType.CHAT, message );
|
||||
}
|
||||
|
||||
private void sendMessage(ChatMessageType position, String message)
|
||||
{
|
||||
unsafe().sendPacket( new Chat( message, (byte) position.ordinal() ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(ChatMessageType position, BaseComponent... message)
|
||||
{
|
||||
// Action bar doesn't display the new JSON formattings, legacy works - send it using this for now
|
||||
if ( position == ChatMessageType.ACTION_BAR && pendingConnection.getVersion() >= ProtocolConstants.MINECRAFT_SNAPSHOT )
|
||||
{
|
||||
sendMessage( position, ComponentSerializer.toString( new TextComponent( TextComponent.toLegacyText( message ) ) ) );
|
||||
} else
|
||||
{
|
||||
sendMessage( position, ComponentSerializer.toString( message ) );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(ChatMessageType position, BaseComponent message)
|
||||
{
|
||||
// Action bar doesn't display the new JSON formattings, legacy works - send it using this for now
|
||||
if ( position == ChatMessageType.ACTION_BAR && pendingConnection.getVersion() >= ProtocolConstants.MINECRAFT_SNAPSHOT )
|
||||
{
|
||||
sendMessage( position, ComponentSerializer.toString( new TextComponent( TextComponent.toLegacyText( message ) ) ) );
|
||||
} else
|
||||
{
|
||||
sendMessage( position, ComponentSerializer.toString( message ) );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user