From f998e8feb4e45e130632df26a313016031ad82d0 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Mon, 30 Jun 2025 09:15:33 +0300 Subject: [PATCH] Canged all the IConditionalAction Supplier instances (condition,terminateWhen,pauseUntil) to Function --- .../npcs/api/handler/IActionManager.java | 71 ++++++++++--------- .../noppes/npcs/api/handler/data/IAction.java | 18 ++--- .../data/actions/IConditionalAction.java | 12 ++-- 3 files changed, 51 insertions(+), 50 deletions(-) diff --git a/java/noppes/npcs/api/handler/IActionManager.java b/java/noppes/npcs/api/handler/IActionManager.java index a4e6dd8..60316f5 100644 --- a/java/noppes/npcs/api/handler/IActionManager.java +++ b/java/noppes/npcs/api/handler/IActionManager.java @@ -7,7 +7,8 @@ import noppes.npcs.api.handler.data.actions.IConditionalAction; import java.util.List; import java.util.Queue; import java.util.function.Consumer; -import java.util.function.Supplier; +import java.util.function.Function; + /** * Manages a queue of {@link IAction} instances, allowing scheduling of delayed, @@ -41,65 +42,65 @@ public interface IActionManager { /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true * @return the action scheduled */ - IConditionalAction create(Supplier condition, Consumer task); + IConditionalAction create(Function condition, Consumer task); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true * @return the action scheduled */ - IConditionalAction create(String name, Supplier condition, Consumer task); + IConditionalAction create(String name, Function condition, Consumer task); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @return the action scheduled */ - IConditionalAction create(Supplier condition, Consumer task, Supplier terminateWhen); + IConditionalAction create(Function condition, Consumer task, Function terminateWhen); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @return the action scheduled */ - IConditionalAction create(String name, Supplier condition, Consumer task, Supplier terminateWhen); + IConditionalAction create(String name, Function condition, Consumer task, Function terminateWhen); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @param onTermination code to run when the termination condition returns true * @return the action scheduled */ - IConditionalAction create(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction create(Function condition, Consumer task, Function terminateWhen, Consumer onTermination); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @param onTermination code to run when the termination condition returns true * @return the action scheduled */ - IConditionalAction create(String name, Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction create(String name, Function condition, Consumer task, Function terminateWhen, Consumer onTermination); /** * Begin processing scheduled actions. Must be called once. @@ -213,65 +214,65 @@ public interface IActionManager { /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true * @return the action scheduled */ - IConditionalAction scheduleAction(Supplier condition, Consumer task); + IConditionalAction scheduleAction(Function condition, Consumer task); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @return the action scheduled */ - IConditionalAction scheduleAction(Supplier condition, Consumer task, Supplier terminateWhen); + IConditionalAction scheduleAction(Function condition, Consumer task, Function terminateWhen); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @param onTermination code to run when the termination condition returns true * @return the action scheduled */ - IConditionalAction scheduleAction(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction scheduleAction(Function condition, Consumer task, Function terminateWhen, Consumer onTermination); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true * @return the action scheduled */ - IConditionalAction scheduleAction(String name, Supplier condition, Consumer task); + IConditionalAction scheduleAction(String name, Function condition, Consumer task); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @return the action scheduled */ - IConditionalAction scheduleAction(String name, Supplier condition, Consumer task, Supplier terminateWhen); + IConditionalAction scheduleAction(String name, Function condition, Consumer task, Function terminateWhen); /** * Schedule a conditional action that gives up after at most maxChecks attempts. * * @param name unique name - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @param task code to run once condition first becomes true - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @param onTermination code to run when the termination condition returns true * @return the action scheduled */ - IConditionalAction scheduleAction(String name, Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction scheduleAction(String name, Function condition, Consumer task, Function terminateWhen, Consumer onTermination); IConditionalAction scheduleAction(IConditionalAction action); @@ -342,14 +343,14 @@ public interface IActionManager { /** * Convenience: create & enqueue a conditional task that re-checks forever. */ - default IConditionalAction addConditionalTask(String name, Supplier condition, Consumer task) { + default IConditionalAction addConditionalTask(String name, Function condition, Consumer task) { return scheduleAction(name, condition, task); } /** * Convenience: create & enqueue a conditional task that gives up after maxChecks. */ - default IConditionalAction addConditionalTask(String name, Supplier condition, Consumer task, Supplier terminateWhen) { + default IConditionalAction addConditionalTask(String name, Function condition, Consumer task, Function terminateWhen) { return scheduleAction(name, condition, task, terminateWhen); } diff --git a/java/noppes/npcs/api/handler/data/IAction.java b/java/noppes/npcs/api/handler/data/IAction.java index 9473e7a..219e700 100644 --- a/java/noppes/npcs/api/handler/data/IAction.java +++ b/java/noppes/npcs/api/handler/data/IAction.java @@ -4,7 +4,7 @@ import noppes.npcs.api.handler.IActionManager; import noppes.npcs.api.handler.data.actions.IConditionalAction; import java.util.function.Consumer; -import java.util.function.Supplier; +import java.util.function.Function; /** * Represents a single "task" that can be executed over multiple ticks, @@ -125,10 +125,10 @@ public interface IAction { * Must call {@link #threadify()} before using, else throws exception. * Pauses IAction's thread until the supplied condition is satisfied or {@link #resume()} is called. */ - void pauseUntil(Supplier until); + void pauseUntil(Function until); /** - * Resumes thread that was previously paused by {@link #pause()}, {@link #pauseUntil(Supplier)}, {@link #pauseFor(int)} or {@link #pauseFor(long)} + * Resumes thread that was previously paused by {@link #pause()}, {@link #pauseUntil(Function)}, {@link #pauseFor(int)} or {@link #pauseFor(long)} * Must be called from a different thread than the IAction one, as that one is paused, so it won't reach this function if it comes after any of the pausing functions. */ void resume(); @@ -201,17 +201,17 @@ public interface IAction { */ IConditionalAction conditional(IConditionalAction after); - IConditionalAction conditional(Supplier condition, Consumer task); + IConditionalAction conditional(Function condition, Consumer task); - IConditionalAction conditional(String name, Supplier condition, Consumer task); + IConditionalAction conditional(String name, Function condition, Consumer task); - IConditionalAction conditional(Supplier condition, Consumer task, Supplier terminate); + IConditionalAction conditional(Function condition, Consumer task, Function terminate); - IConditionalAction conditional(String name, Supplier condition, Consumer task, Supplier terminate); + IConditionalAction conditional(String name, Function condition, Consumer task, Function terminate); - IConditionalAction conditional(Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction conditional(Function condition, Consumer task, Function terminateWhen, Consumer onTermination); - IConditionalAction conditional(String name, Supplier condition, Consumer task, Supplier terminateWhen, Consumer onTermination); + IConditionalAction conditional(String name, Function condition, Consumer task, Function terminateWhen, Consumer onTermination); /** * Enqueue another IAction on the parallel chain which starts firing simultaneously as this. diff --git a/java/noppes/npcs/api/handler/data/actions/IConditionalAction.java b/java/noppes/npcs/api/handler/data/actions/IConditionalAction.java index 66502a2..0b94a64 100644 --- a/java/noppes/npcs/api/handler/data/actions/IConditionalAction.java +++ b/java/noppes/npcs/api/handler/data/actions/IConditionalAction.java @@ -3,21 +3,21 @@ package noppes.npcs.api.handler.data.actions; import noppes.npcs.api.handler.data.IAction; import java.util.function.Consumer; -import java.util.function.Supplier; +import java.util.function.Function; public interface IConditionalAction extends IAction { /** - * @param condition supplier checked every tick, if it returns true, task is fired + * @param condition checked every tick, if it returns true, task is fired * @return */ - IConditionalAction setCondition(Supplier condition); + IConditionalAction setCondition(Function condition); /** - * @param terminateWhen supplier checked every tick, if it returns true, action is terminated (gets marked done) + * @param terminateWhen checked every tick, if it returns true, action is terminated (gets marked done) * @return this action */ - IConditionalAction terminateWhen(Supplier terminateWhen); + IConditionalAction terminateWhen(Function terminateWhen); /** * @param onTermination code to run when the termination condition returns true @@ -45,7 +45,7 @@ public interface IConditionalAction extends IAction { /** * - * @return True if condition provided by {{@link #terminateWhen(Supplier)}} is satisfied + * @return True if condition provided by {{@link #terminateWhen(Function)}} is satisfied * Can be called directly in the IAction's task. * Can only be true once, as action is marked done immediately after. */