Search in sources :

Example 11 with Item

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

the class clearMain method run.

public void run(Boolean[] configoptions, List<EntityType> listEntityType, CommandSource src) {
    int removedEntities = 0;
    Map<UUID, Entity> 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()) {
                if (entity instanceof Player) {
                } else if (entity.get(DisplayNameData.class).isPresent()) {
                // Checks if entity has nametag and ignores it.
                } else if (configoptions[1] == true && entity instanceof Monster) {
                    // KillAllMonsters
                    removedEntities++;
                    entity.remove();
                } else if (configoptions[2] == true && entity instanceof Item) {
                    // KillDrops
                    if (ClearItems.run(entity, plugin.getListItemType(), plugin.getitemWB())) {
                        removedEntities++;
                    }
                } else if (configoptions[3] == true && entity instanceof Animal) {
                    // KillAnimalGroups
                    removedEntities = removedEntities + animals.run(entity);
                } else {
                    if (wl.clear(entity, plugin.getListEntityType()) == true) {
                        removedEntities++;
                    }
                }
            }
        }
    }
    ClearTileEntity.run(plugin, plugin.getListTileEntityType(), plugin.getWorlds(), src);
    feedback(src, removedEntities);
}
Also used : Entity(org.spongepowered.api.entity.Entity) Item(org.spongepowered.api.entity.Item) Player(org.spongepowered.api.entity.living.player.Player) Animal(org.spongepowered.api.entity.living.animal.Animal) Monster(org.spongepowered.api.entity.living.monster.Monster) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) UUID(java.util.UUID) World(org.spongepowered.api.world.World)

Example 12 with Item

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

the class TheButcherShopListener method onEntityDrop.

@Listener
public void onEntityDrop(DropItemEvent.Destruct event, @Named(NamedCause.SOURCE) EntitySpawnCause spawnCause) {
    Entity entity = spawnCause.getEntity();
    if (!(entity instanceof Animal)) {
        return;
    }
    Optional<TheButcherShopInstance> optInst = manager.getApplicableZone(entity);
    if (!optInst.isPresent()) {
        return;
    }
    event.getEntities().clear();
    Item item = (Item) entity.getLocation().createEntity(EntityTypes.ITEM);
    item.offer(Keys.REPRESENTED_ITEM, newItemStack("skree:unpackaged_meat").createSnapshot());
    event.getEntities().add(item);
}
Also used : Entity(org.spongepowered.api.entity.Entity) Item(org.spongepowered.api.entity.Item) Animal(org.spongepowered.api.entity.living.animal.Animal) Listener(org.spongepowered.api.event.Listener)

Example 13 with Item

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

the class CursedMineInstance method sweepFloor.

public void sweepFloor() {
    for (Item item : getContained(Item.class)) {
        if (!contains(item)) {
            continue;
        }
        ItemType id = item.getItemType();
        for (ItemType aItem : ITEMS) {
            if (aItem == id) {
                ItemStackSnapshot snapshot = item.get(Keys.REPRESENTED_ITEM).get();
                int newAmt = (int) (snapshot.getCount() * .8);
                if (newAmt < 1) {
                    item.remove();
                } else {
                    ItemStack newStack = snapshot.createStack();
                    newStack.setQuantity(newAmt);
                    item.offer(Keys.REPRESENTED_ITEM, newStack.createSnapshot());
                }
                break;
            }
        }
    }
}
Also used : Item(org.spongepowered.api.entity.Item) ItemType(org.spongepowered.api.item.ItemType) ItemStackSnapshot(org.spongepowered.api.item.inventory.ItemStackSnapshot) ItemStack(org.spongepowered.api.item.inventory.ItemStack) ItemStackFactory.newItemStack(com.skelril.nitro.item.ItemStackFactory.newItemStack)

Example 14 with Item

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

the class CursedMineListener method onOreDrop.

@Listener
public void onOreDrop(DropItemEvent.Destruct event, @Named(NamedCause.SOURCE) BlockSpawnCause spawnCause, @Named(NamedCause.NOTIFIER) Player player) {
    if (!Probability.getChance(4)) {
        return;
    }
    BlockSnapshot blockSnapshot = spawnCause.getBlockSnapshot();
    Optional<Location<World>> optLocation = blockSnapshot.getLocation();
    if (!optLocation.isPresent()) {
        return;
    }
    Location<World> loc = optLocation.get();
    Optional<CursedMineInstance> optInst = manager.getApplicableZone(loc);
    if (!optInst.isPresent()) {
        return;
    }
    CursedMineInstance inst = optInst.get();
    if (!inst.hasrecordForPlayerAt(player, loc)) {
        return;
    }
    List<ItemStackSnapshot> itemStacks = new ArrayList<>();
    Iterator<Entity> entityIterator = event.getEntities().iterator();
    while (entityIterator.hasNext()) {
        Entity entity = entityIterator.next();
        if (entity instanceof Item) {
            ItemStackSnapshot snapshot = ((Item) entity).item().get();
            itemStacks.add(snapshot);
            entityIterator.remove();
        }
    }
    int times = 1;
    Optional<ModifierService> optService = Sponge.getServiceManager().provide(ModifierService.class);
    if (optService.isPresent()) {
        ModifierService service = optService.get();
        if (service.isActive(Modifiers.DOUBLE_CURSED_ORES)) {
            times *= 2;
        }
    }
    for (ItemStackSnapshot stackSnapshot : itemStacks) {
        int quantity = Math.min(stackSnapshot.getCount() * Probability.getRangedRandom(4, 8), stackSnapshot.getType().getMaxStackQuantity());
        for (int i = 0; i < times; ++i) {
            ItemStack stack = stackSnapshot.createStack();
            stack.setQuantity(quantity);
            player.getInventory().offer(stack);
        }
    }
}
Also used : Entity(org.spongepowered.api.entity.Entity) BlockSnapshot(org.spongepowered.api.block.BlockSnapshot) ModifierService(com.skelril.skree.service.ModifierService) World(org.spongepowered.api.world.World) Item(org.spongepowered.api.entity.Item) ItemStackSnapshot(org.spongepowered.api.item.inventory.ItemStackSnapshot) ItemStack(org.spongepowered.api.item.inventory.ItemStack) Location(org.spongepowered.api.world.Location) Listener(org.spongepowered.api.event.Listener)

