diff --git a/src/main/java/me/xginko/villageroptimizer/VillagerCache.java b/src/main/java/me/xginko/villageroptimizer/VillagerCache.java index 9c87b86..5eb4423 100644 --- a/src/main/java/me/xginko/villageroptimizer/VillagerCache.java +++ b/src/main/java/me/xginko/villageroptimizer/VillagerCache.java @@ -53,4 +53,4 @@ public final class VillagerCache { public boolean contains(@NotNull Villager villager) { return villagerCache.getIfPresent(villager.getUniqueId()) != null; } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/optimizevillagers/OptVillagersRadius.java b/src/main/java/me/xginko/villageroptimizer/commands/optimizevillagers/OptVillagersRadius.java index 40b10c7..0e08c12 100644 --- a/src/main/java/me/xginko/villageroptimizer/commands/optimizevillagers/OptVillagersRadius.java +++ b/src/main/java/me/xginko/villageroptimizer/commands/optimizevillagers/OptVillagersRadius.java @@ -125,4 +125,4 @@ public class OptVillagersRadius implements VillagerOptimizerCommand, TabComplete return true; } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/unoptimizevillagers/UnOptVillagersRadius.java b/src/main/java/me/xginko/villageroptimizer/commands/unoptimizevillagers/UnOptVillagersRadius.java index 490a734..e2bd6e3 100644 --- a/src/main/java/me/xginko/villageroptimizer/commands/unoptimizevillagers/UnOptVillagersRadius.java +++ b/src/main/java/me/xginko/villageroptimizer/commands/unoptimizevillagers/UnOptVillagersRadius.java @@ -106,4 +106,4 @@ public class UnOptVillagersRadius implements VillagerOptimizerCommand, TabComple return true; } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/VillagerOptimizerCmd.java b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/VillagerOptimizerCmd.java index cff1ede..9f75aea 100644 --- a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/VillagerOptimizerCmd.java +++ b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/VillagerOptimizerCmd.java @@ -3,6 +3,7 @@ package me.xginko.villageroptimizer.commands.villageroptimizer; import me.xginko.villageroptimizer.VillagerOptimizer; import me.xginko.villageroptimizer.commands.SubCommand; import me.xginko.villageroptimizer.commands.VillagerOptimizerCommand; +import me.xginko.villageroptimizer.commands.villageroptimizer.subcommands.DisableSubCmd; import me.xginko.villageroptimizer.commands.villageroptimizer.subcommands.ReloadSubCmd; import me.xginko.villageroptimizer.commands.villageroptimizer.subcommands.VersionSubCmd; import me.xginko.villageroptimizer.enums.Permissions; @@ -19,12 +20,13 @@ import java.util.List; public class VillagerOptimizerCmd implements TabCompleter, VillagerOptimizerCommand { - private final List subCommands = new ArrayList<>(2); - private final List tabCompleter = new ArrayList<>(2); + private final List subCommands = new ArrayList<>(3); + private final List tabCompleter = new ArrayList<>(3); public VillagerOptimizerCmd() { subCommands.add(new ReloadSubCmd()); subCommands.add(new VersionSubCmd()); + subCommands.add(new DisableSubCmd()); subCommands.forEach(subCommand -> tabCompleter.add(subCommand.getLabel())); } @@ -75,4 +77,4 @@ public class VillagerOptimizerCmd implements TabCompleter, VillagerOptimizerComm ); sender.sendMessage(Component.text("-----------------------------------------------------").color(NamedTextColor.GRAY)); } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/DisableSubCmd.java b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/DisableSubCmd.java new file mode 100644 index 0000000..871de80 --- /dev/null +++ b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/DisableSubCmd.java @@ -0,0 +1,42 @@ +package me.xginko.villageroptimizer.commands.villageroptimizer.subcommands; + +import me.xginko.villageroptimizer.VillagerOptimizer; +import me.xginko.villageroptimizer.commands.SubCommand; +import me.xginko.villageroptimizer.enums.Permissions; +import me.xginko.villageroptimizer.modules.VillagerOptimizerModule; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.TextComponent; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.CommandSender; + +public class DisableSubCmd extends SubCommand { + + @Override + public String getLabel() { + return "reload"; + } + + @Override + public TextComponent getDescription() { + return Component.text("Disable all plugin tasks and listeners.").color(NamedTextColor.GRAY); + } + + @Override + public TextComponent getSyntax() { + return Component.text("/villageroptimizer reload").color(VillagerOptimizer.plugin_style.color()); + } + + @Override + public void perform(CommandSender sender, String[] args) { + if (sender.hasPermission(Permissions.Commands.RELOAD.get())) { + sender.sendMessage(Component.text("Disabling VillagerOptimizer...").color(NamedTextColor.RED)); + VillagerOptimizerModule.modules.forEach(VillagerOptimizerModule::disable); + VillagerOptimizerModule.modules.clear(); + VillagerOptimizer.getCache().cacheMap().clear(); + sender.sendMessage(Component.text("Disabled all plugin listeners and tasks.").color(NamedTextColor.GREEN)); + sender.sendMessage(Component.text("You can enable the plugin again using the reload command.").color(NamedTextColor.YELLOW)); + } else { + sender.sendMessage(VillagerOptimizer.getLang(sender).no_permission); + } + } +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/ReloadSubCmd.java b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/ReloadSubCmd.java index 0cebd5d..5b1e099 100644 --- a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/ReloadSubCmd.java +++ b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/ReloadSubCmd.java @@ -38,4 +38,4 @@ public class ReloadSubCmd extends SubCommand { sender.sendMessage(VillagerOptimizer.getLang(sender).no_permission); } } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/VersionSubCmd.java b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/VersionSubCmd.java index 412c0d4..55495c1 100644 --- a/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/VersionSubCmd.java +++ b/src/main/java/me/xginko/villageroptimizer/commands/villageroptimizer/subcommands/VersionSubCmd.java @@ -50,4 +50,4 @@ public class VersionSubCmd extends SubCommand { sender.sendMessage(VillagerOptimizer.getLang(sender).no_permission); } } -} +} \ No newline at end of file diff --git a/src/main/java/me/xginko/villageroptimizer/modules/extras/PreventVillagerDamage.java b/src/main/java/me/xginko/villageroptimizer/modules/extras/PreventVillagerDamage.java index 6fada4b..362535e 100644 --- a/src/main/java/me/xginko/villageroptimizer/modules/extras/PreventVillagerDamage.java +++ b/src/main/java/me/xginko/villageroptimizer/modules/extras/PreventVillagerDamage.java @@ -99,4 +99,4 @@ public class PreventVillagerDamage implements VillagerOptimizerModule, Listener event.setCancelled(true); } } -} +} \ No newline at end of file