Skocz do zawartości
  • 0

Kompletne gui


xTea_199

Pytanie

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Okienka w Minecraft musicie podzielić na dwie sekcje. Po pierwsze jego tworzenie, wypełnianie oraz wysyłanie go do gracza. Po drugie klikanie - musicie nasłuchować InventoryClickEvent, weryfikować czy kliknięte inventory jest tym okienkiem GUI, następnie anulować kliknięcie.

Weryfikację okienka należy wykonać poprzez sprawdzenie nazwy ekwipunku.

 

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

  • 0

Jeżeli tak  to co tu jest źle że mogę wyjmować te itemy?

 


import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin implements Listener{

	public static Main getInst(){
		return instance;
	}
	
	private static Main instance;
	
	@Override
	public void onEnable(){
		instance = this;
		saveDefaultConfig();
		Bukkit.getPluginManager().registerEvents(new Main(), this);
		System.out.println("[MCraft] Wlaczanie pluginu");
	}
	
	@Override
	public void onDisable(){
		System.out.println("[MCraft] Wylaczanie pluginu");
	}
	
	
	Inventory inv;
	
	
	
	  @EventHandler
	  private void onClick(InventoryClickEvent e)
	  {
	    if ((e.getInventory().getName().equalsIgnoreCase("§2§lCRAFTING - STONIARKA")) || (e.getInventory().getName().equalsIgnoreCase("§2§lCRAFTING - STONIARKA2")))
	    {
	      e.setCancelled(true);
	      e.getWhoClicked().closeInventory();
	      return;
	    }
	  }
	

	
	

	public Main(){
		inv = Bukkit.createInventory(null, 45, "§2§lCRAFTING - STONIARKA");{
			inv.setItem(0, i1);
			inv.setItem(1, i1);
			inv.setItem(2, i1);
			inv.setItem(3, i1);
			inv.setItem(4, i1);
			inv.setItem(5, i1);
			inv.setItem(6, i1);
			inv.setItem(7, i1);
			inv.setItem(8, i1);
			inv.setItem(9, i1);
			inv.setItem(10, i1);
			inv.setItem(11, i2);
			inv.setItem(12, i5);
			inv.setItem(13, i2);
			inv.setItem(14, i1);
			inv.setItem(15, i1);
			inv.setItem(16, i1);
			inv.setItem(17, i1);
			inv.setItem(18, i1);
			inv.setItem(19, i1);
			inv.setItem(20, i5);
			inv.setItem(21, i3);
			inv.setItem(22, i5);
			inv.setItem(23, i1);
			inv.setItem(24, i6);
			inv.setItem(25, i1);
			inv.setItem(26, i1);
			inv.setItem(27, i1);
			inv.setItem(28, i1);
			inv.setItem(29, i2);
			inv.setItem(30, i4);
			inv.setItem(31, i2);
			inv.setItem(32, i1);
			inv.setItem(33, i1);
			inv.setItem(34, i1);
			inv.setItem(35, i1);
			inv.setItem(36, i1);
			inv.setItem(37, i1);
			inv.setItem(38, i1);
			inv.setItem(39, i1);
			inv.setItem(40, i1);
			inv.setItem(41, i1);
			inv.setItem(42, i1);
			inv.setItem(43, i1);
			inv.setItem(44, i1);		

		}
	}
	
	ItemStack i1 = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);{
		ItemMeta im = i1.getItemMeta();
		im.setDisplayName("§8•");
		i1.setItemMeta(im);
	}
	
	ItemStack i2 = new ItemStack(Material.REDSTONE, 1);{
		ItemMeta im1 = i2.getItemMeta();
		im1.setDisplayName("§6REDSTONE");
		i2.setItemMeta(im1);
	}
	
	ItemStack i3 = new ItemStack(Material.STONE, 1);{
		ItemMeta im2 = i3.getItemMeta();
		im2.setDisplayName("§6KAMIEN");
		i3.setItemMeta(im2);
	}
	
	ItemStack i4 = new ItemStack(Material.PISTON_BASE, 1);{
		ItemMeta im3 = i4.getItemMeta();
		im3.setDisplayName("§6PISTON");
		i4.setItemMeta(im3);
	}

	ItemStack i5 = new ItemStack(Material.IRON_INGOT, 1);{
		ItemMeta im4 = i5.getItemMeta();
		im4.setDisplayName("§6ZELAZO");
		i5.setItemMeta(im4);
	}
	
	ItemStack i6 = new ItemStack(Material.ENDER_STONE);{
		ItemMeta im = i6.getItemMeta();
		im.setDisplayName("§2§LSTONIARKA");
		i6.setItemMeta(im);
	}	
	
	@Override
	public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
		Player p = (Player) sender;
		if(command.getName().equalsIgnoreCase("stoniarki"));
			sender.sendMessage("ss");
			inv.setItem(0, i1);
			inv.setItem(1, i1);
			inv.setItem(2, i1);
			inv.setItem(3, i1);
			inv.setItem(4, i1);
			inv.setItem(5, i1);
			inv.setItem(6, i1);
			inv.setItem(7, i1);
			inv.setItem(8, i1);
			inv.setItem(9, i1);
			inv.setItem(10, i1);
			inv.setItem(11, i2);
			inv.setItem(12, i5);
			inv.setItem(13, i2);
			inv.setItem(14, i1);
			inv.setItem(15, i1);
			inv.setItem(16, i1);
			inv.setItem(17, i1);
			inv.setItem(18, i1);
			inv.setItem(19, i1);
			inv.setItem(20, i5);
			inv.setItem(21, i3);
			inv.setItem(22, i5);
			inv.setItem(23, i1);
			inv.setItem(24, i6);
			inv.setItem(25, i1);
			inv.setItem(26, i1);
			inv.setItem(27, i1);
			inv.setItem(28, i1);
			inv.setItem(29, i2);
			inv.setItem(30, i4);
			inv.setItem(31, i2);
			inv.setItem(32, i1);
			inv.setItem(33, i1);
			inv.setItem(34, i1);
			inv.setItem(35, i1);
			inv.setItem(36, i1);
			inv.setItem(37, i1);
			inv.setItem(38, i1);
			inv.setItem(39, i1);
			inv.setItem(40, i1);
			inv.setItem(41, i1);
			inv.setItem(42, i1);
			inv.setItem(43, i1);
			inv.setItem(44, i1);	
			p.openInventory(inv);
		return false;
	}
	
}

 

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

  • 0

https://pastebin.com/rJ5cBcX1

Możesz zrobić coś takiego w mainie, ale trochę zabawy z tym będzie lepiej zrobić listenera i w mainie go zarejestrować ;p.

Pisane na szybko więc jak będzie jakiś błąd to pisz. 

EDIT:

Mam nadzieje, że wiesz jak będą błędy to trzeba kilka klas zaimportować.

Edytowane przez HP888N
Odnośnik do komentarza
https://skript.pl/temat/18157-kompletne-gui/#findComment-126584
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ę...