Example 15 with Item

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

the class ZoneMasterOrb 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 (isZoneMasterItem(stack) && isAttuned(stack)) {
            rescindGroupInvite(stack);
            ItemStack reset = new ItemStack(CustomItemTypes.ZONE_MASTER_ORB);
            setMasterToZone(reset, getZone(stack).get());
            entity.offer(Keys.REPRESENTED_ITEM, tf(reset).createSnapshot());
        }
    });
}
Also used : WorldService(com.skelril.skree.service.WorldService) InstanceWorldWrapper(com.skelril.skree.content.world.instance.InstanceWorldWrapper) SpawnCause(org.spongepowered.api.event.cause.entity.spawn.SpawnCause) DropItemEvent(org.spongepowered.api.event.item.inventory.DropItemEvent) Craftable(com.skelril.nitro.registry.Craftable) SkreePlugin(com.skelril.skree.SkreePlugin) WorldEffectWrapper(com.skelril.skree.service.internal.world.WorldEffectWrapper) Side(net.minecraftforge.fml.relauncher.Side) NonNullList(net.minecraft.util.NonNullList) ForgeTransformer.tf(com.skelril.nitro.transformer.ForgeTransformer.tf) ZoneItemUtil(com.skelril.skree.content.registry.item.zone.ZoneItemUtil) EntityItem(net.minecraft.entity.item.EntityItem) Lightning(org.spongepowered.api.entity.weather.Lightning) Location(org.spongepowered.api.world.Location) InteractEntityEvent(org.spongepowered.api.event.entity.InteractEntityEvent) CustomItem(com.skelril.nitro.registry.item.CustomItem) Sponge(org.spongepowered.api.Sponge) CustomItemTypes(com.skelril.skree.content.registry.item.CustomItemTypes) EventAwareContent(com.skelril.nitro.selector.EventAwareContent) ClientConnectionEvent(org.spongepowered.api.event.network.ClientConnectionEvent) Tristate(org.spongepowered.api.util.Tristate) Cause(org.spongepowered.api.event.cause.Cause) List(java.util.List) RespawnService(com.skelril.skree.service.RespawnService) EntityPlayer(net.minecraft.entity.player.EntityPlayer) World(org.spongepowered.api.world.World) HandTypes(org.spongepowered.api.data.type.HandTypes) Optional(java.util.Optional) Player(org.spongepowered.api.entity.living.player.Player) First(org.spongepowered.api.event.filter.cause.First) Blocks(net.minecraft.init.Blocks) Getter(org.spongepowered.api.event.filter.Getter) Keys(org.spongepowered.api.data.key.Keys) MainWorldWrapper(com.skelril.skree.content.world.main.MainWorldWrapper) GameRegistry(net.minecraftforge.fml.common.registry.GameRegistry) ArrayList(java.util.ArrayList) ItemStack(net.minecraft.item.ItemStack) EntityTypes(org.spongepowered.api.entity.EntityTypes) Text(org.spongepowered.api.text.Text) Task(org.spongepowered.api.scheduler.Task) ZoneStatus(com.skelril.skree.service.internal.zone.ZoneStatus) CreativeTabs(net.minecraft.creativetab.CreativeTabs) InteractBlockEvent(org.spongepowered.api.event.block.InteractBlockEvent) SideOnly(net.minecraftforge.fml.relauncher.SideOnly) TextColors(org.spongepowered.api.text.format.TextColors) ZoneService(com.skelril.skree.service.ZoneService) Items(net.minecraft.init.Items) Item(org.spongepowered.api.entity.Item) SpawnTypes(org.spongepowered.api.event.cause.entity.spawn.SpawnTypes) ItemStackFactory.newItemStack(com.skelril.nitro.item.ItemStackFactory.newItemStack) Listener(org.spongepowered.api.event.Listener) EntityItem(net.minecraft.entity.item.EntityItem) CustomItem(com.skelril.nitro.registry.item.CustomItem) Item(org.spongepowered.api.entity.Item) ItemStack(net.minecraft.item.ItemStack) ItemStackFactory.newItemStack(com.skelril.nitro.item.ItemStackFactory.newItemStack) EntityItem(net.minecraft.entity.item.EntityItem) Listener(org.spongepowered.api.event.Listener)

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