Search in sources :

Example 46 with Item

use of cn.nukkit.item.Item in project Nukkit by Nukkit.

the class InventoryContentPacket method encode.

@Override
public void encode() {
    this.reset();
    this.putUnsignedVarInt(this.inventoryId);
    this.putUnsignedVarInt(this.slots.length);
    for (Item slot : this.slots) {
        this.putSlot(slot);
    }
}
Also used : Item(cn.nukkit.item.Item)

Example 47 with Item

use of cn.nukkit.item.Item in project Nukkit by Nukkit.

the class BlockOreEmerald method getDrops.

@Override
public Item[] getDrops(Item item) {
    if (item.isPickaxe() && item.getTier() >= ItemTool.TIER_IRON) {
        int count = 1;
        Enchantment fortune = item.getEnchantment(Enchantment.ID_FORTUNE_DIGGING);
        if (fortune != null && fortune.getLevel() >= 1) {
            int i = ThreadLocalRandom.current().nextInt(fortune.getLevel() + 2) - 1;
            if (i < 0) {
                i = 0;
            }
            count = i + 1;
        }
        return new Item[] { new ItemEmerald(0, count) };
    } else {
        return new Item[0];
    }
}
Also used : Item(cn.nukkit.item.Item) ItemEmerald(cn.nukkit.item.ItemEmerald) Enchantment(cn.nukkit.item.enchantment.Enchantment)

Example 48 with Item

use of cn.nukkit.item.Item in project Nukkit by Nukkit.

the class BlockOreQuartz method getDrops.

@Override
public Item[] getDrops(Item item) {
    if (item.isPickaxe() && item.getTier() >= ItemTool.TIER_WOODEN) {
        int count = 1;
        Enchantment fortune = item.getEnchantment(Enchantment.ID_FORTUNE_DIGGING);
        if (fortune != null && fortune.getLevel() >= 1) {
            int i = ThreadLocalRandom.current().nextInt(fortune.getLevel() + 2) - 1;
            if (i < 0) {
                i = 0;
            }
            count = i + 1;
        }
        return new Item[] { new ItemQuartz(0, count) };
    } else {
        return new Item[0];
    }
}
Also used : Item(cn.nukkit.item.Item) ItemQuartz(cn.nukkit.item.ItemQuartz) Enchantment(cn.nukkit.item.enchantment.Enchantment)

Example 49 with Item

use of cn.nukkit.item.Item in project Nukkit by Nukkit.

the class BlockOreRedstone method getDrops.

@Override
public Item[] getDrops(Item item) {
    if (item.isPickaxe() && item.getTier() >= ItemTool.TIER_IRON) {
        int count = new Random().nextInt(2) + 4;
        Enchantment fortune = item.getEnchantment(Enchantment.ID_FORTUNE_DIGGING);
        if (fortune != null && fortune.getLevel() >= 1) {
            count += new Random().nextInt(fortune.getLevel() + 1);
        }
        return new Item[] { new ItemRedstone(0, count) };
    } else {
        return new Item[0];
    }
}
Also used : Item(cn.nukkit.item.Item) NukkitRandom(cn.nukkit.math.NukkitRandom) Random(java.util.Random) Enchantment(cn.nukkit.item.enchantment.Enchantment) ItemRedstone(cn.nukkit.item.ItemRedstone)

Example 50 with Item

use of cn.nukkit.item.Item in project Nukkit by Nukkit.

the class BlockItemFrame method getDrops.

@Override
public Item[] getDrops(Item item) {
    BlockEntity blockEntity = this.getLevel().getBlockEntity(this);
    BlockEntityItemFrame itemFrame = (BlockEntityItemFrame) blockEntity;
    int chance = new Random().nextInt(100) + 1;
    if (itemFrame != null && chance <= (itemFrame.getItemDropChance() * 100)) {
        return new Item[] { toItem(), Item.get(itemFrame.getItem().getId(), itemFrame.getItem().getDamage(), 1) };
    } else {
        return new Item[] { toItem() };
    }
}
Also used : Item(cn.nukkit.item.Item) BlockEntityItemFrame(cn.nukkit.blockentity.BlockEntityItemFrame) Random(java.util.Random) BlockEntity(cn.nukkit.blockentity.BlockEntity)

Aggregations

Item (cn.nukkit.item.Item)64 Enchantment (cn.nukkit.item.enchantment.Enchantment)13 Player (cn.nukkit.Player)10 ItemBlock (cn.nukkit.item.ItemBlock)10 BlockAir (cn.nukkit.block.BlockAir)8 Random (java.util.Random)7 BlockEntity (cn.nukkit.blockentity.BlockEntity)6 Entity (cn.nukkit.entity.Entity)5 Block (cn.nukkit.block.Block)4 EntityItem (cn.nukkit.entity.item.EntityItem)4 EntityInventoryChangeEvent (cn.nukkit.event.entity.EntityInventoryChangeEvent)4 Inventory (cn.nukkit.inventory.Inventory)3 InventoryHolder (cn.nukkit.inventory.InventoryHolder)3 BlockEntityItemFrame (cn.nukkit.blockentity.BlockEntityItemFrame)2 EntityArmorChangeEvent (cn.nukkit.event.entity.EntityArmorChangeEvent)2 EntityDamageByEntityEvent (cn.nukkit.event.entity.EntityDamageByEntityEvent)2 EntityDamageEvent (cn.nukkit.event.entity.EntityDamageEvent)2 HopperInventory (cn.nukkit.inventory.HopperInventory)2 InventoryAction (cn.nukkit.inventory.transaction.action.InventoryAction)2 TranslationContainer (cn.nukkit.lang.TranslationContainer)2