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);
}
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);
}
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;
}
}
}
}
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);
}
}
}
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());
}
});
}
Aggregations