restructure plugin and config

This commit is contained in:
xGinko 2023-10-03 01:39:37 +02:00
parent b30d4a259e
commit bb6cdf1b43
24 changed files with 87 additions and 93 deletions

View File

@ -60,13 +60,13 @@ public class Config {
config.addDefault("optimization-methods.nametag-optimization.enable", true); config.addDefault("optimization-methods.nametag-optimization.enable", true);
createTitledSection("Villager Chunk Limit", "villager-chunk-limit"); createTitledSection("Villager Chunk Limit", "villager-chunk-limit");
createTitledSection("Gameplay", "gameplay"); createTitledSection("Gameplay", "gameplay");
config.addDefault("gameplay.restock-optimized-trades", null);
config.addDefault("gameplay.level-optimized-profession", null);
config.addDefault("gameplay.rename-optimized-villagers.enable", true); config.addDefault("gameplay.rename-optimized-villagers.enable", true);
config.addDefault("gameplay.villagers-spawn-as-adults.enable", false); config.addDefault("gameplay.villagers-spawn-as-adults.enable", false);
config.addDefault("gameplay.prevent-trading-with-unoptimized.enable", false); config.addDefault("gameplay.prevent-trading-with-unoptimized.enable", false);
config.addDefault("gameplay.prevent-damage.enable", true); config.addDefault("gameplay.prevent-entities-from-targeting-optimized.enable", true);
config.addDefault("gameplay.prevent-targeting.enable", true); config.addDefault("gameplay.prevent-damage-to-optimized.enable", true);
config.addDefault("gameplay.villager-leveling.enable", true);
config.addDefault("gameplay.trade-restocking.enable", true);
} }
public void createTitledSection(@NotNull String title, @NotNull String path) { public void createTitledSection(@NotNull String title, @NotNull String path) {

View File

@ -1,12 +1,10 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.modules.extras.*; import me.xginko.villageroptimizer.modules.gameplay.*;
import me.xginko.villageroptimizer.modules.mechanics.LevelVillagers; import me.xginko.villageroptimizer.modules.optimization.OptimizeByBlock;
import me.xginko.villageroptimizer.modules.mechanics.RestockTrades; import me.xginko.villageroptimizer.modules.optimization.OptimizeByNametag;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByBlock; import me.xginko.villageroptimizer.modules.optimization.OptimizeByWorkstation;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByNametag;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByWorkstation;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import java.util.HashSet; import java.util.HashSet;
@ -28,14 +26,13 @@ public interface VillagerOptimizerModule {
modules.add(new OptimizeByBlock()); modules.add(new OptimizeByBlock());
modules.add(new OptimizeByWorkstation()); modules.add(new OptimizeByWorkstation());
modules.add(new RestockTrades()); modules.add(new RestockOptimizedTrades());
modules.add(new LevelVillagers()); modules.add(new LevelOptimizedVillagers());
modules.add(new RenameOptimizedVillagers());
modules.add(new MakeVillagersSpawnAdult()); modules.add(new MakeVillagersSpawnAdult());
modules.add(new PreventUnoptimizedTrading()); modules.add(new PreventUnoptimizedTrading());
modules.add(new PreventVillagerDamage());
modules.add(new PreventVillagerTargetting()); modules.add(new PreventVillagerTargetting());
modules.add(new RenameOptimizedVillagers()); modules.add(new PreventVillagerDamage());
modules.add(new VillagerChunkLimit()); modules.add(new VillagerChunkLimit());

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.mechanics; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
@ -17,25 +17,25 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
public class LevelVillagers implements VillagerOptimizerModule, Listener { public class LevelOptimizedVillagers implements VillagerOptimizerModule, Listener {
private final VillagerOptimizer plugin; private final VillagerOptimizer plugin;
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final boolean notify_player; private final boolean notify_player;
private final long cooldown; private final long cooldown;
public LevelVillagers() { public LevelOptimizedVillagers() {
shouldEnable(); shouldEnable();
this.plugin = VillagerOptimizer.getInstance(); this.plugin = VillagerOptimizer.getInstance();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.villager-leveling.enable", """ config.addComment("gameplay.level-optimized-profession", """
This is needed to allow optimized villagers to level up.\s This is needed to allow optimized villagers to level up.\s
Temporarily enables the villagers AI to allow it to level up and then disables it again."""); Temporarily enables the villagers AI to allow it to level up and then disables it again.""");
this.cooldown = config.getInt("gameplay.villager-leveling.level-check-cooldown-seconds", 5, """ this.cooldown = config.getInt("gameplay.level-optimized-profession.level-check-cooldown-seconds", 5, """
Cooldown in seconds until the level of a villager will be checked and updated again.\s Cooldown in seconds until the level of a villager will be checked and updated again.\s
Recommended to leave as is.""") * 1000L; Recommended to leave as is.""") * 1000L;
this.notify_player = config.getBoolean("gameplay.villager-leveling.notify-player", true, this.notify_player = config.getBoolean("gameplay.level-optimized-profession.notify-player", true,
"Tell players to wait when a villager is leveling up."); "Tell players to wait when a villager is leveling up.");
} }
@ -47,7 +47,7 @@ public class LevelVillagers implements VillagerOptimizerModule, Listener {
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.villager-leveling.enable", true); return true;
} }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
@ -23,15 +23,15 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.prevent-damage.enable", config.addComment("gameplay.prevent-damage-to-optimized.enable",
"Configure what kind of damage you want to cancel for optimized villagers here."); "Configure what kind of damage you want to cancel for optimized villagers here.");
this.block = config.getBoolean("gameplay.prevent-damage.damagers.block", false, this.block = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.block", false,
"Prevents damage from blocks like lava, tnt, respawn anchors, etc."); "Prevents damage from blocks like lava, tnt, respawn anchors, etc.");
this.player = config.getBoolean("gameplay.prevent-damage.damagers.player", false, this.player = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.player", false,
"Prevents damage from getting hit by players."); "Prevents damage from getting hit by players.");
this.mob = config.getBoolean("gameplay.prevent-damage.damagers.mob", true, this.mob = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.mob", true,
"Prevents damage from hostile mobs."); "Prevents damage from hostile mobs.");
this.other = config.getBoolean("gameplay.prevent-damage.damagers.other", true, this.other = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.other", true,
"Prevents damage from all other entities."); "Prevents damage from all other entities.");
} }
@ -43,7 +43,7 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-damage.enable", true); return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-damage-to-optimized.enable", true);
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import com.destroystokyo.paper.event.entity.EntityPathfindEvent; import com.destroystokyo.paper.event.entity.EntityPathfindEvent;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
@ -30,7 +30,7 @@ public class PreventVillagerTargetting implements VillagerOptimizerModule, Liste
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-targeting.enable", true, return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-entities-from-targeting-optimized.enable", true,
"Prevents hostile entities from targeting optimized villagers."); "Prevents hostile entities from targeting optimized villagers.");
} }

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.WrappedVillager; import me.xginko.villageroptimizer.WrappedVillager;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.mechanics; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
@ -16,24 +16,24 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
public class RestockTrades implements VillagerOptimizerModule, Listener { public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener {
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final long restock_delay_millis; private final long restock_delay_millis;
private final boolean log_enabled, notify_player; private final boolean log_enabled, notify_player;
public RestockTrades() { public RestockOptimizedTrades() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.trade-restocking.enable", """ config.addComment("gameplay.restock-optimized-trades", """
This is for automatic restocking of trades for optimized villagers. Optimized Villagers\s This is for automatic restocking of trades for optimized villagers. Optimized Villagers\s
Don't have enough AI to do trade restocks themselves, so this needs to always be enabled."""); don't have enough AI to restock their trades naturally, so this is here as a workaround.""");
this.restock_delay_millis = config.getInt("gameplay.trade-restocking.delay-in-ticks", 1000, this.restock_delay_millis = config.getInt("gameplay.restock-optimized-trades.delay-in-ticks", 1000,
"1 second = 20 ticks. There are 24.000 ticks in a single minecraft day.") * 50L; "1 second = 20 ticks. There are 24.000 ticks in a single minecraft day.") * 50L;
this.notify_player = config.getBoolean("gameplay.trade-restocking.notify-player", true, this.notify_player = config.getBoolean("gameplay.restock-optimized-trades.notify-player", true,
"Sends the player a message when the trades were restocked on a clicked villager."); "Sends the player a message when the trades were restocked on a clicked villager.");
this.log_enabled = config.getBoolean("gameplay.trade-restocking.log", false); this.log_enabled = config.getBoolean("gameplay.restock-optimized-trades.log", false);
} }
@Override @Override
@ -44,7 +44,7 @@ public class RestockTrades implements VillagerOptimizerModule, Listener {
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.trade-restocking.enable", true); return true;
} }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -60,13 +60,13 @@ public class Config {
config.addDefault("optimization-methods.nametag-optimization.enable", true); config.addDefault("optimization-methods.nametag-optimization.enable", true);
createTitledSection("Villager Chunk Limit", "villager-chunk-limit"); createTitledSection("Villager Chunk Limit", "villager-chunk-limit");
createTitledSection("Gameplay", "gameplay"); createTitledSection("Gameplay", "gameplay");
config.addDefault("gameplay.restock-optimized-trades", null);
config.addDefault("gameplay.level-optimized-profession", null);
config.addDefault("gameplay.rename-optimized-villagers.enable", true); config.addDefault("gameplay.rename-optimized-villagers.enable", true);
config.addDefault("gameplay.villagers-spawn-as-adults.enable", false); config.addDefault("gameplay.villagers-spawn-as-adults.enable", false);
config.addDefault("gameplay.prevent-trading-with-unoptimized.enable", false); config.addDefault("gameplay.prevent-trading-with-unoptimized.enable", false);
config.addDefault("gameplay.prevent-damage.enable", true); config.addDefault("gameplay.prevent-entities-from-targeting-optimized.enable", true);
config.addDefault("gameplay.prevent-targeting.enable", true); config.addDefault("gameplay.prevent-damage-to-optimized.enable", true);
config.addDefault("gameplay.villager-leveling.enable", true);
config.addDefault("gameplay.trade-restocking.enable", true);
} }
public void createTitledSection(@NotNull String title, @NotNull String path) { public void createTitledSection(@NotNull String title, @NotNull String path) {

View File

@ -1,11 +1,9 @@
package me.xginko.villageroptimizer.modules; package me.xginko.villageroptimizer.modules;
import me.xginko.villageroptimizer.modules.extras.*; import me.xginko.villageroptimizer.modules.gameplay.*;
import me.xginko.villageroptimizer.modules.mechanics.LevelVillagers; import me.xginko.villageroptimizer.modules.optimization.OptimizeByBlock;
import me.xginko.villageroptimizer.modules.mechanics.RestockTrades; import me.xginko.villageroptimizer.modules.optimization.OptimizeByNametag;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByBlock; import me.xginko.villageroptimizer.modules.optimization.OptimizeByWorkstation;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByNametag;
import me.xginko.villageroptimizer.modules.optimizations.OptimizeByWorkstation;
import java.util.HashSet; import java.util.HashSet;
@ -25,14 +23,13 @@ public interface VillagerOptimizerModule {
modules.add(new OptimizeByBlock()); modules.add(new OptimizeByBlock());
modules.add(new OptimizeByWorkstation()); modules.add(new OptimizeByWorkstation());
modules.add(new RestockTrades()); modules.add(new RestockOptimizedTrades());
modules.add(new LevelVillagers()); modules.add(new LevelOptimizedVillagers());
modules.add(new RenameOptimizedVillagers());
modules.add(new MakeVillagersSpawnAdult()); modules.add(new MakeVillagersSpawnAdult());
modules.add(new PreventUnoptimizedTrading()); modules.add(new PreventUnoptimizedTrading());
modules.add(new PreventVillagerDamage());
modules.add(new PreventVillagerTargetting()); modules.add(new PreventVillagerTargetting());
modules.add(new RenameOptimizedVillagers()); modules.add(new PreventVillagerDamage());
modules.add(new VillagerChunkLimit()); modules.add(new VillagerChunkLimit());

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.mechanics; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
@ -18,25 +18,25 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
public class LevelVillagers implements VillagerOptimizerModule, Listener { public class LevelOptimizedVillagers implements VillagerOptimizerModule, Listener {
private final VillagerOptimizer plugin; private final VillagerOptimizer plugin;
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final boolean notify_player; private final boolean notify_player;
private final long cooldown; private final long cooldown;
public LevelVillagers() { public LevelOptimizedVillagers() {
shouldEnable(); shouldEnable();
this.plugin = VillagerOptimizer.getInstance(); this.plugin = VillagerOptimizer.getInstance();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.villager-leveling.enable", """ config.addComment("gameplay.level-optimized-profession", """
This is needed to allow optimized villagers to level up.\s This is needed to allow optimized villagers to level up.\s
Temporarily enables the villagers AI to allow it to level up and then disables it again."""); Temporarily enables the villagers AI to allow it to level up and then disables it again.""");
this.cooldown = config.getInt("gameplay.villager-leveling.level-check-cooldown-seconds", 5, """ this.cooldown = config.getInt("gameplay.level-optimized-profession.level-check-cooldown-seconds", 5, """
Cooldown in seconds until the level of a villager will be checked and updated again.\s Cooldown in seconds until the level of a villager will be checked and updated again.\s
Recommended to leave as is.""") * 1000L; Recommended to leave as is.""") * 1000L;
this.notify_player = config.getBoolean("gameplay.villager-leveling.notify-player", true, this.notify_player = config.getBoolean("gameplay.level-optimized-profession.notify-player", true,
"Tell players to wait when a villager is leveling up."); "Tell players to wait when a villager is leveling up.");
} }
@ -53,7 +53,7 @@ public class LevelVillagers implements VillagerOptimizerModule, Listener {
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.villager-leveling.enable", true); return true;
} }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; import me.xginko.villageroptimizer.modules.VillagerOptimizerModule;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import io.papermc.paper.event.entity.EntityPushedByEntityAttackEvent; import io.papermc.paper.event.entity.EntityPushedByEntityAttackEvent;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
@ -25,17 +25,17 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.prevent-damage.enable", config.addComment("gameplay.prevent-damage-to-optimized.enable",
"Configure what kind of damage you want to cancel for optimized villagers here."); "Configure what kind of damage you want to cancel for optimized villagers here.");
this.push = config.getBoolean("gameplay.prevent-damage.prevent-push-from-attack", true, this.push = config.getBoolean("gameplay.prevent-damage-to-optimized.prevent-push-from-attack", true,
"Prevents optimized villagers from getting pushed by an attacking entity"); "Prevents optimized villagers from getting pushed by an attacking entity");
this.block = config.getBoolean("gameplay.prevent-damage.damagers.block", false, this.block = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.block", false,
"Prevents damage from blocks like lava, tnt, respawn anchors, etc."); "Prevents damage from blocks like lava, tnt, respawn anchors, etc.");
this.player = config.getBoolean("gameplay.prevent-damage.damagers.player", false, this.player = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.player", false,
"Prevents damage from getting hit by players."); "Prevents damage from getting hit by players.");
this.mob = config.getBoolean("gameplay.prevent-damage.damagers.mob", true, this.mob = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.mob", true,
"Prevents damage from hostile mobs."); "Prevents damage from hostile mobs.");
this.other = config.getBoolean("gameplay.prevent-damage.damagers.other", true, this.other = config.getBoolean("gameplay.prevent-damage-to-optimized.damagers.other", true,
"Prevents damage from all other entities."); "Prevents damage from all other entities.");
} }
@ -52,7 +52,7 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-damage.enable", true); return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-damage-to-optimized.enable", true);
} }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import com.destroystokyo.paper.event.entity.EntityPathfindEvent; import com.destroystokyo.paper.event.entity.EntityPathfindEvent;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
@ -36,7 +36,7 @@ public class PreventVillagerTargetting implements VillagerOptimizerModule, Liste
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-targeting.enable", true, return VillagerOptimizer.getConfiguration().getBoolean("gameplay.prevent-entities-from-targeting-optimized.enable", true,
"Prevents hostile entities from targeting optimized villagers."); "Prevents hostile entities from targeting optimized villagers.");
} }

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.extras; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.WrappedVillager; import me.xginko.villageroptimizer.WrappedVillager;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.mechanics; package me.xginko.villageroptimizer.modules.gameplay;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
@ -17,24 +17,24 @@ import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent; import org.bukkit.event.player.PlayerInteractEntityEvent;
public class RestockTrades implements VillagerOptimizerModule, Listener { public class RestockOptimizedTrades implements VillagerOptimizerModule, Listener {
private final VillagerCache villagerCache; private final VillagerCache villagerCache;
private final long restock_delay_millis; private final long restock_delay_millis;
private final boolean log_enabled, notify_player; private final boolean log_enabled, notify_player;
public RestockTrades() { public RestockOptimizedTrades() {
shouldEnable(); shouldEnable();
this.villagerCache = VillagerOptimizer.getCache(); this.villagerCache = VillagerOptimizer.getCache();
Config config = VillagerOptimizer.getConfiguration(); Config config = VillagerOptimizer.getConfiguration();
config.addComment("gameplay.trade-restocking.enable", """ config.addComment("gameplay.restock-optimized-trades", """
This is for automatic restocking of trades for optimized villagers. Optimized Villagers\s This is for automatic restocking of trades for optimized villagers. Optimized Villagers\s
Don't have enough AI to do trade restocks themselves, so this needs to always be enabled."""); don't have enough AI to restock their trades naturally, so this is here as a workaround.""");
this.restock_delay_millis = config.getInt("gameplay.trade-restocking.delay-in-ticks", 1000, this.restock_delay_millis = config.getInt("gameplay.restock-optimized-trades.delay-in-ticks", 1000,
"1 second = 20 ticks. There are 24.000 ticks in a single minecraft day.") * 50L; "1 second = 20 ticks. There are 24.000 ticks in a single minecraft day.") * 50L;
this.notify_player = config.getBoolean("gameplay.trade-restocking.notify-player", true, this.notify_player = config.getBoolean("gameplay.restock-optimized-trades.notify-player", true,
"Sends the player a message when the trades were restocked on a clicked villager."); "Sends the player a message when the trades were restocked on a clicked villager.");
this.log_enabled = config.getBoolean("gameplay.trade-restocking.log", false); this.log_enabled = config.getBoolean("gameplay.restock-optimized-trades.log", false);
} }
@Override @Override
@ -50,7 +50,7 @@ public class RestockTrades implements VillagerOptimizerModule, Listener {
@Override @Override
public boolean shouldEnable() { public boolean shouldEnable() {
return VillagerOptimizer.getConfiguration().getBoolean("gameplay.trade-restocking.enable", true); return true;
} }
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;

View File

@ -1,4 +1,4 @@
package me.xginko.villageroptimizer.modules.optimizations; package me.xginko.villageroptimizer.modules.optimization;
import me.xginko.villageroptimizer.VillagerCache; import me.xginko.villageroptimizer.VillagerCache;
import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.VillagerOptimizer;