mirror of
https://github.com/Minestom/Minestom.git
synced 2025-01-02 14:38:26 +01:00
Merge pull request #308 from Project-Cepi/update-option-scheduling
Convenience toMilliseconds, add UpdateOption methods to TaskBuilder
This commit is contained in:
commit
da7bed78ae
@ -3,6 +3,7 @@ package net.minestom.server.timer;
|
|||||||
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
|
||||||
import net.minestom.server.extras.selfmodification.MinestomRootClassLoader;
|
import net.minestom.server.extras.selfmodification.MinestomRootClassLoader;
|
||||||
import net.minestom.server.utils.time.TimeUnit;
|
import net.minestom.server.utils.time.TimeUnit;
|
||||||
|
import net.minestom.server.utils.time.UpdateOption;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,6 +73,18 @@ public class TaskBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that the {@link Task} should delay its execution by the specified amount of time.
|
||||||
|
*
|
||||||
|
* @param updateOption the UpdateOption for this builder.
|
||||||
|
* @return this builder, for chaining
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
public TaskBuilder delay(UpdateOption updateOption) {
|
||||||
|
this.delay = updateOption.toMilliseconds();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Specifies that the {@link Task} should continue to run after waiting for the specified value until it is terminated.
|
* Specifies that the {@link Task} should continue to run after waiting for the specified value until it is terminated.
|
||||||
*
|
*
|
||||||
@ -85,6 +98,18 @@ public class TaskBuilder {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Specifies that the {@link Task} should continue to run after waiting for the specified value until it is terminated.
|
||||||
|
*
|
||||||
|
* @param updateOption the UpdateOption for this builder.
|
||||||
|
* @return this builder, for chaining
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
public TaskBuilder repeat(UpdateOption updateOption) {
|
||||||
|
this.repeat = updateOption.toMilliseconds();
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Clears the delay interval of the {@link Task}.
|
* Clears the delay interval of the {@link Task}.
|
||||||
*
|
*
|
||||||
|
@ -35,4 +35,13 @@ public class UpdateOption {
|
|||||||
UpdateOption updateOption = (UpdateOption) o;
|
UpdateOption updateOption = (UpdateOption) o;
|
||||||
return Objects.equals(value, updateOption.value) && Objects.equals(timeUnit, updateOption.timeUnit);
|
return Objects.equals(value, updateOption.value) && Objects.equals(timeUnit, updateOption.timeUnit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts this update option to milliseconds
|
||||||
|
*
|
||||||
|
* @return the converted milliseconds based on the time value and the unit
|
||||||
|
*/
|
||||||
|
public long toMilliseconds() {
|
||||||
|
return timeUnit.toMilliseconds(value);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user