Помогите java.lang.NoSuchFieldException: a

Namer_PRO

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Namer_PRO
Ругается на это:
PHP:
pHeader = packet.getClass().getDeclaredField("a");

Ругается так:
PHP:
[20:41:01 WARN]: java.lang.NoSuchFieldException: a
[20:41:01 WARN]:        at java.lang.Class.getField(Unknown Source)
[20:41:01 WARN]:        at ru.namerpro.testPlugin.TabList.setTabListHeaderFooter(TabList.java:35)
[20:41:01 WARN]:        at ru.namerpro.testPlugin.Main.displayTab(Main.java:53)
[20:41:01 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[20:41:01 WARN]:        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
[20:41:01 WARN]:        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
[20:41:01 WARN]:        at java.lang.reflect.Method.invoke(Unknown Source)
[20:41:01 WARN]:        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305)
[20:41:01 WARN]:        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
[20:41:01 WARN]:        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501)
[20:41:01 WARN]:        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.PlayerList.onPlayerJoin(PlayerList.java:343)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.PlayerList.a(PlayerList.java:162)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.LoginListener.b(LoginListener.java:149)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.LoginListener.tick(LoginListener.java:53)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.NetworkManager.a(NetworkManager.java:230)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.ServerConnection.c(ServerConnection.java:119)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:994)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:417)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:831)
[20:41:01 WARN]:        at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:729)
[20:41:01 WARN]:        at java.lang.Thread.run(Unknown Source)

Весь код:
PHP:
package ru.namerpro.TabListForBumirang;

import java.lang.reflect.Field;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.craftbukkit.v1_13_R2.entity.CraftPlayer;
import org.bukkit.entity.Player;

import net.minecraft.server.v1_13_R2.ChatComponentText;
import net.minecraft.server.v1_13_R2.IChatBaseComponent;
import net.minecraft.server.v1_13_R2.PacketPlayOutPlayerListHeaderFooter;
import net.minecraft.server.v1_13_R2.PlayerConnection;

public class TabList
{
    
    public static void setTabListHeaderFooter(Player player, String header, String footer)
    {
        
        CraftPlayer cplayer = (CraftPlayer) player;
        PlayerConnection con = cplayer.getHandle().playerConnection;
        
        PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter();
        
        IChatBaseComponent setHeader = new ChatComponentText(translateColorCodes(header));
        IChatBaseComponent setFooter = new ChatComponentText(translateColorCodes(footer));
        
        Field pHeader = null;
        Field pFooter = null;
        
        try
        {
            
            pHeader = packet.getClass().getDeclaredField("a");
            
            pHeader.setAccessible(true);
            pHeader.set(packet, setHeader);
            pHeader.setAccessible(!pHeader.isAccessible());
            
            
            pFooter = packet.getClass().getDeclaredField("b");
            
            pFooter.setAccessible(true);
            pFooter.set(packet, setFooter);
            pFooter.setAccessible(!pFooter.isAccessible());
            
        }
        catch(Exception error)
        {
            
            Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "Packets error! If everything is ok with your config, contact me on spigot discussion page or pm. Send me config file and error:");
            
            error.printStackTrace();
            
        }
        
        con.sendPacket(packet);
        
    }
    
    public static String translateColorCodes(String textToBeTranslated)
    {
        
        return ChatColor.translateAlternateColorCodes('&', textToBeTranslated);
        
    }
    
}

Вопрос?
Как это исправить...
 
Зачем? Player#setPlayerListHeaderFooter
Спасибо, а с какой версии это появилось и зачем тогда NMS для таб листа (полно уроков есть на эту тему просто и что это все бестолково?)?
Т.е. для анимации я могу через Scheduler вызывать Player#setPlayerListHeaderFooter?
 
Спасибо, а с какой версии это появилось и зачем тогда NMS для таб листа (полно уроков есть на эту тему просто и что это все бестолково?)?
Т.е. для анимации я могу через Scheduler вызывать Player#setPlayerListHeaderFooter?
Точно не помню, вроде с 1.13.2. Уроков полно, т.к они до появления 1.13.2 вышли.
Скорее всего можешь, попробуй.
 
У меня \n не работает. Как быть?
Просто не рисует то, что после \n
 
Назад
Верх