diff --git a/pom.xml b/pom.xml
index 6aa771c..911ef55 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,6 +68,11 @@
Essentials
2.14-SNAPSHOT
+
+ us.dynmap
+ dynmap-api
+ 1.9.4
+
commons-lang
commons-lang
@@ -90,6 +95,10 @@
etztech-repo
http://repo.etztech.xyz
+
+ dynmap-repo
+ http://repo.mikeprimm.com/
+
ess-repo
http://repo.ess3.net/content/groups/essentials
diff --git a/src/main/java/xyz/etztech/qol/QoL.java b/src/main/java/xyz/etztech/qol/QoL.java
index 1ba18d1..2b753c3 100644
--- a/src/main/java/xyz/etztech/qol/QoL.java
+++ b/src/main/java/xyz/etztech/qol/QoL.java
@@ -11,6 +11,7 @@ import xyz.etztech.qol.commands.*;
import xyz.etztech.qol.listeners.*;
import xyz.etztech.qol.other.LinkCommand;
import xyz.etztech.qol.other.TPSRunnable;
+import org.dynmap.DynmapAPI;
import java.util.ArrayList;
import java.util.List;
@@ -20,6 +21,7 @@ public class QoL extends JavaPlugin {
private static QoL instance;
private static IEssentials essentials = null;
+ private static DynmapAPI dynmap = null;
public static FileConfiguration config;
private Logger log = Logger.getLogger( "Minecraft" );
@@ -43,6 +45,12 @@ public class QoL extends JavaPlugin {
essentials = (Essentials) Bukkit.getPluginManager().getPlugin("Essentials");
}
+ //Dynmap hook
+ if (Bukkit.getPluginManager().isPluginEnabled("dynmap")) {
+ log("Hooked into Essentials for TPS alert.");
+ dynmap = (DynmapAPI) Bukkit.getPluginManager().getPlugin("dynmap");
+ }
+
if( isEnabled() ) {
// Add listeners
@@ -240,9 +248,9 @@ public class QoL extends JavaPlugin {
return links;
}
- public static IEssentials getEssentials() {
- return essentials;
- }
+ public static IEssentials getEssentials() { return essentials; }
+
+ public static DynmapAPI getDynmap() { return dynmap; }
private void runTask(final String command) {
diff --git a/src/main/java/xyz/etztech/qol/listeners/CommandPreprocessListener.java b/src/main/java/xyz/etztech/qol/listeners/CommandPreprocessListener.java
index 0c9d7bb..ae379f7 100644
--- a/src/main/java/xyz/etztech/qol/listeners/CommandPreprocessListener.java
+++ b/src/main/java/xyz/etztech/qol/listeners/CommandPreprocessListener.java
@@ -13,6 +13,7 @@ import xyz.etztech.core.CoreUtils;
import xyz.etztech.core.web.CoreWeb;
import xyz.etztech.qol.QoL;
import xyz.etztech.qol.other.LinkCommand;
+import org.dynmap.DynmapAPI;
import java.util.HashMap;
import java.util.Map;
@@ -20,14 +21,19 @@ import java.util.UUID;
public class CommandPreprocessListener implements Listener {
-
QoL plugin;
private Map confirmTpMap = new HashMap<>();
+ private Map dynmapVisibleStatusMap = new HashMap<>();
+ private DynmapAPI dynmap;
public CommandPreprocessListener(QoL plugin) {
this.plugin = plugin;
- }
+ if (plugin.getDynmap() != null) {
+ this.dynmap = plugin.getDynmap();
+ }
+
+ }
@EventHandler
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) {
@@ -36,9 +42,27 @@ public class CommandPreprocessListener implements Listener {
String base = command.split(" ")[0].substring(1).toLowerCase(); // Strip the slash
Player sender = event.getPlayer();
+ // Spec dynmap hide
+ if (base.equals("spec") && this.dynmap != null) {
+ boolean visibleStatus;
+ if (sender.getGameMode() != GameMode.SPECTATOR){
+ dynmapVisibleStatusMap.put(sender.getUniqueId(), dynmap.getPlayerVisbility(sender.getDisplayName()));
+ visibleStatus = false;
+ }
+ else if (dynmapVisibleStatusMap.containsKey(sender.getUniqueId())){
+ visibleStatus = dynmapVisibleStatusMap.remove(sender.getUniqueId());
+ }
+ else {
+ visibleStatus = true;
+ }
+
+ dynmap.setPlayerVisiblity(sender.getDisplayName(), visibleStatus);
+ }
+
+ // Spec TP confirmation
if (sender.hasPermission("qol.tpconfirm")) {
//check if the command is a tp command
- if (noSlash(base).equals("tp") || noSlash(base).startsWith("tele") || noSlash(command).startsWith("lagg tpchunk")) {
+ if (noSlash(base).equals("tp") || noSlash(base).startsWith("tele") || noSlash(command).toLowerCase().startsWith("lagg tpchunk")) {
//If the user is in the confirm tp map, remove them and let the command run
if (command.equals(confirmTpMap.get(sender.getUniqueId()))) {
confirmTpMap.remove(sender.getUniqueId());
@@ -81,6 +105,10 @@ public class CommandPreprocessListener implements Listener {
}
}
+ if (noSlash(base).equals("spec")) {
+
+ }
+
// Links
for (LinkCommand linkCommand : QoL.getLinks()) {
if (base.equalsIgnoreCase(linkCommand.getCommand())) {