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

  • Автор темы Автор темы Kotlar
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kotlar

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
kirilka1996
Доброе утро,
Я пытаюсь сделать меню на сервере. Всё работает, но есть одно но:
Если передвинуть менюшный предмет, то сама система перестает работать.
К тому же если нажимать рукой на блоки правой кнопкой мыши то происходит ошибка плагина.
Помогите, пожалуйста.
Вот код
Код:
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.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.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));
    }
}
}
Заранее очень благодарен!
 
Доброе утро,
Я пытаюсь сделать меню на сервере. Всё работает, но есть одно но:
Если передвинуть менюшный предмет, то сама система перестает работать.
К тому же если нажимать рукой на блоки правой кнопкой мыши то происходит ошибка плагина.
Помогите, пожалуйста.
Вот код
Код:
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.*********ventory.Inventory;
import org.*********ventory.ItemStack;
import org.*********ventory.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));
    }
}
}
Заранее очень благодарен!
Боже, я ослеп.

Во-первых, текст сравнивается через equals.
 
Это конечно очень весело пилить собственный гуи, но чем вам не понравился ChestCommands?
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх