Search in sources :

Example 1 with RespawnQueueService

use of com.skelril.skree.service.RespawnQueueService in project Skree by Skelril.

the class GraveStone method createGraveFromDeath.

public void createGraveFromDeath(DestructEntityEvent.Death event) {
    Entity target = event.getTargetEntity();
    if (target instanceof Player) {
        Player player = (Player) target;
        List<ItemStack> items = new ArrayList<>();
        Optional<ItemStack> optStack;
        do {
            optStack = player.getInventory().poll();
        } while (optStack.isPresent() && items.add(optStack.get()));
        Iterator<ItemStack> it = items.iterator();
        Optional<RespawnQueueService> optService = Sponge.getServiceManager().provide(RespawnQueueService.class);
        if (optService.isPresent()) {
            RespawnQueueService service = optService.get();
            while (it.hasNext()) {
                if (it.next().getItem() == CustomItemTypes.NETHER_BOWL) {
                    it.remove();
                    ItemStack stack = tf(new net.minecraft.item.ItemStack(CustomItemTypes.NETHER_BOWL));
                    CustomItemTypes.NETHER_BOWL.setDestination(stack, player.getLocation());
                    service.enque(player, stack);
                    break;
                }
            }
        }
        Task.builder().execute(() -> {
            createGraveDropExcess(items, target.getLocation());
        }).delayTicks(1).submit(SkreePlugin.inst());
    }
}
Also used : Entity(org.spongepowered.api.entity.Entity) TileEntity(net.minecraft.tileentity.TileEntity) Player(org.spongepowered.api.entity.living.player.Player) RespawnQueueService(com.skelril.skree.service.RespawnQueueService) ItemStack(org.spongepowered.api.item.inventory.ItemStack)

Aggregations

RespawnQueueService (com.skelril.skree.service.RespawnQueueService)1 TileEntity (net.minecraft.tileentity.TileEntity)1 Entity (org.spongepowered.api.entity.Entity)1 Player (org.spongepowered.api.entity.living.player.Player)1 ItemStack (org.spongepowered.api.item.inventory.ItemStack)1