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

Nietypowy błąd z GUI


SkredoX

Rekomendowane odpowiedzi

Opublikowano

Witam, tym razem mam problem z GUI w moim pluginie na drop, dosyć nie typowy bo.. Zresztą zobaczcie sami:
 

	  public static void reloadInventory(Inventory inventory, Player player, User user)
	  {
	    int count = 0;
	    for (Drop d : DropManager.drop_list)
	    {
	      inventory.setItem(count, ItemUtil.dropItem(d, user));
	      count++;
	    }
	    inventory.setItem(12, ItemUtil.exp());
	    inventory.setItem(13, ItemUtil.turbodrop());
	  }
	  



Tworzenie inventory w evencie:

 

						 if ((meta.getDisplayName() != null) && (meta.getDisplayName().equals(ChatUtil.fixColors("&cDrop ze &7&lSTONE&c!")))) {
							 p.closeInventory();
							  Inventory inventory = Bukkit.createInventory(null, 36, ChatUtil.fixColors("&8» &cDROP ZE &7STONE"));
							 InventoryManager.reloadInventory(inv, (Player)p, UserManager.getUser(p.getName()));
							 ((Player)p).openInventory(inventory);
							 e.setCancelled(true);
						 }


Prosze o pomoc.
 

Opublikowano

Mój boże, nie ma to jak castować Player'a do player'a.. (@edit no chyba ,że "p" to commandsender wtf)

aż mi sie po prostu nie chca patrzeć na ten kod..

Serio idź sie naucz podstaw, a nie podpierdzielasz jakieś duże pluginy i podpisujesz je pod siebie, a później sie chwalisz ",a no wszystkie pluginy autorskie, sam robiłem".

 

Cytat

							 InventoryManager.reloadInventory(inv, (Player)p, UserManager.getUser(p.getName()));
							 ((Player)p).openInventory(inventory);

zgaduje ,że inventory "inv" to inventory gracza (p.getInventory()).
Pierw otwórz inventory inventory i wtedy reloadInventory(inventory, p, u);

					private static final Inventory inventory = Bukkit.createInventory(null, 36, ChatUtil.fixColors("&8» &cDROP ZE &7STONE"));



						final Player p = //Gracz
						final User u = UserManager.getUser(p.getName());
						if ((meta.getDisplayName() != null) && (meta.getDisplayName().equals(ChatUtil.fixColors("&cDrop ze &7&lSTONE&c!")))){
							 e.setCancelled(true);
							 p.closeInventory();
							 p.openInventory(inventory);
							 InventoryManager.reloadInventory(inventory, p, u);
						 }

wszędzie tak sprawdzasz? np. też przy dropu z pierożka?

						if ((meta.getDisplayName() != null) && (meta.getDisplayName().equals(ChatUtil.fixColors("&cDrop ze &7&lSTONE&c!")))){

bezsensu

						if (meta.getDisplayName() == null){
							return;
						}

 

Cytat

w moim pluginie na drop

GDYBY TO BYŁ TWÓJ PLUGIN TO BYŚ WIEDZIAŁ CO JEST ŹLE, PROSZE NIE PODPISUJ SIE POD PRACE KOGOŚ INNEGO..

 

Aktualnie interesuję się javą, powoli ogarniam java swing i awt, czasem bawię się HTML.

Opublikowano

Pewnie dlatego, że wybierasz inventory gracza zamiast tego od dropu.

 

Inventory inventory = Bukkit.createInventory(null, 36, ChatUtil.fixColors("&8» &cDROP ZE &7STONE"));
InventoryManager.reloadInventory(inv, (Player)p, UserManager.getUser(p.getName()));
((Player)p).openInventory(inventory);

Domyślasz się co tu jest źle? Tworzysz inventory a reload'ujesz inne. Rozwiązanie tego jest banalne(jeżeli reszta działa tak jak powinna) tylko wystarczy wiedzieć co się robi.

 

 

Ja rozumiem, że uczysz się podbierając komuś kod, sam się tak niektórych rzeczy uczyłem ale trzeba znać chociażby podstawy i rozumieć to co się robi.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...