refactor into packages

This commit is contained in:
xGinko 2023-09-26 22:13:24 +02:00
parent 3888275dea
commit bd884e307e
10 changed files with 42 additions and 28 deletions

View File

@ -1,8 +1,14 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules;
import me.xginko.villageroptimizer.modules.optimizations.BlockOptimization; import me.xginko.villageroptimizer.modules.extras.PreventUnoptimizedTrading;
import me.xginko.villageroptimizer.modules.optimizations.NametagOptimization; import me.xginko.villageroptimizer.modules.extras.PreventVillagerDamage;
import me.xginko.villageroptimizer.modules.optimizations.WorkstationOptimization; import me.xginko.villageroptimizer.modules.extras.PreventVillagerTargetting;
import me.xginko.villageroptimizer.modules.extras.MakeVillagersSpawnAdult;
import me.xginko.villageroptimizer.modules.fallback_mechanics.LevelVillagers;
import me.xginko.villageroptimizer.modules.fallback_mechanics.RestockTrades;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByBlock;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByNametag;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByWorkstation;
import java.util.HashSet; import java.util.HashSet;
@ -18,17 +24,19 @@ public interface VillagerOptimizerModule {
modules.forEach(VillagerOptimizerModule::disable); modules.forEach(VillagerOptimizerModule::disable);
modules.clear(); modules.clear();
modules.add(new NametagOptimization()); modules.add(new VillagerChunkLimit());
modules.add(new BlockOptimization());
modules.add(new WorkstationOptimization());
modules.add(new OptimizeByNametag());
modules.add(new OptimizeByBlock());
modules.add(new OptimizeByWorkstation());
modules.add(new RestockTrades());
modules.add(new LevelVillagers()); modules.add(new LevelVillagers());
modules.add(new MakeVillagersSpawnAdult());
modules.add(new PreventUnoptimizedTrading()); modules.add(new PreventUnoptimizedTrading());
modules.add(new PreventVillagerDamage()); modules.add(new PreventVillagerDamage());
modules.add(new PreventVillagerTargetting()); modules.add(new PreventVillagerTargetting());
modules.add(new RestockTrades());
modules.add(new VillagerChunkLimit());
modules.add(new VillagersSpawnAdult());
modules.forEach(module -> { modules.forEach(module -> {
if (module.shouldEnable()) module.enable(); if (module.shouldEnable()) module.enable();

View File

@ -1,6 +1,7 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.extras;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -9,9 +10,9 @@ import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.event.entity.CreatureSpawnEvent;
public class VillagersSpawnAdult implements VillagerOptimizerModule, Listener { public class MakeVillagersSpawnAdult implements VillagerOptimizerModule, Listener {
protected VillagersSpawnAdult() {} public MakeVillagersSpawnAdult() {}
@Override @Override
public void enable() { public void enable() {

View File

@ -1,9 +1,10 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.extras;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.enums.Permissions; import me.xginko.villageroptimizer.enums.Permissions;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Villager; import org.bukkit.entity.Villager;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -19,7 +20,7 @@ public class PreventUnoptimizedTrading implements VillagerOptimizerModule, Liste
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final boolean notifyPlayer; private final boolean notifyPlayer;
protected PreventUnoptimizedTrading() { public PreventUnoptimizedTrading() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();

View File

@ -1,9 +1,10 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.extras;
import io.papermc.paper.event.entity.EntityPushedByEntityAttackEvent; import io.papermc.paper.event.entity.EntityPushedByEntityAttackEvent;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Mob; import org.bukkit.entity.Mob;
@ -20,7 +21,7 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final boolean block, player, mob, other, push; private final boolean block, player, mob, other, push;
protected PreventVillagerDamage() { public PreventVillagerDamage() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();

View File

@ -1,8 +1,9 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.extras;
import com.destroystokyo.paper.event.entity.EntityPathfindEvent; import com.destroystokyo.paper.event.entity.EntityPathfindEvent;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
import org.bukkit.entity.Mob; import org.bukkit.entity.Mob;
@ -18,7 +19,7 @@ public class PreventVillagerTargetting implements VillagerOptimizerModule, Liste
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
protected PreventVillagerTargetting() { public PreventVillagerTargetting() {
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
} }

View File

@ -1,9 +1,10 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.fallback_mechanics;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.WrappedVillager; import me.xginko.villageroptimizer.WrappedVillager;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import me.xginko.villageroptimizer.utils.CommonUtils; import me.xginko.villageroptimizer.utils.CommonUtils;
import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,10 +1,11 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules.fallback_mechanics;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.config.Config; import me.xginko.villageroptimizer.config.Config;
import me.xginko.villageroptimizer.enums.Permissions; import me.xginko.villageroptimizer.enums.Permissions;
import me.xginko.villageroptimizer.WrappedVillager; import me.xginko.villageroptimizer.WrappedVillager;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;
import me.xginko.villageroptimizer.utils.CommonUtils; import me.xginko.villageroptimizer.utils.CommonUtils;
import net.kyori.adventure.text.TextReplacementConfig; import net.kyori.adventure.text.TextReplacementConfig;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;
@ -26,7 +27,7 @@ public class RestockTrades implements VillagerOptimizerModule, Listener {
private final long restock_delay_millis; private final long restock_delay_millis;
private final boolean shouldLog, notifyPlayer; private final boolean shouldLog, notifyPlayer;
protected RestockTrades() { public RestockTrades() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();

View File

@ -27,7 +27,7 @@ import org.bukkit.event.block.BlockPlaceEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
public class BlockOptimization implements VillagerOptimizerModule, Listener { public class OptimizeByBlock implements VillagerOptimizerModule, Listener {
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final HashSet<Material> blocks_that_disable = new HashSet<>(4); private final HashSet<Material> blocks_that_disable = new HashSet<>(4);
@ -35,7 +35,7 @@ public class BlockOptimization implements VillagerOptimizerModule, Listener {
private final long cooldown; private final long cooldown;
private final double search_radius; private final double search_radius;
public BlockOptimization() { public OptimizeByBlock() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
@ -61,7 +61,7 @@ public class BlockOptimization implements VillagerOptimizerModule, Listener {
The radius in blocks a villager can be away from the player when he places an optimize block.\s The radius in blocks a villager can be away from the player when he places an optimize block.\s
The closest unoptimized villager to the player will be optimized.""") / 2; The closest unoptimized villager to the player will be optimized.""") / 2;
this.shouldNotifyPlayer = config.getBoolean("optimization-methods.block-optimization.notify-player", true, this.shouldNotifyPlayer = config.getBoolean("optimization-methods.block-optimization.notify-player", true,
"Sends players a message when they successfully optimized a villager."); "Sends players a message when they successfully optimized or unoptimized a villager.");
this.shouldLog = config.getBoolean("optimization-methods.block-optimization.log", false); this.shouldLog = config.getBoolean("optimization-methods.block-optimization.log", false);
} }

View File

@ -25,14 +25,14 @@ import org.bukkit.inventory.ItemStack;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
public class NametagOptimization implements VillagerOptimizerModule, Listener { public class OptimizeByNametag implements VillagerOptimizerModule, Listener {
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final HashSet<String> nametags = new HashSet<>(4); private final HashSet<String> nametags = new HashSet<>(4);
private final boolean shouldLog, shouldNotifyPlayer, consumeNametag; private final boolean shouldLog, shouldNotifyPlayer, consumeNametag;
private final long cooldown; private final long cooldown;
public NametagOptimization() { public OptimizeByNametag() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();

View File

@ -27,7 +27,7 @@ import org.bukkit.event.block.BlockPlaceEvent;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
public class WorkstationOptimization implements VillagerOptimizerModule, Listener { public class OptimizeByWorkstation implements VillagerOptimizerModule, Listener {
/* /*
* TODO: Make placed workstation villager profession related. * TODO: Make placed workstation villager profession related.
* */ * */
@ -38,7 +38,7 @@ public class WorkstationOptimization implements VillagerOptimizerModule, Listene
private final long cooldown; private final long cooldown;
private final double search_radius; private final double search_radius;
public WorkstationOptimization() { public OptimizeByWorkstation() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();