Browse Source

Wire up inspect command settings

nossr50 6 years ago
parent
commit
7cf3b4e521

+ 4 - 0
Changelog.txt

@@ -55,6 +55,10 @@ Version 2.2.0
     Added some failsafes to prevent mcMMO from saving too often
 
     Command config options will now be found in "commands.conf"
+    Added new toggle to allow players to inspect offline users
+    Added new toggle to turn off the inspection distance limitation
+    Players can now inspect players regardless of distance by default
+    Players can now inspect offline players by default
     Settings related to party chat have been moved to the party config file
 
     Custom item (Chimaera Wing) config options will now be found in "custom_items.conf"

+ 0 - 13
src/main/java/com/gmail/nossr50/config/MainConfig.java

@@ -360,10 +360,6 @@ public class MainConfig extends ConfigValidated {
             }
         }*/
 
-        /* Inspect command distance */
-        if (getInspectDistance() <= 0) {
-            reason.add(COMMANDS + "." + INSPECT1 + "." + MAX_DISTANCE + " should be greater than 0!");
-        }
 
         /*if (getTreeFellerThreshold() <= 0) {
             reason.add(ABILITIES + "." + LIMITS + "." + TREE_FELLER_THRESHOLD + " should be greater than 0!");
@@ -547,15 +543,6 @@ public class MainConfig extends ConfigValidated {
         return getIntValue(PARTICLES, LEVEL_UP + TIER);
     }
 
-    public boolean getLargeFireworks() {
-        return getBooleanValue(PARTICLES, LARGE_FIREWORKS);
-    }
-
-    /* Inspect command distance */
-    public double getInspectDistance() {
-        return getDoubleValue(COMMANDS, INSPECT1, MAX_DISTANCE);
-    }
-
     /*
      * SKILL SETTINGS
      */

+ 6 - 2
src/main/java/com/gmail/nossr50/config/hocon/commands/ConfigCommandsInspect.java

@@ -9,17 +9,21 @@ public class ConfigCommandsInspect {
     private static final double INSPECT_MAX_DISTANCE_DEFAULT = 30.0D;
     private static final boolean LIMIT_INSPECT_RANGE_DEFAULT = false;
     private static final boolean ALLOW_OFFLINE_INSPECTION_DEFAULT = true;
+    private static final String BYPASS_PERMISSION = "mcmmo.commands.mcrank.others.far";
 
     @Setting(value = "Inspect-Max-Distance", comment = "The maximum range at which players can inspect one another." +
             "\nIs only used if limit inspect range is turned on." +
             "\nDefault value: "+INSPECT_MAX_DISTANCE_DEFAULT)
     private double inspectCommandMaxDistance = INSPECT_MAX_DISTANCE_DEFAULT;
 
-    @Setting(value = "Limit-Inspect-Range", comment = "Inspection is limited by the distance between players instead of always being usable.")
+    @Setting(value = "Limit-Inspect-Range", comment = "Inspection is limited by the distance between players instead of always being usable." +
+            "Permission to bypass this limit - " + BYPASS_PERMISSION
+            +"\nDefault value: "+LIMIT_INSPECT_RANGE_DEFAULT)
     private boolean limitInspectRange = LIMIT_INSPECT_RANGE_DEFAULT;
 
     @Setting(value = "Allow-Offline-Inspection", comment = "If set to true players will be able to look at the profiles of anyone on the server whether they are connected or not." +
-            "\nAdmins and the console can always check the profiles of offline players.")
+            "\nAdmins and the console can always check the profiles of offline players." +
+            "\nDefault value: "+ALLOW_OFFLINE_INSPECTION_DEFAULT)
     private boolean allowInspectOnOfflinePlayers = ALLOW_OFFLINE_INSPECTION_DEFAULT;
 
     public double getInspectCommandMaxDistance() {

+ 7 - 2
src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java

@@ -38,7 +38,7 @@ public final class CommandUtils {
             return true;
         }
 
-        if (!hasPermission) {
+        if (!hasPermission && !mcMMO.getConfigManager().getConfigCommands().isAllowInspectOnOfflinePlayers()) {
             sender.sendMessage(LocaleLoader.getString("Inspect.Offline"));
             return true;
         }
@@ -47,7 +47,12 @@ public final class CommandUtils {
     }
 
     public static boolean tooFar(CommandSender sender, Player target, boolean hasPermission) {
-        if (sender instanceof Player && !Misc.isNear(((Player) sender).getLocation(), target.getLocation(), MainConfig.getInstance().getInspectDistance()) && !hasPermission) {
+        if (sender instanceof Player
+                && mcMMO.getConfigManager().getConfigCommands().isLimitInspectRange()
+                && !hasPermission
+                && !Misc.isNear(((Player) sender).getLocation(),
+                    target.getLocation(),
+                    mcMMO.getConfigManager().getConfigCommands().getInspectCommandMaxDistance())) {
             sender.sendMessage(LocaleLoader.getString("Inspect.TooFar"));
             return true;
         }