Search in sources :

Example 6 with Item

use of org.spongepowered.api.entity.Item in project SpongeCommon by SpongePowered.

the class SpongeCommonEventFactory method callPlayerChangeInventoryPickupPreEvent.

public static boolean callPlayerChangeInventoryPickupPreEvent(EntityPlayer player, EntityItem itemToPickup, int pickupDelay, UUID creator) {
    ItemStack stack = itemToPickup.getItem();
    Sponge.getCauseStackManager().pushCause(player);
    ItemStackSnapshot snapshot = ItemStackUtil.snapshotOf(stack);
    ChangeInventoryEvent.Pickup.Pre event = SpongeEventFactory.createChangeInventoryEventPickupPre(Sponge.getCauseStackManager().getCurrentCause(), Optional.empty(), Collections.singletonList(snapshot), snapshot, ((Item) itemToPickup), ((Inventory) player.inventory));
    SpongeImpl.postEvent(event);
    Sponge.getCauseStackManager().popCause();
    if (event.isCancelled()) {
        return false;
    }
    if (event.getCustom().isPresent()) {
        List<ItemStackSnapshot> list = event.getCustom().get();
        if (list.isEmpty()) {
            itemToPickup.getItem().setCount(0);
            return false;
        }
        boolean fullTransfer = true;
        IMixinInventoryPlayer capture = (IMixinInventoryPlayer) player.inventory;
        capture.setCapture(true);
        for (ItemStackSnapshot item : list) {
            org.spongepowered.api.item.inventory.ItemStack itemStack = item.createStack();
            player.inventory.addItemStackToInventory(ItemStackUtil.toNative(itemStack));
            if (!itemStack.isEmpty()) {
                fullTransfer = false;
                break;
            }
        }
        capture.setCapture(false);
        if (!fullTransfer) {
            for (SlotTransaction trans : capture.getCapturedTransactions()) {
                trans.getSlot().set(trans.getOriginal().createStack());
            }
            return false;
        }
        if (!callPlayerChangeInventoryPickupEvent(player, capture)) {
            return false;
        }
        itemToPickup.getItem().setCount(0);
    }
    return true;
}
Also used : SlotTransaction(org.spongepowered.api.item.inventory.transaction.SlotTransaction) IMixinInventoryPlayer(org.spongepowered.common.interfaces.entity.player.IMixinInventoryPlayer) EntityItem(net.minecraft.entity.item.EntityItem) Item(org.spongepowered.api.entity.Item) ItemStackSnapshot(org.spongepowered.api.item.inventory.ItemStackSnapshot) ItemStack(net.minecraft.item.ItemStack) IMixinInventory(org.spongepowered.common.interfaces.IMixinInventory) OrderedInventory(org.spongepowered.api.item.inventory.type.OrderedInventory) CraftingInventory(org.spongepowered.api.item.inventory.crafting.CraftingInventory) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) Inventory(org.spongepowered.api.item.inventory.Inventory) CustomInventory(org.spongepowered.common.item.inventory.custom.CustomInventory) IInventory(net.minecraft.inventory.IInventory)

Example 7 with Item

use of org.spongepowered.api.entity.Item in project Skree by Skelril.

the class ZoneSlaveOrb method onDropItem.

@Listener
public void onDropItem(DropItemEvent.Dispense event) {
    event.getEntities().stream().filter(entity -> entity instanceof Item).forEach(entity -> {
        ItemStack stack = ((EntityItem) entity).getEntityItem();
        if (isZoneSlaveItem(stack)) {
            Optional<Player> optPlayer = event.getCause().first(Player.class);
            if (optPlayer.isPresent()) {
                Player player = optPlayer.get();
                if (!notifyGroupOwner(stack, player, false)) {
                // TODO Log this, as it shouldn't happen
                }
                player.sendMessage(Text.of(TextColors.RED, "You've declined your group invite."));
            }
            entity.remove();
        }
    });
}
Also used : EntityItem(net.minecraft.entity.item.EntityItem) CustomItem(com.skelril.nitro.registry.item.CustomItem) Item(org.spongepowered.api.entity.Item) DropItemEvent(org.spongepowered.api.event.item.inventory.DropItemEvent) EventAwareContent(com.skelril.nitro.selector.EventAwareContent) Tristate(org.spongepowered.api.util.Tristate) ItemStack(net.minecraft.item.ItemStack) List(java.util.List) SkreePlugin(com.skelril.skree.SkreePlugin) Text(org.spongepowered.api.text.Text) Side(net.minecraftforge.fml.relauncher.Side) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Task(org.spongepowered.api.scheduler.Task) HandTypes(org.spongepowered.api.data.type.HandTypes) Optional(java.util.Optional) CreativeTabs(net.minecraft.creativetab.CreativeTabs) Player(org.spongepowered.api.entity.living.player.Player) InteractBlockEvent(org.spongepowered.api.event.block.InteractBlockEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) Listener(org.spongepowered.api.event.Listener) TextColors(org.spongepowered.api.text.format.TextColors) First(org.spongepowered.api.event.filter.cause.First) ZoneItemUtil(com.skelril.skree.content.registry.item.zone.ZoneItemUtil) EntityItem(net.minecraft.entity.item.EntityItem) CustomItem(com.skelril.nitro.registry.item.CustomItem) Item(org.spongepowered.api.entity.Item) EntityPlayer(net.minecraft.entity.player.EntityPlayer) Player(org.spongepowered.api.entity.living.player.Player) ItemStack(net.minecraft.item.ItemStack) EntityItem(net.minecraft.entity.item.EntityItem) Listener(org.spongepowered.api.event.Listener)

