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