Simple Network Chat Walkthrough
Getting a reference to ProtonManager
Before you do anything with Proton, you need a reference to ProtonManager. In your onEnable() method, store a reference to it.
public void onEnable(){
manager = Proton.getProtonManager();
}Forward chat messages network-wide
Create an event listener for the async chat event and broadcast your custom data there. In this case, we opted for a container class which holds the player name and message.
@EventHandler
public void onPlayerChat(AsyncPlayerChatEvent event){
PlayerMessage message = new PlayerMessage(event.getPlayer().getName(), event.getMessage());
manager.broadcast("networkchat", "chatMessage", message);
}Listen for the broadcasted message
Here we will listen for broadcasted messages using a MessageHandler
@MessageHandler(namespace = "networkchat", subject="chatMessage")
public void onChatReceived(PlayerMessage message){
getServer().broadcastMessage(String.format("<%s> %s", message.getPlayer(), message.getMessage()));
}We must also register our MessageHandlers with Proton. This is done through the registerMessageHandlers method.
We're done! You will now be able to chat network-wide.
Full Code (with Bukkit API calls)
Last updated
Was this helpful?