diff --git a/build.gradle b/build.gradle index 4bb5c78..07f62c5 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group = 'net.momirealms' -version = '3.3.0.0-beta' +version = '3.3.0.0' repositories { mavenCentral() diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/AbstractRequirement.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/AbstractRequirement.java index 173ea44..9aaa5f0 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/AbstractRequirement.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/AbstractRequirement.java @@ -33,7 +33,7 @@ public abstract class AbstractRequirement { this.actions = actions; } - public void notMetMessage(CurrentState currentState) { + public void notMetActions(CurrentState currentState) { Player player = currentState.getPlayer(); if (msg != null && player != null) { for (String str : msg) { diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/BiomeImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/BiomeImpl.java index 7876be5..1687048 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/BiomeImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/BiomeImpl.java @@ -38,7 +38,7 @@ public class BiomeImpl extends AbstractRequirement implements Requirement { if (biomes.contains(currentBiome)) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/CustomPapi.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/CustomPapi.java index 77e5ee0..a97db58 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/CustomPapi.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/CustomPapi.java @@ -42,7 +42,7 @@ public class CustomPapi extends AbstractRequirement implements Requirement { if (currentState.getPlayer() == null) return true; for (PapiRequirement requirement : papiRequirement) { if (!requirement.isMet(player)) { - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/DateImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/DateImpl.java index 7dd592f..e4bd737 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/DateImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/DateImpl.java @@ -39,7 +39,7 @@ public class DateImpl extends AbstractRequirement implements Requirement { if (dates.contains(current)) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/EntityAmountInChunkImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/EntityAmountInChunkImpl.java new file mode 100644 index 0000000..7b389ab --- /dev/null +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/EntityAmountInChunkImpl.java @@ -0,0 +1,23 @@ +package net.momirealms.customcrops.api.object.requirement; + +import net.momirealms.customcrops.api.object.action.Action; +import org.jetbrains.annotations.Nullable; + +public class EntityAmountInChunkImpl extends AbstractRequirement implements Requirement { + + private final int amount; + + public EntityAmountInChunkImpl(@Nullable String[] msg, @Nullable Action[] actions, int amount) { + super(msg, actions); + this.amount = amount; + } + + @Override + public boolean isConditionMet(CurrentState currentState) { + if (currentState.getLocation().getChunk().getEntities().length <= amount) { + return true; + } + notMetActions(currentState); + return false; + } +} diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/JobLevelImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/JobLevelImpl.java index 7942d2e..d6c5256 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/JobLevelImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/JobLevelImpl.java @@ -40,7 +40,7 @@ public class JobLevelImpl extends AbstractRequirement implements Requirement { if (jobInterface.getLevel(currentState.getPlayer(), jobName) >= level) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/PermissionImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/PermissionImpl.java index 23c0818..f59b87c 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/PermissionImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/PermissionImpl.java @@ -38,7 +38,7 @@ public class PermissionImpl extends AbstractRequirement implements Requirement { if (currentState.getPlayer() == null || currentState.getPlayer().hasPermission(permission)) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java index 5615cd1..58084c2 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/SeasonImpl.java @@ -54,7 +54,7 @@ public class SeasonImpl extends AbstractRequirement implements Requirement { } } } - notMetMessage(currentState); + notMetActions(currentState); return false; } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/SkillLevelImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/SkillLevelImpl.java index f367fbe..ffec5b0 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/SkillLevelImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/SkillLevelImpl.java @@ -38,7 +38,7 @@ public class SkillLevelImpl extends AbstractRequirement implements Requirement { if (skillInterface.getLevel(currentState.getPlayer()) >= level) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/TimeImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/TimeImpl.java index e35e422..fa1403a 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/TimeImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/TimeImpl.java @@ -40,7 +40,7 @@ public class TimeImpl extends AbstractRequirement implements Requirement { return true; } } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/WeatherImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/WeatherImpl.java index 2764de4..22ab8e9 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/WeatherImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/WeatherImpl.java @@ -42,7 +42,7 @@ public class WeatherImpl extends AbstractRequirement implements Requirement { return true; } } - notMetMessage(currentState); + notMetActions(currentState); return false; } } diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/WorldImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/WorldImpl.java index cf78f1a..7b55215 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/WorldImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/WorldImpl.java @@ -38,7 +38,7 @@ public class WorldImpl extends AbstractRequirement implements Requirement { if (worlds.contains(world.getName())) { return true; } - notMetMessage(currentState); + notMetActions(currentState); return false; } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/api/object/requirement/YPosImpl.java b/src/main/java/net/momirealms/customcrops/api/object/requirement/YPosImpl.java index 0a6975d..9918fcd 100644 --- a/src/main/java/net/momirealms/customcrops/api/object/requirement/YPosImpl.java +++ b/src/main/java/net/momirealms/customcrops/api/object/requirement/YPosImpl.java @@ -40,7 +40,7 @@ public class YPosImpl extends AbstractRequirement implements Requirement { return true; } } - notMetMessage(currentState); + notMetActions(currentState); return false; } } \ No newline at end of file diff --git a/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java b/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java index 69fffe3..c3b85dc 100644 --- a/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java +++ b/src/main/java/net/momirealms/customcrops/api/util/ConfigUtils.java @@ -221,6 +221,7 @@ public class ConfigUtils { case "skill-level" -> requirements.add(new SkillLevelImpl(msg, getActions(actionSec), innerSec.getInt("value"))); case "job-level" -> requirements.add(new JobLevelImpl(msg, getActions(actionSec), innerSec.getInt("value.level"), innerSec.getString("value.job"))); case "date" -> requirements.add(new DateImpl(msg, getActions(actionSec), new HashSet<>(innerSec.getStringList("value")))); + case "max-entity-amount-in-chunk" -> requirements.add(new EntityAmountInChunkImpl(msg, getActions(actionSec), innerSec.getInt("value"))); case "papi-condition" -> requirements.add(new CustomPapi(msg, getActions(actionSec), Objects.requireNonNull(innerSec.getConfigurationSection("value")).getValues(false))); } } diff --git a/src/main/java/net/momirealms/customcrops/integration/papi/SeasonPapi.java b/src/main/java/net/momirealms/customcrops/integration/papi/SeasonPapi.java index 31ab97e..c35a802 100644 --- a/src/main/java/net/momirealms/customcrops/integration/papi/SeasonPapi.java +++ b/src/main/java/net/momirealms/customcrops/integration/papi/SeasonPapi.java @@ -56,7 +56,7 @@ public class SeasonPapi extends PlaceholderExpansion { @Override public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) { String[] split = params.split("_", 2); - if (split[1] == null) { + if (split.length == 1) { switch (split[0]) { case "season" -> { Player online_player = player.getPlayer(); @@ -74,7 +74,7 @@ public class SeasonPapi extends PlaceholderExpansion { return String.valueOf(1 + ConfigManager.seasonInterval - plugin.getIntegrationManager().getSeasonInterface().getDate(player.getPlayer().getWorld().getName())); } } - } else { + } else if (split.length == 2) { switch (split[0]) { case "season" -> { return plugin.getIntegrationManager().getSeasonInterface().getSeason(split[1]).getDisplay();