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

Potrzebuje pomocy ze zrobieniem customowej waluty


Adylak

Rekomendowane odpowiedzi

Opublikowano

Chce zrobić walute serwerową z słonecznika i nie wiem jak to zrobić aby ten słonecznik był np. enchantowany na protection X lub na inny żeby nikt tego słonecznika nie podrobił.

Opublikowano

Jak chcesz napisać własny plugin to enchant, ew. jakiś dodatkowy nbt tag do itemu.

Plugin na enchanty:

	
	public static ItemStack moneyItem(int amount) {
        final var is = new ItemStack(Material.SUNFLOWER, amount);
        is.addUnsafeEnchantment(Enchantment.DURABILITY, 10);
        final var im = is.getItemMeta();
        im.setDisplayName(ChatColor.GREEN + "$");
        im.addItemFlags(ItemFlag.HIDE_ENCHANTS);
        is.setItemMeta(im);
        return is;
    }

    /**
     * Sprawdza czy gracz ma wystarczajaco pieniedzy i odejmuje je, jesli tak.
     */
    public static boolean trySubtractMoney(Inventory inv, int toSub) {
        int foundSoFar = 0;
        final var counted = new ArrayList<ItemStack>();
        for(final var content : inv) {
            if(content.getType() == Material.SUNFLOWER
                    && content.containsEnchantment(Enchantment.DURABILITY)
                    && content.getEnchantmentLevel(Enchantment.DURABILITY) == 10) {
                counted.add(content);
                foundSoFar += content.getAmount();
                if(foundSoFar >= toSub) { //gracz ma wystarczajaco pieniedzy
                    for(final var money : counted) {
                        final var oldAmount = money.getAmount();
                        money.setAmount(Math.max(0, money.getAmount() - toSub)); //odejmujemy odpowiednie ilosci
                        toSub -= (oldAmount - money.getAmount());
                    }
                    return true;
                }
            }
        }
        //gracz nie ma wystarczajaco pieniedzy
        return false;
    }

    @EventHandler
    public void sample(PlayerJoinEvent event) {
        event.getPlayer().getInventory().addItem(moneyItem(1));
        event.getPlayer().sendMessage("Dostajesz $1!");
        if(trySubtractMoney(event.getPlayer().getInventory(), 10)) {
            event.getPlayer().sendMessage("Gratulacje miales $10! Teraz masz $0.");
        }
    }

 

  • AlexsanderARG zmienił(a) tytuł na Potrzebuje pomocy ze zrobieniem customowej waluty

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...