Помогите BungeeCord GetServer возвращает null

JustMelon_

Активный участник
Пользователь
Баллы
66
Ник в Minecraft
JustMelon_
Доброе утро, форумчане. Я написал код по оф. вики BungeeCord Messaging Channel. Я хотел получить название сервера, но мне всегда возвращается null. Помогите, пожалуйста.
 
Показывай код отправки запроса и получения ответа.

И вопросы по разработке задавай в этом разделе: https://rubukkit.org/forums/razrabotka-plaginov-dlja-novichkov.7/
Извините, что ошибся разделом, запомню на будущее.

Код:
public final class Manager extends JavaPlugin implements PluginMessageListener {
    private static Manager instance;
    public static TagManager tagManager = new TagManager();

    public String server_name;

    public static Plugin getInstance() {
        return instance;
    }

    @Override
    public void onEnable() {
        instance = this;
        this.getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
        this.getServer().getMessenger().registerIncomingPluginChannel(this, "BungeeCord", this);

        this.getCommand("connect").setExecutor(new ConnectCommand());

        // Plugin startup logic
        getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "[PANDAWORLD] Launched successfully!");
        getServer().getPluginManager().registerEvents(new EventsClass(), this);
        getServer().getPluginManager().registerEvents(new ItemJoin(), this);
        getServer().getPluginManager().registerEvents(new ChatEvent(), this);
        getServer().getPluginManager().registerEvents(new Scoreboard(), this);
        getServer().getPluginManager().registerEvents(new TagManager(), this);

        //  TAB
        if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
            Bukkit.getLogger().warning("PAPI is required to work.");
            Bukkit.getPluginManager().disablePlugin(this);
            return;
        }

        TabManager tab = new TabManager();
        tab.addHeaderLine("");
        tab.addHeaderLine("&a&lPANDAWORLD");
        tab.addHeaderLine("&fЛучший сервер по мини-играм");
        tab.addHeaderLine("");

        tab.addFooterLine("");
        tab.addFooterLine("&fВы находитесь на сервере &a" + server_name);
        tab.addFooterLine("");

        Bukkit.getScheduler().runTaskTimerAsynchronously(this, () -> {
            for (Player player : Bukkit.getOnlinePlayers()) {
                tab.update(player);
                ByteArrayDataOutput out = ByteStreams.newDataOutput();
                out.writeUTF("GetServer");
                player.sendPluginMessage(this, "BungeeCord", out.toByteArray());
            }
        }, 0L, 20L);
    }

    @Override
    public void onDisable() {
        getServer().getConsoleSender().sendMessage(ChatColor.RED + "[PANDAWORLD] Disabled!");

        this.getServer().getMessenger().unregisterOutgoingPluginChannel(this);
        this.getServer().getMessenger().unregisterIncomingPluginChannel(this);
    }

    @Override
    public void onPluginMessageReceived(String channel, Player player, byte[] message) {
        if (!channel.equals("BungeeCord")) {
            return;
        }
        ByteArrayDataInput in = ByteStreams.newDataInput(message);
        String subchannel = in.readUTF();
        if (subchannel.equals("GetServer")) {
            server_name = in.readUTF();
        }
    }
}
 
Скорее всего, до назначения значения переменной дело просто не доходит, поэтому она постоянно и null. А вот почему так происходит - сходу сказать сложно. Вроде регистрация есть, сообщения тоже отправляются.

Добавь отладку, чтобы полнять, выполняется ли метод onPluginMessageReceived()

Например так:
this.getLogger().info("Получили PluginMessage в канале " + channel)
 
Я использую ботфильтр от славы, может в этом проблема?
 
Назад
Верх Низ