mcMMO/src/main/java/com/gmail/nossr50/util/CancellableRunnable.java
Yomamaeatstoes c34230a82e
mcMMO-Folia-PR (#4925)
Folia Support

---------

Co-authored-by: Rockyers <ethan@yocom.org>
Co-authored-by: TechnicallyCoded <technicallycoded@gmail.com>
Co-authored-by: HSGamer <huynhqtienvtag@gmail.com>
2023-08-26 16:16:18 -07:00

29 lines
649 B
Java

package com.gmail.nossr50.util;
import com.tcoded.folialib.wrapper.task.WrappedTask;
import java.util.function.Consumer;
public abstract class CancellableRunnable implements Consumer<WrappedTask> {
private boolean cancelled = false;
public void cancel() {
cancelled = true;
}
public abstract void run();
@Override
public void accept(WrappedTask wrappedTask) {
// Run the task if it hasn't been cancelled
if (!cancelled) {
run();
}
// Cancel the task if it has been cancelled after running
if (cancelled) {
wrappedTask.cancel();
}
}
}