diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 748f7ca..0000000 --- a/build.gradle +++ /dev/null @@ -1,64 +0,0 @@ -plugins { - id 'com.github.johnrengelman.shadow' version '8.1.1' - id 'java' -} - -group 'com.froobworld' -version '1.3.0' -jar.enabled = false; - -sourceCompatibility = 1.17 - -repositories { - mavenLocal(); - mavenCentral() - maven { - url "https://hub.spigotmc.org/nexus/content/repositories/snapshots" - } - maven { - url "https://oss.sonatype.org/content/groups/public/" - } - maven { - url "https://repo.papermc.io/repository/maven-public/" - } - maven { - url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' - } - maven { - url = 'https://repo.codemc.org/repository/maven-public/' - } - maven { - url = 'https://jitpack.io' - } - maven { - url = 'https://repo.extendedclip.com/releases/' - } -} - -dependencies { - testImplementation 'junit:junit:4.13.2' - //compileOnly 'com.destroystokyo.paper:paper-api:1.15.2-R0.1-SNAPSHOT' - compileOnly 'dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT' - compileOnly 'me.clip:placeholderapi:2.11.6' - implementation 'org.jooq:joor-java-8:0.9.14' - implementation 'com.github.froobynooby:nab-configuration:master-SNAPSHOT' //'com.froobworld:nab-configuration:1.0.2' - implementation 'org.bstats:bstats-base:3.0.2' -} - -processResources { - filter { String line -> line.replace('${version}', project.version.toString()) } -} - -shadowJar { - archiveFileName = 'FarmControl-' + project.version.toString() + '.jar'; - - relocate 'com.froobworld.nabconfiguration', 'com.froobworld.farmcontrol.lib.nabconfiguration' - relocate 'org.joor', 'com.froobworld.farmcontrol.lib.joor' - relocate 'org.bstats','com.froobworld.farmcontrol.lib.bstats' -} - -artifacts { - shadowJar; -} - -assemble.dependsOn(shadowJar); \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..53856a1 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,58 @@ +plugins { + id("java") + id("com.gradleup.shadow") version "9.2.2" +} + +group = "com.froobworld" +version = "1.3.0" + +tasks { + jar { + enabled = false + } + + processResources { + filter { line -> + line.replace("\${version}", project.version.toString()) + } + } + + shadowJar { + archiveFileName.set("FarmControl-${project.version}.jar") + + relocate("com.froobworld.nabconfiguration", "com.froobworld.farmcontrol.lib.nabconfiguration") + relocate("org.joor", "com.froobworld.farmcontrol.lib.joor") + relocate("org.bstats", "com.froobworld.farmcontrol.lib.bstats") + } + + assemble { + dependsOn(shadowJar) + } +} + +repositories { + mavenLocal() + mavenCentral() + maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots") + maven("https://oss.sonatype.org/content/groups/public/") + maven("https://repo.papermc.io/repository/maven-public/") + maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") + maven("https://repo.codemc.org/repository/maven-public/") + maven("https://jitpack.io") + maven("https://repo.extendedclip.com/releases/") +} + +dependencies { + testImplementation("junit:junit:4.13.2") + + compileOnly("dev.folia:folia-api:1.20.4-R0.1-SNAPSHOT") + compileOnly("me.clip:placeholderapi:2.11.6") + + implementation("org.jooq:joor-java-8:0.9.14") + implementation("com.github.froobynooby:nab-configuration:master-SNAPSHOT") + implementation("org.bstats:bstats-base:3.0.2") +} + +artifacts { + add("archives", tasks.shadowJar) +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fc10b60..20413ca 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index 80173e0..0000000 --- a/settings.gradle +++ /dev/null @@ -1,2 +0,0 @@ -rootProject.name = 'FarmControl' - diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..4d11de4 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +rootProject.name = "FarmControl" \ No newline at end of file diff --git a/src/main/java/com/froobworld/farmcontrol/FarmControl.java b/src/main/java/com/froobworld/farmcontrol/FarmControl.java index e6de1e5..9a3947c 100644 --- a/src/main/java/com/froobworld/farmcontrol/FarmControl.java +++ b/src/main/java/com/froobworld/farmcontrol/FarmControl.java @@ -2,7 +2,11 @@ import com.froobworld.farmcontrol.command.FarmControlCommand; import com.froobworld.farmcontrol.config.FcConfig; -import com.froobworld.farmcontrol.controller.*; +import com.froobworld.farmcontrol.controller.ActionManager; +import com.froobworld.farmcontrol.controller.ExclusionManager; +import com.froobworld.farmcontrol.controller.FarmController; +import com.froobworld.farmcontrol.controller.ProfileManager; +import com.froobworld.farmcontrol.controller.TriggerManager; import com.froobworld.farmcontrol.controller.action.RemoveRandomMovementAction; import com.froobworld.farmcontrol.message.MessageManager; import com.froobworld.farmcontrol.metrics.FcMetrics; diff --git a/src/main/java/com/froobworld/farmcontrol/HookManager.java b/src/main/java/com/froobworld/farmcontrol/HookManager.java index d790715..9beb07e 100644 --- a/src/main/java/com/froobworld/farmcontrol/HookManager.java +++ b/src/main/java/com/froobworld/farmcontrol/HookManager.java @@ -7,8 +7,8 @@ import com.froobworld.farmcontrol.hook.scheduler.BukkitSchedulerHook; import com.froobworld.farmcontrol.hook.scheduler.RegionisedSchedulerHook; import com.froobworld.farmcontrol.hook.scheduler.SchedulerHook; -import com.froobworld.farmcontrol.hook.tick.PaperTickHook; import com.froobworld.farmcontrol.hook.tick.BukkitTickHook; +import com.froobworld.farmcontrol.hook.tick.PaperTickHook; import com.froobworld.farmcontrol.hook.tick.TickHook; import com.froobworld.farmcontrol.utils.MsptTracker; diff --git a/src/main/java/com/froobworld/farmcontrol/command/StatusCommand.java b/src/main/java/com/froobworld/farmcontrol/command/StatusCommand.java index 49a42ab..d8333ef 100644 --- a/src/main/java/com/froobworld/farmcontrol/command/StatusCommand.java +++ b/src/main/java/com/froobworld/farmcontrol/command/StatusCommand.java @@ -10,7 +10,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.bukkit.entity.*; +import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import java.util.HashMap; diff --git a/src/main/java/com/froobworld/farmcontrol/config/FcConfig.java b/src/main/java/com/froobworld/farmcontrol/config/FcConfig.java index 4e6b518..e0ee12a 100644 --- a/src/main/java/com/froobworld/farmcontrol/config/FcConfig.java +++ b/src/main/java/com/froobworld/farmcontrol/config/FcConfig.java @@ -2,7 +2,12 @@ import com.froobworld.farmcontrol.FarmControl; import com.froobworld.farmcontrol.controller.action.Action; -import com.froobworld.nabconfiguration.*; +import com.froobworld.nabconfiguration.ConfigEntries; +import com.froobworld.nabconfiguration.ConfigEntry; +import com.froobworld.nabconfiguration.ConfigEntryMap; +import com.froobworld.nabconfiguration.ConfigSection; +import com.froobworld.nabconfiguration.ConfigSectionMap; +import com.froobworld.nabconfiguration.NabConfiguration; import com.froobworld.nabconfiguration.annotations.Entry; import com.froobworld.nabconfiguration.annotations.EntryMap; import com.froobworld.nabconfiguration.annotations.Section; @@ -109,6 +114,9 @@ public static class ExclusionSettings extends ConfigSection { @Entry(key = "mounted") public final ConfigEntry mounted = new ConfigEntry<>(); + @Entry(key = "naturally-spawned-mob-cap-contributor") + public final ConfigEntry naturallySpawnedMobCapContributor = new ConfigEntry<>(); + @Entry(key = "younger-than") public final ConfigEntry youngerThan = ConfigEntries.longEntry(); diff --git a/src/main/java/com/froobworld/farmcontrol/controller/ActionManager.java b/src/main/java/com/froobworld/farmcontrol/controller/ActionManager.java index 038400e..11409cf 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/ActionManager.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/ActionManager.java @@ -1,7 +1,14 @@ package com.froobworld.farmcontrol.controller; import com.froobworld.farmcontrol.FarmControl; -import com.froobworld.farmcontrol.controller.action.*; +import com.froobworld.farmcontrol.controller.action.Action; +import com.froobworld.farmcontrol.controller.action.DisableBreedingAction; +import com.froobworld.farmcontrol.controller.action.DisableCollisionsAction; +import com.froobworld.farmcontrol.controller.action.KillAction; +import com.froobworld.farmcontrol.controller.action.RemoveAction; +import com.froobworld.farmcontrol.controller.action.RemoveAiAction; +import com.froobworld.farmcontrol.controller.action.RemoveAwarenessAction; +import com.froobworld.farmcontrol.controller.action.RemoveRandomMovementAction; import com.froobworld.farmcontrol.controller.breeding.BreedingBlocker; import java.util.HashMap; diff --git a/src/main/java/com/froobworld/farmcontrol/controller/ExclusionManager.java b/src/main/java/com/froobworld/farmcontrol/controller/ExclusionManager.java index 6948eec..799d09f 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/ExclusionManager.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/ExclusionManager.java @@ -27,6 +27,7 @@ public Predicate getExclusionPredicate(World world) { long excludeTicksLived = exclusionSettings.youngerThan.get(); boolean excludePickupable = exclusionSettings.pickupable.get(); boolean excludeMounted = exclusionSettings.mounted.get(); + boolean excludeNaturallySpawnedMobCapContributors = exclusionSettings.naturallySpawnedMobCapContributor.get(); return snapshotEntity -> { if (excludeLeashed && snapshotEntity.isLeashed()) { return true; @@ -49,6 +50,9 @@ public Predicate getExclusionPredicate(World world) { if (excludeMounted && snapshotEntity.isMounted()) { return true; } + if (excludeNaturallySpawnedMobCapContributors && snapshotEntity.isANaturallySpawnedMobCapContributor()) { + return true; + } if (snapshotEntity.getTicksLived() < excludeTicksLived) { return true; } diff --git a/src/main/java/com/froobworld/farmcontrol/controller/FarmController.java b/src/main/java/com/froobworld/farmcontrol/controller/FarmController.java index 418a33b..ca2d1f5 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/FarmController.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/FarmController.java @@ -10,9 +10,17 @@ import com.froobworld.farmcontrol.utils.Actioner; import org.bukkit.Bukkit; import org.bukkit.World; -import org.bukkit.entity.*; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Item; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Projectile; +import org.bukkit.entity.Vehicle; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; public class FarmController { public static final Class[] ENTITY_CLASSES = List.of(Mob.class, Vehicle.class, Projectile.class, Item.class).toArray(new Class[0]); diff --git a/src/main/java/com/froobworld/farmcontrol/controller/ProfileManager.java b/src/main/java/com/froobworld/farmcontrol/controller/ProfileManager.java index b8179e6..85135e4 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/ProfileManager.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/ProfileManager.java @@ -10,7 +10,11 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; import java.util.stream.Collectors; public class ProfileManager { diff --git a/src/main/java/com/froobworld/farmcontrol/controller/action/RemoveRandomMovementAction.java b/src/main/java/com/froobworld/farmcontrol/controller/action/RemoveRandomMovementAction.java index 042ec09..11e4735 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/action/RemoveRandomMovementAction.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/action/RemoveRandomMovementAction.java @@ -7,7 +7,13 @@ import org.bukkit.entity.Entity; import org.bukkit.entity.Mob; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; public class RemoveRandomMovementAction extends Action { private final static Map>> entityRemovedGoalsMap = new MapMaker().weakKeys().makeMap(); diff --git a/src/main/java/com/froobworld/farmcontrol/controller/entity/SnapshotEntity.java b/src/main/java/com/froobworld/farmcontrol/controller/entity/SnapshotEntity.java index 5ce4c08..42113c3 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/entity/SnapshotEntity.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/entity/SnapshotEntity.java @@ -2,7 +2,17 @@ import com.froobworld.farmcontrol.data.FcData; import org.bukkit.DyeColor; -import org.bukkit.entity.*; +import org.bukkit.entity.AbstractArrow; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Boat; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Item; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Raider; +import org.bukkit.entity.Tameable; +import org.bukkit.entity.Villager; +import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.material.Colorable; import org.bukkit.util.Vector; @@ -24,6 +34,7 @@ public class SnapshotEntity { private final int ticksLived; private final boolean pickupable; private final boolean mounted; + private final boolean naturallySpawnedMobCapContributor; private final List classifications = new ArrayList<>(); public SnapshotEntity(Entity entity) { @@ -39,6 +50,7 @@ public SnapshotEntity(Entity entity) { this.pickupable = entity instanceof AbstractArrow && ((AbstractArrow) entity).getPickupStatus() == AbstractArrow.PickupStatus.ALLOWED; this.ticksLived = entity.getTicksLived(); this.mounted = !entity.getPassengers().isEmpty(); + this.naturallySpawnedMobCapContributor = entity.getEntitySpawnReason() == CreatureSpawnEvent.SpawnReason.NATURAL && entity.getType() != EntityType.WARDEN && !(entity instanceof Raider raider && raider.getRaid() != null); classifications.add(entity.getType()); if (entity instanceof Colorable) { DyeColor colour = ((Colorable) entity).getColor(); @@ -124,6 +136,10 @@ public boolean isMounted() { return mounted; } + public boolean isANaturallySpawnedMobCapContributor () { + return naturallySpawnedMobCapContributor; + } + public int getTicksLived() { return ticksLived; } diff --git a/src/main/java/com/froobworld/farmcontrol/controller/task/ActionAllocationTask.java b/src/main/java/com/froobworld/farmcontrol/controller/task/ActionAllocationTask.java index 7165a9f..ca28c7b 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/task/ActionAllocationTask.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/task/ActionAllocationTask.java @@ -3,19 +3,26 @@ import com.froobworld.farmcontrol.controller.ActionProfile; import com.froobworld.farmcontrol.controller.FarmController; import com.froobworld.farmcontrol.controller.TriggerActionPair; +import com.froobworld.farmcontrol.controller.action.Action; +import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; import com.froobworld.farmcontrol.controller.tracker.CycleTracker; import com.froobworld.farmcontrol.controller.trigger.Trigger; import com.froobworld.farmcontrol.data.FcData; import com.froobworld.farmcontrol.group.EntityGrouper; import com.froobworld.farmcontrol.group.EntityGrouperResult; import com.froobworld.farmcontrol.group.Group; -import com.froobworld.farmcontrol.controller.action.Action; -import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; import com.froobworld.farmcontrol.hook.scheduler.SchedulerHook; import com.froobworld.farmcontrol.utils.MixedEntitySet; import org.bukkit.World; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.function.Predicate; public class ActionAllocationTask implements Runnable { diff --git a/src/main/java/com/froobworld/farmcontrol/controller/task/ActionPerformTask.java b/src/main/java/com/froobworld/farmcontrol/controller/task/ActionPerformTask.java index 6e4dbe5..c111e3e 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/task/ActionPerformTask.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/task/ActionPerformTask.java @@ -1,9 +1,9 @@ package com.froobworld.farmcontrol.controller.task; import com.froobworld.farmcontrol.controller.TriggerActionPair; +import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; import com.froobworld.farmcontrol.controller.tracker.CycleTracker; import com.froobworld.farmcontrol.data.FcData; -import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; import com.froobworld.farmcontrol.hook.scheduler.ScheduledTask; import com.froobworld.farmcontrol.hook.scheduler.SchedulerHook; import org.bukkit.World; diff --git a/src/main/java/com/froobworld/farmcontrol/controller/task/TriggerCheckTask.java b/src/main/java/com/froobworld/farmcontrol/controller/task/TriggerCheckTask.java index 0dbdbd9..b4b853c 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/task/TriggerCheckTask.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/task/TriggerCheckTask.java @@ -10,7 +10,12 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder; import org.bukkit.World; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; diff --git a/src/main/java/com/froobworld/farmcontrol/controller/task/UntriggerAllocationTask.java b/src/main/java/com/froobworld/farmcontrol/controller/task/UntriggerAllocationTask.java index 7ddcbc2..1314eb8 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/task/UntriggerAllocationTask.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/task/UntriggerAllocationTask.java @@ -9,7 +9,11 @@ import com.froobworld.farmcontrol.controller.trigger.UntriggerStrategy; import com.froobworld.farmcontrol.data.FcData; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; public class UntriggerAllocationTask implements Runnable { private final FarmControl farmControl; diff --git a/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleHistoryManager.java b/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleHistoryManager.java index 14794f3..75c12bb 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleHistoryManager.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleHistoryManager.java @@ -3,7 +3,11 @@ import com.froobworld.farmcontrol.FarmControl; import org.bukkit.World; -import java.util.*; +import java.util.ArrayDeque; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Queue; public class CycleHistoryManager { private final Queue cycleStats = new ArrayDeque<>(); diff --git a/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleStats.java b/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleStats.java index 2b6ef23..a001a65 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleStats.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/tracker/CycleStats.java @@ -8,8 +8,13 @@ import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.entity.EntityType; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; public class CycleStats { diff --git a/src/main/java/com/froobworld/farmcontrol/controller/tracker/NotificationCentre.java b/src/main/java/com/froobworld/farmcontrol/controller/tracker/NotificationCentre.java index 9d8c0e8..fb314db 100644 --- a/src/main/java/com/froobworld/farmcontrol/controller/tracker/NotificationCentre.java +++ b/src/main/java/com/froobworld/farmcontrol/controller/tracker/NotificationCentre.java @@ -9,7 +9,12 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; import java.util.Collections; import java.util.HashSet; import java.util.Set; diff --git a/src/main/java/com/froobworld/farmcontrol/data/FcData.java b/src/main/java/com/froobworld/farmcontrol/data/FcData.java index 7cc8273..98781c2 100644 --- a/src/main/java/com/froobworld/farmcontrol/data/FcData.java +++ b/src/main/java/com/froobworld/farmcontrol/data/FcData.java @@ -13,7 +13,9 @@ import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; -import java.util.*; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class FcData { diff --git a/src/main/java/com/froobworld/farmcontrol/group/EntityGrouperResult.java b/src/main/java/com/froobworld/farmcontrol/group/EntityGrouperResult.java index 725700c..393b3ce 100644 --- a/src/main/java/com/froobworld/farmcontrol/group/EntityGrouperResult.java +++ b/src/main/java/com/froobworld/farmcontrol/group/EntityGrouperResult.java @@ -2,7 +2,9 @@ import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.ListIterator; import java.util.stream.Collectors; public class EntityGrouperResult { diff --git a/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/BukkitEntityGetterHook.java b/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/BukkitEntityGetterHook.java index 6d8613f..27fbd66 100644 --- a/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/BukkitEntityGetterHook.java +++ b/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/BukkitEntityGetterHook.java @@ -1,7 +1,6 @@ package com.froobworld.farmcontrol.hook.entitygetter; import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; -import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.entity.Entity; diff --git a/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/RegionisedEntityGetterHook.java b/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/RegionisedEntityGetterHook.java index 48c2fc8..6a0d404 100644 --- a/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/RegionisedEntityGetterHook.java +++ b/src/main/java/com/froobworld/farmcontrol/hook/entitygetter/RegionisedEntityGetterHook.java @@ -9,7 +9,11 @@ import org.bukkit.World; import org.bukkit.entity.Entity; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Set; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; import java.util.function.Function; diff --git a/src/main/java/com/froobworld/farmcontrol/hook/nms/NmsHooks.java b/src/main/java/com/froobworld/farmcontrol/hook/nms/NmsHooks.java index 71f0dab..0abe2d7 100644 --- a/src/main/java/com/froobworld/farmcontrol/hook/nms/NmsHooks.java +++ b/src/main/java/com/froobworld/farmcontrol/hook/nms/NmsHooks.java @@ -1,8 +1,8 @@ package com.froobworld.farmcontrol.hook.nms; -import com.froobworld.farmcontrol.hook.nms.mobgoal.MobGoalNmsHook; import com.froobworld.farmcontrol.hook.nms.mobgoal.Bukkit1_16MobGoalNmsHook; import com.froobworld.farmcontrol.hook.nms.mobgoal.Bukkit1_20_5MobGoalNmsHook; +import com.froobworld.farmcontrol.hook.nms.mobgoal.MobGoalNmsHook; import com.froobworld.farmcontrol.hook.nms.mobgoal.Mojmap1_20MobGoalNmsHook; import com.froobworld.farmcontrol.hook.nms.tick.Bukkit1_16TickTimesHook; import com.froobworld.farmcontrol.hook.nms.tick.TickTimesNmsHook; diff --git a/src/main/java/com/froobworld/farmcontrol/hook/nms/mobgoal/BaseMobGoalNmsHook.java b/src/main/java/com/froobworld/farmcontrol/hook/nms/mobgoal/BaseMobGoalNmsHook.java index b914919..52c8762 100644 --- a/src/main/java/com/froobworld/farmcontrol/hook/nms/mobgoal/BaseMobGoalNmsHook.java +++ b/src/main/java/com/froobworld/farmcontrol/hook/nms/mobgoal/BaseMobGoalNmsHook.java @@ -9,7 +9,7 @@ import java.util.List; import java.util.Set; -import static org.joor.Reflect.*; +import static org.joor.Reflect.on; public abstract class BaseMobGoalNmsHook implements MobGoalNmsHook { private final String wrappedGoalsFieldName; // Set in GoalSelector diff --git a/src/main/java/com/froobworld/farmcontrol/hook/tick/BukkitTickHook.java b/src/main/java/com/froobworld/farmcontrol/hook/tick/BukkitTickHook.java index 4eab04c..8ea0575 100644 --- a/src/main/java/com/froobworld/farmcontrol/hook/tick/BukkitTickHook.java +++ b/src/main/java/com/froobworld/farmcontrol/hook/tick/BukkitTickHook.java @@ -10,7 +10,7 @@ import java.util.Set; import java.util.function.Consumer; -import static org.joor.Reflect.*; +import static org.joor.Reflect.on; public class BukkitTickHook implements TickHook { private final long[] tickTimes; diff --git a/src/main/java/com/froobworld/farmcontrol/metrics/FcMetrics.java b/src/main/java/com/froobworld/farmcontrol/metrics/FcMetrics.java index 7fea018..670b174 100644 --- a/src/main/java/com/froobworld/farmcontrol/metrics/FcMetrics.java +++ b/src/main/java/com/froobworld/farmcontrol/metrics/FcMetrics.java @@ -1,7 +1,14 @@ package com.froobworld.farmcontrol.metrics; import com.froobworld.farmcontrol.FarmControl; -import com.froobworld.farmcontrol.metrics.charts.*; +import com.froobworld.farmcontrol.metrics.charts.LegacyModesInUseChart; +import com.froobworld.farmcontrol.metrics.charts.LegacyProactiveActionsChart; +import com.froobworld.farmcontrol.metrics.charts.LegacyReactiveActionsChart; +import com.froobworld.farmcontrol.metrics.charts.LegacyReactiveModeIndicatorChart; +import com.froobworld.farmcontrol.metrics.charts.ModesInUseChart; +import com.froobworld.farmcontrol.metrics.charts.NumberOfWorldsChart; +import com.froobworld.farmcontrol.metrics.charts.ProactiveActionsChart; +import com.froobworld.farmcontrol.metrics.charts.ReactiveActionsChart; public class FcMetrics { private final FarmControl farmControl; diff --git a/src/main/java/com/froobworld/farmcontrol/metrics/Metrics.java b/src/main/java/com/froobworld/farmcontrol/metrics/Metrics.java index 3c55b46..fb496db 100644 --- a/src/main/java/com/froobworld/farmcontrol/metrics/Metrics.java +++ b/src/main/java/com/froobworld/farmcontrol/metrics/Metrics.java @@ -7,8 +7,6 @@ import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; import java.io.File; import java.io.IOException; diff --git a/src/main/java/com/froobworld/farmcontrol/utils/EntityCategory.java b/src/main/java/com/froobworld/farmcontrol/utils/EntityCategory.java index 6f21732..040eb53 100644 --- a/src/main/java/com/froobworld/farmcontrol/utils/EntityCategory.java +++ b/src/main/java/com/froobworld/farmcontrol/utils/EntityCategory.java @@ -2,7 +2,18 @@ import com.froobworld.farmcontrol.controller.action.Action; import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; -import org.bukkit.entity.*; +import org.bukkit.entity.Ambient; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Boat; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Fish; +import org.bukkit.entity.Golem; +import org.bukkit.entity.Minecart; +import org.bukkit.entity.Mob; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Projectile; +import org.bukkit.entity.Raider; +import org.bukkit.entity.Tameable; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/com/froobworld/farmcontrol/utils/MixedEntitySet.java b/src/main/java/com/froobworld/farmcontrol/utils/MixedEntitySet.java index 1c883d4..77754f8 100644 --- a/src/main/java/com/froobworld/farmcontrol/utils/MixedEntitySet.java +++ b/src/main/java/com/froobworld/farmcontrol/utils/MixedEntitySet.java @@ -3,7 +3,12 @@ import com.froobworld.farmcontrol.controller.entity.SnapshotEntity; import com.google.common.collect.Maps; -import java.util.*; +import java.util.Comparator; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; public class MixedEntitySet implements Iterable { private final Comparator comparator; diff --git a/src/main/java/com/froobworld/farmcontrol/utils/NmsUtils.java b/src/main/java/com/froobworld/farmcontrol/utils/NmsUtils.java index 8722f2a..558d628 100644 --- a/src/main/java/com/froobworld/farmcontrol/utils/NmsUtils.java +++ b/src/main/java/com/froobworld/farmcontrol/utils/NmsUtils.java @@ -2,7 +2,7 @@ import org.bukkit.Bukkit; -import static org.joor.Reflect.*; +import static org.joor.Reflect.on; public class NmsUtils { private static final String NMS_PACKAGE_NAME = on(Bukkit.getServer()).call("getHandle") diff --git a/src/main/resources/resources/config.yml b/src/main/resources/resources/config.yml index e83019b..b95be04 100644 --- a/src/main/resources/resources/config.yml +++ b/src/main/resources/resources/config.yml @@ -84,6 +84,9 @@ world-settings: # Should we not perform actions on mobs that are mounted (e.g. a boat with a villager in it)? mounted: true + # Should we not perform actions on mobs that were naturally spawned and contribute to the mob cap? + naturally-spawned-mob-cap-contributor: true + # Should we not perform actions on mobs that are younger than this value (in ticks)? younger-than: 0