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.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import net.md_5.bungee.api.Callback;
|
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.CommandSender;
|
||||||
import net.md_5.bungee.api.Title;
|
import net.md_5.bungee.api.Title;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
@ -31,6 +32,22 @@ public interface ProxiedPlayer extends Connection, CommandSender
|
|||||||
*/
|
*/
|
||||||
void setDisplayName(String name);
|
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
|
* Connects / transfers this user to the specified connection, gracefully
|
||||||
* closing the current one. Depending on the implementation, this method
|
* 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.RequiredArgsConstructor;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.md_5.bungee.api.Callback;
|
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.ProxyServer;
|
||||||
import net.md_5.bungee.api.Title;
|
import net.md_5.bungee.api.Title;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
@ -370,13 +371,44 @@ public final class UserConnection implements ProxiedPlayer
|
|||||||
@Override
|
@Override
|
||||||
public void sendMessage(BaseComponent... message)
|
public void sendMessage(BaseComponent... message)
|
||||||
{
|
{
|
||||||
unsafe().sendPacket( new Chat( ComponentSerializer.toString( message ) ) );
|
sendMessage( ChatMessageType.CHAT, message );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void sendMessage(BaseComponent message)
|
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
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user