Skocz do zawartości
  • 0

Nie wiem jak to nazwac, ale to pilne.


Pytanie

Witam, powiedzmy ze mam 3klasy.

Main, klase z komenda /pomoc i /vip, i klase z blokowaniem wyjmowania itemow.

w klasie z komenda jest zrobione cos takiego.

public void createMenuPomoc(Player p){
	Inventory inv = Bukkit.createInventory(null,9,"gffggf");

i komenda z inventory dla vip. (Wyobrazcie sobie ze komendy sa zrobione, to tylko sposob na inventory)

public void createMenuVip(Player p){
	Inventory inv = Bukkit.createInventory(null,9,"assad");

A w klasie z blokowaniem wyjmowanie itemow. (oddzielnej)

	@EventHandler
	public void onInvClick(InventoryClickEvent e){		
		
		Player p = (Player) e.getWhoClicked();
		
		if(e.getInventory().getName().contains(ChatColor.translateAlternateColorCodes('&', "nazwa inventory z pomoc"))){
			if(e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.translateAlternateColorCodes('&', "kliknij aby zobaczyc inventory z vipem"))){
				p.performCommand("socialmedia");
				e.setCancelled(true);

Jak wiemy, mamy perform command, ale czy da sie zrobic ze zamiast tego mozna to zrobic posobem, ze w linijce gdzie jest p.perform command mozna dac createMenuVip(p);

Prosze o szybka odpowiedz i o taka, ktora mi pomoze.

Odnośnik do komentarza
https://skript.pl/temat/27580-nie-wiem-jak-to-nazwac-ale-to-pilne/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Robisz public Inventory createMenuVIP() który zwraca twoje inventory i w klasie z inventoryclick robisz p.OpenInventory(createMenuVip());

Edytowane przez knugi
Odnośnik do komentarza
https://skript.pl/temat/27580-nie-wiem-jak-to-nazwac-ale-to-pilne/#findComment-182423
Udostępnij na innych stronach

  • 0

@knugi, nie działa. Swieci mi sie na czerwono to createMenu.

		if(e.getInventory().getName().contains(ChatColor.translateAlternateColorCodes('&', "&8[&3Pomoc&8]"))){
			if(e.getCurrentItem().getItemMeta().getDisplayName().contains(ChatColor.translateAlternateColorCodes('&', "&3SocialMedia"))){
				p.openInventory(createSocialMedia(p));
				e.setCancelled(true);

Jest zapisane dobrze, bo sprawdzalem. Bez tego p tez nie dziala.

Jak na to najade wyswietla sie komunikat "create metodh.. i ta metoda"

Odnośnik do komentarza
https://skript.pl/temat/27580-nie-wiem-jak-to-nazwac-ale-to-pilne/#findComment-182429
Udostępnij na innych stronach

  • 0

Zmien modyfikator dostepu na public/protected i metode createCosTam zrób statyczną, wtedy bedziesz mogl odwolac sie do niej z innej klasy, tylko jeszcze przed otworzeniem takiego inventory lepiej zamknij stare inventory (player.closeInventory();) - bo nie wiem co sie stanie jak bedziesz mial otwarte jedno, a sprobujesz otworzyc drugie - raczej nic sie nie stanie, no ale lepiej zamykac.

 

no i co do samego kodu: inventory moze byc nullem - gdy gracz kliknie poza gui - sprawdzaj takie cos, tak samo item - moze byc nullem lub jego nazwa/itemmeta - tez cos z tym rob.

No i skoro nigdzie nie wrzucasz do inventory nicku gracza, czy cos w tym stylu (np. w lore od itemu) to takie inventory moze byc zapisane w fieldzie i pozniej mozesz sie do niego odwolywac, np: p.openInventory(this.someInventory);, "if (e.getInventory().getTitle().equalsIgnoreCase(this.someInventory().getTitle()) ..."

Edytowane przez yooniks
Odnośnik do komentarza
https://skript.pl/temat/27580-nie-wiem-jak-to-nazwac-ale-to-pilne/#findComment-182442
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...