Помогите Проблема с заполнением из конфига

  • Автор темы Автор темы Primer
  • Дата начала Дата начала

Primer

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Primer_Legend
Всем привет! Не могли вы мне помочь? Я не могу понять что здесь не так уже 4 часа.
Ошибка
Код:
[02:19:28 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'admin' in plugin PluginTest v1.0
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:48) ~[patched_1.13.2.jar:git-Paper-655]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:151) ~[patched_1.13.2.jar:git-Paper-655]
        at org.bukkit.craftbukkit.v1_13_R2.CraftServer.dispatchCommand(CraftServer.java:734) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.PlayerConnection.handleCommand(PlayerConnection.java:1783) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.PlayerConnection.a(PlayerConnection.java:1591) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.PacketPlayInChat.a(PacketPlayInChat.java:5) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:15) ~[patched_1.13.2.jar:git-Paper-655]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at net.minecraft.server.v1_13_R2.SystemUtils.a(SystemUtils.java:108) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1018) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:940) ~[patched_1.13.2.jar:git-Paper-655]
        at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:837) ~[patched_1.13.2.jar:git-Paper-655]
        at java.lang.Thread.run(Thread.java:834) [?:?]
Caused by: java.lang.NullPointerException
        at org.plugin.mc.plugintest.Menu.getInventory(Menu.java:61) ~[?:?]
        at org.plugin.mc.plugintest.MenuOpen.onCommand(MenuOpen.java:17) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[patched_1.13.2.jar:git-Paper-655]
        ... 15 more
Главный класс
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public final class PluginTest extends JavaPlugin implements Listener {

    FileConfiguration config;


    @Override
    public void onEnable() {
        config = getConfig();
        saveDefaultConfig();
        getLogger().info("Enabled!");
        getServer().getPluginCommand("admin").setExecutor(new MenuOpen(this));
        Bukkit.getServer().getPluginManager().registerEvents(new EventListener(this), this);
        Bukkit.getServer().getPluginManager().registerEvents(new Menu(this), this);
        if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {

            Bukkit.getPluginManager().registerEvents(this, this);
        } else {
            getLogger().info("Could not find PlaceholderAPI! This plugin is required.");
            Bukkit.getPluginManager().disablePlugin(this);
        }
    }
}
Listener класс
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.bukkit.plugin.Plugin;

public class EventListener implements Listener {

    private Plugin plugin;

    public EventListener(Plugin plugin) {
        this.plugin = plugin;
    }

    @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
    public void onClick(InventoryClickEvent e) {
        Inventory inv = e.getInventory();
        if (inv != null && inv.getHolder() instanceof Menu) {
            e.setCancelled(true);
        }
    }

    @EventHandler
    public void onMenuClickStop(InventoryClickEvent e) {
        Player p = (Player) e.getWhoClicked();
                if (e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.BARRIER && e.getCurrentItem().hasItemMeta() && e.getClickedInventory().getHolder() != null) {
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServer")));
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServer")));
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServer")));
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServer")));
                    Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServer")));
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[Admin Tool] " + this.plugin.getConfig().getString("StoppingServer")));
                    Bukkit.shutdown();
                }
            }

    @EventHandler
    public void onMenuClickReload(InventoryClickEvent e) {
        if (e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.CLOCK && e.getCurrentItem().hasItemMeta() && e.getClickedInventory().getHolder() != null) {
            Player p = (Player) e.getWhoClicked();
            p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[Admin Tool] " + this.plugin.getConfig().getString("ReloadingServer")));
            p.closeInventory();
            Bukkit.reload();
            p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6[Admin Tool] " + this.plugin.getConfig().getString("ReloadedServer")));
        }
    }
    @EventHandler
    public void onMenuClickClearChat(InventoryClickEvent e) {
        if (e.getCurrentItem() != null && e.getCurrentItem().getType() == Material.SNOWBALL && e.getCurrentItem().hasItemMeta() && e.getClickedInventory().getHolder() != null) {
            Player p = (Player) e.getWhoClicked();
            p.closeInventory();
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage("");
            Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&',  this.plugin.getConfig().getString("ChatClear")));
        }
    }
}
 
Класс с gui
Ошибка в 61 строке и если убрать её то будет в следующей такой же строке

stop_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerDisplayName")));
Код:
            stop_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerDisplayName")));
фулл класс с gui
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.Listener;
import org.*********ventory.Inventory;
import org.*********ventory.InventoryHolder;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;

import java.util.ArrayList;

public class Menu implements InventoryHolder, Listener {
    public Inventory inv;

    private Plugin plugin;

    public Menu(PluginTest plugin) {
        this.plugin = plugin;
    }

    public Menu() {

    }


