Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 0 additions & 64 deletions build.gradle

This file was deleted.

58 changes: 58 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -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)
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
2 changes: 0 additions & 2 deletions settings.gradle

This file was deleted.

1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rootProject.name = "FarmControl"
6 changes: 5 additions & 1 deletion src/main/java/com/froobworld/farmcontrol/FarmControl.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/froobworld/farmcontrol/HookManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
10 changes: 9 additions & 1 deletion src/main/java/com/froobworld/farmcontrol/config/FcConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -109,6 +114,9 @@ public static class ExclusionSettings extends ConfigSection {
@Entry(key = "mounted")
public final ConfigEntry<Boolean> mounted = new ConfigEntry<>();

@Entry(key = "naturally-spawned-mob-cap-contributor")
public final ConfigEntry<Boolean> naturallySpawnedMobCapContributor = new ConfigEntry<>();

@Entry(key = "younger-than")
public final ConfigEntry<Long> youngerThan = ConfigEntries.longEntry();

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public Predicate<SnapshotEntity> 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;
Expand All @@ -49,6 +50,9 @@ public Predicate<SnapshotEntity> getExclusionPredicate(World world) {
if (excludeMounted && snapshotEntity.isMounted()) {
return true;
}
if (excludeNaturallySpawnedMobCapContributors && snapshotEntity.isANaturallySpawnedMobCapContributor()) {
return true;
}
if (snapshotEntity.getTicksLived() < excludeTicksLived) {
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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]);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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<Mob, Map<Object, Set<Object>>> entityRemovedGoalsMap = new MapMaker().weakKeys().makeMap();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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<Object> classifications = new ArrayList<>();

public SnapshotEntity(Entity entity) {
Expand All @@ -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();
Expand Down Expand Up @@ -124,6 +136,10 @@ public boolean isMounted() {
return mounted;
}

public boolean isANaturallySpawnedMobCapContributor () {
return naturallySpawnedMobCapContributor;
}

public int getTicksLived() {
return ticksLived;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
Loading