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

Pobranie nazwy itemu i sprawdzeni


EnglishPhilips

Rekomendowane odpowiedzi

Opublikowano

Witam,

mam pytanie jak w tym kodzie pobrać nazwe przedmiotu i jeżeli była by ona np "drzewo" to zeby cos wykonalo?

Kod:

        if (e.getInventory().getName().equalsIgnoreCase(ChatUtil.fixColor("&4&lZDRAPKA"))) {
            e.setCancelled(true);
            final ItemStack item = e.getCurrentItem();
            if (item != null) {
                final ItemMeta meta = item.getItemMeta();
                if (meta != null) {
                    final ItemBuilder scratch = new ItemBuilder(Material.PAPER).setTitle(ChatUtil.fixColor("&d&lZDRAPKA")).addEnchantment(Enchantment.THORNS, 10);
                    final int itemsy = ThreadLocalRandom.current().nextInt(CaseManager.drop.size());
                    if (meta.getDisplayName() != null && meta.getDisplayName().equals(ChatUtil.fixColor("&lZdrap!"))) {
                        final int slot = e.getSlot();
                        p.getOpenInventory().setItem(slot, (ItemStack)CaseManager.drop.get(itemsy));
                        p.getInventory().addItem(new ItemStack[] { CaseManager.drop.get(itemsy) });
                        final Inventory inv = Bukkit.createInventory((InventoryHolder)p, 27, ChatUtil.fixColor("&4&lZDRAPKA&r"));
                        inv.setContents(p.getOpenInventory().getTopInventory().getContents());
                        p.openInventory(inv);
                        final ItemStack win = p.getOpenInventory().getItem(slot);
                        for (final Player po : Bukkit.getOnlinePlayers()) {
                            final User u = UserManager.getUser(po);
                            if (u.isScratchesMessages()) {
                                final User u2 = UserManager.getUser(p);
                                u2.addCoins(50);
                                ChatUtil.sendMessage((CommandSender)po, "&8*** &7Gracz &e" + p.getName() + " &7zdrapal &6Zdrapke &7i wylosowal &6&l" + PolishItemNames.getPolishName(win.getType()) + " &8***");
                            }
                        }
                        p.getInventory().removeItem(new ItemStack[] { scratch.build() });
                        p.updateInventory();
                        CaseManager.firewark(p.getLocation());
                        return;
                    }
                }
            }
        }

 

Opublikowano
if (meta.getDisplayName() != null && meta.getDisplayName().equals(ChatUtil.fixColor("nazwa"))) {
	//dalszy kod
} else {
	//nie masz takiego przedmoiotu
}

Masz tam, wystarczy tylko przeanalizować kod co jaka funkcja robi i dojdziesz do tego sam ;).

Opublikowano
3 godziny temu, MAROSKiNG napisał:

if (meta.getDisplayName() != null && meta.getDisplayName().equals(ChatUtil.fixColor("nazwa"))) {
	//dalszy kod
} else {
	//nie masz takiego przedmoiotu
}

Masz tam, wystarczy tylko przeanalizować kod co jaka funkcja robi i dojdziesz do tego sam ;).

Nie do końca, ale dziękuje naprowadziłeś mnie ;* 

                        if(win.getItemMeta() != null && win.getItemMeta().getDisplayName().equals(ChatUtil.fixColor("&6Kilof 6/3/3"))) {
                        	//kod
                        }

To działa chodziło mi o wygrany przedmiot żeby pisało np jak byłby to 6/3/3 to żeby specjalna wiadomość była ale tak jak już napisałem dziękuję bo naprowadziłeś mnie ;D

Opublikowano

Czy jest jakiś moderator który może usuwać tematy tego użytkownika?

MPCForum nie służy do pomocy edycji czyjegoś kodu. 

Naucz się sam pisać pluginy.

Napisanie tego kodu zajeło mi 1h więc dlaczego sam nie napiszesz tego od nowa lub komuś zlecisz?

 

CWeKkdQ.png

Opublikowano
2 godziny temu, PalaTime napisał:

Czy jest jakiś moderator który może usuwać tematy tego użytkownika?

MPCForum nie służy do pomocy edycji czyjegoś kodu. 

Naucz się sam pisać pluginy.

Napisanie tego kodu zajeło mi 1h więc dlaczego sam nie napiszesz tego od nowa lub komuś zlecisz?

Mm dzięki takim tematom uczę się pisać samemu pluginy wbrew temu co myślisz. Jeżeli ten plugin jest na internecie prawie na każdym kanale YouTuberow jeżeli tak ich można nazwac którzy udostępniają swoje "autorskie" core to nie wiem co ty z nim robiłeś. Edycja czyjegoś kodu nie rozumiem dlaczego ci to przeszkadza skoro i tak autor zostaje i nazwy klas i paczek no ale to już twoje zdanie. 

Pozdrawiam 

Opublikowano
4 godziny temu, PalaTime napisał:

