Search in sources :

Example 6 with Task

use of org.spongepowered.api.scheduler.Task in project Skree by Skelril.

the class WildernessDropPool method run.

@Override
public boolean run(int timesL) {
    dropper.dropStackSnapshots(itemStackProvider.get(), SpawnTypes.DROPPED_ITEM);
    float volumeLevel = Math.min(1, (((float) timesL / times) * .6F) + ((float) 1 / times));
    IntegratedRunnable music = new IntegratedRunnable() {

        @Override
        public boolean run(int musicPitchT) {
            getExtent().playSound(SoundTypes.BLOCK_NOTE_HARP, getPos(), volumeLevel, (musicPitchT / 3) + 1);
            return true;
        }

        @Override
        public void end() {
        }
    };
    TimedRunnable<IntegratedRunnable> runnable = new TimedRunnable<>(music, 3);
    Task task = Task.builder().execute(runnable).intervalTicks(3).submit(SkreePlugin.inst());
    runnable.setTask(task);
    return true;
}
Also used : Task(org.spongepowered.api.scheduler.Task) IntegratedRunnable(com.skelril.nitro.time.IntegratedRunnable) TimedRunnable(com.skelril.nitro.time.TimedRunnable)

Example 7 with Task

use of org.spongepowered.api.scheduler.Task in project Skree by Skelril.

the class DropClearServiceImpl method dropClear.

private boolean dropClear(World world, int seconds, boolean overwrite) {
    TimedRunnable<EntityCleanupTask> runnable = getActiveTask(world);
    // Check for old task, and overwrite if allowed
    if (runnable != null) {
        if (overwrite) {
            runnable.setTimes(seconds);
            return true;
        }
        return false;
    }
    EntityCleanupTask cleanupTask = pickDropClear(world);
    // Setup new task
    runnable = new TimedRunnable<EntityCleanupTask>(cleanupTask, seconds) {

        @Override
        public void cancel(boolean withEnd) {
            super.cancel(withEnd);
            if (withEnd) {
                entityCount.put(world, 0L);
            // TODO send to the yet to be made, Entity Stats service
            // lastClear.put(world, getBaseTask().getLastProfile());
            }
            timers.remove(world);
        }
    };
    // Offset this by one to prevent the drop clear from triggering twice
    Task task = Task.builder().execute(runnable).delayTicks(1).interval(1, TimeUnit.SECONDS).submit(SkreePlugin.inst());
    runnable.setTask(task);
    timers.put(world, runnable);
    return true;
}
Also used : EntityCleanupTask(com.skelril.nitro.entity.EntityCleanupTask) Task(org.spongepowered.api.scheduler.Task) EntityCleanupTask(com.skelril.nitro.entity.EntityCleanupTask)

Example 8 with Task

use of org.spongepowered.api.scheduler.Task in project Skree by Skelril.

the class AntiPeskListener method punish.

private void punish(Player player) {
    player.sendMessage(Text.of(TextColors.RED, "Command forbidden..."));
    player.sendMessage(Text.of(TextColors.RED, "... prepare to hate your life ..."));
    IntegratedRunnable integratedRunnable = new IntegratedRunnable() {

        @Override
        public boolean run(int times) {
            player.setVelocity(new Vector3d(Probability.getRangedRandom(-3.0, 3.0), Probability.getRangedRandom(-3.0, 3.0), Probability.getRangedRandom(-3.0, 3.0)));
            return true;
        }

        @Override
        public void end() {
            player.kick(Text.of("How about you don't do that again, K?"));
        }
    };
    TimedRunnable<IntegratedRunnable> runnable = new TimedRunnable<>(integratedRunnable, 12);
    Task task = Task.builder().execute(runnable).interval(1, TimeUnit.SECONDS).delay(5, TimeUnit.SECONDS).submit(SkreePlugin.inst());
    runnable.setTask(task);
}
Also used : Task(org.spongepowered.api.scheduler.Task) IntegratedRunnable(com.skelril.nitro.time.IntegratedRunnable) Vector3d(com.flowpowered.math.vector.Vector3d) TimedRunnable(com.skelril.nitro.time.TimedRunnable)

Aggregations

Task (org.spongepowered.api.scheduler.Task)8 IntegratedRunnable (com.skelril.nitro.time.IntegratedRunnable)6 TimedRunnable (com.skelril.nitro.time.TimedRunnable)6 Vector3d (com.flowpowered.math.vector.Vector3d)2 Vector3i (com.flowpowered.math.vector.Vector3i)2 BlockType (org.spongepowered.api.block.BlockType)2 Entity (org.spongepowered.api.entity.Entity)2 Lists (com.google.common.collect.Lists)1 Clause (com.skelril.nitro.Clause)1 EntityCleanupTask (com.skelril.nitro.entity.EntityCleanupTask)1 EntityHealthPrinter (com.skelril.nitro.entity.EntityHealthPrinter)1 EntityHealthUtil (com.skelril.nitro.entity.EntityHealthUtil)1 Probability (com.skelril.nitro.probability.Probability)1 CombinedText (com.skelril.nitro.text.CombinedText)1 PlaceHolderText (com.skelril.nitro.text.PlaceHolderText)1 TimeFilter (com.skelril.nitro.time.TimeFilter)1 ForgeTransformer.tf (com.skelril.nitro.transformer.ForgeTransformer.tf)1 Boss (com.skelril.openboss.Boss)1 BossManager (com.skelril.openboss.BossManager)1 SkreePlugin (com.skelril.skree.SkreePlugin)1