Skocz do zawartości
  • 0

GUI


KoSaTuGRA

Pytanie

Witam.

Dopiero uczę się pisać pluginy i mam problem. Nie wiem jak mam otworzyć te gui co niżej

	public void onCreateInventory() {
		Inventory GUI = Bukkit.createInventory(null, 27, "SKLEP");
		ItemStack szklo = new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1);
		ItemMeta metaszklo = szklo.getItemMeta();
		metaszklo.setDisplayName("");
		metaszklo.setLore(Arrays.asList(""));
		szklo.setItemMeta(metaszklo);
		GUI.setItem(0, szklo);
		GUI.setItem(1, szklo);
		GUI.setItem(2, szklo);
		GUI.setItem(3, szklo);
		GUI.setItem(4, szklo);
		GUI.setItem(5, szklo);
		GUI.setItem(6, szklo);
		GUI.setItem(7, szklo);
		GUI.setItem(8, szklo);
		GUI.setItem(9, szklo);
		GUI.setItem(11, szklo);
		GUI.setItem(13, szklo);
		GUI.setItem(15, szklo);
		GUI.setItem(17, szklo);
		GUI.setItem(19, szklo);
		GUI.setItem(20, szklo);
		GUI.setItem(21, szklo);
		GUI.setItem(22, szklo);
		GUI.setItem(23, szklo);
		GUI.setItem(24, szklo);
		GUI.setItem(25, szklo);
		GUI.setItem(26, szklo);
		
		ItemStack bloki = new ItemStack(Material.GRASS_BLOCK, 1);
		ItemMeta metabloki = bloki.getItemMeta();
		metabloki.setDisplayName("Bloki");
		bloki.setItemMeta(metabloki);
		GUI.setItem(10, bloki);
		
		ItemStack rosliny = new ItemStack(Material.OAK_SAPLING, 1);
		ItemMeta metarosliny = rosliny.getItemMeta();
		metarosliny.setDisplayName("Rosliny");
		rosliny.setItemMeta(metarosliny);
		GUI.setItem(12, rosliny);
		
		ItemStack surowce = new ItemStack(Material.DIAMOND, 1);
		ItemMeta metasurowce = surowce.getItemMeta();
		metasurowce.setDisplayName("Surowce");
		surowce.setItemMeta(metasurowce);
		GUI.setItem(14, surowce);
		
		ItemStack itemy = new ItemStack(Material.BONE, 1);
		ItemMeta metaitemy = itemy.getItemMeta();
		metaitemy.setDisplayName("Itemy z mobow");
		itemy.setItemMeta(metaitemy);
		GUI.setItem(16, itemy);

Jak coś źle napisałem, pisać!

Odnośnik do komentarza
https://skript.pl/temat/39006-gui/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Możesz poszukać ew. napisać klasę ItemBuilder, wtedy kod będzie czytelniejszy i łatwiej będzie ci dodawać nowe przedmioty.
Natomiast ten ekwipunek możesz otworzyć używając:
 

(player, sender etc.) .openInventory ( nazwa ekwipunku ) ;

 

Edytowane przez mvsieK_
tako fix
Odnośnik do komentarza
https://skript.pl/temat/39006-gui/#findComment-245403
Udostępnij na innych stronach

  • 0

A i chce aby te gui odpalalo sie po wpisaniu komendy /sklep

Mam takie cos:

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
	if(command.getName().equalsIgnoreCase("sklep")) {
		Player p = (Player) sender;

mam te 

(player, sender etc.) .openInventory ( nazwa ekwipunku ) ;

wstawic w onCommand czy onCreateInventory?

Odnośnik do komentarza
https://skript.pl/temat/39006-gui/#findComment-245406
Udostępnij na innych stronach

  • 0
public class Main extends JavaPlugin{
	public void onEnable() {
		Bukkit.getConsoleSender().sendMessage("Uruchamiam sklep by KoSaTuGRA");
	}
	public void onDisable() {
		Bukkit.getConsoleSender().sendMessage("Wylaczam sklep by KoSaTuGRA");
	}
	public void onCreateInventory(Player player) {
        Inventory GUI = Bukkit.createInventory(null, 27, "SKLEP");

        // Tworzenie pustego itemstack'a szkła.
        ItemStack glass = new ItemStack(Material.BLACK_STAINED_GLASS_PANE, 1);
        ItemMeta glassMeta = glass.getItemMeta();
        glassMeta.setDisplayName(" ");
        glassMeta.getLore().clear();
        glass.setItemMeta(glassMeta);

        // Pętla wypełniająca sloty od 0 do 26 szkłem.
        for (int i = 0; i < 26; ++i) {
            GUI.setItem(i, glass);
        }

        // ItemStack kategori bloki.
        ItemStack bloki = new ItemStack(Material.GRASS_BLOCK, 1);
        ItemMeta metabloki = bloki.getItemMeta();
        metabloki.setDisplayName("Bloki");
        bloki.setItemMeta(metabloki);

        // ItemStack kategori rosliny.
        ItemStack rosliny = new ItemStack(Material.OAK_SAPLING, 1);
        ItemMeta metarosliny = rosliny.getItemMeta();
        metarosliny.setDisplayName("Rosliny");
        rosliny.setItemMeta(metarosliny);
        
        // ItemStack kategori surowce.
        ItemStack surowce = new ItemStack(Material.DIAMOND, 1);
        ItemMeta metasurowce = surowce.getItemMeta();
        metasurowce.setDisplayName("Surowce");
        surowce.setItemMeta(metasurowce);

        // ItemStack kategori itemy.
        ItemStack itemy = new ItemStack(Material.BONE, 1);
        ItemMeta metaitemy = itemy.getItemMeta();
        metaitemy.setDisplayName("Itemy z mobow");
        itemy.setItemMeta(metaitemy);

        // Ustawianie slotów, które mają inną zawartość niż szkło.
        GUI.setItem(10, bloki);
        GUI.setItem(12, rosliny);
        GUI.setItem(14, surowce);
        GUI.setItem(16, itemy);
        GUI.setItem(18, null); // tutaj podmieniasz na itemstacki.

        // Otwieranie eq dla gracza.
        player.openInventory(GUI);
    }
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		if(command.getName().equalsIgnoreCase("sklep")) {
			player.openInventory(GUI);
			
		}
		return false;
	}
	
}

Chyba lekko głupi jestem. Nie wiem co dalej

Przy player.openInventory(GUI) jest bład

Odnośnik do komentarza
https://skript.pl/temat/39006-gui/#findComment-245413
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

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