Czy jest jakiś moderator który może usuwać tematy tego użytkownika?

MPCForum nie służy do pomocy edycji czyjegoś kodu. 

Naucz się sam pisać pluginy.

Napisanie tego kodu zajeło mi 1h więc dlaczego sam nie napiszesz tego od nowa lub komuś zlecisz?

Totalne bzdury piszesz... Mpc jest po to żeby się czegoś uczyć,robić,pomagać.  Krok po kroku i wyjdzie Java Developer ;)


 

Opublikowano

 

Dnia 1.01.2018 o 22:26, Blackovskyy napisał:

Totalne bzdury piszesz... Mpc jest po to żeby się czegoś uczyć,robić,pomagać.  Krok po kroku i wyjdzie Java Developer ;)

Nie wiedziałem ze kopiowanie i podpisywanie się pod autora uczy.

 

CWeKkdQ.png

Opublikowano
4 minuty temu, PalaTime napisał:

 

Nie wiedziałem ze kopiowanie i podpisywanie się pod autora uczy.

Gdzie ty widzisz podpisywanie się pod autora i kopiowanie?

 

Dnia 1.01.2018 o 20:11, EnglishPhilips napisał:

MPCForum nie służy do pomocy edycji czyjegoś kodu. 

Naucz się sam pisać pluginy.

Gościu pierw piszesz że forum nie służy do pomocy, jak coś ci odpowiem to że typ kopiuje i podpisuje się pod autora chociaż że @MAROSKiNG udostępnił mu ten plugin. Nie masz argumentów i myślisz że jak tak napiszesz to wyjdziesz na cwanego i mądrego. Totalny debilizm. Miłego wieczoru, i proszę zmądrzyj trochę.


 

Opublikowano
Dnia 1.01.2018 o 22:26, Blackovskyy napisał:

Totalne bzdury piszesz... Mpc jest po to żeby się czegoś uczyć,robić,pomagać.  Krok po kroku i wyjdzie Java Developer ;)

a to dobre , gorszych głupot w życiu nie słyszałem. juz samo w sobie "skopiowanie" kodu może byc uważane za kradzież. nie mówiąc już nic o tym że bez najmniejszych podstaw kopiując i robiąc "by działało" nic sie nie nauczy, chyba ze szczytem umiejetności można nazwać kopiowanie czyjegoś kodu i krojenie na kawalki. juz lepiej by wyszedł i coś umiał gdyby ktoś mu pokazał dokumentacje java i jak z niej korzystać/ewentualnie bukkit api

 

Cytat

Gdzie ty widzisz podpisywanie się pod autora i kopiowanie?

moze w tym że korzysta z takich klas jak ThreadLocalRandom czy chociażby ItemBuilder , co wymagało by zrobienia własnej klasy lub korzystanie z czyjegoś api a zapewne on tego nie potrafi...

if (meta.getDisplayName() != null && meta.getDisplayName().equals(ChatUtil.fixColor("nazwa"))) {

jest nie najgorszym wyjsciem ale bezpieczniej sprawdzić pelna nazwa wraz ze znakami "koloru" , tak aby gracze innym pluginem lub kowadłem nie byli w stanie sobie takich przedmiotow namnożyć , możesz też sprawdzić czy Material sie zgadza potem nazwe, powinno byc mniej do liczenia (nie wiem jak to tam jest w nms) tak mi sie wydaje

 

                final ItemMeta meta = item.getItemMeta();

ladnie by bylo najpierw sprawdzic czy przedmiot posiada itemMeta bo getItemMeta dziala tak > sprawdza czy przedmiot posiada metadata jesli nie tworzy nowyobiekt za pomocą ItemFactory i ci go zwraca wiec nie moze on zawierac nazwy lore ani niczego takiego

                    final ItemBuilder scratch = new ItemBuilder(Material.PAPER).setTitle(ChatUtil.fixColor("&d&lZDRAPKA")).addEnchantment(Enchantment.THORNS, 10);
                    final int itemsy = ThreadLocalRandom.current().nextInt(CaseManager.drop.size());

raczej to powinno byc za if ale jak tam wolisz

dodatkowo sprawdzasz czy gracz ma przedmiot A po czym usuwasz z inventory przedmiot B (o ile itemBuilder dziala tak jak pisze czyli nazwa to title)

najpierw pobierasz z eventu !

            final ItemStack item = e.getCurrentItem();

po czym tworzysz nowy ItemStack wraz z builderem

                    final ItemBuilder scratch = new ItemBuilder(Material.PAPER).setTitle(ChatUtil.fixColor("&d&lZDRAPKA")).addEnchantment(Enchantment.THORNS, 10);

i przeszukujesz cale inventory w poszukiwaniu przedmiotu ktorego instancje posiadasz  więc niepotrzebnie bawiles sie z itemBuilder ,

                        p.getInventory().removeItem(new ItemStack[] { scratch.build() });

tylko po to aby go usunąć ? nie jest to glupie ?

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...