Auf Thema antworten

Guten Tag,

Ich habe eine Methode für ein Minecraft Plugin geschrieben, welche mir eine random Anzahl an random Items zurückgeben soll:


[CODE=java]public List<ItemStack> getWZChestLoot() {

        List<ItemStack> list = new ArrayList<>();

        int randomNumber = random(3, 8);

        int chance;

        List<ItemStack> items = new ArrayList<>(getCases().getClosedCases());

        items.add(getOther().getExpBottle(500, this.rarityCommon));

        items.add(getOther().getExpBottle(1000, this.rarityCommon));

        items.add(getOther().getExpBottle(1500, this.rarityRare));

        items.add(getOther().getExpBottle(2000, this.rarityEpic));

        int xpBottleAmount = random(1, 15);

        items.add(new ItemBuilder(Material.EXP_BOTTLE, xpBottleAmount).setLore((xpBottleAmount > 6 ? this.rarityRare : this.rarityCommon)).toItemStack());

        int goldAppleAmount = random(2, 8);

        items.add(new ItemBuilder(Material.GOLDEN_APPLE, goldAppleAmount).setLore(this.rarityCommon).toItemStack());

        int goldCarrotAmount = random(3, 13);

        items.add(new ItemBuilder(Material.GOLDEN_CARROT, goldCarrotAmount).setLore(this.rarityCommon).toItemStack());

        int backed = random(3, 15);

        items.add(new ItemBuilder(Material.BAKED_POTATO, backed).setLore(this.rarityCommon).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 8227).addLoreLine(this.rarityCommon).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 8265).addLoreLine(this.rarityRare).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 16424).addLoreLine(this.rarityCommon).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 8194).addLoreLine(this.rarityRare).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 8262).addLoreLine(this.rarityCommon).toItemStack());

        items.add(new ItemBuilder(Material.POTION, 1).setDurability((short) 8238).addLoreLine(this.rarityCommon).toItemStack());

        int enderpearlAmount = random(3, 8);

        items.add(new ItemBuilder(Material.ENDER_PEARL, enderpearlAmount).setLore(this.rarityRare).toItemStack());

        items.add(new ItemBuilder(Material.MONSTER_EGG, 1).setDurability((short) 90).setLore(this.rarityOp).toItemStack());

        items.add(new ItemBuilder(Material.MONSTER_EGG, 1).setDurability((short) 91).setLore(this.rarityOp).toItemStack());

        items.add(new ItemBuilder(Material.MONSTER_EGG, 1).setDurability((short) 92).setLore(this.rarityOp).toItemStack());

        items.add(new ItemBuilder(Material.MONSTER_EGG, 1).setDurability((short) 93).setLore(this.rarityOp).toItemStack());


        for(EnchantmentProvider.EnchantmentType enchantmentType : EnchantmentProvider.EnchantmentType.values()) {

            if(!enchantmentType.getRarity().equalsIgnoreCase(this.rarityOp)) {

                items.add(getBücher().getBook(enchantmentType, "I"));

            }

        }


        for (int i = 0; i < randomNumber; i++) {

            chance = random(1, 100);

            if (chance <= 5) {

                list.add(getItem(this.rarityOp, items));

            } else if (chance <= 10) {

                list.add(getItem(this.rarityMythical, items));

            } else if (chance <= 30) {

                list.add(getItem(this.rarityEpic, items));

            } else if (chance <= 50) {

                list.add(getItem(this.rarityRare, items));

            } else {

                list.add(getItem(this.rarityCommon, items));

            }

        }

        return list;

    }


    private ItemStack getItem(String rarity, List<ItemStack> allSets) {

        for (ItemStack stack : allSets) {

            if (stack.getItemMeta().getLore().contains(rarity)) {

                return stack;

            }

        }

        return new ItemStack(Material.BARRIER, 1);

    }[/CODE]


Allerdings gibt mir die Methode NUR die Items zurück, die ich im Konstruktor übergeben habe. Also getCases().getClosedCases(). Warum werden nur diese Items zurückgegeben und die anderen nicht?


MfG



Oben