Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

[Решено!]Проблемы с меню

Discussion in 'Разработка плагинов для новичков' started by Kotlar, Jun 23, 2016.

Thread Status:
Not open for further replies.
  1. Автор темы
    Kotlar

    Kotlar Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    kirilka1996
    Доброе утро,
    Я пытаюсь сделать меню на сервере. Всё работает, но есть одно но:
    Если передвинуть менюшный предмет, то сама система перестает работать.
    К тому же если нажимать рукой на блоки правой кнопкой мыши то происходит ошибка плагина.
    Помогите, пожалуйста.
    Вот код
    Code:
    package sunrise.menu;
    
    import java.util.logging.Logger;
    
    import net.md_5.bungee.api.ChatColor;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    //import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryCloseEvent;
    //import org.bukkit.event.inventory.InventoryType;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    public class menu extends JavaPlugin implements Listener {
        public static final Logger _log = Logger.getLogger("Minecraft");
        public static menu plugin;
        ItemStack m = new ItemStack(Material.APPLE,1);
        ItemMeta menuinfo = m.getItemMeta();
        String menutext = ChatColor.GREEN + "Меню сервера" + ChatColor.RED + " [ПКМ]";
        Inventory men = Bukkit.createInventory(null,9,ChatColor.RED + "Меню");
       
    @Override
    public void onEnable(){
        _log.info(_log.getName() + " Has been Loading ");
        Bukkit.getServer().getPluginManager().registerEvents((Listener) this, this);
    }
    @Override
    public void onDisable(){
        _log.info(_log.getName() + " Has been Disable ");
        }
    @EventHandler
    public void OnJoin(PlayerJoinEvent event){
        Player p = event.getPlayer();
        event.setJoinMessage(" ");
        _log.info("Geting menu for player..");
        menuinfo.setDisplayName(menutext);
        m.setItemMeta(menuinfo);
        if(p.getInventory().getItemInHand() != m) p.setItemInHand(m);
    }
    @EventHandler
    public void Onq(PlayerQuitEvent event){
        event.getPlayer().getInventory().removeItem(m);
    }
    @EventHandler
    public void onpickitem(PlayerInteractEvent event){
        Player p = event.getPlayer();
        if(p.getItemInHand().getItemMeta().getDisplayName() == menutext){
            if(event.getAction() == Action.RIGHT_CLICK_BLOCK || event.getAction() == Action.RIGHT_CLICK_AIR)
            {
                men.addItem(new ItemStack(Material.ENDER_CHEST,1));
                men.addItem(new ItemStack(Material.DIAMOND,1));
                p.openInventory(men);
            }
        }
    }
    /*@EventHandler
    public void ondag(InventoryClickEvent e){
            if(e.getClickedInventory().getType() == InventoryType.PLAYER){
                if(e.getCurrentItem().getItemMeta().getDisplayName() == menutext){
                    e.setCancelled(true);
                }
            }
        }*/
    @EventHandler
    public void oncloseinv(InventoryCloseEvent e){
        if(e.getInventory().getName().equals(ChatColor.RED + "Меню"))
        {
            men.removeItem(new ItemStack(Material.ENDER_CHEST,1));
            men.removeItem(new ItemStack(Material.DIAMOND,1));
        }
    }
    }
    
    Заранее очень благодарен!
     
  2. Хостинг MineCraft
    <
  3. CoolBoy

    CoolBoy Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Боже, я ослеп.

    Во-первых, текст сравнивается через equals.
     
  4. Автор темы
    Kotlar

    Kotlar Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    kirilka1996
    Исправил, спасибо.
    Есть ещё что то больное в этом коде, кроме моих рук?
     
  5. CoolBoy

    CoolBoy Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ужасная табуляция.
     
  6. ObviouslyDuck

    ObviouslyDuck Активный участник

    Trophy Points:
    61
    Имя в Minecraft:
    IWantToGetLife
    Это конечно очень весело пилить собственный гуи, но чем вам не понравился ChestCommands?
     
  7. Автор темы
    Kotlar

    Kotlar Активный участник Пользователь

    Trophy Points:
    66
    Имя в Minecraft:
    kirilka1996
    учусь типо :)
     
  8. CoolBoy

    CoolBoy Активный участник Пользователь

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    DeluxeMenus всё равно топ.
     
Thread Status:
Not open for further replies.

Share This Page