Skocz do zawartości
  • 0

Sprawdzanie bloku


BakuQ
 Udostępnij

Pytanie

Witam chcę aby pobrało getType itemstacka "CASE" jak to zrobić 

ItemStack CASE = new ItemBuilder(Material.CHEST, 4).setName("               &f&l>< &5&lPREMIUMCASE &f&l><").addLore("      &a&l&nPostaw na ziemii aby uzyc!").addLore("").addLore("               &8&l%> &b&l&nINFORMACJA &8&l<%").addLore("   &3Postaw na ziemi aby otworzyc").addLore("   &3Drop sprawdzisz pod: &b&n/premiumcase").build();
		if (b.getType() != (ITEMSTACK TUTAJ CZYC O) {

 

Odnośnik do komentarza
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
1 godzinę temu, kerpson napisał:

Istnieje metoda w itemstack, itemstack.isSimilar(itemstack2);

metoda isSimilar() może sprawiać problemy.

Spróbuj użyć:

	public static boolean equals(ItemStack a, ItemStack b) {
		if (a == null || b == null)
			return false;
		if (a.getType() != b.getType())
			return false;
		if (a.hasItemMeta() != b.hasItemMeta())
			return false;
		if (a.hasItemMeta() && !a.getItemMeta().equals(b.getItemMeta()))
			return false;
		return true;
	}

albo:

	public static boolean equals(ItemStack a, ItemStack b)
	{
	    if(a == null || b == null)
	        return false;
	    if(a.getType() != b.getType())
	        return false;
	    if(a.hasItemMeta() != b.hasItemMeta())
	        return false;
	    if(a.hasItemMeta() && !a.getItemMeta().getDisplayName().equals(b.getItemMeta().getDisplayName()))
	        return false;
	    if(a.hasItemMeta() && !a.getItemMeta().getLore().equals(b.getItemMeta().getLore()))
	        return false;
	    return true;
	}

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 godziny temu, Fadex napisał:

Prawidłowa konstrukcja:



if(p.getItemInHand().isSimilar(CASE)) {

 

Hymm działa lecz teraz mam problem z anulowaniem eventu bo gdy zabiera case to cofa bo anuluje event
 

    @EventHandler(priority = EventPriority.MONITOR)
	public void onBlockPlace(final BlockPlaceEvent e) {
		final Player p = e.getPlayer();
		final Location location = e.getBlock().getLocation();
		final World world = p.getWorld();
		
		ItemStack CASE = new ItemBuilder(Material.CHEST).setName("               &f&l>< &5&lPREMIUMCASE &f&l><").addLore("      &a&l&nPostaw na ziemii aby uzyc!").addLore("").addLore("               &8&l%> &b&l&nINFORMACJA &8&l<%").addLore("   &3Postaw na ziemi aby otworzyc").addLore("   &3Drop sprawdzisz pod: &b&n/premiumcase").build();
		if (!p.getItemInHand().isSimilar(CASE)) {
			return;
		}else {
			e.setCancelled(true);
            p.getInventory().remove(CASE);
		}
		p.playSound(p.getLocation(), Sound.LEVEL_UP, 0.5f,(float) (Math.random() * 20.0) / 10.0f);
		if (isPassed(2)) {
			ItemStack BEACON = new ItemBuilder(Material.BEACON).build();
			world.dropItem(location, BEACON);
		}
		if (isPassed(23)) {
			ItemStack HELM = new ItemBuilder(Material.DIAMOND_HELMET).addEnchant(Enchantment.DURABILITY, 3).addEnchant(Enchantment.PROTECTION_ENVIRONMENTAL, 4).build();
			world.dropItem(location, HELM);

 

Edytowane przez BakuQ
Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

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

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