Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Z inventory - bukkit


Rekomendowane odpowiedzi

Opublikowano

witam Zrobiłem inventory które ma zmieniać GameModa Jednak problem jest w tym ze mozna wyciągać itemy z tego a GameModa nie zmienia 

 

 

tu jest event od tego 

	@EventHandler
	public void Click(InventoryClickEvent e){
		if(!e.getInventory().getName().equals(ChatColor.BLACK + "Inventory")){
			return;
		}
		
		
        if(e.getCurrentItem().getItemMeta() == null){
            return;
}
		
        if(e.getCurrentItem().getItemMeta().getDisplayName() == sur.getItemMeta().getDisplayName()){
        	 if(e.getWhoClicked() instanceof Player){
        		Player p = (Player) e.getWhoClicked();
        		p.setGameMode(GameMode.SURVIVAL);
        		p.closeInventory();
        	
        	}
        }
       
          
            
	
	}
	
	

 

 

Opublikowano

Zrób sobie dwie klasy o podanej nazwie:

MenuInv
Menu

A w klasie Menu to ;)

public class Menu implements Listener {


        private Inventory inv;
        private ItemStack c, s, a;
       
        public Menu(Plugin p) {
                inv = Bukkit.getServer().createInventory(null, 9, "Gamemode Chooser");
               
                c = createItem(DyeColor.GREEN, ChatColor.GREEN + "Creative");
                s = createItem(DyeColor.YELLOW, ChatColor.YELLOW + "Survival");
                a = createItem(DyeColor.RED, ChatColor.RED + "Adventure");
               
                inv.setItem(2, c);
                inv.setItem(4, s);
                inv.setItem(6, a);
               
                Bukkit.getServer().getPluginManager().registerEvents(this, p);
        }
       
        private ItemStack createItem(DyeColor dc, String name) {
                ItemStack i = new Wool(dc).toItemStack(1);
                ItemMeta im = i.getItemMeta();
                im.setDisplayName(name);
                im.setLore(Arrays.asList("Ustawiono tryb", "na " + name.toLowerCase() + " mode"));
                i.setItemMeta(im);
                return i;
        }
       
        public void show(Player p) {
                p.openInventory(inv);
        }
       
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
                if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
                if (e.getCurrentItem().getItemMeta() == null) return;
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Creative")) {
                        e.setCancelled(true);
                        e.getWhoClicked().setGameMode(GameMode.CREATIVE);
                        e.getWhoClicked().closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Survival")) {
                        e.setCancelled(true);
                        e.getWhoClicked().setGameMode(GameMode.SURVIVAL);
                        e.getWhoClicked().closeInventory();
                }
                if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Adventure")) {
                        e.setCancelled(true);
                        e.getWhoClicked().setGameMode(GameMode.ADVENTURE);
                        e.getWhoClicked().closeInventory();
                }
        }
}

I w klasie MenuInv wklej sobie to:

public class MenuInv extends JavaPlugin implements Listener {

        private Menu menu;
       
        public void onEnable() {
                menu = new Menu(this);
                Bukkit.getServer().getPluginManager().registerEvents(this, this);
        }
       
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent e) {
                if (!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return;
                menu.show(e.getPlayer());
        }
}

Można zrobić to w 1 klasie, ale masz w 2 ;)

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...