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

Gracz i ekwipunek


ImStillEZ

Rekomendowane odpowiedzi

Opublikowano

Mam pytanie, mianowicie jak sprawdzić czy gracz ma miejsce w ekwipunku na item.

 

Edit:

Znalazłem taki kod, tylko nie wiem czy będzie działać.

 

 

	public static void giveItem(Player p, ItemStack is, Location l){
		int freeSpace = 0;
		for (ItemStack i : p.getInventory()) {
			if (i == null) {
				freeSpace+=is.getType().getMaxStackSize();
			} else if (i.getType() == is.getType()) {
				freeSpace+=i.getType().getMaxStackSize() - i.getAmount();
			}
			if (is.getAmount() >= freeSpace) {
				p.getInventory().addItem(is);
			} else {
				World w = l.getWorld();
				w.dropItemNaturally(l, is);
			}
		}
	} 

 

 

@OldisPL

9247914700071651530128.png

Opublikowano

/invsee nick <- jeżeli używasz essentialsa 

Zaś jak go nie używasz to pobierz plugin OpenInv

/oi nick

/openinv nick

=========================================================================

Pomogłem?! Daj + ;D

 

Opublikowano

Essentials jest jednym z podstawowych pluginow i moim zdaniem powinien go miec kazdy serwer. Lepiej raczej wgrac essentials niz jakis zbedny plugin typu OpenInv

i w essentials mozna sprawdzic i skrzynie kresu gracza i jego eq:

 

/invsee [nick]

 

/echest [nick]

Opublikowano

Może coś takiego: 

                    if (player.getInventory().firstEmpty() >= 0) {
                        //kod
                    }
                    else {
                        sender.sendMessage(ChatColor.DARK_GRAY + "» " + ChatColor.GOLD + player.getDisplayName() + ChatColor.RED + " nie ma miejsca w swoim ekwipunku.");
                    }

Zaznaczam, że nie za bardzo umiem pisać pluginy :(

Opublikowano

@EnglishPhilips

Nie chodzi mi o wolny slot w ekwipunku, tylko czy gracz ma miejsce na itemek.

Przypuśćmy gracz ma całe eq cobbla, tylko nie jest dokończony ostani stack.

Więc można dodać do eq, jeśli jest już całkowicie pełne i nie ma miejsca na następny cobble to np. wypada na ziemię.

9247914700071651530128.png

Opublikowano

@EnglishPhilips

Nie chodzi mi o wolny slot w ekwipunku, tylko czy gracz ma miejsce na itemek.

Przypuśćmy gracz ma całe eq cobbla, tylko nie jest dokończony ostani stack.

Więc można dodać do eq, jeśli jest już całkowicie pełne i nie ma miejsca na następny cobble to np. wypada na ziemię.

    public static void addItemsToPlayer(Player player, List<ItemStack> itemStackList, Block  {
        PlayerInventory playerInventory = player.getInventory();
        HashMap<Integer, ItemStack> notStored = playerInventory.addItem((ItemStack[])itemStackList.toArray(new ItemStack[itemStackList.size()]));
        for (Map.Entry<Integer, ItemStack> en : notStored.entrySet()) {
            b.getWorld().dropItemNaturally(b.getLocation(), en.getValue());
        }
    }

784091427630431250239.png

Regulamin sygnatur

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...