    @Override
    public Inventory getInventory () {
        if (inv == null) {
            inv  =  Bukkit.createInventory(this, 54, "Admin menu");
            inv.setItem(0, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(1, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(2, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(3, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(4, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(5, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(6, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(7, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(8, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(9, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(17, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(18, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(26, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(27, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(35, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(36, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(44, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(45, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(46, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(47, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(48, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(49, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(50, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(51, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(52, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(53, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            ItemStack stop = new ItemStack(Material.BARRIER);
            ItemMeta stop_meta = stop.getItemMeta();
            stop_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerDisplayName")));
            ArrayList<String> stop_lore = new ArrayList<>();
            stop_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerLore")));
            stop_meta.setLore(stop_lore);
            stop.setItemMeta(stop_meta);
            inv.setItem(10, stop);

            ItemStack reload = new ItemStack(Material.CLOCK);
            ItemMeta reload_meta = reload.getItemMeta();
            reload_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerDisplayName")));
            ArrayList<String>reload_lore = new ArrayList<>();
            reload_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerLore")));
            reload_meta.setLore(reload_lore);
            reload.setItemMeta(reload_meta);
            inv.setItem(11, reload);


            ItemStack clearchat = new ItemStack(Material.SNOWBALL);
            ItemMeta clearchat_meta = clearchat.getItemMeta();
            clearchat_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearDisplayName")));
            ArrayList<String>clearchat_lore = new ArrayList<>();
            clearchat_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearLore")));
            clearchat_meta.setLore(clearchat_lore);
            clearchat.setItemMeta(clearchat_meta);
            inv.setItem(12, clearchat);
        }
        return inv;
    }
}
Класс с командой открытие gui
Код:
package org.plugin.mc.plugintest;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.*********ventory.Inventory;

public class MenuOpen implements CommandExecutor {
    public PluginTest plugin;
    public MenuOpen(PluginTest plugin) {
        this.plugin = plugin;
    }

    public boolean onCommand(CommandSender sender, Command cmd, String str, String[] args) {
        Menu menu = new Menu();
        Inventory inv = menu.getInventory();
        Player p = (Player) sender;
        p.openInventory(inv);
        return false;
    }
}
Конфиг
Код:
StoppingServer: '&cServer Stopping!'
ReloadingServer: '&cReloading Server!'
ReloadedServer: '&aServer Reloaded'
ChatClear: '&aThe chat was cleared by the administration'
StoppingServerDisplayName: '&cStop Server'
ReloadServerDisplayName: '&cReload Server'
ChatClearDisplayName: '&cChat Clear'
StoppingServerLore: '&7Stop Server'
ReloadServerLore: '&7Reload Server'
ChatClearLore: '&7Chat Clear'
Спасибо заранее за помощь)
 
В подробности не вдавался, но у тебя в главном классе сначала в config сохраняется конфиг (которого пока нема), а только потом ты сохраняешь дефолт. Попробуй поменять местами. Ну и проверь, совпадает ли с дефолтным конфиг на сервере
 
Нет в классе с Listener всё ок вот еще добавил в menu и всё гг
 
В подробности не вдавался, но у тебя в главном классе сначала в config сохраняется конфиг (которого пока нема), а только потом ты сохраняешь дефолт. Попробуй поменять местами. Ну и проверь, совпадает ли с дефолтным конфиг на сервере
Сделал не помогло
 
У меня мозг вытек, быстро удаляй этот бред :D
 
Кажется, нашёл. В классе с командой ты создаёшь Menu конструктором без аргументов, т.е. в этом объекте plugin == null, а затем ты используешь в нём метод, использующий plugin.getConfig(), и логично получаешь нульпоинтер. Удали конструктор без аргументов.

п.с. а вообще согласен с александраге
 
Кажется, нашёл. В классе с командой ты создаёшь Menu конструктором без аргументов, т.е. в этом объекте plugin == null, а затем ты используешь в нём метод, использующий plugin.getConfig(), и логично получаешь нульпоинтер. Удали конструктор без аргументов.

п.с. а вообще согласен с александраге
upload_2021-9-6_3-28-45.pngтеперь это вылезло
 
бл чё я такой додик я не могу в эти скобки добавить plugin -_-
Работает спасибо огромное!
 
Как то так.
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public final class PluginTest extends JavaPlugin {

    @Override
    public void onEnable() {
        saveDefaultConfig();
       
        if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
            getLogger().info("Could not find PlaceholderAPI! This plugin is required.");
            Bukkit.getPluginManager().disablePlugin(this);
        }
        getServer().getPluginCommand("admin").setExecutor(new MenuOpen(this));
        Bukkit.getServer().getPluginManager().registerEvents(new EventListener(this), this);
    }
}
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.Listener;
import org.*********ventory.Inventory;
import org.*********ventory.InventoryHolder;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;

import java.util.ArrayList;

public class Menu implements InventoryHolder {
   
    private Inventory inv;
    private Plugin plugin;

    public Menu(Plugin plugin) {
        this.plugin = plugin;
    }


    @Override
    public Inventory getInventory () {
        if (inv == null) {
            inv  =  Bukkit.createInventory(this, 54, "Admin menu");
            inv.setItem(0, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(1, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(2, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(3, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(4, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(5, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(6, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(7, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(8, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(9, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(17, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(18, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(26, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(27, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(35, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(36, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(44, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(45, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(46, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(47, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(48, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(49, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(50, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(51, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(52, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(53, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            ItemStack stop = new ItemStack(Material.BARRIER);
            ItemMeta stop_meta = stop.getItemMeta();
            stop_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerDisplayName")));
            ArrayList<String> stop_lore = new ArrayList<>();
            stop_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerLore")));
            stop_meta.setLore(stop_lore);
            stop.setItemMeta(stop_meta);
            inv.setItem(10, stop);

            ItemStack reload = new ItemStack(Material.CLOCK);
            ItemMeta reload_meta = reload.getItemMeta();
            reload_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerDisplayName")));
            ArrayList<String>reload_lore = new ArrayList<>();
            reload_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerLore")));
            reload_meta.setLore(reload_lore);
            reload.setItemMeta(reload_meta);
            inv.setItem(11, reload);


            ItemStack clearchat = new ItemStack(Material.SNOWBALL);
            ItemMeta clearchat_meta = clearchat.getItemMeta();
            clearchat_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearDisplayName")));
            ArrayList<String>clearchat_lore = new ArrayList<>();
            clearchat_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearLore")));
            clearchat_meta.setLore(clearchat_lore);
            clearchat.setItemMeta(clearchat_meta);
            inv.setItem(12, clearchat);
        }
        return inv;
    }
}
 
Как то так.
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public final class PluginTest extends JavaPlugin {

    @Override
    public void onEnable() {
        saveDefaultConfig();
       
        if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") == null) {
            getLogger().info("Could not find PlaceholderAPI! This plugin is required.");
            Bukkit.getPluginManager().disablePlugin(this);
        }
        getServer().getPluginCommand("admin").setExecutor(new MenuOpen(this));
        Bukkit.getServer().getPluginManager().registerEvents(new EventListener(this), this);
    }
}
Код:
package org.plugin.mc.plugintest;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.event.Listener;
import org.*********ventory.Inventory;
import org.*********ventory.InventoryHolder;
import org.*********ventory.ItemStack;
import org.*********ventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;

import java.util.ArrayList;

public class Menu implements InventoryHolder {
    public Inventory inv;

    private Plugin plugin;

    public Menu(Plugin plugin) {
        this.plugin = plugin;
    }


    @Override
    public Inventory getInventory () {
        if (inv == null) {
            inv  =  Bukkit.createInventory(this, 54, "Admin menu");
            inv.setItem(0, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(1, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(2, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(3, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(4, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(5, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(6, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(7, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(8, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(9, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(17, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(18, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(26, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(27, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(35, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(36, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(44, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(45, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(46, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(47, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(48, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(49, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(50, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(51, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(52, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            inv.setItem(53, new ItemStack(Material.PINK_STAINED_GLASS_PANE, 1));
            ItemStack stop = new ItemStack(Material.BARRIER);
            ItemMeta stop_meta = stop.getItemMeta();
            stop_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerDisplayName")));
            ArrayList<String> stop_lore = new ArrayList<>();
            stop_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("StoppingServerLore")));
            stop_meta.setLore(stop_lore);
            stop.setItemMeta(stop_meta);
            inv.setItem(10, stop);

            ItemStack reload = new ItemStack(Material.CLOCK);
            ItemMeta reload_meta = reload.getItemMeta();
            reload_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerDisplayName")));
            ArrayList<String>reload_lore = new ArrayList<>();
            reload_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ReloadServerLore")));
            reload_meta.setLore(reload_lore);
            reload.setItemMeta(reload_meta);
            inv.setItem(11, reload);


            ItemStack clearchat = new ItemStack(Material.SNOWBALL);
            ItemMeta clearchat_meta = clearchat.getItemMeta();
            clearchat_meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearDisplayName")));
            ArrayList<String>clearchat_lore = new ArrayList<>();
            clearchat_lore.add(ChatColor.translateAlternateColorCodes('&', this.plugin.getConfig().getString("ChatClearLore")));
            clearchat_meta.setLore(clearchat_lore);
            clearchat.setItemMeta(clearchat_meta);
            inv.setItem(12, clearchat);
        }
        return inv;
    }
}
Уже помог Sturm_PT
 
Назад
Верх