diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/AbstractActionManager.java b/api/src/main/java/net/momirealms/customcrops/api/action/AbstractActionManager.java index e8cae29..309f3d3 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/AbstractActionManager.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/AbstractActionManager.java @@ -191,7 +191,7 @@ public abstract class AbstractActionManager implements ActionManager { } protected void registerBundleAction(Class tClass) { - registerAction((args, chance) -> new ActionBundle<>(plugin, this, args, chance), "chain"); + registerAction((args, chance) -> new ActionChain<>(plugin, this, args, chance), "chain"); registerAction((args, chance) -> new ActionDelay<>(plugin, this, args, chance), "delay"); registerAction((args, chance) -> new ActionTimer<>(plugin, this, args, chance), "timer"); registerAction((args, chance) -> { diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/AbstractBuiltInAction.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/AbstractBuiltInAction.java index ae5d90f..da91cbc 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/AbstractBuiltInAction.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/AbstractBuiltInAction.java @@ -19,24 +19,31 @@ package net.momirealms.customcrops.api.action.builtin; import net.momirealms.customcrops.api.BukkitCustomCropsPlugin; import net.momirealms.customcrops.api.action.Action; +import net.momirealms.customcrops.api.context.Context; public abstract class AbstractBuiltInAction implements Action { + protected final BukkitCustomCropsPlugin plugin; protected final double chance; + protected AbstractBuiltInAction(BukkitCustomCropsPlugin plugin, double chance) { this.plugin = plugin; this.chance = chance; } - public BukkitCustomCropsPlugin getPlugin() { + public BukkitCustomCropsPlugin plugin() { return plugin; } - public double getChance() { + public double chance() { return chance; } - public boolean checkChance() { - return !(Math.random() > chance); + @Override + public void trigger(Context context) { + if (Math.random() > chance) return; + triggerAction(context); } + + protected abstract void triggerAction(Context context); } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionActionbarNearby.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionActionbarNearby.java index 1c3da2b..9088c1a 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionActionbarNearby.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionActionbarNearby.java @@ -32,8 +32,10 @@ import org.bukkit.entity.Player; import static java.util.Objects.requireNonNull; public class ActionActionbarNearby extends AbstractBuiltInAction { - final String actionbar; - final MathValue range; + + private final String actionbar; + private final MathValue range; + public ActionActionbarNearby( BukkitCustomCropsPlugin plugin, Section section, @@ -43,10 +45,10 @@ public class ActionActionbarNearby extends AbstractBuiltInAction { this.actionbar = section.getString("actionbar"); this.range = MathValue.auto(section.get("range")); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; OfflinePlayer owner = null; if (context.holder() instanceof Player player) { owner = player; @@ -63,11 +65,11 @@ public class ActionActionbarNearby extends AbstractBuiltInAction { } } - public String getActionbar() { + public String actionbar() { return actionbar; } - public MathValue getRange() { + public MathValue range() { return range; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBreak.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBreak.java index 209f4c5..1608f50 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBreak.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBreak.java @@ -40,7 +40,9 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; public class ActionBreak extends AbstractBuiltInAction { - final boolean triggerEvent; + + private final boolean triggerEvent; + public ActionBreak( BukkitCustomCropsPlugin plugin, Object args, @@ -49,8 +51,9 @@ public class ActionBreak extends AbstractBuiltInAction { super(plugin, chance); this.triggerEvent = (boolean) args; } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Optional> optionalWorld = plugin.getWorldManager().getWorld(location.getWorld()); if (optionalWorld.isEmpty()) { @@ -92,7 +95,7 @@ public class ActionBreak extends AbstractBuiltInAction { plugin.getItemManager().remove(location, ExistenceForm.ANY); } - public boolean isTriggerEvent() { + public boolean shouldBreakTriggerEvent() { return triggerEvent; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBroadcast.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBroadcast.java index 3aae07f..9e983e6 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBroadcast.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBroadcast.java @@ -30,7 +30,9 @@ import org.bukkit.entity.Player; import java.util.List; public class ActionBroadcast extends AbstractBuiltInAction { - final List messages; + + private final List messages; + public ActionBroadcast( BukkitCustomCropsPlugin plugin, Object args, @@ -39,10 +41,10 @@ public class ActionBroadcast extends AbstractBuiltInAction { super(plugin, chance); this.messages = ListUtils.toList(args); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; OfflinePlayer offlinePlayer = null; if (context.holder() instanceof Player player) { offlinePlayer = player; @@ -56,7 +58,7 @@ public class ActionBroadcast extends AbstractBuiltInAction { } } - public List getMessages() { + public List messages() { return messages; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBundle.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionChain.java similarity index 88% rename from api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBundle.java rename to api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionChain.java index ae01edf..b1e5236 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionBundle.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionChain.java @@ -27,9 +27,11 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -public class ActionBundle extends AbstractBuiltInAction { - final List> actions; - public ActionBundle( +public class ActionChain extends AbstractBuiltInAction { + + private final List> actions; + + public ActionChain( BukkitCustomCropsPlugin plugin, AbstractActionManager manager, Object args, @@ -45,15 +47,15 @@ public class ActionBundle extends AbstractBuiltInAction { } } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { for (Action action : actions) { action.trigger(context); } } - public List> getActions() { + public List> actions() { return actions; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommand.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommand.java index be20f7e..64bbc52 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommand.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommand.java @@ -29,7 +29,9 @@ import org.bukkit.entity.Player; import java.util.List; public class ActionCommand extends AbstractBuiltInAction { - final List commands; + + private final List commands; + public ActionCommand( BukkitCustomCropsPlugin plugin, Object args, @@ -38,10 +40,10 @@ public class ActionCommand extends AbstractBuiltInAction { super(plugin, chance); this.commands = ListUtils.toList(args); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; OfflinePlayer owner = null; if (context.holder() instanceof Player player) { owner = player; @@ -54,7 +56,7 @@ public class ActionCommand extends AbstractBuiltInAction { }, null); } - public List getCommands() { + public List commands() { return commands; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommandNearby.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommandNearby.java index d8d9d45..f699652 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommandNearby.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionCommandNearby.java @@ -35,8 +35,10 @@ import java.util.List; import static java.util.Objects.requireNonNull; public class ActionCommandNearby extends AbstractBuiltInAction { - final List cmd; - final MathValue range; + + private final List cmd; + private final MathValue range; + public ActionCommandNearby( BukkitCustomCropsPlugin plugin, Section section, @@ -46,10 +48,10 @@ public class ActionCommandNearby extends AbstractBuiltInAction { this.cmd = ListUtils.toList(section.get("command")); this.range = MathValue.auto(section.get("range")); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; OfflinePlayer owner = null; if (context.holder() instanceof Player player) { owner = player; @@ -67,11 +69,11 @@ public class ActionCommandNearby extends AbstractBuiltInAction { } } - public List getCmd() { + public List commands() { return cmd; } - public MathValue getRange() { + public MathValue range() { return range; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionConditional.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionConditional.java index 37122c1..e68270c 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionConditional.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionConditional.java @@ -25,8 +25,10 @@ import net.momirealms.customcrops.api.context.Context; import net.momirealms.customcrops.api.requirement.Requirement; public class ActionConditional extends AbstractBuiltInAction { - final Action[] actions; - final Requirement[] requirements; + + private final Action[] actions; + private final Requirement[] requirements; + public ActionConditional( BukkitCustomCropsPlugin plugin, AbstractActionManager manager, @@ -38,24 +40,24 @@ public class ActionConditional extends AbstractBuiltInAction { this.actions = manager.parseActions(section.getSection("actions")); this.requirements = plugin.getRequirementManager(tClass).parseRequirements(section.getSection("conditions"), true); } + @Override - public void trigger(Context condition) { - if (!checkChance()) return; + protected void triggerAction(Context context) { for (Requirement requirement : requirements) { - if (!requirement.isSatisfied(condition)) { + if (!requirement.isSatisfied(context)) { return; } } for (Action action : actions) { - action.trigger(condition); + action.trigger(context); } } - public Action[] getActions() { + public Action[] actions() { return actions; } - public Requirement[] getRequirements() { + public Requirement[] requirements() { return requirements; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDelay.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDelay.java index fe9705a..71274b9 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDelay.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDelay.java @@ -31,9 +31,11 @@ import java.util.Map; import java.util.concurrent.TimeUnit; public class ActionDelay extends AbstractBuiltInAction { - final List> actions; - final int delay; - final boolean async; + + private final List> actions; + private final int delay; + private final boolean async; + public ActionDelay( BukkitCustomCropsPlugin plugin, AbstractActionManager manager, @@ -55,9 +57,9 @@ public class ActionDelay extends AbstractBuiltInAction { async = false; } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { Location location = context.arg(ContextKeys.LOCATION); if (async) { plugin.getScheduler().asyncLater(() -> { @@ -72,15 +74,15 @@ public class ActionDelay extends AbstractBuiltInAction { } } - public List> getActions() { + public List> actions() { return actions; } - public int getDelay() { + public int delay() { return delay; } - public boolean isAsync() { + public boolean async() { return async; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItem.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItem.java index 930f10d..3172d43 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItem.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItem.java @@ -42,11 +42,13 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; public class ActionDropItem extends AbstractBuiltInAction { - final boolean ignoreFertilizer; - final String item; - final MathValue min; - final MathValue max; - final boolean toInv; + + private final boolean ignoreFertilizer; + private final String item; + private final MathValue min; + private final MathValue max; + private final boolean toInv; + public ActionDropItem( BukkitCustomCropsPlugin plugin, Section section, @@ -58,11 +60,10 @@ public class ActionDropItem extends AbstractBuiltInAction { this.min = MathValue.auto(section.get("min")); this.max = MathValue.auto(section.get("max")); this.toInv = section.getBoolean("to-inventory", false); - } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); Player player = null; if (context.holder() instanceof Player p) { @@ -117,23 +118,23 @@ public class ActionDropItem extends AbstractBuiltInAction { return itemStack; } - public boolean isIgnoreFertilizer() { + public boolean ignoreFertilizer() { return ignoreFertilizer; } - public String getItem() { + public String itemID() { return item; } - public MathValue getMin() { + public MathValue min() { return min; } - public MathValue getMax() { + public MathValue max() { return max; } - public boolean isToInv() { + public boolean toInventory() { return toInv; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItemLegacy.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItemLegacy.java index 7c79f94..a41cdf8 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItemLegacy.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionDropItemLegacy.java @@ -30,7 +30,9 @@ import java.util.Map; import static java.util.Objects.requireNonNull; public class ActionDropItemLegacy extends AbstractBuiltInAction { - final List> actions; + + private final List> actions; + public ActionDropItemLegacy( BukkitCustomCropsPlugin plugin, ActionManager manager, @@ -52,9 +54,9 @@ public class ActionDropItemLegacy extends AbstractBuiltInAction { actions.add(requireNonNull(manager.getActionFactory("quality-crops")).process(qualitySection, 1)); } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { for (Action action : actions) { action.trigger(context); } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionFakeItem.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionFakeItem.java index 84ae5e6..1b8e1de 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionFakeItem.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionFakeItem.java @@ -38,16 +38,18 @@ import java.util.concurrent.TimeUnit; import static java.util.Objects.requireNonNull; public class ActionFakeItem extends AbstractBuiltInAction { - final String itemID; - final MathValue duration; - final boolean other; - final MathValue x; - final MathValue y; - final MathValue z; - final MathValue yaw; - final int range; - final boolean visibleToAll; - final boolean useItemDisplay; + + private final String itemID; + private final MathValue duration; + private final boolean other; + private final MathValue x; + private final MathValue y; + private final MathValue z; + private final MathValue yaw; + private final int range; + private final boolean visibleToAll; + private final boolean useItemDisplay; + public ActionFakeItem( BukkitCustomCropsPlugin plugin, Section section, @@ -68,9 +70,9 @@ public class ActionFakeItem extends AbstractBuiltInAction { this.visibleToAll = section.getBoolean("visible-to-all", true); this.useItemDisplay = section.getBoolean("use-item-display", false); } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; Player owner = null; if (context.holder() instanceof Player p) { @@ -117,43 +119,43 @@ public class ActionFakeItem extends AbstractBuiltInAction { }, (long) (duration.evaluate(context) * 50), TimeUnit.MILLISECONDS); } - public String getItemID() { + public String itemID() { return itemID; } - public MathValue getDuration() { + public MathValue duration() { return duration; } - public boolean isOther() { + public boolean otherPosition() { return other; } - public MathValue getX() { + public MathValue x() { return x; } - public MathValue getY() { + public MathValue y() { return y; } - public MathValue getZ() { + public MathValue z() { return z; } - public MathValue getYaw() { + public MathValue yaw() { return yaw; } - public int getRange() { + public int range() { return range; } - public boolean isVisibleToAll() { + public boolean visibleToAll() { return visibleToAll; } - public boolean isUseItemDisplay() { + public boolean useItemDisplay() { return useItemDisplay; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionHologram.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionHologram.java index b760a9c..9af5eb9 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionHologram.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionHologram.java @@ -1,7 +1,6 @@ package net.momirealms.customcrops.api.action.builtin; import dev.dejvokep.boostedyaml.block.implementation.Section; -import net.kyori.adventure.text.Component; import net.momirealms.customcrops.api.BukkitCustomCropsPlugin; import net.momirealms.customcrops.api.context.Context; import net.momirealms.customcrops.api.context.ContextKeys; @@ -38,15 +37,17 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; public class ActionHologram extends AbstractBuiltInAction { - final TextValue text; - final MathValue duration; - final boolean other; - final MathValue x; - final MathValue y; - final MathValue z; - final boolean applyCorrection; - final boolean onlyShowToOne; - final int range; + + private final TextValue text; + private final MathValue duration; + private final boolean other; + private final MathValue x; + private final MathValue y; + private final MathValue z; + private final boolean applyCorrection; + private final boolean onlyShowToOne; + private final int range; + public ActionHologram( BukkitCustomCropsPlugin plugin, Section section, @@ -63,11 +64,10 @@ public class ActionHologram extends AbstractBuiltInAction { this.onlyShowToOne = !section.getBoolean("visible-to-all", false); this.range = section.getInt("range", 32); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (context.holder() == null) return; - if (Math.random() > chance) return; Player owner = null; if (context.holder() instanceof Player p) { owner = p; @@ -95,45 +95,46 @@ public class ActionHologram extends AbstractBuiltInAction { } } if (viewers.isEmpty()) return; - Component component = AdventureHelper.miniMessage(text.render(context)); + String json = AdventureHelper.componentToJson(AdventureHelper.miniMessage(text.render(context))); + int durationInMillis = (int) (duration.evaluate(context) * 50); for (Player viewer : viewers) { - HologramManager.getInstance().showHologram(viewer, location, AdventureHelper.componentToJson(component), (int) (duration.evaluate(context) * 50)); + HologramManager.getInstance().showHologram(viewer, location, json, durationInMillis); } } - public TextValue getText() { + public TextValue text() { return text; } - public MathValue getDuration() { + public MathValue duration() { return duration; } - public boolean isOther() { + public boolean otherPosition() { return other; } - public MathValue getX() { + public MathValue x() { return x; } - public MathValue getY() { + public MathValue y() { return y; } - public MathValue getZ() { + public MathValue z() { return z; } - public boolean isApplyCorrection() { + public boolean applyHeightCorrection() { return applyCorrection; } - public boolean isOnlyShowToOne() { + public boolean showToOne() { return onlyShowToOne; } - public int getRange() { + public int range() { return range; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionMessageNearby.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionMessageNearby.java index 3f8de0b..1b61172 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionMessageNearby.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionMessageNearby.java @@ -36,8 +36,10 @@ import java.util.List; import static java.util.Objects.requireNonNull; public class ActionMessageNearby extends AbstractBuiltInAction { - final List messages; - final MathValue range; + + private final List messages; + private final MathValue range; + public ActionMessageNearby( BukkitCustomCropsPlugin plugin, Section section, @@ -47,10 +49,10 @@ public class ActionMessageNearby extends AbstractBuiltInAction { this.messages = ListUtils.toList(section.get("message")); this.range = MathValue.auto(section.get("range")); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; double realRange = range.evaluate(context); OfflinePlayer owner = null; if (context.holder() instanceof Player player) { @@ -73,11 +75,11 @@ public class ActionMessageNearby extends AbstractBuiltInAction { } } - public List getMessages() { + public List messages() { return messages; } - public MathValue getRange() { + public MathValue range() { return range; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionParticle.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionParticle.java index cebb4ee..5c13ddb 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionParticle.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionParticle.java @@ -26,25 +26,28 @@ import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.Particle; import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Nullable; import java.util.Locale; import static java.util.Objects.requireNonNull; public class ActionParticle extends AbstractBuiltInAction { - final Particle particleType; - final double x; - final double y; - final double z; - final double offSetX; - final double offSetY; - final double offSetZ; - final int count; - final double extra; - final float scale; - final ItemStack itemStack; - final Color color; - final Color toColor; + + private final Particle particleType; + private final double x; + private final double y; + private final double z; + private final double offSetX; + private final double offSetY; + private final double offSetZ; + private final int count; + private final double extra; + private final float scale; + private final ItemStack itemStack; + private final Color color; + private final Color toColor; + public ActionParticle( BukkitCustomCropsPlugin plugin, Section section, @@ -83,10 +86,10 @@ public class ActionParticle extends AbstractBuiltInAction { toColor = null; } } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); location.getWorld().spawnParticle( particleType, @@ -98,55 +101,58 @@ public class ActionParticle extends AbstractBuiltInAction { ); } - public Particle getParticleType() { + public Particle particleType() { return particleType; } - public double getX() { + public double x() { return x; } - public double getY() { + public double y() { return y; } - public double getZ() { + public double z() { return z; } - public double getOffSetX() { + public double offSetX() { return offSetX; } - public double getOffSetY() { + public double offSetY() { return offSetY; } - public double getOffSetZ() { + public double offSetZ() { return offSetZ; } - public int getCount() { + public int count() { return count; } - public double getExtra() { + public double extra() { return extra; } - public float getScale() { + public float scale() { return scale; } - public ItemStack getItemStack() { + @Nullable + public ItemStack itemStack() { return itemStack; } - public Color getColor() { + @Nullable + public Color color() { return color; } - public Color getToColor() { + @Nullable + public Color toColor() { return toColor; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPlant.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPlant.java index 25c237f..73bfb70 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPlant.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPlant.java @@ -45,10 +45,12 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; public class ActionPlant extends AbstractBuiltInAction { - final int point; - final String key; - final int y; - final boolean triggerAction; + + private final int point; + private final String key; + private final int y; + private final boolean triggerAction; + public ActionPlant( BukkitCustomCropsPlugin plugin, Section section, @@ -60,10 +62,10 @@ public class ActionPlant extends AbstractBuiltInAction { this.y = section.getInt("y", 0); this.triggerAction = section.getBoolean("trigger-event", false); } - @Override + @SuppressWarnings("unchecked") - public void trigger(Context context) { - if (!checkChance()) return; + @Override + protected void triggerAction(Context context) { CropConfig cropConfig = Registries.CROP.get(key); if (cropConfig == null) { plugin.getPluginLogger().warn("`plant` action is not executed due to crop[" + key + "] not exists"); @@ -111,19 +113,19 @@ public class ActionPlant extends AbstractBuiltInAction { }, cropLocation); } - public int getPoint() { + public int point() { return point; } - public String getKey() { + public String cropID() { return key; } - public int getY() { + public int yOffset() { return y; } - public boolean isTriggerAction() { + public boolean triggerPlantAction() { return triggerAction; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPriority.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPriority.java index 021c328..790f767 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPriority.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionPriority.java @@ -30,7 +30,9 @@ import java.util.List; import java.util.Map; public class ActionPriority extends AbstractBuiltInAction { - final List[], Action[]>> conditionActionPairList; + + private final List[], Action[]>> conditionActionPairList; + public ActionPriority( BukkitCustomCropsPlugin plugin, AbstractActionManager manager, @@ -48,9 +50,9 @@ public class ActionPriority extends AbstractBuiltInAction { } } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { outer: for (Pair[], Action[]> pair : conditionActionPairList) { if (pair.left() != null) @@ -67,7 +69,7 @@ public class ActionPriority extends AbstractBuiltInAction { } } - public List[], Action[]>> getConditionActionPairList() { + public List[], Action[]>> conditionalActions() { return conditionActionPairList; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java index 24d9a32..7440283 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionQualityCrops.java @@ -44,10 +44,12 @@ import java.util.Optional; import static java.util.Objects.requireNonNull; public class ActionQualityCrops extends AbstractBuiltInAction { - final MathValue min; - final MathValue max; - final boolean toInv; - final String[] qualityLoots; + + private final MathValue min; + private final MathValue max; + private final boolean toInv; + private final String[] qualityLoots; + public ActionQualityCrops( BukkitCustomCropsPlugin plugin, Section section, @@ -66,9 +68,9 @@ public class ActionQualityCrops extends AbstractBuiltInAction { } } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); int random = RandomUtils.generateRandomInt((int) min.evaluate(context), (int) max.evaluate(context)); Player player = null; @@ -130,19 +132,19 @@ public class ActionQualityCrops extends AbstractBuiltInAction { return null; } - public MathValue getMin() { + public MathValue min() { return min; } - public MathValue getMax() { + public MathValue max() { return max; } - public boolean isToInv() { + public boolean toInventory() { return toInv; } - public String[] getQualityLoots() { + public String[] qualityLoots() { return qualityLoots; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionRandomCommand.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionRandomCommand.java index a3245c0..25934ae 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionRandomCommand.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionRandomCommand.java @@ -30,7 +30,9 @@ import java.util.List; import java.util.concurrent.ThreadLocalRandom; public class ActionRandomCommand extends AbstractBuiltInAction { - final List commands; + + private final List commands; + public ActionRandomCommand( BukkitCustomCropsPlugin plugin, Object args, @@ -39,10 +41,10 @@ public class ActionRandomCommand extends AbstractBuiltInAction { super(plugin, chance); this.commands = ListUtils.toList(args); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; OfflinePlayer owner = null; if (context.holder() instanceof Player player) { owner = player; @@ -55,7 +57,7 @@ public class ActionRandomCommand extends AbstractBuiltInAction { }, null); } - public List getCommands() { + public List commands() { return commands; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTimer.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTimer.java index 04b01a5..2270631 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTimer.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTimer.java @@ -32,9 +32,11 @@ import java.util.Map; import java.util.concurrent.TimeUnit; public class ActionTimer extends AbstractBuiltInAction { - final List> actions; - final int delay, duration, period; - final boolean async; + + private final List> actions; + private final int delay, duration, period; + private final boolean async; + public ActionTimer( BukkitCustomCropsPlugin plugin, AbstractActionManager manager, @@ -60,9 +62,9 @@ public class ActionTimer extends AbstractBuiltInAction { duration = 20; } } + @Override - public void trigger(Context context) { - if (!checkChance()) return; + protected void triggerAction(Context context) { Location location = context.arg(ContextKeys.LOCATION); SchedulerTask task; if (async) { @@ -81,23 +83,23 @@ public class ActionTimer extends AbstractBuiltInAction { plugin.getScheduler().asyncLater(task::cancel, duration * 50L, TimeUnit.MILLISECONDS); } - public List> getActions() { + public List> actions() { return actions; } - public int getDelay() { + public int delay() { return delay; } - public int getDuration() { + public int duration() { return duration; } - public int getPeriod() { + public int period() { return period; } - public boolean isAsync() { + public boolean async() { return async; } } diff --git a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java index fe8cdfe..5e5d504 100644 --- a/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java +++ b/api/src/main/java/net/momirealms/customcrops/api/action/builtin/ActionTitleNearby.java @@ -31,12 +31,14 @@ import org.bukkit.entity.Player; import static java.util.Objects.requireNonNull; public class ActionTitleNearby extends AbstractBuiltInAction { - final TextValue title; - final TextValue subtitle; - final int fadeIn; - final int stay; - final int fadeOut; - final int range; + + private final TextValue title; + private final TextValue subtitle; + private final int fadeIn; + private final int stay; + private final int fadeOut; + private final int range; + public ActionTitleNearby( BukkitCustomCropsPlugin plugin, Section section, @@ -50,10 +52,10 @@ public class ActionTitleNearby extends AbstractBuiltInAction { this.fadeOut = section.getInt("fade-out", 10); this.range = section.getInt("range", 0); } + @Override - public void trigger(Context context) { + protected void triggerAction(Context context) { if (context.argOrDefault(ContextKeys.OFFLINE, false)) return; - if (Math.random() > chance) return; Location location = requireNonNull(context.arg(ContextKeys.LOCATION)); for (Player player : location.getWorld().getPlayers()) { if (LocationUtils.getDistance(player.getLocation(), location) <= range) { @@ -68,27 +70,27 @@ public class ActionTitleNearby extends AbstractBuiltInAction { } } - public TextValue getTitle() { + public TextValue title() { return title; } - public TextValue getSubtitle() { + public TextValue subtitle() { return subtitle; } - public int getFadeIn() { + public int fadeIn() { return fadeIn; } - public int getStay() { + public int stay() { return stay; } - public int getFadeOut() { + public int fadeOut() { return fadeOut; } - public int getRange() { + public int range() { return range; } }