restructure plugin and config
This commit is contained in:
parent
b30d4a259e
commit
bb6cdf1b43
@ -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) {
|
||||||
|
@ -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());
|
||||||
|
|
||||||
|
@ -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)
|
@ -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;
|
@ -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;
|
@ -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)
|
@ -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.");
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
@ -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)
|
@ -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;
|
@ -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;
|
@ -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;
|
@ -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) {
|
||||||
|
@ -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());
|
||||||
|
|
||||||
|
@ -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)
|
@ -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;
|
@ -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;
|
@ -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)
|
@ -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.");
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
@ -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)
|
@ -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;
|
@ -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;
|
@ -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;
|
Loading…
x
Reference in New Issue
Block a user