在BungeeCord中更改Motd和ServerPing

问题描述

import java.util.UUID;

import net.md_5.bungee.api.ServerPing;
import net.md_5.bungee.api.event.ProxyPingEvent;
import net.md_5.bungee.api.plugin.Listener;
import net.md_5.bungee.event.EventHandler;

public class MOTD implements Listener {
    
    @EventHandler
    
    public void onPing(ProxyPingEvent e) {
        
        ServerPing ping = e.getResponse();
        ServerPing.Players player = ping.getPlayers();
        ServerPing.Protocol vers = ping.getVersion();
        
        vers.setName("§4 Test");
        
        
        e.getResponse().setVersion(new ServerPing.Protocol( "some random text",2));
        player.setSample(new ServerPing.PlayerInfo[] {new ServerPing.PlayerInfo("here is some text aswell.",UUID.randomUUID()) });
        
        ping.setDescription("and a whole ton of randomt text here");
        
        e.setResponse(ping);

到目前为止,这就是我的代码。在屏幕截图中,您将得到结果。 但我不希望红色的“ x”与客户过期消息。 我想用自己的文本在网上做些事。有任何想法吗? #(如果我将鼠标悬停在“文本”上,则会看到自己的文本,但是如果我将鼠标悬停在“ ping”上,则会收到OutofDate消息。)

enter image description here

解决方法

这是带注释的固定代码:

@EventHandler

public void onPing(ProxyPingEvent e) {
    ServerPing ping = e.getResponse();
    ServerPing.Players player = ping.getPlayers();
    ServerPing.Protocol vers = ping.getVersion();

    // change version text,but dont change version protocol id
    // because that causes the RED X in server browser
    vers.setName("Some version text");

    player.setSample(new ServerPing.PlayerInfo[] {
        new ServerPing.PlayerInfo("here is some text aswell.",UUID.randomUUID())
    });

    ping.setDescription("and a whole ton of randomt text here");

    e.setResponse(ping);
}