Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 18 additions & 15 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,39 +7,38 @@
<parent>
<groupId>com.github.civclassic</groupId>
<artifactId>civclassic-parent</artifactId>
<version>1.0.0</version>
<version>1.0.1</version>
</parent>

<groupId>com.untamedears</groupId>
<artifactId>JukeAlert</artifactId>
<packaging>jar</packaging>
<version>2.1.2</version>
<version>2.2.0</version>
<name>JukeAlert</name>
<url>https://github.com/Civclassic/JukeAlert/</url>

<dependencies>
<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<groupId>io.papermc.paper</groupId>
<artifactId>paper</artifactId>
<version>1.17.1-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.civmodcore</groupId>
<artifactId>CivModCore</artifactId>
<version>1.8.3</version>
<groupId>com.github.civclassic</groupId>
<artifactId>NameLayer</artifactId>
<version>2.15.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.namelayer</groupId>
<artifactId>NameLayer</artifactId>
<version>2.14.1</version>
<groupId>com.github.civclassic</groupId>
<artifactId>Citadel</artifactId>
<version>4.2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>vg.civcraft.mc.citadel</groupId>
<artifactId>Citadel</artifactId>
<version>4.1.1</version>
<groupId>com.github.civclassic</groupId>
<artifactId>CivModCore</artifactId>
<version>1.9.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
Expand All @@ -49,5 +48,9 @@
<id>civ-github-repo</id>
<url>https://raw.githubusercontent.com/CivClassic/artifacts/master/</url>
</repository>
<repository>
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
</repositories>
</project>
7 changes: 4 additions & 3 deletions src/main/java/com/untamedears/jukealert/JAConfigManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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
Expand Down
7 changes: 5 additions & 2 deletions src/main/java/com/untamedears/jukealert/JukeAlert.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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 {

Expand All @@ -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;
Expand Down Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down
6 changes: 3 additions & 3 deletions src/main/java/com/untamedears/jukealert/SnitchManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -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 {

Expand Down
29 changes: 10 additions & 19 deletions src/main/java/com/untamedears/jukealert/commands/ClearCommand.java
Original file line number Diff line number Diff line change
@@ -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<String> tabComplete(CommandSender sender, String[] args) {
return new LinkedList<>();
}
}
29 changes: 10 additions & 19 deletions src/main/java/com/untamedears/jukealert/commands/GUICommand.java
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -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<Snitch> snitches = JukeAlert.getInstance().getSnitchManager()
Expand All @@ -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<String> tabComplete(CommandSender sender, String[] args) {
return new LinkedList<>();
}
}
32 changes: 17 additions & 15 deletions src/main/java/com/untamedears/jukealert/commands/InfoCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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,
Expand Down Expand Up @@ -109,7 +112,6 @@ public void sendSnitchLog(Player player, Snitch snitch, int offset, int pageLeng
}
}

@Override
public List<String> tabComplete(CommandSender sender, String[] args) {
List<String> completedArgs = new ArrayList<>();
if (args.length > 0) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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());
}
}
Loading