Example 8 with Item

use of org.spongepowered.api.entity.Item in project RedProtect by FabioZumbi12.

the class RPPlayerListener method onItemPickup.

@Listener(order = Order.FIRST, beforeModifications = true)
public void onItemPickup(CollideEntityEvent event, @Root Player p) {
    RedProtect.get().logger.debug("player", "Is CollideEntityEvent(ItemPickup) event.");
    for (Entity ent : event.getEntities()) {
        if (!(ent instanceof Item)) {
            continue;
        }
        Region r = RedProtect.get().rm.getTopRegion(ent.getLocation());
        if (r != null && !r.canPickup(p)) {
            event.setCancelled(true);
            RPLang.sendMessage(p, "playerlistener.region.cantpickup");
            return;
        }
    }
}
Also used : Entity(org.spongepowered.api.entity.Entity) Item(org.spongepowered.api.entity.Item) Region(br.net.fabiozumbi12.RedProtect.Sponge.Region) Listener(org.spongepowered.api.event.Listener)

Example 9 with Item

use of org.spongepowered.api.entity.Item in project ClearMob by axle2005.

the class ClearEntity method run.

public static void run(CommandSource src) {
    ClearMob instance = ClearMob.getInstance();
    removedEntities = 0;
    entityData = new ConcurrentHashMap<>();
    for (World world : Sponge.getServer().getWorlds()) {
        for (Entity entity : world.getEntities()) {
            entityData.put(entity.getUniqueId(), entity);
        }
        for (Entity entity : entityData.values()) {
            if (!entity.isRemoved()) {
                // Skip players and Nametags
                if (!(entity instanceof Player || entity.get(DisplayNameData.class).isPresent())) {
                    // Kills all Monsters
                    if (instance.getGlobalConfig().options.get(0).killAllMonsters && entity instanceof Monster && !(entity instanceof Boss)) {
                        removedEntities++;
                        entity.remove();
                    }
                    // Kills all Bosses
                    if (instance.getGlobalConfig().options.get(0).killAllBosses && entity instanceof Boss) {
                        removedEntities++;
                        entity.remove();
                    }
                    // Removes all Drops
                    if (instance.getGlobalConfig().options.get(0).killAllDrops && entity instanceof Item) {
                        if (!Util.getItemType(instance.getGlobalConfig().options.get(0).listItemEntitys).contains(((Item) entity).getItemType())) {
                            entity.remove();
                            removedEntities++;
                        }
                    // ClearItems.run(entity,Util.getItemType(instance.getGlobalConfig().options.get(0).listItemEntitys),"WhiteList");
                    }
                    // Kills grouped Animals.
                    if (instance.getGlobalConfig().options.get(0).killAnimalGroups && entity instanceof Animal) {
                        removedEntities = removedEntities + ClearAnimals.run(entity);
                    }
                    if (ClearWhiteList.clear(entity, Util.getEntityType(instance.getGlobalConfig().options.get(0).listEntitys))) {
                        removedEntities++;
                    }
                }
            }
        }
    }
    Util.feedback("Entity", src, removedEntities);
}
Also used : Entity(org.spongepowered.api.entity.Entity) Item(org.spongepowered.api.entity.Item) Player(org.spongepowered.api.entity.living.player.Player) Boss(org.spongepowered.api.entity.living.monster.Boss) ClearMob(io.github.axle2005.clearmob.ClearMob) Animal(org.spongepowered.api.entity.living.animal.Animal) Monster(org.spongepowered.api.entity.living.monster.Monster) World(org.spongepowered.api.world.World)

Example 10 with Item

use of org.spongepowered.api.entity.Item in project Skree by Skelril.

the class TheForgeInstance method runOreCheck.

private void runOreCheck() {
    for (Item item : getContained(Item.class)) {
        BlockType belowType = item.getLocation().add(0, -1, 0).getBlockType();
        if (belowType == BlockTypes.GOLD_BLOCK) {
            addResource(item.item().get());
            item.remove();
        }
    }
    state.save();
}
Also used : Item(org.spongepowered.api.entity.Item) BlockType(org.spongepowered.api.block.BlockType)

Aggregations

Item (org.spongepowered.api.entity.Item)18 Entity (org.spongepowered.api.entity.Entity)9 World (org.spongepowered.api.world.World)8 Listener (org.spongepowered.api.event.Listener)6 Player (org.spongepowered.api.entity.living.player.Player)5 ItemStackSnapshot (org.spongepowered.api.item.inventory.ItemStackSnapshot)5 EntityItem (net.minecraft.entity.item.EntityItem)4 SkreePlugin (com.skelril.skree.SkreePlugin)3 ItemStack (net.minecraft.item.ItemStack)3 Animal (org.spongepowered.api.entity.living.animal.Animal)3 Location (org.spongepowered.api.world.Location)3 ItemStackFactory.newItemStack (com.skelril.nitro.item.ItemStackFactory.newItemStack)2 CustomItem (com.skelril.nitro.registry.item.CustomItem)2 EventAwareContent (com.skelril.nitro.selector.EventAwareContent)2 ZoneItemUtil (com.skelril.skree.content.registry.item.zone.ZoneItemUtil)2 ModifierService (com.skelril.skree.service.ModifierService)2 ArrayList (java.util.ArrayList)2 List (java.util.List)2 Optional (java.util.Optional)2 CreativeTabs (net.minecraft.creativetab.CreativeTabs)2