diff --git a/pom.xml b/pom.xml index 15db7dfb..ef93fb42 100644 --- a/pom.xml +++ b/pom.xml @@ -7,39 +7,38 @@ com.github.civclassic civclassic-parent - 1.0.0 + 1.0.1 - com.untamedears JukeAlert jar - 2.1.2 + 2.2.0 JukeAlert https://github.com/Civclassic/JukeAlert/ - com.destroystokyo.paper - paper-api - 1.16.5-R0.1-SNAPSHOT + io.papermc.paper + paper + 1.17.1-R0.1-SNAPSHOT provided - vg.civcraft.mc.civmodcore - CivModCore - 1.8.3 + com.github.civclassic + NameLayer + 2.15.0 provided - vg.civcraft.mc.namelayer - NameLayer - 2.14.1 + com.github.civclassic + Citadel + 4.2.0 provided - vg.civcraft.mc.citadel - Citadel - 4.1.1 + com.github.civclassic + CivModCore + 1.9.0 provided @@ -49,5 +48,9 @@ civ-github-repo https://raw.githubusercontent.com/CivClassic/artifacts/master/ + + papermc + https://papermc.io/repo/repository/maven-public/ + diff --git a/src/main/java/com/untamedears/jukealert/JAConfigManager.java b/src/main/java/com/untamedears/jukealert/JAConfigManager.java index 325c36ba..850b3bf7 100644 --- a/src/main/java/com/untamedears/jukealert/JAConfigManager.java +++ b/src/main/java/com/untamedears/jukealert/JAConfigManager.java @@ -3,10 +3,11 @@ import com.untamedears.jukealert.model.SnitchTypeManager; import org.bukkit.configuration.ConfigurationSection; import vg.civcraft.mc.civmodcore.ACivMod; -import vg.civcraft.mc.civmodcore.CoreConfigManager; +import vg.civcraft.mc.civmodcore.config.ConfigParser; +import vg.civcraft.mc.civmodcore.dao.DatabaseCredentials; import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; -public class JAConfigManager extends CoreConfigManager { +public class JAConfigManager extends ConfigParser { private SnitchTypeManager typeMan; public JAConfigManager(ACivMod plugin, SnitchTypeManager typeMan) { @@ -15,7 +16,7 @@ public JAConfigManager(ACivMod plugin, SnitchTypeManager typeMan) { } public ManagedDatasource getDatabase(ConfigurationSection config) { - return (ManagedDatasource) config.get("database"); + return ManagedDatasource.construct((ACivMod) plugin, (DatabaseCredentials) config.get("database")); } @Override diff --git a/src/main/java/com/untamedears/jukealert/JukeAlert.java b/src/main/java/com/untamedears/jukealert/JukeAlert.java index 49a5ff9c..7f8dfb88 100644 --- a/src/main/java/com/untamedears/jukealert/JukeAlert.java +++ b/src/main/java/com/untamedears/jukealert/JukeAlert.java @@ -1,5 +1,6 @@ package com.untamedears.jukealert; +import com.untamedears.jukealert.commands.JACommandManager; import co.aikar.taskchain.BukkitTaskChainFactory; import co.aikar.taskchain.TaskChainFactory; import com.untamedears.jukealert.database.JukeAlertDAO; @@ -14,8 +15,8 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import vg.civcraft.mc.civmodcore.ACivMod; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.api.ChunkMetaAPI; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.api.SingleBlockAPIView; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.ChunkMetaAPI; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.SingleBlockAPIView; public class JukeAlert extends ACivMod { @@ -33,6 +34,7 @@ public static JukeAlert getInstance() { private JASettingsManager settingsManager; private SnitchCullManager cullManager; private TaskChainFactory taskChainFactory; + private JACommandManager commandManager; public JAConfigManager getConfigManager() { return configManager; @@ -102,6 +104,7 @@ public void onEnable() { } snitchManager = new SnitchManager(api); settingsManager = new JASettingsManager(); + commandManager = new JACommandManager(this); registerJukeAlertEvents(); JukeAlertPermissionHandler.setup(); this.taskChainFactory = BukkitTaskChainFactory.create(this); diff --git a/src/main/java/com/untamedears/jukealert/SnitchCullManager.java b/src/main/java/com/untamedears/jukealert/SnitchCullManager.java index 26e558df..777de460 100644 --- a/src/main/java/com/untamedears/jukealert/SnitchCullManager.java +++ b/src/main/java/com/untamedears/jukealert/SnitchCullManager.java @@ -2,7 +2,7 @@ import com.untamedears.jukealert.model.appender.DormantCullingAppender; import org.bukkit.Bukkit; -import vg.civcraft.mc.civmodcore.util.progress.ProgressTracker; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTracker; public class SnitchCullManager { diff --git a/src/main/java/com/untamedears/jukealert/SnitchManager.java b/src/main/java/com/untamedears/jukealert/SnitchManager.java index 787f3442..1db237be 100644 --- a/src/main/java/com/untamedears/jukealert/SnitchManager.java +++ b/src/main/java/com/untamedears/jukealert/SnitchManager.java @@ -11,9 +11,9 @@ import javax.annotation.Nonnull; import org.bukkit.Location; import org.bukkit.block.Block; -import vg.civcraft.mc.civmodcore.locations.SparseQuadTree; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.CacheState; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.api.SingleBlockAPIView; +import vg.civcraft.mc.civmodcore.world.locations.SparseQuadTree; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.CacheState; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.SingleBlockAPIView; public class SnitchManager { diff --git a/src/main/java/com/untamedears/jukealert/commands/ClearCommand.java b/src/main/java/com/untamedears/jukealert/commands/ClearCommand.java index 4b4a1b91..b7c3286d 100644 --- a/src/main/java/com/untamedears/jukealert/commands/ClearCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/ClearCommand.java @@ -1,42 +1,33 @@ package com.untamedears.jukealert.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.appender.SnitchLogAppender; import com.untamedears.jukealert.util.JAUtility; import com.untamedears.jukealert.util.JukeAlertPermissionHandler; -import java.util.LinkedList; -import java.util.List; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "jaclear") -public class ClearCommand extends StandaloneCommand { +public class ClearCommand extends BaseCommand { - @Override - public boolean execute(final CommandSender sender, String[] args) { - Player player = (Player) sender; - Snitch snitch = JAUtility.findLookingAtOrClosestSnitch(player, JukeAlertPermissionHandler.getClearLogs()); + @CommandAlias("jaclear") + @Description("Deletes all logs a snitch has") + public void execute(final Player sender, String[] args) { + Snitch snitch = JAUtility.findLookingAtOrClosestSnitch(sender, JukeAlertPermissionHandler.getClearLogs()); if (snitch == null) { sender.sendMessage( ChatColor.RED + "You do not own any snitches nearby or lack permission to delete their logs!"); - return true; + return; } SnitchLogAppender logAppender = (SnitchLogAppender) snitch.getAppender(SnitchLogAppender.class); if (logAppender == null) { sender.sendMessage( ChatColor.RED + "This " + snitch.getType().getName() + " does not keep any logs"); - return true; + return; } logAppender.deleteLogs(); sender.sendMessage(ChatColor.GREEN + "Deleted all logs for snitch " + JAUtility.genTextComponent(snitch)); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return new LinkedList<>(); } } diff --git a/src/main/java/com/untamedears/jukealert/commands/GUICommand.java b/src/main/java/com/untamedears/jukealert/commands/GUICommand.java index ce73ec16..4dd79e31 100644 --- a/src/main/java/com/untamedears/jukealert/commands/GUICommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/GUICommand.java @@ -1,5 +1,8 @@ package com.untamedears.jukealert.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; import com.untamedears.jukealert.JukeAlert; import com.untamedears.jukealert.gui.SnitchLogGUI; import com.untamedears.jukealert.gui.SnitchOverviewGUI; @@ -9,25 +12,19 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; -@CivCommand(id = "ja") -public class GUICommand extends StandaloneCommand { +public class GUICommand extends BaseCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - Player player = (Player) sender; + @CommandAlias("ja") + @Description("Opens snitch log GUI") + public void execute(Player player) { Snitch cursorSnitch = JAUtility.getSnitchUnderCursor(player); if (cursorSnitch != null && cursorSnitch.hasPermission(player, JukeAlertPermissionHandler.getReadLogs())) { SnitchLogGUI gui = new SnitchLogGUI(player, cursorSnitch); gui.showScreen(); - return true; + return; } // No snitch under cursor, so search around player Collection snitches = JukeAlert.getInstance().getSnitchManager() @@ -43,20 +40,14 @@ public boolean execute(CommandSender sender, String[] args) { if (snitches.isEmpty()) { player.sendMessage( ChatColor.RED + "You do not own any snitches nearby or lack permission to view their logs!"); - return true; + return; } if (snitches.size() == 1) { SnitchLogGUI gui = new SnitchLogGUI(player, snitches.iterator().next()); gui.showScreen(); - return true; + return; } SnitchOverviewGUI gui = new SnitchOverviewGUI(player, new ArrayList<>(snitches), "Nearby snitches", true); gui.showScreen(); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return new LinkedList<>(); } } diff --git a/src/main/java/com/untamedears/jukealert/commands/InfoCommand.java b/src/main/java/com/untamedears/jukealert/commands/InfoCommand.java index c3daa788..4361e9a4 100644 --- a/src/main/java/com/untamedears/jukealert/commands/InfoCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/InfoCommand.java @@ -2,6 +2,12 @@ import static com.untamedears.jukealert.util.JAUtility.findLookingAtOrClosestSnitch; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.untamedears.jukealert.JukeAlert; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.actions.abstr.LoggableAction; @@ -20,43 +26,40 @@ import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; import vg.civcraft.mc.namelayer.NameAPI; -@CivCommand(id = "jainfo") -public class InfoCommand extends StandaloneCommand { +public class InfoCommand extends BaseCommand { private static final String[] autocompleteCommands = { "next", "censor", "action=", "player=" }; - @Override - public boolean execute(CommandSender sender, String[] args) { - Player player = (Player) sender; + @CommandAlias("jainfo") + @Description("Display information from a snitch") + @Syntax("[page number_or_'next'] [censor] [action=action_type] [player=player_name]") + public void execute(Player player, @Optional String pageNumber) { Snitch snitch = findLookingAtOrClosestSnitch(player, JukeAlertPermissionHandler.getReadLogs()); if (snitch == null) { player.sendMessage( ChatColor.RED + " You do not own any snitches nearby or lack permission to view their logs!"); - return true; + return; } if (!snitch.hasAppender(SnitchLogAppender.class)) { player.sendMessage(ChatColor.RED + "This " + snitch.getType().getName() + " named " + snitch.getName() + " can not save logs"); - return true; + return; } int offset = 0; String filterAction = null; String filterPlayer = null; - if (args.length == 1) { + if (pageNumber != null) { try { - offset = Integer.parseInt(args[0]); + offset = Integer.parseInt(pageNumber); } catch (NumberFormatException e) { - sender.sendMessage(ChatColor.RED + args[0] + " is not a number"); - return true; + player.sendMessage(ChatColor.RED + pageNumber + " is not a number"); + return; } } int pageLength = JukeAlert.getInstance().getSettingsManager().getJaInfoLength(player.getUniqueId()); sendSnitchLog(player, snitch, offset, pageLength, filterAction, filterPlayer); - return true; } public void sendSnitchLog(Player player, Snitch snitch, int offset, int pageLength, String actionType, @@ -109,7 +112,6 @@ public void sendSnitchLog(Player player, Snitch snitch, int offset, int pageLeng } } - @Override public List tabComplete(CommandSender sender, String[] args) { List completedArgs = new ArrayList<>(); if (args.length > 0) { diff --git a/src/main/java/com/untamedears/jukealert/commands/JACommandManager.java b/src/main/java/com/untamedears/jukealert/commands/JACommandManager.java new file mode 100644 index 00000000..ecca882f --- /dev/null +++ b/src/main/java/com/untamedears/jukealert/commands/JACommandManager.java @@ -0,0 +1,23 @@ +package com.untamedears.jukealert.commands; + +import org.bukkit.plugin.Plugin; +import vg.civcraft.mc.civmodcore.commands.CommandManager; + +public class JACommandManager extends CommandManager { + + public JACommandManager(Plugin plugin) { + super(plugin); + init(); + } + + @Override + public void registerCommands() { + registerCommand(new ClearCommand()); + registerCommand(new GUICommand()); + registerCommand(new InfoCommand()); + registerCommand(new ListCommand()); + registerCommand(new MuteCommand()); + registerCommand(new NameCommand()); + registerCommand(new ToggleLeverCommand()); + } +} diff --git a/src/main/java/com/untamedears/jukealert/commands/ListCommand.java b/src/main/java/com/untamedears/jukealert/commands/ListCommand.java index e7ba0ac5..12ef4bb9 100644 --- a/src/main/java/com/untamedears/jukealert/commands/ListCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/ListCommand.java @@ -1,13 +1,16 @@ package com.untamedears.jukealert.commands; -import com.google.common.base.Strings; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Optional; +import co.aikar.commands.annotation.Syntax; import com.untamedears.jukealert.JukeAlert; import com.untamedears.jukealert.gui.SnitchOverviewGUI; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.appender.DormantCullingAppender; import com.untamedears.jukealert.util.JukeAlertPermissionHandler; import it.unimi.dsi.fastutil.ints.IntArrayList; -import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -18,24 +21,23 @@ import org.apache.commons.lang3.ArrayUtils; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.command.TabCompleters.GroupTabCompleter; import vg.civcraft.mc.namelayer.group.Group; -@CivCommand(id = "jalist") -public class ListCommand extends StandaloneCommand { +public class ListCommand extends BaseCommand { - @Override - public boolean execute(final CommandSender sender, final String[] arguments) { - final Player player = (Player) sender; + @CommandAlias("jalist") + @Syntax("[group]") + @Description("Lists all snitches you have access to if given no arguments or the ones on the given groups") + public void execute(final Player player, @Optional final String targetGroup1, @Optional final String targetGroup2, @Optional final String targetGroup3) { boolean playerProvidedGroups = true; List groupNames = null; - if (ArrayUtils.isNotEmpty(arguments)) { - groupNames = Arrays.asList(arguments); - groupNames.removeIf(Strings::isNullOrEmpty); + if (!(targetGroup1 == null) && !(targetGroup2 == null) && !(targetGroup3 == null)) { + groupNames.add(targetGroup1); + groupNames.add(targetGroup2); + groupNames.add(targetGroup3); } if (CollectionUtils.isEmpty(groupNames)) { groupNames = NameAPI.getGroupManager().getAllGroupNames(player.getUniqueId()); @@ -46,14 +48,14 @@ public boolean execute(final CommandSender sender, final String[] arguments) { final Group group = GroupManager.getGroup(groupName); if (group == null) { if (playerProvidedGroups) { - sender.sendMessage(ChatColor.RED + "The group " + groupName + " does not exist"); + player.sendMessage(ChatColor.RED + "The group " + groupName + " does not exist"); } continue; } if (!NameAPI.getGroupManager().hasAccess(group, player.getUniqueId(), JukeAlertPermissionHandler.getListSnitches())) { if (playerProvidedGroups) { - sender.sendMessage(ChatColor.RED + "You do not have permission to list snitches " + player.sendMessage(ChatColor.RED + "You do not have permission to list snitches " + "for the group " + group.getName()); } continue; @@ -61,10 +63,10 @@ public boolean execute(final CommandSender sender, final String[] arguments) { groupIds.addAll(group.getGroupIds()); } if (groupIds.isEmpty()) { - sender.sendMessage(ChatColor.GREEN + "You do not have access to any group's snitches."); - return true; + player.sendMessage(ChatColor.GREEN + "You do not have access to any group's snitches."); + return; } - sender.sendMessage(ChatColor.GREEN + "Retrieving snitches for a total of " + groupNames.size() + player.sendMessage(ChatColor.GREEN + "Retrieving snitches for a total of " + groupNames.size() + " group instances. This may take a moment."); JukeAlert.getInstance().getTaskChainFactory().newChain() .async((unused) -> JukeAlert.getInstance().getDAO().loadSnitchesByGroupID(groupIds).parallel() @@ -82,7 +84,6 @@ public boolean execute(final CommandSender sender, final String[] arguments) { .syncLast((snitches) -> new SnitchOverviewGUI(player, snitches, "Your snitches", player.hasPermission("jukealert.admin")).showScreen()) .execute(); - return true; } private static class SnitchCache { @@ -95,7 +96,6 @@ public SnitchCache(@Nonnull final Snitch snitch, } } - @Override public List tabComplete(final CommandSender sender, final String[] arguments) { final String last = ArrayUtils.isEmpty(arguments) ? "" : arguments[arguments.length - 1]; return GroupTabCompleter.complete(last, JukeAlertPermissionHandler.getListSnitches(), (Player) sender); diff --git a/src/main/java/com/untamedears/jukealert/commands/MuteCommand.java b/src/main/java/com/untamedears/jukealert/commands/MuteCommand.java index dbdd9490..d196254c 100644 --- a/src/main/java/com/untamedears/jukealert/commands/MuteCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/MuteCommand.java @@ -1,46 +1,37 @@ package com.untamedears.jukealert.commands; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import com.untamedears.jukealert.JukeAlert; import com.untamedears.jukealert.util.JASettingsManager; import java.util.List; import net.md_5.bungee.api.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.group.Group; -@CivCommand(id = "jamute") -public class MuteCommand extends StandaloneCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED + "Players only"); - return true; +public class MuteCommand extends BaseCommand { + @CommandAlias("jamute") + @Syntax("") + @Description("Adds or removes from a snitch notification ignore list.") + public void execute(Player player, String targetGroup) { + if (targetGroup == null) { + return; } - if (args.length == 0) { - return false; - } - Player player = (Player) sender; - Group group = GroupManager.getGroup(args[0]); + Group group = GroupManager.getGroup(targetGroup); if (group == null) { - player.sendMessage(ChatColor.RED + "The group " + args[0] + " does not exist"); - return true; + player.sendMessage(ChatColor.RED + "The group " + targetGroup + " does not exist"); + return; } JASettingsManager settingsManager = JukeAlert.getInstance().getSettingsManager(); if (settingsManager.doesIgnoreAlert(group.getName(), player.getUniqueId())) { settingsManager.getIgnoredGroupAlerts().removeElement(player.getUniqueId(), group.getName()); player.sendMessage(ChatColor.GREEN + "You have unmuted " + group.getName()); - return true; + return; } settingsManager.getIgnoredGroupAlerts().addElement(player.getUniqueId(), group.getName()); player.sendMessage(ChatColor.GREEN + "You have muted " + group.getName()); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; } } diff --git a/src/main/java/com/untamedears/jukealert/commands/NameCommand.java b/src/main/java/com/untamedears/jukealert/commands/NameCommand.java index db51c165..44b44b5f 100644 --- a/src/main/java/com/untamedears/jukealert/commands/NameCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/NameCommand.java @@ -2,36 +2,35 @@ import static com.untamedears.jukealert.util.JAUtility.findLookingAtOrClosestSnitch; + +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; +import co.aikar.commands.annotation.Syntax; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.util.JAUtility; import com.untamedears.jukealert.util.JukeAlertPermissionHandler; -import java.util.LinkedList; -import java.util.List; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; - -@CivCommand(id = "janame") -public class NameCommand extends StandaloneCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - Player player = (Player) sender; +public class NameCommand extends BaseCommand { + @CommandAlias("janame") + @Syntax("") + @Description("Name a snitch") + public void execute(Player player, String targetName) { String name = ""; - if (args[0].length() > 40) { - name = args[0].substring(0, 40); + if (targetName.length() > 40) { + name = targetName.substring(0, 40); } else { - name = args[0]; + name = targetName; } Snitch snitch = findLookingAtOrClosestSnitch(player, JukeAlertPermissionHandler.getRenameSnitch()); if (snitch == null) { player.sendMessage( ChatColor.RED + "You do not own any snitches nearby or lack permission to view their logs!"); - return true; + return; } String prevName = snitch.getName(); snitch.setName(name); @@ -39,12 +38,6 @@ public boolean execute(CommandSender sender, String[] args) { lineText.addExtra(JAUtility.genTextComponent(snitch)); lineText.addExtra(ChatColor.AQUA + " from " + ChatColor.GOLD + prevName); player.spigot().sendMessage(lineText); - return true; - - } - @Override - public List tabComplete(CommandSender sender, String[] args) { - return new LinkedList<>(); } } diff --git a/src/main/java/com/untamedears/jukealert/commands/ToggleLeverCommand.java b/src/main/java/com/untamedears/jukealert/commands/ToggleLeverCommand.java index 85fb8163..f8caa026 100644 --- a/src/main/java/com/untamedears/jukealert/commands/ToggleLeverCommand.java +++ b/src/main/java/com/untamedears/jukealert/commands/ToggleLeverCommand.java @@ -3,48 +3,37 @@ import static com.untamedears.jukealert.util.JAUtility.findLookingAtOrClosestSnitch; +import co.aikar.commands.BaseCommand; +import co.aikar.commands.annotation.CommandAlias; +import co.aikar.commands.annotation.Description; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.appender.LeverToggleAppender; import com.untamedears.jukealert.util.JukeAlertPermissionHandler; -import java.util.List; import net.md_5.bungee.api.ChatColor; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; -import vg.civcraft.mc.civmodcore.command.CivCommand; -import vg.civcraft.mc.civmodcore.command.StandaloneCommand; import vg.civcraft.mc.namelayer.permission.PermissionType; -@CivCommand(id = "jatogglelevers") -public class ToggleLeverCommand extends StandaloneCommand { - @Override - public boolean execute(CommandSender sender, String[] args) { - if (!(sender instanceof Player)) { - sender.sendMessage(ChatColor.RED + "Players only"); - return true; - } - Player player = (Player) sender; +public class ToggleLeverCommand extends BaseCommand { + + @CommandAlias("jatogglelevers") + @Description("Toggles flag that indicates if a juke should trigger a lever.") + public void execute(Player player, String[] args) { if (args.length >= 1) { - return false; + return; } PermissionType togglePerm = JukeAlertPermissionHandler.getToggleLevers(); Snitch snitch = findLookingAtOrClosestSnitch(player, togglePerm); if (snitch == null) { player.sendMessage( org.bukkit.ChatColor.RED + "You do not own any snitches nearby or lack permission to view their logs!"); - return true; + return; } if (!snitch.hasAppender(LeverToggleAppender.class)) { player.sendMessage(ChatColor.RED + "This snitch does not have Toggle lever functionality!"); - return true; + return; } LeverToggleAppender toggleAppender = (LeverToggleAppender) snitch.getAppender(LeverToggleAppender.class); toggleAppender.switchState(); player.sendMessage(ChatColor.GREEN + "Toggled lever activation " + (toggleAppender.shouldToggle() ? "on" : "off")); - return true; - } - - @Override - public List tabComplete(CommandSender sender, String[] args) { - return null; } } diff --git a/src/main/java/com/untamedears/jukealert/database/JukeAlertDAO.java b/src/main/java/com/untamedears/jukealert/database/JukeAlertDAO.java index e897c8cd..e49dcd59 100644 --- a/src/main/java/com/untamedears/jukealert/database/JukeAlertDAO.java +++ b/src/main/java/com/untamedears/jukealert/database/JukeAlertDAO.java @@ -43,12 +43,12 @@ import org.bukkit.entity.EntityType; import vg.civcraft.mc.civmodcore.CivModCorePlugin; import vg.civcraft.mc.civmodcore.dao.ManagedDatasource; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.CacheState; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.api.SingleBlockAPIView; -import vg.civcraft.mc.civmodcore.locations.global.GlobalLocationTracker; -import vg.civcraft.mc.civmodcore.locations.global.GlobalTrackableDAO; -import vg.civcraft.mc.civmodcore.locations.global.WorldIDManager; -import vg.civcraft.mc.civmodcore.util.CivLogger; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.CacheState; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.api.SingleBlockAPIView; +import vg.civcraft.mc.civmodcore.world.locations.global.GlobalLocationTracker; +import vg.civcraft.mc.civmodcore.world.locations.global.GlobalTrackableDAO; +import vg.civcraft.mc.civmodcore.world.locations.global.WorldIDManager; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.group.Group; @@ -116,7 +116,7 @@ public Boolean call() throws Exception { boolean triggerLever = rs.getBoolean(9); int oldId = rs.getInt(10); - short worldID = worldIdMan.getInternalWorldIdByName(worldName); + short worldID = worldIdMan.getInternalWorldId(Bukkit.getWorld(worldName)); if (worldID == -1) { logger.severe("Failed to find world id for world with name " + worldName); return false; diff --git a/src/main/java/com/untamedears/jukealert/gui/SnitchLogGUI.java b/src/main/java/com/untamedears/jukealert/gui/SnitchLogGUI.java index 7cc72b32..faedef8a 100644 --- a/src/main/java/com/untamedears/jukealert/gui/SnitchLogGUI.java +++ b/src/main/java/com/untamedears/jukealert/gui/SnitchLogGUI.java @@ -22,14 +22,14 @@ import org.bukkit.inventory.meta.ItemMeta; import vg.civcraft.mc.civmodcore.chat.Componentify; import vg.civcraft.mc.civmodcore.chat.dialog.Dialog; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.MultiPageView; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; import vg.civcraft.mc.civmodcore.inventory.items.MetaUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; -import vg.civcraft.mc.civmodcore.inventorygui.MultiPageView; -import vg.civcraft.mc.civmodcore.util.MoreCollectionUtils; +import vg.civcraft.mc.civmodcore.utilities.MoreCollectionUtils; import vg.civcraft.mc.namelayer.permission.PermissionType; public class SnitchLogGUI { diff --git a/src/main/java/com/untamedears/jukealert/gui/SnitchOverviewGUI.java b/src/main/java/com/untamedears/jukealert/gui/SnitchOverviewGUI.java index d0ab6684..c8e68240 100644 --- a/src/main/java/com/untamedears/jukealert/gui/SnitchOverviewGUI.java +++ b/src/main/java/com/untamedears/jukealert/gui/SnitchOverviewGUI.java @@ -7,12 +7,12 @@ import net.md_5.bungee.api.ChatColor; import org.bukkit.entity.Player; import org.bukkit.inventory.meta.ItemMeta; +import vg.civcraft.mc.civmodcore.inventory.gui.Clickable; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.MultiPageView; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; import vg.civcraft.mc.civmodcore.inventory.items.MetaUtils; -import vg.civcraft.mc.civmodcore.inventorygui.Clickable; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; -import vg.civcraft.mc.civmodcore.inventorygui.MultiPageView; -import vg.civcraft.mc.civmodcore.util.TextUtil; +import vg.civcraft.mc.civmodcore.utilities.TextUtil; import vg.civcraft.mc.civmodcore.world.WorldUtils; public class SnitchOverviewGUI { diff --git a/src/main/java/com/untamedears/jukealert/model/Snitch.java b/src/main/java/com/untamedears/jukealert/model/Snitch.java index c39729fb..c2dce3a2 100644 --- a/src/main/java/com/untamedears/jukealert/model/Snitch.java +++ b/src/main/java/com/untamedears/jukealert/model/Snitch.java @@ -18,9 +18,9 @@ import org.bukkit.entity.Player; import vg.civcraft.mc.citadel.ReinforcementLogic; import vg.civcraft.mc.citadel.model.Reinforcement; -import vg.civcraft.mc.civmodcore.locations.chunkmeta.CacheState; -import vg.civcraft.mc.civmodcore.locations.global.LocationTrackable; -import vg.civcraft.mc.civmodcore.util.CivLogger; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; +import vg.civcraft.mc.civmodcore.world.locations.chunkmeta.CacheState; +import vg.civcraft.mc.civmodcore.world.locations.global.LocationTrackable; import vg.civcraft.mc.namelayer.GroupManager; import vg.civcraft.mc.namelayer.NameAPI; import vg.civcraft.mc.namelayer.group.Group; diff --git a/src/main/java/com/untamedears/jukealert/model/SnitchQTEntry.java b/src/main/java/com/untamedears/jukealert/model/SnitchQTEntry.java index 3609ef1d..fe58a844 100644 --- a/src/main/java/com/untamedears/jukealert/model/SnitchQTEntry.java +++ b/src/main/java/com/untamedears/jukealert/model/SnitchQTEntry.java @@ -1,7 +1,7 @@ package com.untamedears.jukealert.model; import org.bukkit.Location; -import vg.civcraft.mc.civmodcore.locations.QTBoxImpl; +import vg.civcraft.mc.civmodcore.world.locations.QTBoxImpl; public class SnitchQTEntry extends QTBoxImpl { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableAction.java b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableAction.java index ac63c53f..cdee570e 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableAction.java @@ -4,7 +4,7 @@ import com.untamedears.jukealert.model.actions.LoggedActionPersistence; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.Location; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public interface LoggableAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableBlockAction.java b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableBlockAction.java index 3ed84a7f..9bf22e37 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableBlockAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggableBlockAction.java @@ -8,9 +8,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; public abstract class LoggableBlockAction extends LoggablePlayerAction { @@ -33,7 +33,21 @@ public Location getLocation() { /** * @return Material of the block this action is about */ + + /* + Some items cannot be held in the inventory, such as FIRE or POWDER_SNOW, therefore we have a check here to return + the correct inventory item to represent. + */ public Material getMaterial() { + if (material == Material.POWDER_SNOW) { + return Material.POWDER_SNOW_BUCKET; + } + if (material == Material.FIRE) { + return Material.FLINT_AND_STEEL; + } + if (material == Material.SWEET_BERRY_BUSH) { + return Material.SWEET_BERRIES; + } return material; } diff --git a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggablePlayerAction.java b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggablePlayerAction.java index 16d21c80..1b20d8c9 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggablePlayerAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/abstr/LoggablePlayerAction.java @@ -5,21 +5,20 @@ import com.untamedears.jukealert.model.actions.ActionCacheState; import com.untamedears.jukealert.model.actions.LoggedActionPersistence; import com.untamedears.jukealert.util.JAUtility; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; import net.md_5.bungee.api.chat.TextComponent; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import vg.civcraft.mc.civmodcore.CivModCorePlugin; +import vg.civcraft.mc.civmodcore.inventory.gui.ClickableInventory; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.ClickableInventory; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; import vg.civcraft.mc.namelayer.NameAPI; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; - public abstract class LoggablePlayerAction extends PlayerAction implements LoggableAction { private ActionCacheState state; diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/DestroyVehicleAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/DestroyVehicleAction.java index 20cea4c4..879a14e3 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/DestroyVehicleAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/DestroyVehicleAction.java @@ -7,9 +7,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; public class DestroyVehicleAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/DismountEntityAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/DismountEntityAction.java index 83055727..8a8e057b 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/DismountEntityAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/DismountEntityAction.java @@ -6,8 +6,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class DismountEntityAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterFieldAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterFieldAction.java index 2d9668af..23a065ba 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterFieldAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterFieldAction.java @@ -3,10 +3,9 @@ import com.untamedears.jukealert.events.PlayerHitSnitchEvent; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.actions.abstr.LoggablePlayerAction; -import org.bukkit.Bukkit; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; - import java.util.UUID; +import org.bukkit.Bukkit; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class EnterFieldAction extends LoggablePlayerAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterVehicleAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterVehicleAction.java index de223bee..45039814 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterVehicleAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/EnterVehicleAction.java @@ -7,9 +7,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; public class EnterVehicleAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/ExitVehicleAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/ExitVehicleAction.java index 25b6ce81..8a1f6eae 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/ExitVehicleAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/ExitVehicleAction.java @@ -7,9 +7,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; public class ExitVehicleAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/IgniteBlockAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/IgniteBlockAction.java index 856029e8..74b0b08d 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/IgniteBlockAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/IgniteBlockAction.java @@ -7,8 +7,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class IgniteBlockAction extends LoggablePlayerAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/KillLivingEntityAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/KillLivingEntityAction.java index bb4f5f49..f3d65e27 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/KillLivingEntityAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/KillLivingEntityAction.java @@ -6,8 +6,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class KillLivingEntityAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/KillPlayerAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/KillPlayerAction.java index 6a2ba279..a96cdea2 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/KillPlayerAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/KillPlayerAction.java @@ -6,9 +6,9 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; import vg.civcraft.mc.civmodcore.inventory.items.ItemUtils; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; import vg.civcraft.mc.namelayer.NameAPI; public class KillPlayerAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/LeaveFieldAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/LeaveFieldAction.java index 544ccb7d..ab75fc07 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/LeaveFieldAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/LeaveFieldAction.java @@ -2,9 +2,8 @@ import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.actions.abstr.LoggablePlayerAction; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; - import java.util.UUID; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class LeaveFieldAction extends LoggablePlayerAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/LoginAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/LoginAction.java index 649b8156..7296d208 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/LoginAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/LoginAction.java @@ -3,11 +3,10 @@ import com.untamedears.jukealert.events.PlayerLoginSnitchEvent; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.actions.abstr.LoggablePlayerAction; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; - -import java.util.UUID; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class LoginAction extends LoggablePlayerAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/LogoutAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/LogoutAction.java index 3309a77e..db5c8113 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/LogoutAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/LogoutAction.java @@ -3,11 +3,10 @@ import com.untamedears.jukealert.events.PlayerLogoutSnitchEvent; import com.untamedears.jukealert.model.Snitch; import com.untamedears.jukealert.model.actions.abstr.LoggablePlayerAction; +import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; - -import java.util.UUID; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class LogoutAction extends LoggablePlayerAction { diff --git a/src/main/java/com/untamedears/jukealert/model/actions/impl/MountEntityAction.java b/src/main/java/com/untamedears/jukealert/model/actions/impl/MountEntityAction.java index dfc79248..17780163 100644 --- a/src/main/java/com/untamedears/jukealert/model/actions/impl/MountEntityAction.java +++ b/src/main/java/com/untamedears/jukealert/model/actions/impl/MountEntityAction.java @@ -6,8 +6,8 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.inventorygui.DecorationStack; -import vg.civcraft.mc.civmodcore.inventorygui.IClickable; +import vg.civcraft.mc.civmodcore.inventory.gui.DecorationStack; +import vg.civcraft.mc.civmodcore.inventory.gui.IClickable; public class MountEntityAction extends LoggablePlayerVictimAction { diff --git a/src/main/java/com/untamedears/jukealert/model/appender/DormantCullingAppender.java b/src/main/java/com/untamedears/jukealert/model/appender/DormantCullingAppender.java index 73f7b0b1..cc7cbb6d 100644 --- a/src/main/java/com/untamedears/jukealert/model/appender/DormantCullingAppender.java +++ b/src/main/java/com/untamedears/jukealert/model/appender/DormantCullingAppender.java @@ -10,9 +10,9 @@ import com.untamedears.jukealert.util.JukeAlertPermissionHandler; import javax.annotation.Nonnull; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.util.BukkitComparators; -import vg.civcraft.mc.civmodcore.util.CivLogger; -import vg.civcraft.mc.civmodcore.util.progress.ProgressTrackable; +import vg.civcraft.mc.civmodcore.utilities.BukkitComparators; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; +import vg.civcraft.mc.civmodcore.utilities.progress.ProgressTrackable; public class DormantCullingAppender extends ConfigurableSnitchAppender diff --git a/src/main/java/com/untamedears/jukealert/model/appender/SnitchLogAppender.java b/src/main/java/com/untamedears/jukealert/model/appender/SnitchLogAppender.java index bc8feb17..5aa27984 100644 --- a/src/main/java/com/untamedears/jukealert/model/appender/SnitchLogAppender.java +++ b/src/main/java/com/untamedears/jukealert/model/appender/SnitchLogAppender.java @@ -15,7 +15,7 @@ import java.util.List; import javax.annotation.Nonnull; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.util.CivLogger; +import vg.civcraft.mc.civmodcore.utilities.CivLogger; public class SnitchLogAppender extends ConfigurableSnitchAppender { diff --git a/src/main/java/com/untamedears/jukealert/model/appender/config/DormantCullingConfig.java b/src/main/java/com/untamedears/jukealert/model/appender/config/DormantCullingConfig.java index 49e71883..d283f4ea 100644 --- a/src/main/java/com/untamedears/jukealert/model/appender/config/DormantCullingConfig.java +++ b/src/main/java/com/untamedears/jukealert/model/appender/config/DormantCullingConfig.java @@ -2,7 +2,7 @@ import java.util.concurrent.TimeUnit; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.util.ConfigParsing; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; public class DormantCullingConfig implements AppenderConfig { @@ -10,8 +10,8 @@ public class DormantCullingConfig implements AppenderConfig { private long dormantLifeTime; public DormantCullingConfig(ConfigurationSection config) { - lifeTime = ConfigParsing.parseTime(config.getString("lifeTime", "2 weeks"), TimeUnit.MILLISECONDS); - dormantLifeTime = ConfigParsing.parseTime(config.getString("dormantTime", "2 weeks"), TimeUnit.MILLISECONDS); + lifeTime = ConfigHelper.parseTime(config.getString("lifeTime", "2 weeks"), TimeUnit.MILLISECONDS); + dormantLifeTime = ConfigHelper.parseTime(config.getString("dormantTime", "2 weeks"), TimeUnit.MILLISECONDS); } /** diff --git a/src/main/java/com/untamedears/jukealert/model/appender/config/LeverToggleConfig.java b/src/main/java/com/untamedears/jukealert/model/appender/config/LeverToggleConfig.java index 6404c25c..a2dfe98f 100644 --- a/src/main/java/com/untamedears/jukealert/model/appender/config/LeverToggleConfig.java +++ b/src/main/java/com/untamedears/jukealert/model/appender/config/LeverToggleConfig.java @@ -10,7 +10,7 @@ import java.util.logging.Logger; import org.bukkit.block.BlockFace; import org.bukkit.configuration.ConfigurationSection; -import vg.civcraft.mc.civmodcore.util.ConfigParsing; +import vg.civcraft.mc.civmodcore.config.ConfigHelper; public class LeverToggleConfig implements AppenderConfig { @@ -33,7 +33,7 @@ public LeverToggleConfig(ConfigurationSection config) { logger.warning(key + " at " + config.getCurrentPath() + " is not a valid BlockFace, entry was ignored"); continue; } - long delay = ConfigParsing.parseTime(current.getString("disableDelay", "1 second")); + long delay = ConfigHelper.parseTime(current.getString("disableDelay", "1 second")); if (!current.isList("trigger")) { logger.warning("No trigger actions specified for lever at " + current.getCurrentPath()); continue; diff --git a/src/main/java/com/untamedears/jukealert/model/appender/config/LimitedActionTriggerConfig.java b/src/main/java/com/untamedears/jukealert/model/appender/config/LimitedActionTriggerConfig.java index f96cdc43..2d5837f7 100644 --- a/src/main/java/com/untamedears/jukealert/model/appender/config/LimitedActionTriggerConfig.java +++ b/src/main/java/com/untamedears/jukealert/model/appender/config/LimitedActionTriggerConfig.java @@ -8,7 +8,6 @@ import java.util.concurrent.TimeUnit; import org.bukkit.configuration.ConfigurationSection; import vg.civcraft.mc.civmodcore.config.ConfigHelper; -import vg.civcraft.mc.civmodcore.util.ConfigParsing; public class LimitedActionTriggerConfig implements AppenderConfig { @@ -30,7 +29,7 @@ public LimitedActionTriggerConfig(final ConfigurationSection config) { } } this.acceptAll = config.getBoolean("acceptAll", false); - this.actionLifespan = ConfigParsing.parseTime(config.getString("lifeTime", "4 weeks"), TimeUnit.MILLISECONDS); + this.actionLifespan = ConfigHelper.parseTime(config.getString("lifeTime", "4 weeks"), TimeUnit.MILLISECONDS); this.hardCap = config.getInt("hardCap", 100_000); } diff --git a/src/main/java/com/untamedears/jukealert/util/JASettingsManager.java b/src/main/java/com/untamedears/jukealert/util/JASettingsManager.java index 7cc90963..1beab79f 100644 --- a/src/main/java/com/untamedears/jukealert/util/JASettingsManager.java +++ b/src/main/java/com/untamedears/jukealert/util/JASettingsManager.java @@ -4,13 +4,12 @@ import java.util.UUID; import org.bukkit.Material; import org.bukkit.inventory.ItemStack; -import vg.civcraft.mc.civmodcore.playersettings.PlayerSettingAPI; -import vg.civcraft.mc.civmodcore.playersettings.gui.MenuSection; -import vg.civcraft.mc.civmodcore.playersettings.impl.BooleanSetting; -import vg.civcraft.mc.civmodcore.playersettings.impl.BoundedIntegerSetting; -import vg.civcraft.mc.civmodcore.playersettings.impl.DisplayLocationSetting; -import vg.civcraft.mc.civmodcore.playersettings.impl.DisplayLocationSetting.DisplayLocation; -import vg.civcraft.mc.civmodcore.playersettings.impl.collection.SetSetting; +import vg.civcraft.mc.civmodcore.players.settings.PlayerSettingAPI; +import vg.civcraft.mc.civmodcore.players.settings.gui.MenuSection; +import vg.civcraft.mc.civmodcore.players.settings.impl.BooleanSetting; +import vg.civcraft.mc.civmodcore.players.settings.impl.BoundedIntegerSetting; +import vg.civcraft.mc.civmodcore.players.settings.impl.DisplayLocationSetting; +import vg.civcraft.mc.civmodcore.players.settings.impl.collection.SetSetting; public class JASettingsManager { @@ -42,7 +41,7 @@ private void initSettings() { "jaIgnoreAllSnitchAlerts", "Mutes all snitch notifications if enabled"); PlayerSettingAPI.registerSetting(ignoreAllAlerts, menu); - showNearbySnitchCount = new DisplayLocationSetting(JukeAlert.getInstance(), DisplayLocation.SIDEBAR, "Show nearby snitch count", + showNearbySnitchCount = new DisplayLocationSetting(JukeAlert.getInstance(), DisplayLocationSetting.DisplayLocation.SIDEBAR, "Show nearby snitch count", "jaShowNearbySnitchCount", new ItemStack(Material.JUKEBOX),"Nearby snitch count"); PlayerSettingAPI.registerSetting(showNearbySnitchCount, menu); diff --git a/src/main/java/com/untamedears/jukealert/util/OverlayManager.java b/src/main/java/com/untamedears/jukealert/util/OverlayManager.java index bb3d80b5..62bffcb6 100644 --- a/src/main/java/com/untamedears/jukealert/util/OverlayManager.java +++ b/src/main/java/com/untamedears/jukealert/util/OverlayManager.java @@ -1,9 +1,10 @@ package com.untamedears.jukealert.util; -import vg.civcraft.mc.civmodcore.scoreboard.bottom.BottomLine; -import vg.civcraft.mc.civmodcore.scoreboard.bottom.BottomLineAPI; -import vg.civcraft.mc.civmodcore.scoreboard.side.CivScoreBoard; -import vg.civcraft.mc.civmodcore.scoreboard.side.ScoreBoardAPI; + +import vg.civcraft.mc.civmodcore.players.scoreboard.bottom.BottomLine; +import vg.civcraft.mc.civmodcore.players.scoreboard.bottom.BottomLineAPI; +import vg.civcraft.mc.civmodcore.players.scoreboard.side.CivScoreBoard; +import vg.civcraft.mc.civmodcore.players.scoreboard.side.ScoreBoardAPI; public class OverlayManager { diff --git a/src/main/java/com/untamedears/jukealert/util/TimeZoneSetting.java b/src/main/java/com/untamedears/jukealert/util/TimeZoneSetting.java index eb8df858..bca09bbd 100644 --- a/src/main/java/com/untamedears/jukealert/util/TimeZoneSetting.java +++ b/src/main/java/com/untamedears/jukealert/util/TimeZoneSetting.java @@ -2,7 +2,7 @@ import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; -import vg.civcraft.mc.civmodcore.playersettings.impl.StringSetting; +import vg.civcraft.mc.civmodcore.players.settings.impl.StringSetting; public class TimeZoneSetting extends StringSetting { diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index e20c8942..83cce883 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -1,15 +1,15 @@ -#database: -# ==: vg.civcraft.mc.civmodcore.dao.ManagedDatasource -# plugin: JukeAlert -# user: username -# password: squidLover69 -# host: localhost -# port: 3306 -# database: snitches -# poolsize: 5 -# connection_timeout: 10000 -# idle_timeout: 600000 -# max_lifetime: 7200000 +database: + ==: vg.civcraft.mc.civmodcore.dao.DatabaseCredentials + plugin: JukeAlert + user: username + password: squidLover69 + host: localhost + port: 3306 + database: snitches + poolsize: 5 + connection_timeout: 10000 + idle_timeout: 600000 + max_lifetime: 7200000 snitchConfigs: note: diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 80cceee7..cf63ea1a 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -8,47 +8,6 @@ api-version: 1.16 description: JukeAlert provides an easy-to-use means by which one can record player activity within an 11 block radius. Anything someone does while within eleven blocks of a jukebox you've reinforced will be logged on it, and can be read by looking at the jukebox and typing '/jainfo'. -commands: - ja: - description: Opens snitch log GUI - usage: /ja - min-args: 0 - max-args: 0 - player-only: true - jainfo: - description: Display information from a snitch - usage: /jainfo [ or 'next'] [censor] [action=] [player=] - min-args: 0 - max-args: 6 - player-only: true - jalist: - description: Lists all snitches you have access to if given no arguments or the ones on the given groups - usage: /jalist [group1] [group2] [group3] - min-args: 0 - max-args: 20 - player-only: true - jaclear: - description: Deletes all logs a snitch has - usage: /jaclear - min-args: 0 - max-args: 0 - player-only: true - janame: - description: Name a snitch - usage: /janame - min-args: 1 - max-args: 1 - player-only: true - jalookup: - description: Look up a snitch by its coordinates - usage: /jalookup [world] - permission: jukealert.jalookup - jamute: - description: Adds or removes from a snitch notification ignore list. - usage: /jamute - jatogglelevers: - description: Toggles flag that indicates if a juke should trigger a lever. - usage: /jatogglelevers permissions: jukealert.admin.jagroup: description: Use /jagroup even when not the owner