2
0
nossr50 6 жил өмнө
parent
commit
02a69cbb05
100 өөрчлөгдсөн 1002 нэмэгдсэн , 1100 устгасан
  1. 2 1
      src/main/java/com/gmail/nossr50/api/AbilityAPI.java
  2. 14 13
      src/main/java/com/gmail/nossr50/api/ChatAPI.java
  3. 163 228
      src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
  4. 15 14
      src/main/java/com/gmail/nossr50/api/PartyAPI.java
  5. 2 1
      src/main/java/com/gmail/nossr50/api/SkillAPI.java
  6. 5 9
      src/main/java/com/gmail/nossr50/chat/ChatManager.java
  7. 16 32
      src/main/java/com/gmail/nossr50/commands/McImportCommand.java
  8. 4 5
      src/main/java/com/gmail/nossr50/commands/McconvertCommand.java
  9. 1 1
      src/main/java/com/gmail/nossr50/commands/McmmoCommand.java
  10. 1 1
      src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java
  11. 3 0
      src/main/java/com/gmail/nossr50/commands/ToggleCommand.java
  12. 10 16
      src/main/java/com/gmail/nossr50/commands/XprateCommand.java
  13. 2 3
      src/main/java/com/gmail/nossr50/commands/chat/ChatCommand.java
  14. 2 3
      src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java
  15. 1 2
      src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java
  16. 1 2
      src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java
  17. 2 3
      src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java
  18. 17 19
      src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java
  19. 12 17
      src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java
  20. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java
  21. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java
  22. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java
  23. 20 22
      src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java
  24. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java
  25. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java
  26. 3 5
      src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java
  27. 4 6
      src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java
  28. 4 8
      src/main/java/com/gmail/nossr50/commands/party/PartyItemShareCommand.java
  29. 3 5
      src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java
  30. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java
  31. 4 8
      src/main/java/com/gmail/nossr50/commands/party/PartyLockCommand.java
  32. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java
  33. 1 2
      src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java
  34. 5 10
      src/main/java/com/gmail/nossr50/commands/party/PartySubcommandType.java
  35. 3 6
      src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java
  36. 1 2
      src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java
  37. 2 5
      src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java
  38. 1 2
      src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java
  39. 1 2
      src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java
  40. 1 2
      src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java
  41. 2 4
      src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java
  42. 63 69
      src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java
  43. 1 2
      src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java
  44. 2 4
      src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java
  45. 2 4
      src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java
  46. 2 4
      src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java
  47. 2 4
      src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java
  48. 6 7
      src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java
  49. 4 5
      src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java
  50. 5 5
      src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java
  51. 5 5
      src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java
  52. 9 11
      src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java
  53. 6 6
      src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java
  54. 6 6
      src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java
  55. 10 17
      src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java
  56. 1 1
      src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java
  57. 28 42
      src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java
  58. 1 2
      src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java
  59. 2 2
      src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java
  60. 5 6
      src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java
  61. 5 5
      src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java
  62. 2 2
      src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java
  63. 222 85
      src/main/java/com/gmail/nossr50/config/AdvancedConfig.java
  64. 13 17
      src/main/java/com/gmail/nossr50/config/BonusDropManager.java
  65. 68 73
      src/main/java/com/gmail/nossr50/config/Config.java
  66. 4 4
      src/main/java/com/gmail/nossr50/config/ConfigCollection.java
  67. 20 24
      src/main/java/com/gmail/nossr50/config/ConfigConstants.java
  68. 42 53
      src/main/java/com/gmail/nossr50/config/ConfigManager.java
  69. 4 5
      src/main/java/com/gmail/nossr50/config/ConfigValidated.java
  70. 4 3
      src/main/java/com/gmail/nossr50/config/CoreSkillsConfig.java
  71. 2 0
      src/main/java/com/gmail/nossr50/config/GenericCollectionContainer.java
  72. 2 1
      src/main/java/com/gmail/nossr50/config/MainConfig.java
  73. 2 1
      src/main/java/com/gmail/nossr50/config/RankConfig.java
  74. 4 5
      src/main/java/com/gmail/nossr50/config/SkillConfigFactory.java
  75. 6 12
      src/main/java/com/gmail/nossr50/config/SkillPropertiesManager.java
  76. 2 1
      src/main/java/com/gmail/nossr50/config/SoundConfig.java
  77. 3 6
      src/main/java/com/gmail/nossr50/config/UnsafeValueValidation.java
  78. 1 0
      src/main/java/com/gmail/nossr50/config/VersionedConfig.java
  79. 6 8
      src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java
  80. 6 10
      src/main/java/com/gmail/nossr50/config/hocon/HOCONUtil.java
  81. 3 3
      src/main/java/com/gmail/nossr50/config/hocon/RepairableSerializer.java
  82. 1 2
      src/main/java/com/gmail/nossr50/config/hocon/SalvageableSerializer.java
  83. 8 13
      src/main/java/com/gmail/nossr50/config/hocon/SerializedConfigLoader.java
  84. 4 5
      src/main/java/com/gmail/nossr50/config/hocon/antiexploit/AntiExploit.java
  85. 4 4
      src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java
  86. 6 7
      src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitFishing.java
  87. 12 13
      src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionGeneral.java
  88. 2 2
      src/main/java/com/gmail/nossr50/config/hocon/backup/ConfigAutomatedBackups.java
  89. 5 7
      src/main/java/com/gmail/nossr50/config/hocon/commands/ConfigCommandsAdminChat.java
  90. 3 3
      src/main/java/com/gmail/nossr50/config/hocon/commands/ConfigCommandsInspect.java
  91. 1 1
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigDatabaseFlatFile.java
  92. 4 4
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionCleaning.java
  93. 1 1
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionDatabaseGeneral.java
  94. 3 3
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMaxConnections.java
  95. 3 3
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMaxPoolSize.java
  96. 5 9
      src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMySQL.java
  97. 6 6
      src/main/java/com/gmail/nossr50/config/hocon/database/UserConfigSectionServer.java
  98. 3 3
      src/main/java/com/gmail/nossr50/config/hocon/donation/ConfigAuthorAdvertisements.java
  99. 4 4
      src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceAcrobatics.java
  100. 11 17
      src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceAlchemy.java

+ 2 - 1
src/main/java/com/gmail/nossr50/api/AbilityAPI.java

@@ -8,7 +8,8 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 
 public final class AbilityAPI {
-    private AbilityAPI() {}
+    private AbilityAPI() {
+    }
 
     public static boolean berserkEnabled(Player player) {
         return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);

+ 14 - 13
src/main/java/com/gmail/nossr50/api/ChatAPI.java

@@ -10,18 +10,19 @@ import org.bukkit.entity.Player;
 import org.bukkit.plugin.Plugin;
 
 public final class ChatAPI {
-    private ChatAPI() {}
+    private ChatAPI() {
+    }
 
     /**
      * Send a message to all members of a party
      * </br>
      * This function is designed for API usage.
      *
-     * @param plugin The plugin sending the message
-     * @param sender The name of the sender
+     * @param plugin      The plugin sending the message
+     * @param sender      The name of the sender
      * @param displayName The display name of the sender
-     * @param party The name of the party to send to
-     * @param message The message to send
+     * @param party       The name of the party to send to
+     * @param message     The message to send
      */
     public static void sendPartyChat(Plugin plugin, String sender, String displayName, String party, String message) {
         getPartyChatManager(plugin, party).handleChat(sender, displayName, message);
@@ -32,9 +33,9 @@ public final class ChatAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param plugin The plugin sending the message
-     * @param sender The name of the sender to display in the chat
-     * @param party The name of the party to send to
+     * @param plugin  The plugin sending the message
+     * @param sender  The name of the sender to display in the chat
+     * @param party   The name of the party to send to
      * @param message The message to send
      */
     public static void sendPartyChat(Plugin plugin, String sender, String party, String message) {
@@ -46,10 +47,10 @@ public final class ChatAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param plugin The plugin sending the message
-     * @param sender The name of the sender
+     * @param plugin      The plugin sending the message
+     * @param sender      The name of the sender
      * @param displayName The display name of the sender
-     * @param message The message to send
+     * @param message     The message to send
      */
     public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
         ChatManagerFactory.getChatManager(plugin, ChatMode.ADMIN).handleChat(sender, displayName, message);
@@ -60,8 +61,8 @@ public final class ChatAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param plugin The plugin sending the message
-     * @param sender The name of the sender to display in the chat
+     * @param plugin  The plugin sending the message
+     * @param sender  The name of the sender to display in the chat
      * @param message The message to send
      */
     public static void sendAdminChat(Plugin plugin, String sender, String message) {

+ 163 - 228
src/main/java/com/gmail/nossr50/api/ExperienceAPI.java

@@ -19,7 +19,8 @@ import java.util.Set;
 import java.util.UUID;
 
 public final class ExperienceAPI {
-    private ExperienceAPI() {}
+    private ExperienceAPI() {
+    }
 
     /**
      * Returns whether given string is a valid type of skill suitable for the
@@ -60,10 +61,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
+     * @param player    The player to add XP to
      * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
+     * @param XP        The amount of XP to add
      * @throws InvalidSkillException if the given skill is not valid
      */
     @Deprecated
@@ -76,12 +76,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addRawXP(Player player, String skillType, float XP, String xpGainReason) {
@@ -93,13 +92,12 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     * @param isUnshared true if the XP cannot be shared with party members
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param isUnshared   true if the XP cannot be shared with party members
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) {
@@ -129,15 +127,13 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @deprecated We're using uuids to get an offline player
-     * replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
-     *
      * @param playerName The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param skillType  The skill to add XP to
+     * @param XP         The amount of XP to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
+     * @deprecated We're using uuids to get an offline player
+     * replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
      */
     @Deprecated
     public static void addRawXPOffline(String playerName, String skillType, float XP) {
@@ -149,11 +145,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The UUID of player to add XP to
+     * @param uuid      The UUID of player to add XP to
      * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param XP        The amount of XP to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static void addRawXPOffline(UUID uuid, String skillType, float XP) {
@@ -165,10 +160,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
+     * @param player    The player to add XP to
      * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
+     * @param XP        The amount of XP to add
      * @throws InvalidSkillException if the given skill is not valid
      */
     @Deprecated
@@ -181,12 +175,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
@@ -199,10 +192,9 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param skillType  The skill to add XP to
+     * @param XP         The amount of XP to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -215,10 +207,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
+     * @param player    The player to add XP to
      * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
+     * @param XP        The amount of XP to add
      * @throws InvalidSkillException if the given skill is not valid
      */
     @Deprecated
@@ -231,12 +222,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason) {
@@ -248,13 +238,12 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     * @param isUnshared true if the XP cannot be shared with party members
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param isUnshared   true if the XP cannot be shared with party members
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addModifiedXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
@@ -274,10 +263,9 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param skillType  The skill to add XP to
+     * @param XP         The amount of XP to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -293,10 +281,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
+     * @param player    The player to add XP to
      * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
-     *
+     * @param XP        The amount of XP to add
      * @throws InvalidSkillException if the given skill is not valid
      */
     @Deprecated
@@ -310,12 +297,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addXP(Player player, String skillType, int XP, String xpGainReason) {
@@ -328,13 +314,12 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add XP to
-     * @param skillType The skill to add XP to
-     * @param XP The amount of XP to add
+     * @param player       The player to add XP to
+     * @param skillType    The skill to add XP to
+     * @param XP           The amount of XP to add
      * @param xpGainReason The reason to gain XP
-     * @param isUnshared true if the XP cannot be shared with party members
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param isUnshared   true if the XP cannot be shared with party members
+     * @throws InvalidSkillException        if the given skill is not valid
      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid
      */
     public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
@@ -351,11 +336,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to get XP for
+     * @param player    The player to get XP for
      * @param skillType The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getXP(Player player, String skillType) {
@@ -368,11 +352,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to get XP for
-     * @param skillType The skill to get XP for
+     * @param skillType  The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -385,12 +368,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to get XP for
+     * @param uuid      The player to get XP for
      * @param skillType The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getOfflineXP(UUID uuid, String skillType) {
@@ -402,11 +384,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to get XP for
+     * @param player    The player to get XP for
      * @param skillType The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static float getXPRaw(Player player, String skillType) {
@@ -419,11 +400,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to get XP for
-     * @param skillType The skill to get XP for
+     * @param skillType  The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -436,12 +416,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to get XP for
+     * @param uuid      The player to get XP for
      * @param skillType The skill to get XP for
      * @return the amount of XP in a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static float getOfflineXPRaw(UUID uuid, String skillType) {
@@ -453,11 +432,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to get the XP amount for
+     * @param player    The player to get the XP amount for
      * @param skillType The skill to get the XP amount for
      * @return the total amount of XP needed to reach the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getXPToNextLevel(Player player, String skillType) {
@@ -470,11 +448,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to get XP for
-     * @param skillType The skill to get XP for
+     * @param skillType  The skill to get XP for
      * @return the total amount of XP needed to reach the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -487,12 +464,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to get XP for
+     * @param uuid      The player to get XP for
      * @param skillType The skill to get XP for
      * @return the total amount of XP needed to reach the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getOfflineXPToNextLevel(UUID uuid, String skillType) {
@@ -504,11 +480,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to get the XP amount for
+     * @param player    The player to get the XP amount for
      * @param skillType The skill to get the XP amount for
      * @return the amount of XP remaining until the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getXPRemaining(Player player, String skillType) {
@@ -525,11 +500,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to get XP for
-     * @param skillType The skill to get XP for
+     * @param skillType  The skill to get XP for
      * @return the amount of XP needed to reach the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -545,12 +519,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to get XP for
+     * @param uuid      The player to get XP for
      * @param skillType The skill to get XP for
      * @return the amount of XP needed to reach the next level
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static float getOfflineXPRemaining(UUID uuid, String skillType) {
@@ -565,10 +538,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add levels to
+     * @param player    The player to add levels to
      * @param skillType Type of skill to add levels to
-     * @param levels Number of levels to add
-     *
+     * @param levels    Number of levels to add
      * @throws InvalidSkillException if the given skill is not valid
      */
     public static void addLevel(Player player, String skillType, int levels) {
@@ -581,10 +553,9 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to add levels to
-     * @param skillType Type of skill to add levels to
-     * @param levels Number of levels to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param skillType  Type of skill to add levels to
+     * @param levels     Number of levels to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -612,11 +583,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to add levels to
+     * @param uuid      The player to add levels to
      * @param skillType Type of skill to add levels to
-     * @param levels Number of levels to add
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param levels    Number of levels to add
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static void addLevelOffline(UUID uuid, String skillType, int levels) {
@@ -643,10 +613,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to get the level for
+     * @param player    The player to get the level for
      * @param skillType The skill to get the level for
      * @return the level of a given skill
-     *
      * @throws InvalidSkillException if the given skill is not valid
      */
     public static int getLevel(Player player, String skillType) {
@@ -659,10 +628,9 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to get the level for
-     * @param skillType The skill to get the level for
+     * @param skillType  The skill to get the level for
      * @return the level of a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -675,11 +643,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to get the level for
+     * @param uuid      The player to get the level for
      * @param skillType The skill to get the level for
      * @return the level of a given skill
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static int getLevelOffline(UUID uuid, String skillType) {
@@ -705,7 +672,6 @@ public final class ExperienceAPI {
      *
      * @param playerName The player to get the power level for
      * @return the power level of the player
-     *
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -727,7 +693,6 @@ public final class ExperienceAPI {
      *
      * @param uuid The player to get the power level for
      * @return the power level of the player
-     *
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static int getPowerLevelOffline(UUID uuid) {
@@ -748,7 +713,6 @@ public final class ExperienceAPI {
      *
      * @param skillType The skill to get the level cap for
      * @return the level cap of a given skill
-     *
      * @throws InvalidSkillException if the given skill is not valid
      */
     public static int getLevelCap(String skillType) {
@@ -762,7 +726,6 @@ public final class ExperienceAPI {
      *
      * @param skillType The skill to get the level cap for
      * @return the level cap of a given skill
-     *
      * @throws InvalidSkillException if the given skill is not valid
      */
     public static int getLevelCap(PrimarySkillType skillType) {
@@ -771,11 +734,11 @@ public final class ExperienceAPI {
 
     /**
      * Checks whether or not a specific skill is level capped
+     *
      * @param skillType target skill
      * @return true if the skill has a level cap
      */
-    public static boolean isSkillLevelCapped(PrimarySkillType skillType)
-    {
+    public static boolean isSkillLevelCapped(PrimarySkillType skillType) {
         return mcMMO.getPlayerLevelingSettings().isLevelCapEnabled(skillType);
     }
 
@@ -796,13 +759,11 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The name of the player to check
-     * @param skillType The skill to check
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
-     * @throws UnsupportedOperationException if the given skill is a child skill
-     *
+     * @param skillType  The skill to check
      * @return the position on the leaderboard
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
+     * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
     public static int getPlayerRankSkill(String playerName, String skillType) {
@@ -814,14 +775,12 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The name of the player to check
+     * @param uuid      The name of the player to check
      * @param skillType The skill to check
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
-     * @throws UnsupportedOperationException if the given skill is a child skill
-     *
      * @return the position on the leaderboard
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
+     * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static int getPlayerRankSkill(UUID uuid, String skillType) {
         return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(getNonChildSkillType(skillType));
@@ -833,10 +792,8 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The name of the player to check
-     *
-     * @throws InvalidPlayerException if the given player does not exist in the database
-     *
      * @return the position on the power level leaderboard
+     * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
     public static int getPlayerRankOverall(String playerName) {
@@ -849,10 +806,8 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param uuid The name of the player to check
-     *
-     * @throws InvalidPlayerException if the given player does not exist in the database
-     *
      * @return the position on the power level leaderboard
+     * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static int getPlayerRankOverall(UUID uuid) {
         return mcMMO.getDatabaseManager().readRank(mcMMO.p.getServer().getOfflinePlayer(uuid).getName()).get(null);
@@ -863,10 +818,9 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to set the level of
-     * @param skillType The skill to set the level for
+     * @param player     The player to set the level of
+     * @param skillType  The skill to set the level for
      * @param skillLevel The value to set the level to
-     *
      * @throws InvalidSkillException if the given skill is not valid
      */
     public static void setLevel(Player player, String skillType, int skillLevel) {
@@ -879,10 +833,9 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to set the level of
-     * @param skillType The skill to set the level for
+     * @param skillType  The skill to set the level for
      * @param skillLevel The value to set the level to
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     @Deprecated
@@ -895,11 +848,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to set the level of
-     * @param skillType The skill to set the level for
+     * @param uuid       The player to set the level of
+     * @param skillType  The skill to set the level for
      * @param skillLevel The value to set the level to
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @throws InvalidSkillException  if the given skill is not valid
      * @throws InvalidPlayerException if the given player does not exist in the database
      */
     public static void setLevelOffline(UUID uuid, String skillType, int skillLevel) {
@@ -911,11 +863,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to set the XP of
+     * @param player    The player to set the XP of
      * @param skillType The skill to set the XP for
-     * @param newValue The value to set the XP to
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param newValue  The value to set the XP to
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static void setXP(Player player, String skillType, int newValue) {
@@ -928,11 +879,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to set the XP of
-     * @param skillType The skill to set the XP for
-     * @param newValue The value to set the XP to
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @param skillType  The skill to set the XP for
+     * @param newValue   The value to set the XP to
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -945,12 +895,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to set the XP of
+     * @param uuid      The player to set the XP of
      * @param skillType The skill to set the XP for
-     * @param newValue The value to set the XP to
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @param newValue  The value to set the XP to
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static void setXPOffline(UUID uuid, String skillType, int newValue) {
@@ -962,11 +911,10 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to change the XP of
+     * @param player    The player to change the XP of
      * @param skillType The skill to change the XP for
-     * @param xp The amount of XP to remove
-     *
-     * @throws InvalidSkillException if the given skill is not valid
+     * @param xp        The amount of XP to remove
+     * @throws InvalidSkillException         if the given skill is not valid
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static void removeXP(Player player, String skillType, int xp) {
@@ -979,11 +927,10 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param playerName The player to change the XP of
-     * @param skillType The skill to change the XP for
-     * @param xp The amount of XP to remove
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @param skillType  The skill to change the XP for
+     * @param xp         The amount of XP to remove
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     @Deprecated
@@ -996,12 +943,11 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param uuid The player to change the XP of
+     * @param uuid      The player to change the XP of
      * @param skillType The skill to change the XP for
-     * @param xp The amount of XP to remove
-     *
-     * @throws InvalidSkillException if the given skill is not valid
-     * @throws InvalidPlayerException if the given player does not exist in the database
+     * @param xp        The amount of XP to remove
+     * @throws InvalidSkillException         if the given skill is not valid
+     * @throws InvalidPlayerException        if the given player does not exist in the database
      * @throws UnsupportedOperationException if the given skill is a child skill
      */
     public static void removeXPOffline(UUID uuid, String skillType, int xp) {
@@ -1014,7 +960,6 @@ public final class ExperienceAPI {
      * This function is designed for API usage.
      *
      * @param level The level to get the amount of XP for
-     *
      * @throws InvalidFormulaTypeException if the given formulaType is not valid
      */
     public static int getXpNeededToLevel(int level) {
@@ -1026,9 +971,8 @@ public final class ExperienceAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param level The level to get the amount of XP for
+     * @param level       The level to get the amount of XP for
      * @param formulaType The formula type to get the amount of XP for
-     *
      * @throws InvalidFormulaTypeException if the given formulaType is not valid
      */
     public static int getXpNeededToLevel(int level, String formulaType) {
@@ -1037,17 +981,14 @@ public final class ExperienceAPI {
 
     /**
      * Will add the appropriate type of XP from the block to the player based on the material of the blocks given
+     *
      * @param blockStates the blocks to reward XP for
      * @param mcMMOPlayer the target player
      */
-    public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer)
-    {
-        for(BlockState bs : blockStates)
-        {
-            for(PrimarySkillType skillType : PrimarySkillType.values())
-            {
-                if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0)
-                {
+    public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer) {
+        for (BlockState bs : blockStates) {
+            for (PrimarySkillType skillType : PrimarySkillType.values()) {
+                if (ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) {
                     mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
                 }
             }
@@ -1056,16 +997,14 @@ public final class ExperienceAPI {
 
     /**
      * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType
+     *
      * @param blockStates the blocks to reward XP for
      * @param mcMMOPlayer the target player
-     * @param skillType target primary skill
+     * @param skillType   target primary skill
      */
-    public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType)
-    {
-        for(BlockState bs : blockStates)
-        {
-            if(ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0)
-            {
+    public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
+        for (BlockState bs : blockStates) {
+            if (ExperienceConfig.getInstance().getXp(skillType, bs.getType()) > 0) {
                 mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
             }
         }
@@ -1073,15 +1012,13 @@ public final class ExperienceAPI {
 
     /**
      * Will add the appropriate type of XP from the block to the player based on the material of the blocks given
-     * @param blockState The target blockstate
+     *
+     * @param blockState  The target blockstate
      * @param mcMMOPlayer The target player
      */
-    public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer)
-    {
-        for(PrimarySkillType skillType : PrimarySkillType.values())
-        {
-            if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0)
-            {
+    public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) {
+        for (PrimarySkillType skillType : PrimarySkillType.values()) {
+            if (ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) {
                 mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
             }
         }
@@ -1089,20 +1026,18 @@ public final class ExperienceAPI {
 
     /**
      * Will add the appropriate type of XP from the block to the player based on the material of the blocks given if it matches the given skillType
-     * @param blockState The target blockstate
+     *
+     * @param blockState  The target blockstate
      * @param mcMMOPlayer The target player
-     * @param skillType target primary skill
+     * @param skillType   target primary skill
      */
-    public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType)
-    {
-        if(ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0)
-        {
+    public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
+        if (ExperienceConfig.getInstance().getXp(skillType, blockState.getType()) > 0) {
             mcMMOPlayer.applyXpGain(skillType, ExperienceConfig.getInstance().getXp(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
         }
     }
 
 
-
     // Utility methods follow.
     private static void addOfflineXP(UUID playerUniqueId, PrimarySkillType skill, int XP) {
         PlayerProfile profile = getOfflineProfile(playerUniqueId);
@@ -1182,10 +1117,10 @@ public final class ExperienceAPI {
     }
 
     /**
-     * @deprecated Use UserManager::getPlayer(Player player) instead
      * @param player target player
      * @return McMMOPlayer for that player if the profile is loaded, otherwise null
      * @throws McMMOPlayerNotFoundException
+     * @deprecated Use UserManager::getPlayer(Player player) instead
      */
     @Deprecated
     private static McMMOPlayer getPlayer(Player player) throws McMMOPlayerNotFoundException {

+ 15 - 14
src/main/java/com/gmail/nossr50/api/PartyAPI.java

@@ -13,7 +13,8 @@ import org.bukkit.entity.Player;
 import java.util.*;
 
 public final class PartyAPI {
-    private PartyAPI() {}
+    private PartyAPI() {
+    }
 
     /**
      * Get the name of the party a player is in.
@@ -40,7 +41,7 @@ public final class PartyAPI {
      * @return true if the player is in a party, false otherwise
      */
     public static boolean inParty(Player player) {
-        if(UserManager.getPlayer(player) == null)
+        if (UserManager.getPlayer(player) == null)
             return false;
 
         return UserManager.getPlayer(player).inParty();
@@ -75,23 +76,22 @@ public final class PartyAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add to the party
+     * @param player    The player to add to the party
      * @param partyName The party to add the player to
      * @deprecated parties can have limits, use the other method
      */
     @Deprecated
     public static void addToParty(Player player, String partyName) {
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        if (UserManager.getPlayer(player) == null)
             return;
 
         Party party = PartyManager.getParty(partyName);
 
         if (party == null) {
             party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
-        } else if(mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped()) {
-            if(PartyManager.isPartyFull(player, party))
-            {
+        } else if (mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped()) {
+            if (PartyManager.isPartyFull(player, party)) {
                 NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
                 return;
             }
@@ -103,15 +103,16 @@ public final class PartyAPI {
     /**
      * The max party size of the server
      * Limits are only enforced if the enforcement setting is on
+     *
      * @return the max party size on this server
      */
-    public static int getMaxPartySize()
-    {
+    public static int getMaxPartySize() {
         return mcMMO.getConfigManager().getConfigParty().getPartySizeLimit();
     }
 
     /**
      * Checks if parties are currently size capped which is determined by the user config
+     *
      * @return true if parties are size capped
      */
     public static boolean isPartySizeCapped() {
@@ -123,14 +124,14 @@ public final class PartyAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param player The player to add to the party
-     * @param partyName The party to add the player to
+     * @param player      The player to add to the party
+     * @param partyName   The party to add the player to
      * @param bypassLimit if true bypasses party size limits
      */
     //TODO: bypasslimit not used?
     public static void addToParty(Player player, String partyName, boolean bypassLimit) {
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        if (UserManager.getPlayer(player) == null)
             return;
 
         Party party = PartyManager.getParty(partyName);
@@ -151,7 +152,7 @@ public final class PartyAPI {
      */
     public static void removeFromParty(Player player) {
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        if (UserManager.getPlayer(player) == null)
             return;
 
         PartyManager.removeFromParty(UserManager.getPlayer(player));
@@ -174,7 +175,7 @@ public final class PartyAPI {
      * </br>
      * This function is designed for API usage.
      *
-     * @param partyName The name of the party to set the leader of
+     * @param partyName  The name of the party to set the leader of
      * @param playerName The playerName to set as leader
      */
     @Deprecated

+ 2 - 1
src/main/java/com/gmail/nossr50/api/SkillAPI.java

@@ -7,7 +7,8 @@ import java.util.Arrays;
 import java.util.List;
 
 public final class SkillAPI {
-    private SkillAPI() {}
+    private SkillAPI() {
+    }
 
     /**
      * Returns a list of strings with mcMMO's skills

+ 5 - 9
src/main/java/com/gmail/nossr50/chat/ChatManager.java

@@ -41,26 +41,22 @@ public abstract class ChatManager {
          * Party Chat Spying
          * Party messages will be copied to people with the mcmmo.admin.chatspy permission node
          */
-        if(event instanceof McMMOPartyChatEvent)
-        {
+        if (event instanceof McMMOPartyChatEvent) {
             //We need to grab the party chat name
             McMMOPartyChatEvent partyChatEvent = (McMMOPartyChatEvent) event;
 
             //Find the people with permissions
-            for(McMMOPlayer mcMMOPlayer : UserManager.getPlayers())
-            {
+            for (McMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
                 Player player = mcMMOPlayer.getPlayer();
 
                 //Check for toggled players
-                if(mcMMOPlayer.isPartyChatSpying())
-                {
+                if (mcMMOPlayer.isPartyChatSpying()) {
                     Party adminParty = mcMMOPlayer.getParty();
 
                     //Only message admins not part of this party
-                    if(adminParty != null)
-                    {
+                    if (adminParty != null) {
                         //TODO: Incorporate JSON
-                        if(!adminParty.getName().equalsIgnoreCase(partyChatEvent.getParty()))
+                        if (!adminParty.getName().equalsIgnoreCase(partyChatEvent.getParty()))
                             player.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Chat", partyChatEvent.getParty(), message));
                     } else {
                         player.sendMessage(LocaleLoader.getString("Commands.AdminChatSpy.Chat", partyChatEvent.getParty(), message));

+ 16 - 32
src/main/java/com/gmail/nossr50/commands/McImportCommand.java

@@ -70,17 +70,14 @@ public class McImportCommand implements CommandExecutor {
 
                 materialNames.get(type).add(materialName);
             }
-        }
-        catch (FileNotFoundException e) {
+        } catch (FileNotFoundException e) {
             mcMMO.p.getLogger().warning("Could not find " + importFile.getAbsolutePath() + " ! (No such file or directory)");
             mcMMO.p.getLogger().warning("Copy and paste latest.log to " + importFile.getParentFile().getAbsolutePath() + " and rename it to import.log");
             return;
-        }
-        catch (Exception e) {
+        } catch (Exception e) {
             e.printStackTrace();
             return;
-        }
-        finally {
+        } finally {
             tryClose(in);
         }
 
@@ -114,8 +111,7 @@ public class McImportCommand implements CommandExecutor {
         }
         try {
             c.close();
-        }
-        catch (IOException e) {
+        } catch (IOException e) {
             e.printStackTrace();
         }
     }
@@ -200,14 +196,11 @@ public class McImportCommand implements CommandExecutor {
             String skillName = "UNIDENTIFIED";
             if (materialName.contains("ORE")) {
                 skillName = "Mining";
-            }
-            else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
+            } else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
                 skillName = "Woodcutting";
-            }
-            else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
+            } else if (materialName.contains("GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
                 skillName = "Herbalism";
-            }
-            else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
+            } else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
                 skillName = "Excavation";
             }
 
@@ -222,8 +215,7 @@ public class McImportCommand implements CommandExecutor {
 
             if (skillName.equals("Mining")) {
                 skillContents.add("    " + "    " + "Smelting_XP_Gain: 9");
-            }
-            else if (skillName.equals("Woodcutting")) {
+            } else if (skillName.equals("Woodcutting")) {
                 skillContents.add("    " + "    " + "Is_Log: " + materialName.contains("LOG"));
             }
         }
@@ -239,20 +231,15 @@ public class McImportCommand implements CommandExecutor {
             String toolType = "UNIDENTIFIED";
             if (materialName.contains("PICKAXE")) {
                 toolType = "Pickaxes";
-            }
-            else if (materialName.contains("AXE")) {
+            } else if (materialName.contains("AXE")) {
                 toolType = "Axes";
-            }
-            else if (materialName.contains("BOW")) {
+            } else if (materialName.contains("BOW")) {
                 toolType = "Bows";
-            }
-            else if (materialName.contains("HOE")) {
+            } else if (materialName.contains("HOE")) {
                 toolType = "Hoes";
-            }
-            else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
+            } else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
                 toolType = "Shovels";
-            }
-            else if (materialName.contains("SWORD")) {
+            } else if (materialName.contains("SWORD")) {
                 toolType = "Swords";
             }
 
@@ -279,14 +266,11 @@ public class McImportCommand implements CommandExecutor {
             String toolType = "UNIDENTIFIED";
             if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
                 toolType = "Boots";
-            }
-            else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
+            } else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
                 toolType = "Chestplates";
-            }
-            else if (materialName.contains("HELM") || materialName.contains("HAT")) {
+            } else if (materialName.contains("HELM") || materialName.contains("HAT")) {
                 toolType = "Helmets";
-            }
-            else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
+            } else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
                 toolType = "Leggings";
             }
 

+ 4 - 5
src/main/java/com/gmail/nossr50/commands/McconvertCommand.java

@@ -22,9 +22,6 @@ public class McconvertCommand implements TabExecutor {
     private static final List<String> DATABASE_TYPES;
     private static final List<String> SUBCOMMANDS = ImmutableList.of("database", "experience");
 
-    private CommandExecutor databaseConvertCommand = new ConvertDatabaseCommand();
-    private CommandExecutor experienceConvertCommand = new ConvertExperienceCommand();
-
     static {
         ArrayList<String> formulaTypes = new ArrayList<>();
         ArrayList<String> databaseTypes = new ArrayList<>();
@@ -52,14 +49,16 @@ public class McconvertCommand implements TabExecutor {
 
     }
 
+    private CommandExecutor databaseConvertCommand = new ConvertDatabaseCommand();
+    private CommandExecutor experienceConvertCommand = new ConvertExperienceCommand();
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 2:
                 if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
                     return databaseConvertCommand.onCommand(sender, command, label, args);
-                }
-                else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
+                } else if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[1].equalsIgnoreCase("exp")) {
                     return experienceConvertCommand.onCommand(sender, command, label, args);
                 }
 

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/McmmoCommand.java

@@ -68,7 +68,7 @@ public class McmmoCommand implements CommandExecutor {
 
     private void displayOtherCommands(CommandSender sender) {
         //Don't show them this category if they have none of the permissions
-        if(!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
+        if (!Permissions.skillreset(sender) && !Permissions.mmoedit(sender) && !Permissions.adminChat(sender) && !Permissions.mcgod(sender))
             return;
 
         sender.sendMessage(LocaleLoader.getString("Commands.Other"));

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java

@@ -19,7 +19,7 @@ public class McnotifyCommand implements TabExecutor {
                 McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
 
                 //Not Loaded yet
-                if(mcMMOPlayer == null)
+                if (mcMMOPlayer == null)
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
 
                 sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));

+ 3 - 0
src/main/java/com/gmail/nossr50/commands/ToggleCommand.java

@@ -71,7 +71,10 @@ public abstract class ToggleCommand implements TabExecutor {
     }
 
     protected abstract boolean hasOtherPermission(CommandSender sender);
+
     protected abstract boolean hasSelfPermission(CommandSender sender);
+
     protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
+
     protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
 }

+ 10 - 16
src/main/java/com/gmail/nossr50/commands/XprateCommand.java

@@ -25,7 +25,7 @@ public class XprateCommand implements TabExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 1:
-                if (!args[0].equalsIgnoreCase("reset") &&  !args[0].equalsIgnoreCase("clear")) {
+                if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
                     return false;
                 }
 
@@ -36,12 +36,11 @@ public class XprateCommand implements TabExecutor {
 
                 if (mcMMO.p.isXPEventEnabled()) {
 
-                    if(AdvancedConfig.getInstance().useTitlesForXPEvent())
-                    {
+                    if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
                         NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                                 LocaleLoader.getString("Commands.Event.Stop"),
                                 LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
-                                10, 10*20, 20);
+                                10, 10 * 20, 20);
                     }
 
                     mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
@@ -65,36 +64,31 @@ public class XprateCommand implements TabExecutor {
 
                 if (CommandUtils.shouldDisableToggle(args[1])) {
                     mcMMO.p.setXPEventEnabled(false);
-                }
-                else if (CommandUtils.shouldEnableToggle(args[1])) {
+                } else if (CommandUtils.shouldEnableToggle(args[1])) {
                     mcMMO.p.setXPEventEnabled(true);
-                }
-                else {
+                } else {
                     return false;
                 }
 
                 int newXpRate = Integer.parseInt(args[0]);
 
-                if(newXpRate < 0)
-                {
-                    sender.sendMessage(ChatColor.RED+LocaleLoader.getString("Commands.NegativeNumberWarn"));
+                if (newXpRate < 0) {
+                    sender.sendMessage(ChatColor.RED + LocaleLoader.getString("Commands.NegativeNumberWarn"));
                     return true;
                 }
 
                 ExperienceConfig.getInstance().setGlobalXPMultiplier(newXpRate);
 
                 if (mcMMO.p.isXPEventEnabled()) {
-                    if(AdvancedConfig.getInstance().useTitlesForXPEvent())
-                    {
+                    if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
                         NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                                 LocaleLoader.getString("Commands.Event.Start"),
                                 LocaleLoader.getString("Commands.Event.XP", newXpRate),
-                                10, 10*20, 20);
+                                10, 10 * 20, 20);
                     }
                     mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
                     mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.XP", newXpRate));
-                }
-                else {
+                } else {
                     sender.sendMessage(LocaleLoader.getString("Commands.xprate.modified", newXpRate));
                 }
 

+ 2 - 3
src/main/java/com/gmail/nossr50/commands/chat/ChatCommand.java

@@ -21,8 +21,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 public abstract class ChatCommand implements TabExecutor {
-    private ChatMode chatMode;
     protected ChatManager chatManager;
+    private ChatMode chatMode;
 
     public ChatCommand(ChatMode chatMode) {
         this.chatMode = chatMode;
@@ -47,8 +47,7 @@ public abstract class ChatCommand implements TabExecutor {
 
                 if (mcMMOPlayer.isChatEnabled(chatMode)) {
                     disableChatMode(mcMMOPlayer, sender);
-                }
-                else {
+                } else {
                     enableChatMode(mcMMOPlayer, sender);
                 }
 

+ 2 - 3
src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java

@@ -22,7 +22,7 @@ public class PartyChatCommand extends ChatCommand {
 
         if (sender instanceof Player) {
             //Check if player profile is loaded
-            if(UserManager.getPlayer((Player) sender) == null)
+            if (UserManager.getPlayer((Player) sender) == null)
                 return;
 
             party = UserManager.getPlayer((Player) sender).getParty();
@@ -38,8 +38,7 @@ public class PartyChatCommand extends ChatCommand {
             }
 
             message = buildChatMessage(args, 0);
-        }
-        else {
+        } else {
             if (args.length < 2) {
                 sender.sendMessage(LocaleLoader.getString("Party.Specify"));
                 return;

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java

@@ -41,8 +41,7 @@ public class ConvertDatabaseCommand implements CommandExecutor {
                         }
 
                         oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
-                    }
-                    catch (Throwable e) {
+                    } catch (Throwable e) {
                         e.printStackTrace();
                         sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
                         return true;

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java

@@ -26,8 +26,7 @@ public class McremoveCommand implements TabExecutor {
 
                 if (mcMMO.getDatabaseManager().removeUser(playerName)) {
                     sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", playerName));
-                }
-                else {
+                } else {
                     sender.sendMessage(playerName + " could not be removed from the database."); // Pretty sure this should NEVER happen.
                 }
 

+ 2 - 3
src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java

@@ -25,12 +25,11 @@ public class AddxpCommand extends ExperienceCommand {
     protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
         if (player != null) {
             //Check if player profile is loaded
-            if(UserManager.getPlayer(player) == null)
+            if (UserManager.getPlayer(player) == null)
                 return;
 
             UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND, XPGainSource.COMMAND);
-        }
-        else {
+        } else {
             profile.addXp(skill, value);
             profile.scheduleAsyncSave();
         }

+ 17 - 19
src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java

@@ -20,6 +20,14 @@ import java.util.List;
 import java.util.UUID;
 
 public abstract class ExperienceCommand implements TabExecutor {
+    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
+        if (skill == null) {
+            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
+        } else {
+            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
+        }
+    }
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         PrimarySkillType skill;
@@ -45,15 +53,13 @@ public abstract class ExperienceCommand implements TabExecutor {
                     skill = null;
                 }
 
-                if (skill != null && skill.isChildSkill())
-                {
+                if (skill != null && skill.isChildSkill()) {
                     sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
                     return true;
                 }
 
                 //Profile not loaded
-                if(UserManager.getPlayer(sender.getName()) == null)
-                {
+                if (UserManager.getPlayer(sender.getName()) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -78,8 +84,7 @@ public abstract class ExperienceCommand implements TabExecutor {
                     skill = null;
                 }
 
-                if (skill != null && skill.isChildSkill())
-                {
+                if (skill != null && skill.isChildSkill()) {
                     sender.sendMessage(LocaleLoader.getString("Commands.Skill.ChildSkill"));
                     return true;
                 }
@@ -103,8 +108,7 @@ public abstract class ExperienceCommand implements TabExecutor {
                     }
 
                     editValues(null, profile, skill, value);
-                }
-                else {
+                } else {
                     editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill, value);
                 }
 
@@ -130,24 +134,19 @@ public abstract class ExperienceCommand implements TabExecutor {
     }
 
     protected abstract boolean permissionsCheckSelf(CommandSender sender);
+
     protected abstract boolean permissionsCheckOthers(CommandSender sender);
+
     protected abstract void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value);
+
     protected abstract void handlePlayerMessageAll(Player player, int value);
+
     protected abstract void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill);
 
     private boolean validateArguments(CommandSender sender, String skillName, String value) {
         return !(CommandUtils.isInvalidInteger(sender, value) || (!skillName.equalsIgnoreCase("all") && CommandUtils.isInvalidSkill(sender, skillName)));
     }
 
-    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
-        if (skill == null) {
-            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
-        }
-        else {
-            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
-        }
-    }
-
     protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
         if (skill == null) {
             for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
@@ -157,8 +156,7 @@ public abstract class ExperienceCommand implements TabExecutor {
             if (player != null) {
                 handlePlayerMessageAll(player, value);
             }
-        }
-        else {
+        } else {
             handleCommand(player, profile, skill, value);
 
             if (player != null) {

+ 12 - 17
src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java

@@ -27,6 +27,14 @@ import java.util.UUID;
  * value/quantity argument is removed.
  */
 public class SkillresetCommand implements TabExecutor {
+    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
+        if (skill == null) {
+            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
+        } else {
+            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
+        }
+    }
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         PrimarySkillType skill;
@@ -47,8 +55,7 @@ public class SkillresetCommand implements TabExecutor {
 
                 if (args[0].equalsIgnoreCase("all")) {
                     skill = null;
-                }
-                else {
+                } else {
                     skill = PrimarySkillType.getSkill(args[1]);
                 }
 
@@ -67,8 +74,7 @@ public class SkillresetCommand implements TabExecutor {
 
                 if (args[1].equalsIgnoreCase("all")) {
                     skill = null;
-                }
-                else {
+                } else {
                     skill = PrimarySkillType.getSkill(args[1]);
                 }
 
@@ -89,8 +95,7 @@ public class SkillresetCommand implements TabExecutor {
                     }
 
                     editValues(null, profile, skill);
-                }
-                else {
+                } else {
                     editValues(mcMMOPlayer.getPlayer(), mcMMOPlayer.getProfile(), skill);
                 }
 
@@ -149,15 +154,6 @@ public class SkillresetCommand implements TabExecutor {
         return skillName.equalsIgnoreCase("all") || !CommandUtils.isInvalidSkill(sender, skillName);
     }
 
-    protected static void handleSenderMessage(CommandSender sender, String playerName, PrimarySkillType skill) {
-        if (skill == null) {
-            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.2", playerName));
-        }
-        else {
-            sender.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.2", skill.getName(), playerName));
-        }
-    }
-
     protected void editValues(Player player, PlayerProfile profile, PrimarySkillType skill) {
         if (skill == null) {
             for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
@@ -167,8 +163,7 @@ public class SkillresetCommand implements TabExecutor {
             if (player != null) {
                 handlePlayerMessageAll(player);
             }
-        }
-        else {
+        } else {
             handleCommand(player, profile, skill);
 
             if (player != null) {

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyAcceptCommand.java

@@ -17,8 +17,7 @@ public class PartyAcceptCommand implements CommandExecutor {
                 Player player = (Player) sender;
 
                 //Check if player profile is loaded
-                if(UserManager.getPlayer(player) == null)
-                {
+                if (UserManager.getPlayer(player) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyChangeOwnerCommand.java

@@ -18,8 +18,7 @@ public class PartyChangeOwnerCommand implements CommandExecutor {
         switch (args.length) {
             case 2:
                 //Check if player profile is loaded
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyChangePasswordCommand.java

@@ -11,8 +11,7 @@ import org.bukkit.entity.Player;
 public class PartyChangePasswordCommand implements CommandExecutor {
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }

+ 20 - 22
src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java

@@ -39,29 +39,29 @@ public class PartyCommand implements TabExecutor {
         PARTY_SUBCOMMANDS = ImmutableList.copyOf(subcommands);
     }
 
-    private CommandExecutor partyJoinCommand           = new PartyJoinCommand();
-    private CommandExecutor partyAcceptCommand         = new PartyAcceptCommand();
-    private CommandExecutor partyCreateCommand         = new PartyCreateCommand();
-    private CommandExecutor partyQuitCommand           = new PartyQuitCommand();
-    private CommandExecutor partyXpShareCommand        = new PartyXpShareCommand();
-    private CommandExecutor partyItemShareCommand      = new PartyItemShareCommand();
-    private CommandExecutor partyInviteCommand         = new PartyInviteCommand();
-    private CommandExecutor partyKickCommand           = new PartyKickCommand();
-    private CommandExecutor partyDisbandCommand        = new PartyDisbandCommand();
-    private CommandExecutor partyChangeOwnerCommand    = new PartyChangeOwnerCommand();
-    private CommandExecutor partyLockCommand           = new PartyLockCommand();
+    private CommandExecutor partyJoinCommand = new PartyJoinCommand();
+    private CommandExecutor partyAcceptCommand = new PartyAcceptCommand();
+    private CommandExecutor partyCreateCommand = new PartyCreateCommand();
+    private CommandExecutor partyQuitCommand = new PartyQuitCommand();
+    private CommandExecutor partyXpShareCommand = new PartyXpShareCommand();
+    private CommandExecutor partyItemShareCommand = new PartyItemShareCommand();
+    private CommandExecutor partyInviteCommand = new PartyInviteCommand();
+    private CommandExecutor partyKickCommand = new PartyKickCommand();
+    private CommandExecutor partyDisbandCommand = new PartyDisbandCommand();
+    private CommandExecutor partyChangeOwnerCommand = new PartyChangeOwnerCommand();
+    private CommandExecutor partyLockCommand = new PartyLockCommand();
     private CommandExecutor partyChangePasswordCommand = new PartyChangePasswordCommand();
-    private CommandExecutor partyRenameCommand         = new PartyRenameCommand();
-    private CommandExecutor partyInfoCommand           = new PartyInfoCommand();
-    private CommandExecutor partyHelpCommand           = new PartyHelpCommand();
-    private CommandExecutor partyTeleportCommand       = new PtpCommand();
-    private CommandExecutor partyChatCommand           = new PartyChatCommand();
-    private CommandExecutor partyAllianceCommand       = new PartyAllianceCommand();
+    private CommandExecutor partyRenameCommand = new PartyRenameCommand();
+    private CommandExecutor partyInfoCommand = new PartyInfoCommand();
+    private CommandExecutor partyHelpCommand = new PartyHelpCommand();
+    private CommandExecutor partyTeleportCommand = new PtpCommand();
+    private CommandExecutor partyChatCommand = new PartyChatCommand();
+    private CommandExecutor partyAllianceCommand = new PartyAllianceCommand();
 
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         //If the party system is disabled, don't fire this command
-        if(!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
+        if (!mcMMO.getConfigManager().getConfigParty().isPartySystemEnabled())
             return true;
 
         if (CommandUtils.noConsoleUsage(sender)) {
@@ -79,8 +79,7 @@ public class PartyCommand implements TabExecutor {
             return true;
         }
 
-        if(UserManager.getPlayer(player) == null)
-        {
+        if (UserManager.getPlayer(player) == null) {
             player.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -210,8 +209,7 @@ public class PartyCommand implements TabExecutor {
                             Player player = (Player) sender;
 
                             //Not Loaded
-                            if(UserManager.getPlayer(player) == null)
-                            {
+                            if (UserManager.getPlayer(player) == null) {
                                 sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                                 return ImmutableList.of();
                             }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyCreateCommand.java

@@ -18,8 +18,7 @@ public class PartyCreateCommand implements CommandExecutor {
                 Player player = (Player) sender;
                 McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
 
-                if(UserManager.getPlayer(player) == null)
-                {
+                if (UserManager.getPlayer(player) == null) {
                     player.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyDisbandCommand.java

@@ -15,8 +15,7 @@ public class PartyDisbandCommand implements CommandExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 1:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 3 - 5
src/main/java/com/gmail/nossr50/commands/party/PartyInfoCommand.java

@@ -22,8 +22,7 @@ public class PartyInfoCommand implements CommandExecutor {
         switch (args.length) {
             case 0:
             case 1:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -69,8 +68,7 @@ public class PartyInfoCommand implements CommandExecutor {
 
             if (isUnlockedFeature(party, partyFeature)) {
                 unlockedPartyFeatures.add(partyFeature.getLocaleString());
-            }
-            else {
+            } else {
                 lockedPartyFeatures.add(partyFeature.getFeatureLockedLocaleString());
             }
         }
@@ -127,7 +125,7 @@ public class PartyInfoCommand implements CommandExecutor {
         int membersOnline = party.getVisibleMembers(player).size();
 
         player.sendMessage(LocaleLoader.getString("Commands.Party.Members.Header"));
-        player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", nearMembers.size()+1, membersOnline));
+        player.sendMessage(LocaleLoader.getString("Commands.Party.MembersNear", nearMembers.size() + 1, membersOnline));
         player.sendMessage(party.createMembersList(player));
     }
 }

+ 4 - 6
src/main/java/com/gmail/nossr50/commands/party/PartyInviteCommand.java

@@ -26,8 +26,7 @@ public class PartyInviteCommand implements CommandExecutor {
 
                 Player target = mcMMOTarget.getPlayer();
 
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -53,12 +52,11 @@ public class PartyInviteCommand implements CommandExecutor {
 
                 Party playerParty = mcMMOPlayer.getParty();
 
-                if(mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
-                    if(PartyManager.isPartyFull(target, playerParty))
-                    {
+                if (mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
+                    if (PartyManager.isPartyFull(target, playerParty)) {
                         player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull.Invite",
                                 target.getName(), playerParty.toString(),
-                                    mcMMO.getConfigManager().getConfigParty().getPartySizeLimit()));
+                                mcMMO.getConfigManager().getConfigParty().getPartySizeLimit()));
                         return true;
                     }
 

+ 4 - 8
src/main/java/com/gmail/nossr50/commands/party/PartyItemShareCommand.java

@@ -17,8 +17,7 @@ import org.bukkit.entity.Player;
 public class PartyItemShareCommand implements CommandExecutor {
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -47,19 +46,16 @@ public class PartyItemShareCommand implements CommandExecutor {
 
                 if (CommandUtils.shouldEnableToggle(args[2])) {
                     toggle = true;
-                }
-                else if (CommandUtils.shouldDisableToggle(args[2])) {
+                } else if (CommandUtils.shouldDisableToggle(args[2])) {
                     toggle = false;
-                }
-                else {
+                } else {
                     sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
                     return true;
                 }
 
                 try {
                     handleToggleItemShareCategory(party, ItemShareType.valueOf(args[1].toUpperCase()), toggle);
-                }
-                catch (IllegalArgumentException ex) {
+                } catch (IllegalArgumentException ex) {
                     sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "itemshare", "<loot | mining | herbalism | woodcutting | misc> <true | false>"));
                 }
 

+ 3 - 5
src/main/java/com/gmail/nossr50/commands/party/PartyJoinCommand.java

@@ -34,8 +34,7 @@ public class PartyJoinCommand implements CommandExecutor {
 
                 Player player = (Player) sender;
 
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -62,9 +61,8 @@ public class PartyJoinCommand implements CommandExecutor {
                     return true;
                 }
 
-                if(mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
-                    if(PartyManager.isPartyFull(player, targetParty))
-                    {
+                if (mcMMO.getConfigManager().getConfigParty().getPartyGeneral().isPartySizeCapped())
+                    if (PartyManager.isPartyFull(player, targetParty)) {
                         player.sendMessage(LocaleLoader.getString("Commands.Party.PartyFull", targetParty.toString()));
                         return true;
                     }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyKickCommand.java

@@ -18,8 +18,7 @@ public class PartyKickCommand implements CommandExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 2:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 4 - 8
src/main/java/com/gmail/nossr50/commands/party/PartyLockCommand.java

@@ -17,8 +17,7 @@ public class PartyLockCommand implements CommandExecutor {
             case 1:
                 if (args[0].equalsIgnoreCase("lock")) {
                     togglePartyLock(sender, true);
-                }
-                else if (args[0].equalsIgnoreCase("unlock")) {
+                } else if (args[0].equalsIgnoreCase("unlock")) {
                     togglePartyLock(sender, false);
                 }
 
@@ -32,11 +31,9 @@ public class PartyLockCommand implements CommandExecutor {
 
                 if (CommandUtils.shouldEnableToggle(args[1])) {
                     togglePartyLock(sender, true);
-                }
-                else if (CommandUtils.shouldDisableToggle(args[1])) {
+                } else if (CommandUtils.shouldDisableToggle(args[1])) {
                     togglePartyLock(sender, false);
-                }
-                else {
+                } else {
                     sendUsageStrings(sender);
                 }
 
@@ -54,8 +51,7 @@ public class PartyLockCommand implements CommandExecutor {
     }
 
     private void togglePartyLock(CommandSender sender, boolean lock) {
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return;
         }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyQuitCommand.java

@@ -18,8 +18,7 @@ public class PartyQuitCommand implements CommandExecutor {
             case 1:
                 Player player = (Player) sender;
 
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/PartyRenameCommand.java

@@ -16,8 +16,7 @@ public class PartyRenameCommand implements CommandExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 2:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 5 - 10
src/main/java/com/gmail/nossr50/commands/party/PartySubcommandType.java

@@ -30,20 +30,15 @@ public enum PartySubcommandType {
 
         if (commandName.equalsIgnoreCase("?")) {
             return HELP;
-        }
-        else if (commandName.equalsIgnoreCase("q") || commandName.equalsIgnoreCase("leave")) {
+        } else if (commandName.equalsIgnoreCase("q") || commandName.equalsIgnoreCase("leave")) {
             return QUIT;
-        }
-        else if (commandName.equalsIgnoreCase("leader")) {
+        } else if (commandName.equalsIgnoreCase("leader")) {
             return OWNER;
-        }
-        else if (commandName.equalsIgnoreCase("xpshare") || commandName.equalsIgnoreCase("shareexp") || commandName.equalsIgnoreCase("sharexp")) {
+        } else if (commandName.equalsIgnoreCase("xpshare") || commandName.equalsIgnoreCase("shareexp") || commandName.equalsIgnoreCase("sharexp")) {
             return XPSHARE;
-        }
-        else if (commandName.equalsIgnoreCase("shareitem") || commandName.equalsIgnoreCase("shareitems")) {
+        } else if (commandName.equalsIgnoreCase("shareitem") || commandName.equalsIgnoreCase("shareitems")) {
             return ITEMSHARE;
-        }
-        else if (commandName.equalsIgnoreCase("ally")) {
+        } else if (commandName.equalsIgnoreCase("ally")) {
             return ALLIANCE;
         }
 

+ 3 - 6
src/main/java/com/gmail/nossr50/commands/party/PartyXpShareCommand.java

@@ -16,8 +16,7 @@ import org.bukkit.entity.Player;
 public class PartyXpShareCommand implements CommandExecutor {
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -33,11 +32,9 @@ public class PartyXpShareCommand implements CommandExecutor {
             case 2:
                 if (args[1].equalsIgnoreCase("none") || CommandUtils.shouldDisableToggle(args[1])) {
                     handleChangingShareMode(party, ShareMode.NONE);
-                }
-                else if (args[1].equalsIgnoreCase("equal") || args[1].equalsIgnoreCase("even") || CommandUtils.shouldEnableToggle(args[1])) {
+                } else if (args[1].equalsIgnoreCase("equal") || args[1].equalsIgnoreCase("even") || CommandUtils.shouldEnableToggle(args[1])) {
                     handleChangingShareMode(party, ShareMode.EQUAL);
-                }
-                else {
+                } else {
                     sender.sendMessage(LocaleLoader.getString("Commands.Usage.2", "party", "xpshare", "<NONE | EQUAL>"));
                 }
 

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceAcceptCommand.java

@@ -14,8 +14,7 @@ public class PartyAllianceAcceptCommand implements CommandExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 2:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 2 - 5
src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceCommand.java

@@ -20,12 +20,10 @@ import java.util.ArrayList;
 import java.util.List;
 
 public class PartyAllianceCommand implements TabExecutor {
+    public static final List<String> ALLIANCE_SUBCOMMANDS = ImmutableList.of("invite", "accept", "disband");
     private Player player;
     private Party playerParty;
     private Party targetParty;
-
-    public static final List<String> ALLIANCE_SUBCOMMANDS = ImmutableList.of("invite", "accept", "disband");
-
     private CommandExecutor partyAllianceInviteCommand = new PartyAllianceInviteCommand();
     private CommandExecutor partyAllianceAcceptCommand = new PartyAllianceAcceptCommand();
     private CommandExecutor partyAllianceDisbandCommand = new PartyAllianceDisbandCommand();
@@ -36,8 +34,7 @@ public class PartyAllianceCommand implements TabExecutor {
             return true;
         }
 
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceDisbandCommand.java

@@ -15,8 +15,7 @@ public class PartyAllianceDisbandCommand implements CommandExecutor {
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         switch (args.length) {
             case 2:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/alliance/PartyAllianceInviteCommand.java

@@ -25,8 +25,7 @@ public class PartyAllianceInviteCommand implements CommandExecutor {
 
                 Player target = mcMMOTarget.getPlayer();
 
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptAnyCommand.java

@@ -20,8 +20,7 @@ public class PtpAcceptAnyCommand implements CommandExecutor {
 
         if (ptpRecord.isConfirmRequired()) {
             sender.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Disabled"));
-        }
-        else {
+        } else {
             sender.sendMessage(LocaleLoader.getString("Commands.ptp.AcceptAny.Enabled"));
         }
 

+ 2 - 4
src/main/java/com/gmail/nossr50/commands/party/teleport/PtpAcceptCommand.java

@@ -20,8 +20,7 @@ public class PtpAcceptCommand implements CommandExecutor {
             return true;
         }
 
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -55,8 +54,7 @@ public class PtpAcceptCommand implements CommandExecutor {
                 if (!Permissions.partyTeleportWorld(target, targetWorld)) {
                     target.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", targetWorld.getName()));
                     return true;
-                }
-                else if (targetWorld != playerWorld && !Permissions.partyTeleportWorld(target, playerWorld)) {
+                } else if (targetWorld != playerWorld && !Permissions.partyTeleportWorld(target, playerWorld)) {
                     target.sendMessage(LocaleLoader.getString("Commands.ptp.NoWorldPermissions", playerWorld.getName()));
                     return true;
                 }

+ 63 - 69
src/main/java/com/gmail/nossr50/commands/party/teleport/PtpCommand.java

@@ -35,6 +35,64 @@ public class PtpCommand implements TabExecutor {
     private CommandExecutor ptpAcceptAnyCommand = new PtpAcceptAnyCommand();
     private CommandExecutor ptpAcceptCommand = new PtpAcceptCommand();
 
+    protected static boolean canTeleport(CommandSender sender, Player player, String targetName) {
+        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName);
+
+        if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
+            return false;
+        }
+
+        Player target = mcMMOTarget.getPlayer();
+
+        if (player.equals(target)) {
+            player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
+            return false;
+        }
+
+        if (!PartyManager.inSameParty(player, target)) {
+            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
+            return false;
+        }
+
+        if (!mcMMOTarget.getPartyTeleportRecord().isEnabled()) {
+            player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", targetName));
+            return false;
+        }
+
+        if (!target.isValid()) {
+            player.sendMessage(LocaleLoader.getString("Party.Teleport.Dead"));
+            return false;
+        }
+
+        return true;
+    }
+
+    protected static void handleTeleportWarmup(Player teleportingPlayer, Player targetPlayer) {
+        if (UserManager.getPlayer(targetPlayer) == null) {
+            targetPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
+            return;
+        }
+
+        if (UserManager.getPlayer(teleportingPlayer) == null) {
+            teleportingPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
+            return;
+        }
+
+        McMMOPlayer mcMMOPlayer = UserManager.getPlayer(teleportingPlayer);
+        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetPlayer);
+
+        long warmup = mcMMO.getConfigManager().getConfigParty().getPTP().getPtpWarmup();
+
+        mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer);
+
+        if (warmup > 0) {
+            teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
+            new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup);
+        } else {
+            EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
+        }
+    }
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         if (CommandUtils.noConsoleUsage(sender)) {
@@ -44,22 +102,20 @@ public class PtpCommand implements TabExecutor {
         Player player = (Player) sender;
 
         /* WORLD GUARD MAIN FLAG CHECK */
-        if(WorldGuardUtils.isWorldGuardLoaded())
-        {
-            if(!WorldGuardManager.getInstance().hasMainFlag(player))
+        if (WorldGuardUtils.isWorldGuardLoaded()) {
+            if (!WorldGuardManager.getInstance().hasMainFlag(player))
                 return true;
         }
 
         /* WORLD BLACKLIST CHECK */
-        if(WorldBlacklist.isWorldBlacklisted(player.getWorld()))
+        if (WorldBlacklist.isWorldBlacklisted(player.getWorld()))
             return true;
 
         if (!UserManager.hasPlayerDataKey(player)) {
             return true;
         }
 
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -136,8 +192,7 @@ public class PtpCommand implements TabExecutor {
                 List<String> matches = StringUtil.copyPartialMatches(args[0], TELEPORT_SUBCOMMANDS, new ArrayList<>(TELEPORT_SUBCOMMANDS.size()));
 
                 if (matches.size() == 0) {
-                    if(UserManager.getPlayer((Player) sender) == null)
-                    {
+                    if (UserManager.getPlayer((Player) sender) == null) {
                         sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                         return ImmutableList.of();
                     }
@@ -182,65 +237,4 @@ public class PtpCommand implements TabExecutor {
         target.sendMessage(LocaleLoader.getString("Commands.ptp.Request1", player.getName()));
         target.sendMessage(LocaleLoader.getString("Commands.ptp.Request2", mcMMO.getConfigManager().getConfigParty().getPTP().getPtpRequestTimeout()));
     }
-
-    protected static boolean canTeleport(CommandSender sender, Player player, String targetName) {
-        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetName);
-
-        if (!CommandUtils.checkPlayerExistence(sender, targetName, mcMMOTarget)) {
-            return false;
-        }
-
-        Player target = mcMMOTarget.getPlayer();
-
-        if (player.equals(target)) {
-            player.sendMessage(LocaleLoader.getString("Party.Teleport.Self"));
-            return false;
-        }
-
-        if (!PartyManager.inSameParty(player, target)) {
-            player.sendMessage(LocaleLoader.getString("Party.NotInYourParty", targetName));
-            return false;
-        }
-
-        if (!mcMMOTarget.getPartyTeleportRecord().isEnabled()) {
-            player.sendMessage(LocaleLoader.getString("Party.Teleport.Disabled", targetName));
-            return false;
-        }
-
-        if (!target.isValid()) {
-            player.sendMessage(LocaleLoader.getString("Party.Teleport.Dead"));
-            return false;
-        }
-
-        return true;
-    }
-
-    protected static void handleTeleportWarmup(Player teleportingPlayer, Player targetPlayer) {
-        if(UserManager.getPlayer(targetPlayer) == null)
-        {
-            targetPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
-            return;
-        }
-
-        if(UserManager.getPlayer(teleportingPlayer) == null)
-        {
-            teleportingPlayer.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
-            return;
-        }
-
-        McMMOPlayer mcMMOPlayer = UserManager.getPlayer(teleportingPlayer);
-        McMMOPlayer mcMMOTarget = UserManager.getPlayer(targetPlayer);
-
-        long warmup = mcMMO.getConfigManager().getConfigParty().getPTP().getPtpWarmup();
-
-        mcMMOPlayer.actualizeTeleportCommenceLocation(teleportingPlayer);
-
-        if (warmup > 0) {
-            teleportingPlayer.sendMessage(LocaleLoader.getString("Teleport.Commencing", warmup));
-            new TeleportationWarmup(mcMMOPlayer, mcMMOTarget).runTaskLater(mcMMO.p, 20 * warmup);
-        }
-        else {
-            EventUtils.handlePartyTeleportEvent(teleportingPlayer, targetPlayer);
-        }
-    }
 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/party/teleport/PtpToggleCommand.java

@@ -20,8 +20,7 @@ public class PtpToggleCommand implements CommandExecutor {
 
         if (ptpRecord.isEnabled()) {
             sender.sendMessage(LocaleLoader.getString("Commands.ptp.Disabled"));
-        }
-        else {
+        } else {
             sender.sendMessage(LocaleLoader.getString("Commands.ptp.Enabled"));
         }
 

+ 2 - 4
src/main/java/com/gmail/nossr50/commands/player/InspectCommand.java

@@ -65,8 +65,7 @@ public class InspectCommand implements TabExecutor {
                         sender.sendMessage(CommandUtils.displaySkill(profile, skill));
                     }
 
-                }
-                else {
+                } else {
                     Player target = mcMMOPlayer.getPlayer();
 
                     if (CommandUtils.hidden(sender, target, Permissions.inspectHidden(sender))) {
@@ -74,8 +73,7 @@ public class InspectCommand implements TabExecutor {
                             sender.sendMessage(LocaleLoader.getString("Inspect.Offline"));
                             return true;
                         }
-                    }
-                    else if (CommandUtils.tooFar(sender, target, Permissions.inspectFar(sender))) {
+                    } else if (CommandUtils.tooFar(sender, target, Permissions.inspectFar(sender))) {
                         return true;
                     }
 

+ 2 - 4
src/main/java/com/gmail/nossr50/commands/player/MccooldownCommand.java

@@ -38,8 +38,7 @@ public class MccooldownCommand implements TabExecutor {
                     }
                 }
 
-                if(UserManager.getPlayer(player) == null)
-                {
+                if (UserManager.getPlayer(player) == null) {
                     player.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -58,8 +57,7 @@ public class MccooldownCommand implements TabExecutor {
 
                     if (seconds <= 0) {
                         player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Row.Y", ability.getName()));
-                    }
-                    else {
+                    } else {
                         player.sendMessage(LocaleLoader.getString("Commands.Cooldowns.Row.N", ability.getName(), seconds));
                     }
                 }

+ 2 - 4
src/main/java/com/gmail/nossr50/commands/player/McrankCommand.java

@@ -62,8 +62,7 @@ public class McrankCommand implements TabExecutor {
                     if (CommandUtils.tooFar(sender, player, Permissions.mcrankFar(sender))) {
                         return true;
                     }
-                }
-                else if (CommandUtils.inspectOffline(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false), Permissions.mcrankOffline(sender))) {
+                } else if (CommandUtils.inspectOffline(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName, false), Permissions.mcrankOffline(sender))) {
                     return true;
                 }
 
@@ -91,8 +90,7 @@ public class McrankCommand implements TabExecutor {
 
             McMMOPlayer mcMMOPlayer = UserManager.getPlayer(sender.getName());
 
-            if(mcMMOPlayer == null)
-            {
+            if (mcMMOPlayer == null) {
                 sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                 return;
             }

+ 2 - 4
src/main/java/com/gmail/nossr50/commands/player/McstatsCommand.java

@@ -26,8 +26,7 @@ public class McstatsCommand implements TabExecutor {
 
         switch (args.length) {
             case 0:
-                if(UserManager.getPlayer((Player) sender) == null)
-                {
+                if (UserManager.getPlayer((Player) sender) == null) {
                     sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                     return true;
                 }
@@ -53,8 +52,7 @@ public class McstatsCommand implements TabExecutor {
 
                 if (mcMMO.getPlayerLevelingSettings().getConfigSectionLevelCaps().getPowerLevel().isLevelCapEnabled()) {
                     player.sendMessage(LocaleLoader.getString("Commands.PowerLevel.Capped", UserManager.getPlayer(player).getPowerLevel(), powerLevelCap));
-                }
-                else {
+                } else {
                     player.sendMessage(LocaleLoader.getString("Commands.PowerLevel", UserManager.getPlayer(player).getPowerLevel()));
                 }
 

+ 6 - 7
src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java

@@ -49,31 +49,30 @@ public class AcrobaticsCommand extends SkillCommand {
             messages.add(getStatMessage(SubSkillType.ACROBATICS_DODGE, dodgeChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dodgeChanceLucky) : ""));
         }
-        
+
         if (canRoll) {
 
             AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName("Roll");
 
-            if(abstractSubSkill != null)
-            {
+            if (abstractSubSkill != null) {
                 double rollChance, graceChance;
 
                 //Chance to roll at half
-                RandomChanceSkill roll_rcs  = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
+                RandomChanceSkill roll_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
 
                 //Chance to graceful roll
                 RandomChanceSkill grace_rcs = new RandomChanceSkill(player, SubSkillType.ACROBATICS_ROLL);
                 grace_rcs.setSkillLevel(grace_rcs.getSkillLevel() * 2); //Double Odds
 
                 //Chance Stat Calculations
-                rollChance       = RandomChanceUtil.getRandomChanceExecutionChance(roll_rcs);
-                graceChance      = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs);
+                rollChance = RandomChanceUtil.getRandomChanceExecutionChance(roll_rcs);
+                graceChance = RandomChanceUtil.getRandomChanceExecutionChance(grace_rcs);
                 //damageThreshold  = AdvancedConfig.getInstance().getRollDamageThreshold();
 
                 String[] rollStrings = getAbilityDisplayValues(player, SubSkillType.ACROBATICS_ROLL);
 
                 //Format
-                double rollChanceLucky  = rollChance * 1.333D;
+                double rollChanceLucky = rollChance * 1.333D;
                 double graceChanceLucky = graceChance * 1.333D;
 
                 messages.add(getStatMessage(SubSkillType.ACROBATICS_ROLL, rollStrings[0])

+ 4 - 5
src/main/java/com/gmail/nossr50/commands/skills/AlchemyCommand.java

@@ -18,8 +18,8 @@ public class AlchemyCommand extends SkillCommand {
     private String brewSpeed;
     private String brewSpeedLucky;
 
-    private int    tier;
-    private int    ingredientCount;
+    private int tier;
+    private int ingredientCount;
     private String ingredientList;
 
     private boolean canCatalysis;
@@ -31,10 +31,9 @@ public class AlchemyCommand extends SkillCommand {
 
     protected String[] calculateAbilityDisplayValues(Player player) {
         //TODO: Needed?
-        if(UserManager.getPlayer(player) == null)
-        {
+        if (UserManager.getPlayer(player) == null) {
             player.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
-            return new String[] {"DATA NOT LOADED", "DATA NOT LOADED"};
+            return new String[]{"DATA NOT LOADED", "DATA NOT LOADED"};
         }
 
         AlchemyManager alchemyManager = UserManager.getPlayer(player).getAlchemyManager();

+ 5 - 5
src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java

@@ -35,14 +35,14 @@ public class ArcheryCommand extends SkillCommand {
             retrieveChance = retrieveStrings[0];
             retrieveChanceLucky = retrieveStrings[1];
         }
-        
+
         // ARCHERY_DAZE
         if (canDaze) {
             String[] dazeStrings = getAbilityDisplayValues(player, SubSkillType.ARCHERY_DAZE);
             dazeChance = dazeStrings[0];
             dazeChanceLucky = dazeStrings[1];
         }
-        
+
         // SKILL SHOT
         if (canSkillShot) {
             skillShotBonus = percent.format(Archery.getDamageBonusPercent(player));
@@ -64,17 +64,17 @@ public class ArcheryCommand extends SkillCommand {
             messages.add(getStatMessage(SubSkillType.ARCHERY_ARROW_RETRIEVAL, retrieveChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", retrieveChanceLucky) : ""));
         }
-        
+
         if (canDaze) {
             messages.add(getStatMessage(SubSkillType.ARCHERY_DAZE, dazeChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", dazeChanceLucky) : ""));
         }
-        
+
         if (canSkillShot) {
             messages.add(getStatMessage(SubSkillType.ARCHERY_SKILL_SHOT, skillShotBonus));
         }
 
-        if(canUseSubskill(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) {
+        if (canUseSubskill(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK)) {
             messages.add(getStatMessage(SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK,
                     String.valueOf(CombatUtils.getLimitBreakDamage(player, SubSkillType.ARCHERY_ARCHERY_LIMIT_BREAK))));
         }

+ 5 - 5
src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java

@@ -44,14 +44,14 @@ public class AxesCommand extends SkillCommand {
         if (canAxeMastery) {
             axeMasteryDamage = Axes.getAxeMasteryBonusDamage(player);
         }
-        
+
         // CRITICAL HIT
         if (canCritical) {
             String[] criticalHitStrings = getAbilityDisplayValues(player, SubSkillType.AXES_CRITICAL_STRIKES);
             critChance = criticalHitStrings[0];
             critChanceLucky = criticalHitStrings[1];
         }
-        
+
         // SKULL SPLITTER
         if (canSkullSplitter) {
             String[] skullSplitterStrings = calculateLengthDisplayValues(player, skillValue);
@@ -76,7 +76,7 @@ public class AxesCommand extends SkillCommand {
         if (canImpact) {
             messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.2"), LocaleLoader.getString("Axes.Ability.Bonus.3", impactDamage)));
         }
-        
+
         if (canAxeMastery) {
             messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.0"), LocaleLoader.getString("Axes.Ability.Bonus.1", axeMasteryDamage)));
         }
@@ -85,7 +85,7 @@ public class AxesCommand extends SkillCommand {
             messages.add(getStatMessage(SubSkillType.AXES_CRITICAL_STRIKES, critChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", critChanceLucky) : ""));
         }
-        
+
         if (canGreaterImpact) {
             messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Axes.Ability.Bonus.4"), LocaleLoader.getString("Axes.Ability.Bonus.5", Axes.greaterImpactBonusDamage)));
         }
@@ -95,7 +95,7 @@ public class AxesCommand extends SkillCommand {
                     + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", skullSplitterLengthEndurance) : ""));
         }
 
-        if(canUseSubskill(player, SubSkillType.AXES_AXES_LIMIT_BREAK)) {
+        if (canUseSubskill(player, SubSkillType.AXES_AXES_LIMIT_BREAK)) {
             messages.add(getStatMessage(SubSkillType.AXES_AXES_LIMIT_BREAK,
                     String.valueOf(CombatUtils.getLimitBreakDamage(player, SubSkillType.AXES_AXES_LIMIT_BREAK))));
         }

+ 9 - 11
src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java

@@ -75,7 +75,7 @@ public class FishingCommand extends SkillCommand {
                 }
             }
 
-            if(totalEnchantChance >= 1)
+            if (totalEnchantChance >= 1)
                 magicChance = percent.format(totalEnchantChance / 100.0);
             else
                 magicChance = percent.format(0);
@@ -116,8 +116,7 @@ public class FishingCommand extends SkillCommand {
             biteChance = percent.format((rawBiteChance * 100.0D) * luckyModifier);
         }
 
-        if(canInnerPeace)
-        {
+        if (canInnerPeace) {
             innerPeaceMult = String.valueOf(fishingManager.getInnerPeaceMultiplier());
         }
     }
@@ -136,15 +135,15 @@ public class FishingCommand extends SkillCommand {
     @Override
     protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
         List<String> messages = new ArrayList<>();
-        
+
         if (canFishermansDiet) {
             messages.add(getStatMessage(false, true, SubSkillType.FISHING_FISHERMANS_DIET, String.valueOf(fishermansDietRank)));
         }
-        
+
         if (canIceFish) {
             messages.add(getStatMessage(SubSkillType.FISHING_ICE_FISHING, SubSkillType.FISHING_ICE_FISHING.getLocaleStatDescription()));
         }
-        
+
         if (canMagicHunt) {
             messages.add(getStatMessage(SubSkillType.FISHING_MAGIC_HUNTER, magicChance));
         }
@@ -153,12 +152,12 @@ public class FishingCommand extends SkillCommand {
             //TODO: Update this with more details
             messages.add(getStatMessage(false, true, SubSkillType.FISHING_MASTER_ANGLER, biteChance));
         }
-        
+
         if (canShake) {
             messages.add(getStatMessage(SubSkillType.FISHING_SHAKE, shakeChance)
-            + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
+                    + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", shakeChanceLucky) : ""));
         }
-        
+
         if (canTreasureHunt) {
             messages.add(getStatMessage(false, true, SubSkillType.FISHING_TREASURE_HUNTER, String.valueOf(lootTier), String.valueOf(RankUtils.getHighestRank(SubSkillType.FISHING_TREASURE_HUNTER))));
             messages.add(getStatMessage(true, true, SubSkillType.FISHING_TREASURE_HUNTER,
@@ -170,8 +169,7 @@ public class FishingCommand extends SkillCommand {
                     String.valueOf(recordTreasure)));
         }
 
-        if(canInnerPeace)
-        {
+        if (canInnerPeace) {
             messages.add(getStatMessage(SubSkillType.FISHING_INNER_PEACE, innerPeaceMult));
         }
 

+ 6 - 6
src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java

@@ -41,19 +41,19 @@ public class HerbalismCommand extends SkillCommand {
 
     @Override
     protected void dataCalculations(Player player, float skillValue) {
-        
+
         // DOUBLE DROPS
         if (canDoubleDrop) {
             String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.HERBALISM_DOUBLE_DROPS);
             doubleDropChance = doubleDropStrings[0];
             doubleDropChanceLucky = doubleDropStrings[1];
         }
-        
+
         // FARMERS DIET
         if (canFarmersDiet) {
             farmersDietRank = RankUtils.getRank(player, SubSkillType.HERBALISM_FARMERS_DIET);
         }
-        
+
         // GREEN TERRA
         if (canGreenTerra) {
             String[] greenTerraStrings = calculateLengthDisplayValues(player, skillValue);
@@ -104,11 +104,11 @@ public class HerbalismCommand extends SkillCommand {
             messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
         }
-        
+
         if (canFarmersDiet) {
             messages.add(getStatMessage(false, true, SubSkillType.HERBALISM_FARMERS_DIET, String.valueOf(farmersDietRank)));
         }
-        
+
         if (canGreenTerra) {
             messages.add(getStatMessage(SubSkillType.HERBALISM_GREEN_TERRA, greenTerraLength)
                     + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", greenTerraLengthEndurance) : ""));
@@ -123,7 +123,7 @@ public class HerbalismCommand extends SkillCommand {
         }
 
         if (canGreenThumbPlants) {
-            messages.add(getStatMessage(true, true,SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
+            messages.add(getStatMessage(true, true, SubSkillType.HERBALISM_GREEN_THUMB, String.valueOf(greenThumbStage)));
         }
 
         if (hasHylianLuck) {

+ 6 - 6
src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java

@@ -50,14 +50,14 @@ public class MiningCommand extends SkillCommand {
             blastDamageDecrease = percent.format(miningManager.getBlastDamageModifier() / 100.0D);
             blastRadiusIncrease = miningManager.getBlastRadiusModifier();
         }
-        
+
         // DOUBLE DROPS
         if (canDoubleDrop) {
             String[] doubleDropStrings = getAbilityDisplayValues(player, SubSkillType.MINING_DOUBLE_DROPS);
             doubleDropChance = doubleDropStrings[0];
             doubleDropChanceLucky = doubleDropStrings[1];
         }
-        
+
         // SUPER BREAKER
         if (canSuperBreaker) {
             String[] superBreakerStrings = calculateLengthDisplayValues(player, skillValue);
@@ -83,17 +83,17 @@ public class MiningCommand extends SkillCommand {
             messages.add(getStatMessage(true, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastRadiusIncrease)));
             //messages.add(LocaleLoader.getString("Mining.Blast.Radius.Increase", blastRadiusIncrease));
         }
-        
+
         if (canBlast) {
             messages.add(getStatMessage(false, true, SubSkillType.MINING_BLAST_MINING, String.valueOf(blastMiningRank), String.valueOf(RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING)), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
             //messages.add(LocaleLoader.getString("Mining.Blast.Rank", blastMiningRank, RankUtils.getHighestRank(SubSkillType.MINING_BLAST_MINING), LocaleLoader.getString("Mining.Blast.Effect", oreBonus, debrisReduction, bonusTNTDrops)));
         }
-        
-         if (canDemoExpert) {
+
+        if (canDemoExpert) {
             messages.add(getStatMessage(SubSkillType.MINING_DEMOLITIONS_EXPERTISE, blastDamageDecrease));
             //messages.add(LocaleLoader.getString("Mining.Effect.Decrease", blastDamageDecrease));
         }
-        
+
         if (canDoubleDrop) {
             messages.add(getStatMessage(SubSkillType.HERBALISM_DOUBLE_DROPS, doubleDropChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));

+ 10 - 17
src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java

@@ -27,26 +27,22 @@ public class MmoInfoCommand implements TabExecutor {
         /*
          * Only allow players to use this command
          */
-        if(commandSender instanceof Player)
-        {
-            if(args.length < 1)
+        if (commandSender instanceof Player) {
+            if (args.length < 1)
                 return false;
 
             Player player = (Player) commandSender;
-            if(Permissions.mmoinfo(player))
-            {
-                if(args == null || args[0] == null)
+            if (Permissions.mmoinfo(player)) {
+                if (args == null || args[0] == null)
                     return false;
 
-                if(args[0].equalsIgnoreCase( "???"))
-                {
+                if (args[0].equalsIgnoreCase("???")) {
                     player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Header"));
                     player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.SubSkillHeader", "???"));
                     player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.DetailsHeader"));
                     player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.Mystery"));
                     return true;
-                } else if(InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0]))
-                {
+                } else if (InteractionManager.getAbstractByName(args[0]) != null || PrimarySkillType.SUBSKILL_NAMES.contains(args[0])) {
                     displayInfo(player, args[0]);
                     return true;
                 }
@@ -70,12 +66,10 @@ public class MmoInfoCommand implements TabExecutor {
         }
     }
 
-    private void displayInfo(Player player, String subSkillName)
-    {
+    private void displayInfo(Player player, String subSkillName) {
         //Check to see if the skill exists in the new system
         AbstractSubSkill abstractSubSkill = InteractionManager.getAbstractByName(subSkillName);
-        if(abstractSubSkill != null)
-        {
+        if (abstractSubSkill != null) {
             /* New System Skills are programmable */
             abstractSubSkill.printInfo(player);
             //TextComponentFactory.sendPlayerUrlHeader(player);
@@ -89,9 +83,8 @@ public class MmoInfoCommand implements TabExecutor {
             player.sendMessage(LocaleLoader.getString("Commands.MmoInfo.OldSkill"));
         }
 
-        for(SubSkillType subSkillType : SubSkillType.values())
-        {
-            if(subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
+        for (SubSkillType subSkillType : SubSkillType.values()) {
+            if (subSkillType.getNiceNameNoSpaces(subSkillType).equalsIgnoreCase(subSkillName))
                 subSkillName = subSkillType.getWikiName(subSkillType.toString());
         }
 

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java

@@ -105,7 +105,7 @@ public class RepairCommand extends SkillCommand {
                         String.valueOf(arcaneBypass ? 0 : repairManager.getDowngradeEnchantChance()))); //Jesus those parentheses
             }
         }
-        
+
         if (canMasterRepair) {
             messages.add(getStatMessage(false, true, SubSkillType.REPAIR_REPAIR_MASTERY, repairMasteryBonus));
         }

+ 28 - 42
src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java

@@ -33,11 +33,9 @@ import java.util.Set;
 
 public abstract class SkillCommand implements TabExecutor {
     protected PrimarySkillType skill;
-    private String skillName;
-
     protected DecimalFormat percent = new DecimalFormat("##0.00%");
     protected DecimalFormat decimal = new DecimalFormat("##0.00");
-
+    private String skillName;
     private CommandExecutor skillGuideCommand;
 
     public SkillCommand(PrimarySkillType skill) {
@@ -46,6 +44,15 @@ public abstract class SkillCommand implements TabExecutor {
         skillGuideCommand = new SkillGuideCommand(skill);
     }
 
+    public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
+        String[] newArray = new String[existingArray.length + 1];
+        newArray[0] = itemToAdd;
+
+        System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
+
+        return newArray;
+    }
+
     @Override
     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
         if (CommandUtils.noConsoleUsage(sender)) {
@@ -56,8 +63,7 @@ public abstract class SkillCommand implements TabExecutor {
             return true;
         }
 
-        if(UserManager.getPlayer((Player) sender) == null)
-        {
+        if (UserManager.getPlayer((Player) sender) == null) {
             sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
             return true;
         }
@@ -72,9 +78,8 @@ public abstract class SkillCommand implements TabExecutor {
                 float skillValue = mcMMOPlayer.getSkillLevel(skill);
 
                 //Send the players a few blank lines to make finding the top of the skill command easier
-                if(AdvancedConfig.getInstance().doesSkillCommandSendBlankLines())
-                    for(int i = 0; i < 2; i++)
-                    {
+                if (AdvancedConfig.getInstance().doesSkillCommandSendBlankLines())
+                    for (int i = 0; i < 2; i++) {
                         player.sendMessage("");
                     }
 
@@ -105,8 +110,7 @@ public abstract class SkillCommand implements TabExecutor {
 
 
                 //Link Header
-                if(mcMMO.getConfigManager().getConfigAds().isShowWebsiteLinks())
-                {
+                if (mcMMO.getConfigManager().getConfigAds().isShowWebsiteLinks()) {
                     player.sendMessage(LocaleLoader.getString("Overhaul.mcMMO.Header"));
                     TextComponentFactory.sendPlayerUrlHeader(player);
                 }
@@ -114,7 +118,7 @@ public abstract class SkillCommand implements TabExecutor {
 
                 if (mcMMO.getScoreboardSettings().getScoreboardsEnabled()
                         && mcMMO.getScoreboardSettings().getConfigSectionScoreboardTypes()
-                            .getConfigSectionSkillBoard().isUseThisBoard()) {
+                        .getConfigSectionSkillBoard().isUseThisBoard()) {
                     ScoreboardManager.enablePlayerSkillScoreboard(player, skill);
                 }
 
@@ -146,8 +150,7 @@ public abstract class SkillCommand implements TabExecutor {
 
         player.sendMessage(LocaleLoader.getString("Skills.Overhaul.Header", skillName));
 
-        if(!skill.isChildSkill())
-        {
+        if (!skill.isChildSkill()) {
             /*
              * NON-CHILD SKILLS
              */
@@ -173,10 +176,8 @@ public abstract class SkillCommand implements TabExecutor {
 
             StringBuilder parentMessage = new StringBuilder();
 
-            for(int i = 0; i < parentList.size(); i++)
-            {
-                if(i+1 < parentList.size())
-                {
+            for (int i = 0; i < parentList.size(); i++) {
+                if (i + 1 < parentList.size()) {
                     parentMessage.append(LocaleLoader.getString("Effects.Child.ParentList", parentList.get(i).getName(), mcMMOPlayer.getSkillLevel(parentList.get(i))));
                     parentMessage.append(ChatColor.GRAY + ", ");
                 } else {
@@ -237,11 +238,9 @@ public abstract class SkillCommand implements TabExecutor {
 
         int length;
 
-        if(abilityLengthCap <= 0)
-        {
+        if (abilityLengthCap <= 0) {
             length = 2 + (int) (skillValue / abilityLengthVar);
-        }
-        else {
+        } else {
             length = 2 + (int) (Math.min(abilityLengthCap, skillValue) / abilityLengthVar);
         }
 
@@ -251,38 +250,25 @@ public abstract class SkillCommand implements TabExecutor {
             length = Math.min(length, maxLength);
         }
 
-        return new String[] { String.valueOf(length), String.valueOf(enduranceLength) };
+        return new String[]{String.valueOf(length), String.valueOf(enduranceLength)};
     }
 
-    protected String getStatMessage(SubSkillType subSkillType, String... vars)
-    {
+    protected String getStatMessage(SubSkillType subSkillType, String... vars) {
         return getStatMessage(false, false, subSkillType, vars);
     }
 
-    protected String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars)
-    {
+    protected String getStatMessage(boolean isExtra, boolean isCustom, SubSkillType subSkillType, String... vars) {
         String templateKey = isCustom ? "Ability.Generic.Template.Custom" : "Ability.Generic.Template";
         String statDescriptionKey = !isExtra ? subSkillType.getLocaleKeyStatDescription() : subSkillType.getLocaleKeyStatExtraDescription();
 
-        if(isCustom)
+        if (isCustom)
             return LocaleLoader.getString(templateKey, LocaleLoader.getString(statDescriptionKey, vars));
-        else
-        {
+        else {
             String[] mergedList = addItemToFirstPositionOfArray(LocaleLoader.getString(statDescriptionKey), vars);
             return LocaleLoader.getString(templateKey, mergedList);
         }
     }
 
-
-    public static String[] addItemToFirstPositionOfArray(String itemToAdd, String... existingArray) {
-        String[] newArray = new String[existingArray.length + 1];
-        newArray[0] = itemToAdd;
-
-        System.arraycopy(existingArray, 0, newArray, 1, existingArray.length);
-
-        return newArray;
-    }
-
     protected abstract void dataCalculations(Player player, float skillValue);
 
     protected abstract void permissionsCheck(Player player);
@@ -295,12 +281,12 @@ public abstract class SkillCommand implements TabExecutor {
 
     /**
      * Checks if a player can use a skill
-     * @param player target player
+     *
+     * @param player       target player
      * @param subSkillType target subskill
      * @return true if the player has permission and has the skill unlocked
      */
-    protected boolean canUseSubskill(Player player, SubSkillType subSkillType)
-    {
+    protected boolean canUseSubskill(Player player, SubSkillType subSkillType) {
         return Permissions.isSubSkillEnabled(player, subSkillType) && RankUtils.hasUnlockedSubskill(player, subSkillType);
     }
 }

+ 1 - 2
src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java

@@ -75,8 +75,7 @@ public class SkillGuideCommand implements CommandExecutor {
         while (allStrings.size() < 9) {
             if (pageIndexStart + allStrings.size() > guide.size()) {
                 allStrings.add("");
-            }
-            else {
+            } else {
                 allStrings.add(guide.get(pageIndexStart + (allStrings.size() - 1)));
             }
         }

+ 2 - 2
src/main/java/com/gmail/nossr50/commands/skills/SmeltingCommand.java

@@ -42,7 +42,7 @@ public class SmeltingCommand extends SkillCommand {
             str_fluxMiningChance = fluxMiningStrings[0];
             str_fluxMiningChanceLucky = fluxMiningStrings[1];
         }*/
-        
+
         // SECOND SMELT
         if (canSecondSmelt) {
             String[] secondSmeltStrings = getAbilityDisplayValues(player, SubSkillType.SMELTING_SECOND_SMELT);
@@ -68,7 +68,7 @@ public class SmeltingCommand extends SkillCommand {
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
             //messages.add(LocaleLoader.getString("Smelting.Ability.FluxMining", str_fluxMiningChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", str_fluxMiningChanceLucky) : ""));
         }*/
-        
+
         if (canFuelEfficiency) {
             messages.add(getStatMessage(false, true, SubSkillType.SMELTING_FUEL_EFFICIENCY, burnTimeModifier));
         }

+ 5 - 6
src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java

@@ -49,7 +49,7 @@ public class SwordsCommand extends SkillCommand {
             bleedChance = bleedStrings[0];
             bleedChanceLucky = bleedStrings[1];
         }
-        
+
         // SERRATED STRIKES
         if (canSerratedStrike) {
             String[] serratedStrikesStrings = calculateLengthDisplayValues(player, skillValue);
@@ -70,8 +70,8 @@ public class SwordsCommand extends SkillCommand {
         List<String> messages = new ArrayList<>();
 
         int ruptureTicks = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks();
-        double ruptureDamagePlayers =  RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamagePlayer() * 1.5D : AdvancedConfig.getInstance().getRuptureDamagePlayer();
-        double ruptureDamageMobs =  RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamageMobs() * 1.5D : AdvancedConfig.getInstance().getRuptureDamageMobs();
+        double ruptureDamagePlayers = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamagePlayer() * 1.5D : AdvancedConfig.getInstance().getRuptureDamagePlayer();
+        double ruptureDamageMobs = RankUtils.getRank(player, SubSkillType.SWORDS_RUPTURE) >= 3 ? AdvancedConfig.getInstance().getRuptureDamageMobs() * 1.5D : AdvancedConfig.getInstance().getRuptureDamageMobs();
 
         if (canCounter) {
             messages.add(getStatMessage(SubSkillType.SWORDS_COUNTER_ATTACK, counterChance)
@@ -94,13 +94,12 @@ public class SwordsCommand extends SkillCommand {
                     + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", serratedStrikesLengthEndurance) : ""));
         }
 
-        if(canUseSubskill(player, SubSkillType.SWORDS_STAB))
-        {
+        if (canUseSubskill(player, SubSkillType.SWORDS_STAB)) {
             messages.add(getStatMessage(SubSkillType.SWORDS_STAB,
                     String.valueOf(UserManager.getPlayer(player).getSwordsManager().getStabDamage())));
         }
 
-        if(canUseSubskill(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) {
+        if (canUseSubskill(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK)) {
             messages.add(getStatMessage(SubSkillType.SWORDS_SWORDS_LIMIT_BREAK,
                     String.valueOf(CombatUtils.getLimitBreakDamage(player, SubSkillType.SWORDS_SWORDS_LIMIT_BREAK))));
         }

+ 5 - 5
src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java

@@ -43,7 +43,7 @@ public class UnarmedCommand extends SkillCommand {
             deflectChance = deflectStrings[0];
             deflectChanceLucky = deflectStrings[1];
         }
-        
+
         // BERSERK
         if (canBerserk) {
             String[] berserkStrings = calculateLengthDisplayValues(player, skillValue);
@@ -90,19 +90,19 @@ public class UnarmedCommand extends SkillCommand {
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
             //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.ArrowDeflect", deflectChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", deflectChanceLucky) : ""));
         }
-        
+
         if (canBerserk) {
             messages.add(getStatMessage(SubSkillType.UNARMED_BERSERK, berserkLength)
                     + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
             //messages.add(LocaleLoader.getString("Unarmed.Ability.Berserk.Length", berserkLength) + (hasEndurance ? LocaleLoader.getString("Perks.ActivationTime.Bonus", berserkLengthEndurance) : ""));
         }
-        
+
         if (canDisarm) {
             messages.add(getStatMessage(SubSkillType.UNARMED_DISARM, disarmChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
             //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.Disarm", disarmChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", disarmChanceLucky) : ""));
         }
-        
+
         if (canIronArm) {
             messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Unarmed.Ability.Bonus.0"), LocaleLoader.getString("Unarmed.Ability.Bonus.1", ironArmBonus)));
         }
@@ -113,7 +113,7 @@ public class UnarmedCommand extends SkillCommand {
             //messages.add(LocaleLoader.getString("Unarmed.Ability.Chance.IronGrip", ironGripChance) + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", ironGripChanceLucky) : ""));
         }
 
-        if(canUseSubskill(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) {
+        if (canUseSubskill(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK)) {
             messages.add(getStatMessage(SubSkillType.UNARMED_UNARMED_LIMIT_BREAK,
                     String.valueOf(CombatUtils.getLimitBreakDamage(player, SubSkillType.UNARMED_UNARMED_LIMIT_BREAK))));
         }

+ 2 - 2
src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java

@@ -35,7 +35,7 @@ public class WoodcuttingCommand extends SkillCommand {
         if (canDoubleDrop) {
             setDoubleDropClassicChanceStrings(player);
         }
-        
+
         // TREE FELLER
         if (canTreeFell) {
             String[] treeFellerStrings = calculateLengthDisplayValues(player, skillValue);
@@ -68,7 +68,7 @@ public class WoodcuttingCommand extends SkillCommand {
             messages.add(getStatMessage(SubSkillType.WOODCUTTING_HARVEST_LUMBER, doubleDropChance)
                     + (isLucky ? LocaleLoader.getString("Perks.Lucky.Bonus", doubleDropChanceLucky) : ""));
         }
-        
+
         if (canLeafBlow) {
             messages.add(LocaleLoader.getString("Ability.Generic.Template", LocaleLoader.getString("Woodcutting.Ability.0"), LocaleLoader.getString("Woodcutting.Ability.1")));
         }

+ 222 - 85
src/main/java/com/gmail/nossr50/config/AdvancedConfig.java

@@ -130,16 +130,12 @@ public class AdvancedConfig extends ConfigValidated {
         super("advanced", mcMMO.p.getDataFolder().getAbsoluteFile(), ConfigConstants.RELATIVE_PATH_CONFIG_DIR, true, true, true, true);
     }
 
-    @Override
-    public void unload() {
-        //do nothing
-    }
-
     /**
      * This grabs an instance of this config class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated
@@ -147,6 +143,11 @@ public class AdvancedConfig extends ConfigValidated {
         return mcMMO.getConfigManager().getAdvancedConfig();
     }
 
+    @Override
+    public void unload() {
+        //do nothing
+    }
+
     /**
      * The version of this config
      *
@@ -239,8 +240,7 @@ public class AdvancedConfig extends ConfigValidated {
         }
 
         /* AXES */
-        if(getAxeMasteryRankDamageMultiplier() < 0)
-        {
+        if (getAxeMasteryRankDamageMultiplier() < 0) {
             reason.add(SKILLS + "." + AXES + "." + AXE_MASTERY + "." + RANK_DAMAGE_MULTIPLIER + " should be at least 0!");
         }
 
@@ -499,10 +499,11 @@ public class AdvancedConfig extends ConfigValidated {
     /**
      * This returns the maximum level at which superabilities will stop lengthening from scaling alongside skill level.
      * It returns a different value depending on whether or not the server is in retro mode
+     *
      * @return the level at which abilities stop increasing in length
      */
     public int getAbilityLengthCap() {
-        if(!mcMMO.isRetroModeEnabled())
+        if (!mcMMO.isRetroModeEnabled())
             return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, CAP_LEVEL);
         else
             return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, CAP_LEVEL);
@@ -511,28 +512,32 @@ public class AdvancedConfig extends ConfigValidated {
     /**
      * This returns the frequency at which abilities will increase in length
      * It returns a different value depending on whether or not the server is in retro mode
+     *
      * @return the number of levels required per ability length increase
      */
     public int getAbilityLength() {
-        if(!mcMMO.isRetroModeEnabled())
+        if (!mcMMO.isRetroModeEnabled())
             return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, STANDARD, INCREASE_LEVEL);
         else
             return getIntValue(SKILLS, GENERAL, ABILITY, LENGTH, RETRO_MODE, INCREASE_LEVEL);
     }
 
-    public int getEnchantBuff() { return getIntValue(SKILLS, GENERAL, ABILITY, ENCHANT_BUFF); }
+    public int getEnchantBuff() {
+        return getIntValue(SKILLS, GENERAL, ABILITY, ENCHANT_BUFF);
+    }
 
     /**
      * Grabs the max bonus level for a skill used in RNG calculations
      * All max level values in the config are multiplied by 10 if the server is in retro mode as the values in the config are based around the new 1-100 skill system scaling
      * A value of 10 in the file will be returned as 100 for retro mode servers to accommodate the change in scaling
+     *
      * @param subSkillType target subskill
      * @return the level at which this skills max benefits will be reached on the curve
      */
     public int getMaxBonusLevel(SubSkillType subSkillType) {
         String[] category = subSkillType.getAdvConfigAddress();
-        
-        if(!mcMMO.isRetroModeEnabled())
+
+        if (!mcMMO.isRetroModeEnabled())
             return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, STANDARD);
         else
             return getIntValue(category[0], category[1], category[2], MAX_BONUS_LEVEL, RETRO_MODE);
@@ -544,37 +549,32 @@ public class AdvancedConfig extends ConfigValidated {
 
     public double getMaximumProbability(SubSkillType subSkillType) {
         String[] category = subSkillType.getAdvConfigAddress();
-        
+
         double maximumProbability = getDoubleValue(category[0], category[1], category[2], CHANCE_MAX);
 
         return maximumProbability;
     }
 
-    public double getMaximumProbability(AbstractSubSkill abstractSubSkill)
-    {
+    public double getMaximumProbability(AbstractSubSkill abstractSubSkill) {
         return getMaximumProbability(abstractSubSkill.getSubSkillType());
     }
 
     /* Notification Settings */
 
-    public boolean doesSkillCommandSendBlankLines()
-    {
-        return getBooleanValue(FEEDBACK,  SKILL_COMMAND,  BLANK_LINES_ABOVE_HEADER);
+    public boolean doesSkillCommandSendBlankLines() {
+        return getBooleanValue(FEEDBACK, SKILL_COMMAND, BLANK_LINES_ABOVE_HEADER);
     }
 
-    public boolean doesNotificationUseActionBar(NotificationType notificationType)
-    {
-        return getBooleanValue(FEEDBACK,  ACTION_BAR_NOTIFICATIONS, notificationType.toString(),  ENABLED);
+    public boolean doesNotificationUseActionBar(NotificationType notificationType) {
+        return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), ENABLED);
     }
 
-    public boolean doesNotificationSendCopyToChat(NotificationType notificationType)
-    {
-        return getBooleanValue(FEEDBACK,  ACTION_BAR_NOTIFICATIONS, notificationType.toString(),  SEND_COPY_OF_MESSAGE_TO_CHAT);
+    public boolean doesNotificationSendCopyToChat(NotificationType notificationType) {
+        return getBooleanValue(FEEDBACK, ACTION_BAR_NOTIFICATIONS, notificationType.toString(), SEND_COPY_OF_MESSAGE_TO_CHAT);
     }
 
-    public boolean useTitlesForXPEvent()
-    {
-        return getBooleanValue(FEEDBACK,  EVENTS,  XP,  SEND_TITLES);
+    public boolean useTitlesForXPEvent() {
+        return getBooleanValue(FEEDBACK, EVENTS, XP, SEND_TITLES);
     }
 
     private ChatColor getChatColorFromKey(String keyLocation) {
@@ -595,57 +595,109 @@ public class AdvancedConfig extends ConfigValidated {
     }
 
     /* ACROBATICS */
-    public double getDodgeDamageModifier() { return getDoubleValue(SKILLS, ACROBATICS, DODGE, DAMAGE_MODIFIER); }
+    public double getDodgeDamageModifier() {
+        return getDoubleValue(SKILLS, ACROBATICS, DODGE, DAMAGE_MODIFIER);
+    }
 
-    public double getRollDamageThreshold() { return getDoubleValue(SKILLS, ACROBATICS, ROLL, DAMAGE_THRESHOLD); }
+    public double getRollDamageThreshold() {
+        return getDoubleValue(SKILLS, ACROBATICS, ROLL, DAMAGE_THRESHOLD);
+    }
 
-    public double getGracefulRollDamageThreshold() { return getDoubleValue(SKILLS, ACROBATICS, GRACEFUL_ROLL, DAMAGE_THRESHOLD); }
+    public double getGracefulRollDamageThreshold() {
+        return getDoubleValue(SKILLS, ACROBATICS, GRACEFUL_ROLL, DAMAGE_THRESHOLD);
+    }
 
     /* ALCHEMY */
-    public int getCatalysisMaxBonusLevel() { return getIntValue(SKILLS, ALCHEMY, CATALYSIS, MAX_BONUS_LEVEL); }
+    public int getCatalysisMaxBonusLevel() {
+        return getIntValue(SKILLS, ALCHEMY, CATALYSIS, MAX_BONUS_LEVEL);
+    }
+
+    public double getCatalysisMinSpeed() {
+        return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MIN_SPEED);
+    }
 
-    public double getCatalysisMinSpeed() { return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MIN_SPEED); }
-    public double getCatalysisMaxSpeed() { return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MAX_SPEED); }
+    public double getCatalysisMaxSpeed() {
+        return getDoubleValue(SKILLS, ALCHEMY, CATALYSIS, MAX_SPEED);
+    }
 
     /* ARCHERY */
-    public double getSkillShotRankDamageMultiplier() { return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, RANK_DAMAGE_MULTIPLIER); }
-    public double getSkillShotDamageMax() { return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, MAX_DAMAGE); }
+    public double getSkillShotRankDamageMultiplier() {
+        return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, RANK_DAMAGE_MULTIPLIER);
+    }
 
-    public double getDazeBonusDamage() { return getDoubleValue(SKILLS, ARCHERY, DAZE, BONUS_DAMAGE); }
+    public double getSkillShotDamageMax() {
+        return getDoubleValue(SKILLS, ARCHERY, SKILL_SHOT, MAX_DAMAGE);
+    }
 
-    public double getForceMultiplier() { return getDoubleValue(SKILLS, ARCHERY, FORCE_MULTIPLIER); }
+    public double getDazeBonusDamage() {
+        return getDoubleValue(SKILLS, ARCHERY, DAZE, BONUS_DAMAGE);
+    }
+
+    public double getForceMultiplier() {
+        return getDoubleValue(SKILLS, ARCHERY, FORCE_MULTIPLIER);
+    }
 
     /* AXES */
-    public double getAxeMasteryRankDamageMultiplier() { return getDoubleValue(SKILLS, AXES, AXE_MASTERY, RANK_DAMAGE_MULTIPLIER); }
+    public double getAxeMasteryRankDamageMultiplier() {
+        return getDoubleValue(SKILLS, AXES, AXE_MASTERY, RANK_DAMAGE_MULTIPLIER);
+    }
 
-    public double getCriticalStrikesPVPModifier() { return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVP_MODIFIER); }
-    public double getCriticalStrikesPVEModifier() { return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVE_MODIFIER); }
+    public double getCriticalStrikesPVPModifier() {
+        return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVP_MODIFIER);
+    }
+
+    public double getCriticalStrikesPVEModifier() {
+        return getDoubleValue(SKILLS, AXES, CRITICAL_STRIKES, PVE_MODIFIER);
+    }
 
-    public double getGreaterImpactChance() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, CHANCE); }
-    public double getGreaterImpactModifier() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, KNOCKBACK_MODIFIER); }
-    public double getGreaterImpactBonusDamage() { return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, BONUS_DAMAGE); }
+    public double getGreaterImpactChance() {
+        return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, CHANCE);
+    }
+
+    public double getGreaterImpactModifier() {
+        return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, KNOCKBACK_MODIFIER);
+    }
+
+    public double getGreaterImpactBonusDamage() {
+        return getDoubleValue(SKILLS, AXES, GREATER_IMPACT, BONUS_DAMAGE);
+    }
 
     public int getArmorImpactIncreaseLevel() {
         int increaseLevel = getIntValue(SKILLS, AXES, ARMOR_IMPACT, INCREASE_LEVEL);
 
-        if(mcMMO.isRetroModeEnabled())
+        if (mcMMO.isRetroModeEnabled())
             return increaseLevel * 10;
 
         return increaseLevel;
     }
 
-    public double getImpactChance() { return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, CHANCE); }
-    public double getArmorImpactMaxDurabilityDamage() { return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, MAX_PERCENTAGE_DURABILITY_DAMAGE); }
+    public double getImpactChance() {
+        return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, CHANCE);
+    }
+
+    public double getArmorImpactMaxDurabilityDamage() {
+        return getDoubleValue(SKILLS, AXES, ARMOR_IMPACT, MAX_PERCENTAGE_DURABILITY_DAMAGE);
+    }
 
-    public double getSkullSplitterModifier() { return getDoubleValue(SKILLS, AXES, SKULL_SPLITTER, DAMAGE_MODIFIER); }
+    public double getSkullSplitterModifier() {
+        return getDoubleValue(SKILLS, AXES, SKULL_SPLITTER, DAMAGE_MODIFIER);
+    }
 
     /* EXCAVATION */
     //Nothing to configure, everything is already configurable in config.yml
 
     /* FISHING */
-    public double getShakeChance(int rank) { return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank)); }
-    public double getMasterAnglerBoatModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER); }
-    public double getMasterAnglerBiomeModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER); }
+    public double getShakeChance(int rank) {
+        return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank));
+    }
+
+    public double getMasterAnglerBoatModifier() {
+        return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER);
+    }
+
+    public double getMasterAnglerBiomeModifier() {
+        return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER);
+    }
 
     /* HERBALISM */
     //public int getFarmerDietRankChange() { return getIntValue(SKILLS, ".Herbalism.FarmersDiet.RankChange"); }
@@ -653,67 +705,152 @@ public class AdvancedConfig extends ConfigValidated {
     //public int getGreenThumbStageChange() { return getIntValue(SKILLS, ".Herbalism.GreenThumb.StageChange"); }
 
     /* MINING */
-    public boolean getDoubleDropSilkTouchEnabled() { return getBooleanValue(SKILLS, MINING, "DoubleDrops", "SilkTouch"); }
-    public int getBlastMiningRankLevel(int rank) { return getIntValue(SKILLS, MINING, BLAST_MINING, RANK, LEVELS, RANK, String.valueOf(rank)); }
-    public double getBlastDamageDecrease(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_DAMAGE_DECREASE, RANK, String.valueOf(rank)); }
-    public double getOreBonus(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, ORE_BONUS, RANK, String.valueOf(rank)); }
-    public double getDebrisReduction(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, DEBRIS_REDUCTION, RANK, String.valueOf(rank)); }
-    public int getDropMultiplier(int rank) { return getIntValue(SKILLS, MINING, BLAST_MINING, DROP_MULTIPLIER, RANK, String.valueOf(rank)); }
-    public double getBlastRadiusModifier(int rank) { return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_RADIUS, MODIFIER, RANK, String.valueOf(rank)); }
+    public boolean getDoubleDropSilkTouchEnabled() {
+        return getBooleanValue(SKILLS, MINING, "DoubleDrops", "SilkTouch");
+    }
+
+    public int getBlastMiningRankLevel(int rank) {
+        return getIntValue(SKILLS, MINING, BLAST_MINING, RANK, LEVELS, RANK, String.valueOf(rank));
+    }
+
+    public double getBlastDamageDecrease(int rank) {
+        return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_DAMAGE_DECREASE, RANK, String.valueOf(rank));
+    }
+
+    public double getOreBonus(int rank) {
+        return getDoubleValue(SKILLS, MINING, BLAST_MINING, ORE_BONUS, RANK, String.valueOf(rank));
+    }
+
+    public double getDebrisReduction(int rank) {
+        return getDoubleValue(SKILLS, MINING, BLAST_MINING, DEBRIS_REDUCTION, RANK, String.valueOf(rank));
+    }
+
+    public int getDropMultiplier(int rank) {
+        return getIntValue(SKILLS, MINING, BLAST_MINING, DROP_MULTIPLIER, RANK, String.valueOf(rank));
+    }
+
+    public double getBlastRadiusModifier(int rank) {
+        return getDoubleValue(SKILLS, MINING, BLAST_MINING, BLAST_RADIUS, MODIFIER, RANK, String.valueOf(rank));
+    }
 
     /* REPAIR */
-    public double getRepairMasteryMaxBonus() { return getDoubleValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_PERCENTAGE); }
+    public double getRepairMasteryMaxBonus() {
+        return getDoubleValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_PERCENTAGE);
+    }
     //public int getRepairMasteryMaxLevel() { return getIntValue(SKILLS, REPAIR, REPAIR_MASTERY, MAX_BONUS_LEVEL); }
 
     /* Arcane Forging */
-    public boolean getArcaneForgingEnchantLossEnabled() { return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, MAY_LOSE_ENCHANTS); }
-    public double getArcaneForgingKeepEnchantsChance(int rank) { return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, KEEP_ENCHANTS, CHANCE, RANK, String.valueOf(rank)); }
+    public boolean getArcaneForgingEnchantLossEnabled() {
+        return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, MAY_LOSE_ENCHANTS);
+    }
+
+    public double getArcaneForgingKeepEnchantsChance(int rank) {
+        return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, KEEP_ENCHANTS, CHANCE, RANK, String.valueOf(rank));
+    }
 
-    public boolean getArcaneForgingDowngradeEnabled() { return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES_ENABLED); }
-    public double getArcaneForgingDowngradeChance(int rank) { return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES, CHANCE, RANK, String.valueOf(rank)); }
+    public boolean getArcaneForgingDowngradeEnabled() {
+        return getBooleanValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES_ENABLED);
+    }
+
+    public double getArcaneForgingDowngradeChance(int rank) {
+        return getDoubleValue(SKILLS, REPAIR, ARCANE_FORGING, DOWNGRADES, CHANCE, RANK, String.valueOf(rank));
+    }
 
     /* SALVAGE */
 
-    public boolean getArcaneSalvageEnchantDowngradeEnabled() { return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_DOWNGRADE_ENABLED); }
-    public boolean getArcaneSalvageEnchantLossEnabled() { return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_LOSS_ENABLED); }
+    public boolean getArcaneSalvageEnchantDowngradeEnabled() {
+        return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_DOWNGRADE_ENABLED);
+    }
+
+    public boolean getArcaneSalvageEnchantLossEnabled() {
+        return getBooleanValue(SKILLS, SALVAGE, ARCANE_SALVAGE, ENCHANT_LOSS_ENABLED);
+    }
 
-    public double getArcaneSalvageExtractFullEnchantsChance(int rank) { return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_FULL_ENCHANT, RANK, String.valueOf(rank)); }
-    public double getArcaneSalvageExtractPartialEnchantsChance(int rank) { return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_PARTIAL_ENCHANT, RANK, String.valueOf(rank)); }
+    public double getArcaneSalvageExtractFullEnchantsChance(int rank) {
+        return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_FULL_ENCHANT, RANK, String.valueOf(rank));
+    }
+
+    public double getArcaneSalvageExtractPartialEnchantsChance(int rank) {
+        return getDoubleValue(SKILLS, SALVAGE, ARCANE_SALVAGE, EXTRACT_PARTIAL_ENCHANT, RANK, String.valueOf(rank));
+    }
 
     /* SMELTING */
     //public int getBurnModifierMaxLevel() { return getIntValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MAX_BONUS_LEVEL); }
-    public double getBurnTimeMultiplier() { return getDoubleValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MULTIPLIER); }
+    public double getBurnTimeMultiplier() {
+        return getDoubleValue(SKILLS, SMELTING, FUEL_EFFICIENCY, MULTIPLIER);
+    }
 
-    public int getSmeltingRankLevel(int rank) { return getIntValue(SKILLS, SMELTING, RANK, LEVELS, RANK, String.valueOf(rank)); }
+    public int getSmeltingRankLevel(int rank) {
+        return getIntValue(SKILLS, SMELTING, RANK, LEVELS, RANK, String.valueOf(rank));
+    }
 
-    public int getSmeltingVanillaXPBoostMultiplier(int rank) { return getIntValue(SKILLS, SMELTING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank)); }
+    public int getSmeltingVanillaXPBoostMultiplier(int rank) {
+        return getIntValue(SKILLS, SMELTING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank));
+    }
 
     /* SWORDS */
-    public double getRuptureDamagePlayer() { return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_PLAYER); }
-    public double getRuptureDamageMobs() { return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_MOBS); }
+    public double getRuptureDamagePlayer() {
+        return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_PLAYER);
+    }
 
-    public int getRuptureMaxTicks() { return getIntValue(SKILLS, SWORDS, RUPTURE, MAX_TICKS); }
-    public int getRuptureBaseTicks() { return getIntValue(SKILLS, SWORDS, RUPTURE, BASE_TICKS); }
+    public double getRuptureDamageMobs() {
+        return getDoubleValue(SKILLS, SWORDS, RUPTURE, DAMAGE_MOBS);
+    }
 
-    public double getCounterAttackModifier() { return getDoubleValue(SKILLS, SWORDS, COUNTER_ATTACK, DAMAGE_MODIFIER); }
+    public int getRuptureMaxTicks() {
+        return getIntValue(SKILLS, SWORDS, RUPTURE, MAX_TICKS);
+    }
 
-    public double getSerratedStrikesModifier() { return getDoubleValue(SKILLS, SWORDS, SERRATED_STRIKES, DAMAGE_MODIFIER); }
+    public int getRuptureBaseTicks() {
+        return getIntValue(SKILLS, SWORDS, RUPTURE, BASE_TICKS);
+    }
+
+    public double getCounterAttackModifier() {
+        return getDoubleValue(SKILLS, SWORDS, COUNTER_ATTACK, DAMAGE_MODIFIER);
+    }
+
+    public double getSerratedStrikesModifier() {
+        return getDoubleValue(SKILLS, SWORDS, SERRATED_STRIKES, DAMAGE_MODIFIER);
+    }
     //public int getSerratedStrikesTicks() { return getIntValue(SKILLS, SWORDS, SERRATED_STRIKES, RUPTURE, TICKS); }
 
     /* TAMING */
-    public double getGoreModifier() { return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER); }
-    public double getFastFoodChance() { return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE); }
-    public double getPummelChance() { return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE); }
-    public double getThickFurModifier() { return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER); }
-    public double getShockProofModifier() { return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER); }
+    public double getGoreModifier() {
+        return getDoubleValue(SKILLS, TAMING, GORE, MODIFIER);
+    }
 
-    public double getSharpenedClawsBonus() { return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS); }
+    public double getFastFoodChance() {
+        return getDoubleValue(SKILLS, TAMING, FAST_FOOD_SERVICE, CHANCE);
+    }
 
-    public double getMinHorseJumpStrength() { return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH); }
-    public double getMaxHorseJumpStrength() { return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH); }
+    public double getPummelChance() {
+        return getDoubleValue(SKILLS, TAMING, PUMMEL, CHANCE);
+    }
+
+    public double getThickFurModifier() {
+        return getDoubleValue(SKILLS, TAMING, THICK_FUR, MODIFIER);
+    }
+
+    public double getShockProofModifier() {
+        return getDoubleValue(SKILLS, TAMING, SHOCK_PROOF, MODIFIER);
+    }
+
+    public double getSharpenedClawsBonus() {
+        return getDoubleValue(SKILLS, TAMING, SHARPENED_CLAWS, BONUS);
+    }
+
+    public double getMinHorseJumpStrength() {
+        return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MIN_HORSE_JUMP_STRENGTH);
+    }
+
+    public double getMaxHorseJumpStrength() {
+        return getDoubleValue(SKILLS, TAMING, CALL_OF_THE_WILD, MAX_HORSE_JUMP_STRENGTH);
+    }
 
     /* UNARMED */
-    public boolean getDisarmProtected() { return getBooleanValue(SKILLS, UNARMED, DISARM, ANTI_THEFT); }
+    public boolean getDisarmProtected() {
+        return getBooleanValue(SKILLS, UNARMED, DISARM, ANTI_THEFT);
+    }
 
     /* WOODCUTTING */
 }

+ 13 - 17
src/main/java/com/gmail/nossr50/config/BonusDropManager.java

@@ -13,13 +13,11 @@ public class BonusDropManager implements Unload {
 
     private HashMap<Material, Boolean> bonusDropWhitelist;
 
-    public BonusDropManager()
-    {
+    public BonusDropManager() {
         bonusDropWhitelist = new HashMap<>();
 
         //Start by setting all Materials to false to avoid null checks
-        for(Material material : Material.values())
-        {
+        for (Material material : Material.values()) {
             registerMaterial(material, false);
         }
     }
@@ -31,28 +29,25 @@ public class BonusDropManager implements Unload {
 
     /**
      * Adds materials to the bonus drop whitelist
+     *
      * @param materials target material list
      */
-    public void addToWhitelistByMaterial(List<Material> materials)
-    {
-        for(Material material : materials)
-        {
+    public void addToWhitelistByMaterial(List<Material> materials) {
+        for (Material material : materials) {
             registerMaterial(material, true);
         }
     }
 
     /**
      * Adds materials to the bonus drop whitelist
+     *
      * @param materials target material list
      */
-    public void addToWhitelistByNameID(List<String> materials)
-    {
-        for(String material : materials)
-        {
+    public void addToWhitelistByNameID(List<String> materials) {
+        for (String material : materials) {
             Material m = Material.matchMaterial(material);
-            if(m == null)
-            {
-                mcMMO.p.getLogger().severe("Error registering Bonus Drop -- Invalid Minecraft Name ID: "+material);
+            if (m == null) {
+                mcMMO.p.getLogger().severe("Error registering Bonus Drop -- Invalid Minecraft Name ID: " + material);
                 continue;
             }
 
@@ -62,6 +57,7 @@ public class BonusDropManager implements Unload {
 
     /**
      * Adds a material to the bonus drop whitelist
+     *
      * @param material target material
      */
     private void registerMaterial(Material material, boolean isWhitelisted) {
@@ -70,11 +66,11 @@ public class BonusDropManager implements Unload {
 
     /**
      * Check if a material can provide bonus drops
+     *
      * @param material target material
      * @return true if the material can provide bonus drops
      */
-    public boolean isBonusDropWhitelisted(Material material)
-    {
+    public boolean isBonusDropWhitelisted(Material material) {
         return bonusDropWhitelist.get(material);
     }
 }

+ 68 - 73
src/main/java/com/gmail/nossr50/config/Config.java

@@ -21,22 +21,20 @@ import java.util.List;
 public abstract class Config implements VersionedConfig, Unload {
 
     public static final String HOCON_FILE_EXTENSION = ".conf";
+    public final File DIRECTORY_DATA_FOLDER; //Directory that the file is in
+    public final String FILE_RELATIVE_PATH; //Relative Path to the file
+    protected final String DIRECTORY_DEFAULTS = "defaults";
     /* SETTINGS */
     //private static final String FILE_EXTENSION = ".conf"; //HOCON
     private boolean mergeNewKeys; //Whether or not to merge keys found in the default config
     private boolean removeOldKeys; //Whether or not to remove unused keys form the config
+
+    /* PATH VARS */
     private boolean copyDefaults; //Whether or not to copy the default config when first creating the file
     private boolean generateDefaults; //Whether or not we use Configurate to generate a default file, if this is false we copy the file from the JAR
     private String fileName; //The file name of the config
 
-    /* PATH VARS */
-
-    public final File DIRECTORY_DATA_FOLDER; //Directory that the file is in
-    public final String FILE_RELATIVE_PATH; //Relative Path to the file
-    protected final String DIRECTORY_DEFAULTS = "defaults";
-
     /* LOADERS */
-
     private HoconConfigurationLoader defaultCopyLoader;
     private HoconConfigurationLoader userCopyLoader;
 
@@ -78,8 +76,7 @@ public abstract class Config implements VersionedConfig, Unload {
         FILE_RELATIVE_PATH = relativePath + fileName + HOCON_FILE_EXTENSION; //Relative path to config from a parent folder
     }
 
-    public void initFullConfig()
-    {
+    public void initFullConfig() {
         //Attempt IO Operations
         try {
             //Makes sure we have valid Files corresponding to this config
@@ -106,8 +103,7 @@ public abstract class Config implements VersionedConfig, Unload {
      * Registers with the config managers unloader
      * The unloader runs when the plugin gets disabled which cleans up registries to make reloading safe
      */
-    private void registerUnload()
-    {
+    private void registerUnload() {
         mcMMO.getConfigManager().registerUnloadable(this);
     }
 
@@ -115,13 +111,13 @@ public abstract class Config implements VersionedConfig, Unload {
      * Registers with the config managers file list
      * Used for backing up configs with our zip library
      */
-    private void registerFileBackup()
-    {
+    private void registerFileBackup() {
         mcMMO.getConfigManager().registerUserFile(getUserConfigFile());
     }
 
     /**
      * Initializes the default copy File and the user config File
+     *
      * @throws IOException
      */
     private void initConfigFiles() throws IOException {
@@ -135,8 +131,7 @@ public abstract class Config implements VersionedConfig, Unload {
     /**
      * Loads the root node for the default config File and user config File
      */
-    private void loadConfig()
-    {
+    private void loadConfig() {
         try {
             final CommentedConfigurationNode defaultConfig = this.defaultCopyLoader.load();
             defaultRootNode = defaultConfig;
@@ -152,20 +147,19 @@ public abstract class Config implements VersionedConfig, Unload {
     /**
      * Initializes the Configuration Loaders for this config
      */
-    private void initConfigLoaders()
-    {
+    private void initConfigLoaders() {
         this.defaultCopyLoader = HoconConfigurationLoader.builder().setPath(resourceConfigCopy.toPath()).build();
         this.userCopyLoader = HoconConfigurationLoader.builder().setPath(resourceUserCopy.toPath()).build();
     }
 
     /**
      * Copies a new file from the JAR to the defaults directory and uses that new file to initialize our resourceConfigCopy
-     * @see Config#resourceConfigCopy
+     *
      * @throws IOException
+     * @see Config#resourceConfigCopy
      */
     private File initDefaultConfig() throws IOException {
-        if(generateDefaults)
-        {
+        if (generateDefaults) {
             return generateDefaultFile();
         } else
             return copyDefaultFromJar(getDefaultConfigCopyRelativePath(), true);
@@ -174,11 +168,11 @@ public abstract class Config implements VersionedConfig, Unload {
     /**
      * Generates a default config file using the Configurate library, makes use of @Setting and @ConfigSerializable annotations in the config file
      * Assigns the default root node to the newly loaded default config if successful
+     *
      * @return the File for the newly created config
      */
-    private File generateDefaultFile()
-    {
-        mcMMO.p.getLogger().info("Attempting to create a default config for "+fileName);
+    private File generateDefaultFile() {
+        mcMMO.p.getLogger().info("Attempting to create a default config for " + fileName);
 
         //Not sure if this will work properly...
         Path potentialFile = Paths.get(getDefaultConfigCopyRelativePath());
@@ -186,9 +180,9 @@ public abstract class Config implements VersionedConfig, Unload {
                 = HoconConfigurationLoader.builder().setPath(potentialFile).build();
 
         try {
-            mcMMO.p.getLogger().info("Config File Full Path: "+getDefaultConfigFile().getAbsolutePath());
+            mcMMO.p.getLogger().info("Config File Full Path: " + getDefaultConfigFile().getAbsolutePath());
             //Delete any existing default config
-            if(getDefaultConfigFile().exists())
+            if (getDefaultConfigFile().exists())
                 getDefaultConfigFile().delete();
 
             //Make new file
@@ -200,8 +194,8 @@ public abstract class Config implements VersionedConfig, Unload {
             //Save to a new file
             generation_loader.save(defaultRootNode);
 
-            mcMMO.p.getLogger().info("Generated a default file for "+fileName);
-        } catch(IOException e) {
+            mcMMO.p.getLogger().info("Generated a default file for " + fileName);
+        } catch (IOException e) {
             mcMMO.p.getLogger().severe("Error when trying to generate a default configuration file for " + getDefaultConfigCopyRelativePath());
             e.printStackTrace();
         }
@@ -212,26 +206,23 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Attemps to load the config file if it exists, if it doesn't it copies a new one from within the JAR
+     *
      * @return user config File
-     * @see Config#resourceUserCopy
      * @throws IOException
+     * @see Config#resourceUserCopy
      */
     private File initUserConfig() throws IOException {
         File userCopy = new File(DIRECTORY_DATA_FOLDER, FILE_RELATIVE_PATH); //Load the user file;
 
-        if(userCopy.exists())
-        {
+        if (userCopy.exists()) {
             // Yay
             return userCopy;
-        }
-        else
-        {
+        } else {
             //If it's gone we copy default files
             //Note that we don't copy the values from the default copy put in /defaults/ that file exists only as a reference to admins and is unreliable
-            if(copyDefaults)
+            if (copyDefaults)
                 return copyDefaultFromJar(FILE_RELATIVE_PATH, false);
-            else
-            {
+            else {
                 //Make a new empty file
                 userCopy.createNewFile();
                 return userCopy;
@@ -241,6 +232,7 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Gets the File representation of the this users config
+     *
      * @return the users config File
      */
     public File getUserConfigFile() {
@@ -249,17 +241,17 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Used to make a new config file at a specified relative output path inside the data directory by copying the matching file found in that same relative path within the JAR
+     *
      * @param relativeOutputPath the path to the output file
-     * @param deleteOld whether or not to delete the existing output file on disk
+     * @param deleteOld          whether or not to delete the existing output file on disk
      * @return a copy of the default config within the JAR
      * @throws IOException
      */
-    private File copyDefaultFromJar(String relativeOutputPath, boolean deleteOld) throws IOException
-    {
+    private File copyDefaultFromJar(String relativeOutputPath, boolean deleteOld) throws IOException {
         /*
          * Gen a Default config from inside the JAR
          */
-        mcMMO.p.getLogger().info("Preparing to copy internal resource file (in JAR) - "+FILE_RELATIVE_PATH);
+        mcMMO.p.getLogger().info("Preparing to copy internal resource file (in JAR) - " + FILE_RELATIVE_PATH);
         //InputStream inputStream = McmmoCore.getResource(FILE_RELATIVE_PATH);
         InputStream inputStream = mcMMO.p.getResource(FILE_RELATIVE_PATH);
 
@@ -270,14 +262,12 @@ public abstract class Config implements VersionedConfig, Unload {
         File targetFile = new File(DIRECTORY_DATA_FOLDER, relativeOutputPath);
 
         //Wipe old default file on disk
-        if (targetFile.exists() && deleteOld)
-        {
+        if (targetFile.exists() && deleteOld) {
             mcMMO.p.getLogger().info("Updating file " + relativeOutputPath);
             targetFile.delete(); //Necessary?
         }
 
-        if(!targetFile.exists())
-        {
+        if (!targetFile.exists()) {
             targetFile.getParentFile().mkdirs();
             targetFile.createNewFile(); //New File Boys
         }
@@ -292,6 +282,7 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * The path to the defaults directory
+     *
      * @return the path to the defaults directory
      */
     private String getDefaultConfigCopyRelativePath() {
@@ -301,6 +292,7 @@ public abstract class Config implements VersionedConfig, Unload {
     /**
      * Grabs the File representation of the default config, which is stored on disk in a defaults folder
      * this file will be overwritten every time mcMMO starts to keep it up to date.
+     *
      * @return the copy of the default config file, stored in the defaults directory
      */
     private File getDefaultConfigFile() {
@@ -316,11 +308,11 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Configs are versioned based on when they had significant changes to keys
+     *
      * @return current MainConfig Version String
      */
-    public String getVersion()
-    {
-         return String.valueOf(getConfigVersion());
+    public String getVersion() {
+        return String.valueOf(getConfigVersion());
     }
 
     /**
@@ -342,13 +334,12 @@ public abstract class Config implements VersionedConfig, Unload {
     /**
      * Compares the users config file to the default and adds any missing nodes and applies any necessary updates
      */
-    private void updateConfig()
-    {
-        mcMMO.p.getLogger().info(defaultRootNode.getChildrenMap().size() +" items in default children map");
-        mcMMO.p.getLogger().info(userRootNode.getChildrenMap().size() +" items in default root map");
+    private void updateConfig() {
+        mcMMO.p.getLogger().info(defaultRootNode.getChildrenMap().size() + " items in default children map");
+        mcMMO.p.getLogger().info(userRootNode.getChildrenMap().size() + " items in default root map");
 
         // Merge Values from default
-        if(mergeNewKeys)
+        if (mergeNewKeys)
             userRootNode = userRootNode.mergeValuesFrom(defaultRootNode);
 
         removeOldKeys();
@@ -368,23 +359,21 @@ public abstract class Config implements VersionedConfig, Unload {
      * Finds any keys in the users config that are not present in the default config and removes them
      */
     //TODO: Finish this
-    private void removeOldKeys()
-    {
-        if(!removeOldKeys)
+    private void removeOldKeys() {
+        if (!removeOldKeys)
             return;
 
-        for(CommentedConfigurationNode CommentedConfigurationNode : defaultRootNode.getChildrenList())
-        {
+        for (CommentedConfigurationNode CommentedConfigurationNode : defaultRootNode.getChildrenList()) {
 
         }
     }
 
     /**
      * Saves the current state information of the config to the users copy (which they may edit)
+     *
      * @throws IOException
      */
-    private void saveUserCopy() throws IOException
-    {
+    private void saveUserCopy() throws IOException {
         mcMMO.p.getLogger().info("Saving new node");
         userCopyLoader.save(userRootNode);
     }
@@ -395,11 +384,12 @@ public abstract class Config implements VersionedConfig, Unload {
     private void updateConfigVersion() {
         // Set a version for our config
         this.userRootNode.getNode("ConfigVersion").setValue(getConfigVersion());
-        mcMMO.p.getLogger().info("Updated config to ["+getConfigVersion()+"] - " + FILE_RELATIVE_PATH);
+        mcMMO.p.getLogger().info("Updated config to [" + getConfigVersion() + "] - " + FILE_RELATIVE_PATH);
     }
 
     /**
      * Returns the root node of this config
+     *
      * @return the root node of this config
      */
     protected CommentedConfigurationNode getUserRootNode() {
@@ -408,62 +398,67 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Gets an int from the config and casts it to short before returning
+     *
      * @param path the path to the int
      * @return the value of the int after being cast to short at the node, null references will zero initialize
      */
-    public short getShortValue(String... path) { return (short) userRootNode.getNode(path).getInt();}
+    public short getShortValue(String... path) {
+        return (short) userRootNode.getNode(path).getInt();
+    }
 
     /**
      * Grabs an int from the specified node
+     *
      * @param path
      * @return the int from the node, null references will zero initialize
      */
-    public int getIntValue(String... path)
-    {
+    public int getIntValue(String... path) {
         return userRootNode.getNode(path).getInt();
     }
+
     /**
      * Grabs a double from the specified node
+     *
      * @param path
      * @return the double from the node, null references will zero initialize
      */
-    public double getDoubleValue(String... path)
-    {
+    public double getDoubleValue(String... path) {
         return userRootNode.getNode(path).getDouble();
     }
 
     /**
      * Grabs a long from the specified node
+     *
      * @param path
      * @return the long from the node, null references will zero initialize
      */
-    public long getLongValue(String... path)
-    {
+    public long getLongValue(String... path) {
         return userRootNode.getNode(path).getLong();
     }
 
     /**
      * Grabs a boolean from the specified node
+     *
      * @param path
      * @return the boolean from the node, null references will zero initialize
      */
-    public boolean getBooleanValue(String... path)
-    {
+    public boolean getBooleanValue(String... path) {
         return userRootNode.getNode(path).getBoolean();
     }
 
     /**
      * Grabs a string from the specified node
+     *
      * @param path
      * @return the string from the node, null references will zero initialize
      */
-    public String getStringValue(String... path)
-    {
+    public String getStringValue(String... path) {
         return userRootNode.getNode(path).getString();
     }
 
     /**
      * Checks to see if a node exists in the user's config file
+     *
      * @param path path to the node
      * @return true if the node exists
      */
@@ -473,6 +468,7 @@ public abstract class Config implements VersionedConfig, Unload {
 
     /**
      * Returns the children of a specific node
+     *
      * @param path the path to the parent node
      * @return the list of children for the target parent node
      */
@@ -480,8 +476,7 @@ public abstract class Config implements VersionedConfig, Unload {
         return userRootNode.getNode(path).getChildrenList();
     }
 
-    public List<String> getListFromNode(String... path) throws ObjectMappingException
-    {
+    public List<String> getListFromNode(String... path) throws ObjectMappingException {
         return userRootNode.getNode(path).getList(TypeToken.of(String.class));
     }
 }

+ 4 - 4
src/main/java/com/gmail/nossr50/config/ConfigCollection.java

@@ -14,10 +14,10 @@ public abstract class ConfigCollection<T> extends Config implements Registers, G
 
     /**
      * @param pathToParentFolder Path to the "parent" folder on disk
-     * @param relativePath Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
-     * @param mergeNewKeys if true, the users config will add keys found in the internal file that are missing from the users file during load
-     * @param copyDefaults if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
-     * @param removeOldKeys if true, the users config file will have keys not found in the internal default resource file of the same name and path removed
+     * @param relativePath       Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
+     * @param mergeNewKeys       if true, the users config will add keys found in the internal file that are missing from the users file during load
+     * @param copyDefaults       if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
+     * @param removeOldKeys      if true, the users config file will have keys not found in the internal default resource file of the same name and path removed
      */
     public ConfigCollection(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
         super(fileName, pathToParentFolder, relativePath, generateDefaults, mergeNewKeys, copyDefaults, removeOldKeys);

+ 20 - 24
src/main/java/com/gmail/nossr50/config/ConfigConstants.java

@@ -9,11 +9,19 @@ import java.util.ArrayList;
  * Constants relating to config folders and paths
  */
 public class ConfigConstants {
-    private final static String[] EXAMPLE_BLACKLIST_WORLDS = {"Example_15434453", "Example_2324423", "Example_323423465"};
     public final static ArrayList<String> EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT;
-
     public final static String SKILL_SCALING_BENEFIT_EXPLANATION = "\nSub-Skills dynamically adjust their rewards to match the max bonus level, you can think of it as a curve that calculates what bonuses " +
             "\n a player should have based on how far they are from the max bonus level value, and the other parameters used for the scaling of that sub-skill.";
+    /* FOLDER NAMES */
+    public static final String FOLDER_NAME_CONFIG = "config";
+    public static final String FOLDER_NAME_SKILLS = "skills";
+    public static final String FOLDER_NAME_EXPERIENCE = "Experience Settings";
+    public static final String FOLDER_NAME_DEFAULTS = "defaults";
+    /* RELATIVE PATHS */
+    public final static String RELATIVE_PATH_CONFIG_DIR = File.separator + FOLDER_NAME_CONFIG + File.separator;
+    public final static String RELATIVE_PATH_SKILLS_DIR = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_SKILLS + File.separator;
+    public final static String RELATIVE_PATH_XP_DIR = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_EXPERIENCE + File.separator;
+    private final static String[] EXAMPLE_BLACKLIST_WORLDS = {"Example_15434453", "Example_2324423", "Example_323423465"};
 
     //Add the worlds to the list
     static {
@@ -23,23 +31,12 @@ public class ConfigConstants {
         EXAMPLE_BLACKLIST_WORLDS_LIST_DEFAULT.add(EXAMPLE_BLACKLIST_WORLDS[2]);
     }
 
-    /* FOLDER NAMES */
-    public static final String FOLDER_NAME_CONFIG       = "config";
-    public static final String FOLDER_NAME_SKILLS       = "skills";
-    public static final String FOLDER_NAME_EXPERIENCE   = "Experience Settings";
-    public static final String FOLDER_NAME_DEFAULTS     = "defaults";
-
-    /* RELATIVE PATHS */
-    public final static String RELATIVE_PATH_CONFIG_DIR = File.separator + FOLDER_NAME_CONFIG + File.separator;
-    public final static String RELATIVE_PATH_SKILLS_DIR = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_SKILLS + File.separator;
-    public final static String RELATIVE_PATH_XP_DIR     = RELATIVE_PATH_CONFIG_DIR + FOLDER_NAME_EXPERIENCE + File.separator;
-
     /**
      * Return the data folder for mcMMO
+     *
      * @return the File for the data folder used by mcMMO
      */
-    public static File getDataFolder()
-    {
+    public static File getDataFolder() {
         return mcMMO.p.getDataFolder();
     }
 
@@ -74,33 +71,32 @@ public class ConfigConstants {
     /**
      * Creates all directories used by mcMMO config files
      */
-    public static void makeAllConfigDirectories()
-    {
+    public static void makeAllConfigDirectories() {
         /* CONFIG DIRECTORY */
 
-        if(!getConfigFolder().exists())
+        if (!getConfigFolder().exists())
             getConfigFolder().mkdirs();
 
         /* DEFAULT DIRECTORIES */
 
-        if(!getDefaultsFolder().exists())
+        if (!getDefaultsFolder().exists())
             getDefaultsFolder().mkdirs();
 
-        if(!getDefaultsConfigFolder().exists())
+        if (!getDefaultsConfigFolder().exists())
             getDefaultsConfigFolder().mkdirs();
 
-        if(!getDefaultsSkillFolder().exists())
+        if (!getDefaultsSkillFolder().exists())
             getDefaultsSkillFolder().mkdirs();
 
-        if(!getDefaultsXPFolder().exists())
+        if (!getDefaultsXPFolder().exists())
             getDefaultsXPFolder().mkdirs();
 
         /* CONFIG SUBDIRECTORIES */
 
-        if(!getConfigSkillFolder().exists())
+        if (!getConfigSkillFolder().exists())
             getConfigSkillFolder().mkdirs();
 
-        if(!getConfigXPFolder().exists())
+        if (!getConfigXPFolder().exists())
             getConfigXPFolder().mkdirs();
     }
 }

+ 42 - 53
src/main/java/com/gmail/nossr50/config/ConfigManager.java

@@ -65,37 +65,32 @@ import java.util.ArrayList;
 import java.util.HashMap;
 
 /**
- *
  * The Config Manager handles initializing, loading, and unloading registers for all configs that mcMMO uses
  * This makes sure that mcMMO properly loads and unloads its values on reload
- *
+ * <p>
  * Config Manager also holds all of our MultiConfigContainers
  */
 public final class ConfigManager {
 
     /* UNLOAD REGISTER */
 
+    SkillPropertiesManager skillPropertiesManager;
     private ArrayList<Unload> unloadables;
-    private ArrayList<File> userFiles;
 
     /* COLLECTION MANAGERS */
-
+    private ArrayList<File> userFiles;
     private RepairableManager repairableManager;
     private SalvageableManager salvageableManager;
-    private BonusDropManager bonusDropManager;
 
     /* CUSTOM SERIALIZERS */
-
-    private TypeSerializerCollection customSerializers;
+    private BonusDropManager bonusDropManager;
 
     /* MOD MANAGERS */
 
     //TODO: Add these back when modded servers become a thing again
 
     /* MISC MANAGERS */
-
-    SkillPropertiesManager skillPropertiesManager;
-
+    private TypeSerializerCollection customSerializers;
     private ExperienceMapManager experienceMapManager;
 
     /* CONFIG INSTANCES */
@@ -163,14 +158,12 @@ public final class ConfigManager {
 
     private ArrayList<String> configErrors; //Collect errors to whine about to server admins
 
-    public ConfigManager()
-    {
+    public ConfigManager() {
         unloadables = new ArrayList<>();
         userFiles = new ArrayList<>();
     }
 
-    public void loadConfigs()
-    {
+    public void loadConfigs() {
         //Register Custom Serializers
         registerCustomTypeSerializers();
 
@@ -314,9 +307,12 @@ public final class ConfigManager {
         customSerializers = TypeSerializers.getDefaultSerializers().newChild();
 
         mcMMO.p.getLogger().info("Registering custom type serializers for Configurate...");
-        customSerializers.registerType(new TypeToken<Material>() {}, new CustomEnumValueSerializer());
-        customSerializers.registerType(new TypeToken<PartyFeature>() {}, new CustomEnumValueSerializer());
-        customSerializers.registerType(new TypeToken<FormulaType>() {}, new CustomEnumValueSerializer());
+        customSerializers.registerType(new TypeToken<Material>() {
+        }, new CustomEnumValueSerializer());
+        customSerializers.registerType(new TypeToken<PartyFeature>() {
+        }, new CustomEnumValueSerializer());
+        customSerializers.registerType(new TypeToken<FormulaType>() {
+        }, new CustomEnumValueSerializer());
         customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
         customSerializers.registerType(TypeToken.of(Salvageable.class), new SalvageableSerializer());
         customSerializers.registerType(TypeToken.of(MinecraftMaterialWrapper.class), new MinecraftMaterialWrapperSerializer());
@@ -325,22 +321,21 @@ public final class ConfigManager {
     /**
      * Gets the serializers registered and used by mcMMO
      * This includes all default serializers
+     *
      * @return our custom serializers
      */
     public TypeSerializerCollection getCustomSerializers() {
         return customSerializers;
     }
 
-    private void registerSkillConfig(PrimarySkillType primarySkillType, Class clazz)
-    {
+    private void registerSkillConfig(PrimarySkillType primarySkillType, Class clazz) {
         skillConfigLoaders.put(primarySkillType, SkillConfigFactory.initSkillConfig(primarySkillType, clazz));
     }
 
     /**
      * Misc managers
      */
-    private void initMiscManagers()
-    {
+    private void initMiscManagers() {
         experienceMapManager = new ExperienceMapManager();
     }
 
@@ -361,8 +356,7 @@ public final class ConfigManager {
     /**
      * Initializes any managers related to config collections
      */
-    private void initCollectionManagers()
-    {
+    private void initCollectionManagers() {
         // Handles registration of repairables
         repairableManager = new RepairableManager(getRepairables());
         unloadables.add(repairableManager);
@@ -378,30 +372,28 @@ public final class ConfigManager {
 
     /**
      * Get all loaded repairables (loaded from all repairable configs)
+     *
      * @return the currently loaded repairables
      */
-    public ArrayList<Repairable> getRepairables()
-    {
+    public ArrayList<Repairable> getRepairables() {
         return getConfigRepair().getConfigRepairablesList();
     }
 
     /**
      * Get all loaded salvageables (loaded from all salvageable configs)
+     *
      * @return the currently loaded salvageables
      */
-    public ArrayList<Salvageable> getSalvageables()
-    {
+    public ArrayList<Salvageable> getSalvageables() {
         return getConfigSalvage().getConfigSalvageablesList();
     }
 
     /**
      * Unloads all config options (prepares for reload)
      */
-    public void unloadAllConfigsAndRegisters()
-    {
+    public void unloadAllConfigsAndRegisters() {
         //Unload
-        for(Unload unloadable : unloadables)
-        {
+        for (Unload unloadable : unloadables) {
             unloadable.unload();
         }
 
@@ -414,9 +406,8 @@ public final class ConfigManager {
      * Registers an unloadable
      * Unloadables call unload() on plugin disable to cleanup registries
      */
-    public void registerUnloadable(Unload unload)
-    {
-        if(!unloadables.contains(unload))
+    public void registerUnloadable(Unload unload) {
+        if (!unloadables.contains(unload))
             unloadables.add(unload);
     }
 
@@ -424,24 +415,21 @@ public final class ConfigManager {
      * Registers an unloadable
      * Unloadables call unload() on plugin disable to cleanup registries
      */
-    public void registerUserFile(File userFile)
-    {
-        if(!userFiles.contains(userFile))
+    public void registerUserFile(File userFile) {
+        if (!userFiles.contains(userFile))
             userFiles.add(userFile);
     }
 
     /**
      * Registers bonus drops from several skill configs
      */
-    public void registerBonusDrops()
-    {
+    public void registerBonusDrops() {
         bonusDropManager.addToWhitelistByNameID(getConfigMining().getBonusDrops());
 //        bonusDropManager.addToWhitelistByNameID(configHerbalism.getBonusDrops());
 //        bonusDropManager.addToWhitelistByNameID(configWoodcutting.getBonusDrops());
     }
 
-    public void validateConfigs()
-    {
+    public void validateConfigs() {
 
     }
 
@@ -451,10 +439,10 @@ public final class ConfigManager {
 
     /**
      * Used to back up our zip files real easily
+     *
      * @return
      */
-    public ArrayList<File> getConfigFiles()
-    {
+    public ArrayList<File> getConfigFiles() {
         return userFiles;
     }
 
@@ -510,9 +498,13 @@ public final class ConfigManager {
         return experienceMapManager;
     }
 
-    public ConfigDatabase getConfigDatabase() { return configDatabase.getConfig(); }
+    public ConfigDatabase getConfigDatabase() {
+        return configDatabase.getConfig();
+    }
 
-    public ConfigScoreboard getConfigScoreboard() { return configScoreboard.getConfig(); }
+    public ConfigScoreboard getConfigScoreboard() {
+        return configScoreboard.getConfig();
+    }
 
     public ConfigLeveling getConfigLeveling() {
         return configLeveling.getConfig();
@@ -658,25 +650,22 @@ public final class ConfigManager {
      * Checks if this plugin is using retro mode
      * Retro mode is a 0-1000 skill system
      * Standard mode is scaled for 1-100
+     *
      * @return true if retro mode is enabled
      */
-    public boolean isRetroMode()
-    {
+    public boolean isRetroMode() {
         return getConfigLeveling().getConfigSectionLevelingGeneral().getConfigSectionLevelScaling().isRetroModeEnabled();
     }
 
-    public boolean isBonusDropsEnabled(Material material)
-    {
+    public boolean isBonusDropsEnabled(Material material) {
         return getBonusDropManager().isBonusDropWhitelisted(material);
     }
 
-    public double getSkillMaxBonusLevel(SubSkillType subSkillType)
-    {
+    public double getSkillMaxBonusLevel(SubSkillType subSkillType) {
         return skillPropertiesManager.getMaxBonusLevel(subSkillType);
     }
 
-    public double getSkillMaxChance(SubSkillType subSkillType)
-    {
+    public double getSkillMaxChance(SubSkillType subSkillType) {
         return skillPropertiesManager.getMaxChance(subSkillType);
     }
 

+ 4 - 5
src/main/java/com/gmail/nossr50/config/ConfigValidated.java

@@ -9,12 +9,11 @@ import java.io.File;
 public abstract class ConfigValidated extends Config implements UnsafeValueValidation {
     /**
      * @param pathToParentFolder File for the "parent" folder on disk
-     * @param relativePath Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
-     * @param mergeNewKeys if true, the users config will add keys found in the internal file that are missing from the users file during load
-     * @param copyDefaults if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
+     * @param relativePath       Path to the config relative to the "parent" folder, this should mirror internal structure of resource files
+     * @param mergeNewKeys       if true, the users config will add keys found in the internal file that are missing from the users file during load
+     * @param copyDefaults       if true, the users config file when it is first made will be a copy of an internal resource file of the same name and path
      */
-    public ConfigValidated(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys)
-    {
+    public ConfigValidated(String fileName, File pathToParentFolder, String relativePath, boolean generateDefaults, boolean mergeNewKeys, boolean copyDefaults, boolean removeOldKeys) {
         super(fileName, pathToParentFolder, relativePath, generateDefaults, mergeNewKeys, copyDefaults, removeOldKeys);
         validateEntries();
     }

+ 4 - 3
src/main/java/com/gmail/nossr50/config/CoreSkillsConfig.java

@@ -19,8 +19,9 @@ public class CoreSkillsConfig extends Config {
     /**
      * This grabs an instance of the class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated
@@ -55,7 +56,7 @@ public class CoreSkillsConfig extends Config {
      * @return true if subskill is enabled
      */
     public boolean isSkillEnabled(AbstractSubSkill abstractSubSkill) {
-        return getBooleanValue(StringUtils.getCapitalized(abstractSubSkill.getPrimarySkill().toString()),  abstractSubSkill.getConfigKeyName(),  ENABLED);
+        return getBooleanValue(StringUtils.getCapitalized(abstractSubSkill.getPrimarySkill().toString()), abstractSubSkill.getConfigKeyName(), ENABLED);
     }
 
     /**
@@ -65,6 +66,6 @@ public class CoreSkillsConfig extends Config {
      * @return true if enabled
      */
     public boolean isPrimarySkillEnabled(PrimarySkillType primarySkillType) {
-        return getBooleanValue(StringUtils.getCapitalized(primarySkillType.toString()),  ENABLED);
+        return getBooleanValue(StringUtils.getCapitalized(primarySkillType.toString()), ENABLED);
     }
 }

+ 2 - 0
src/main/java/com/gmail/nossr50/config/GenericCollectionContainer.java

@@ -4,11 +4,13 @@ import java.util.Collection;
 
 /**
  * Represents a class that contains a generic collection
+ *
  * @param <T>
  */
 public interface GenericCollectionContainer<T> {
     /**
      * Grab the collection held by this class
+     *
      * @return the collection held by this class
      */
     Collection<T> getLoadedCollection();

+ 2 - 1
src/main/java/com/gmail/nossr50/config/MainConfig.java

@@ -208,8 +208,9 @@ public class MainConfig extends ConfigValidated {
     /**
      * This grabs an instance of this config class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated

+ 2 - 1
src/main/java/com/gmail/nossr50/config/RankConfig.java

@@ -23,8 +23,9 @@ public class RankConfig extends ConfigValidated {
     /**
      * This grabs an instance of this config class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated

+ 4 - 5
src/main/java/com/gmail/nossr50/config/SkillConfigFactory.java

@@ -6,11 +6,10 @@ import com.gmail.nossr50.util.StringUtils;
 
 public class SkillConfigFactory {
 
-    protected static SerializedConfigLoader initSkillConfig(PrimarySkillType primarySkillType, Class<?> clazz)
-    {
+    protected static SerializedConfigLoader initSkillConfig(PrimarySkillType primarySkillType, Class<?> clazz) {
         return new SerializedConfigLoader(clazz,
-                        primarySkillType.toString().toLowerCase() + ".conf",
-                        StringUtils.getCapitalized(primarySkillType.toString()),
-                        null);
+                primarySkillType.toString().toLowerCase() + ".conf",
+                StringUtils.getCapitalized(primarySkillType.toString()),
+                null);
     }
 }

+ 6 - 12
src/main/java/com/gmail/nossr50/config/SkillPropertiesManager.java

@@ -14,37 +14,31 @@ public class SkillPropertiesManager {
     private HashMap<SubSkillType, Double> maxBonusLevelMap;
     private HashMap<SubSkillType, Double> maxBonusPercentage;
 
-    public SkillPropertiesManager()
-    {
+    public SkillPropertiesManager() {
         maxChanceMap = new HashMap<>();
         maxBonusLevelMap = new HashMap<>();
         maxBonusPercentage = new HashMap<>();
     }
 
-    public void registerRNG(SubSkillType subSkillType, ConfigSubSkillScalingRNG config)
-    {
+    public void registerRNG(SubSkillType subSkillType, ConfigSubSkillScalingRNG config) {
         maxChanceMap.put(subSkillType, config.getMaxChance());
         maxBonusLevelMap.put(subSkillType, config.getMaxBonusLevel());
     }
 
-    public double getMaxChance(SubSkillType subSkillType)
-    {
+    public double getMaxChance(SubSkillType subSkillType) {
         return maxChanceMap.get(subSkillType);
     }
 
-    public double getMaxBonusLevel(SubSkillType subSkillType)
-    {
+    public double getMaxBonusLevel(SubSkillType subSkillType) {
         return maxBonusLevelMap.get(subSkillType);
     }
 
-    public void fillRegisters()
-    {
+    public void fillRegisters() {
 
         fillRNGRegisters();
     }
 
-    private void fillRNGRegisters()
-    {
+    private void fillRNGRegisters() {
         //Acrobatics
         registerRNG(SubSkillType.ACROBATICS_DODGE, mcMMO.getConfigManager().getConfigAcrobatics().getDodge().getRNGSettings());
         registerRNG(SubSkillType.ACROBATICS_DODGE, mcMMO.getConfigManager().getConfigAcrobatics().getRoll().getRNGSettings());

+ 2 - 1
src/main/java/com/gmail/nossr50/config/SoundConfig.java

@@ -24,8 +24,9 @@ public class SoundConfig extends ConfigValidated {
     /**
      * This grabs an instance of this config class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated

+ 3 - 6
src/main/java/com/gmail/nossr50/config/UnsafeValueValidation.java

@@ -13,18 +13,15 @@ public interface UnsafeValueValidation {
     /**
      * Prints all errors found when validating the config
      */
-    default void validateEntries()
-    {
+    default void validateEntries() {
         /*
          * Print Errors about Keys
          */
 
         List<String> validKeyErrors = validateKeys(); // Validate Keys
 
-        if(validKeyErrors != null && validKeyErrors.size() > 0)
-        {
-            for(String error : validKeyErrors)
-            {
+        if (validKeyErrors != null && validKeyErrors.size() > 0) {
+            for (String error : validKeyErrors) {
                 mcMMO.p.getLogger().severe(error);
             }
         }

+ 1 - 0
src/main/java/com/gmail/nossr50/config/VersionedConfig.java

@@ -6,6 +6,7 @@ package com.gmail.nossr50.config;
 public interface VersionedConfig {
     /**
      * The version of this config
+     *
      * @return
      */
     double getConfigVersion();

+ 6 - 8
src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java

@@ -86,8 +86,9 @@ public class ExperienceConfig extends ConfigValidated {
     /**
      * This grabs an instance of this config class from the Config Manager
      * This method is deprecated and will be removed in the future
-     * @see mcMMO#getConfigManager()
+     *
      * @return the instance of this config
+     * @see mcMMO#getConfigManager()
      * @deprecated Please use mcMMO.getConfigManager() to grab a specific config instead
      */
     @Deprecated
@@ -168,9 +169,6 @@ public class ExperienceConfig extends ConfigValidated {
         return reason;
     }
 
-
-
-
     /*
      * FORMULA SETTINGS
      */
@@ -185,8 +183,7 @@ public class ExperienceConfig extends ConfigValidated {
         return getDoubleValue(EXPERIENCE_FORMULA, MULTIPLIER, GLOBAL);
     }
 
-    public void setGlobalXPMultiplier(double newXpMultiplier)
-    {
+    public void setGlobalXPMultiplier(double newXpMultiplier) {
         getUserRootNode().getNode(EXPERIENCE_FORMULA, MULTIPLIER, GLOBAL).setValue(newXpMultiplier);
     }
 
@@ -266,14 +263,15 @@ public class ExperienceConfig extends ConfigValidated {
 
     /**
      * Gets the raw XP given for breaking this block, this does not include modifiers
-     * @param skill The skill to give XP for
+     *
+     * @param skill     The skill to give XP for
      * @param blockType the type of block
      * @return the raw amount of XP for this block before modifiers
      */
     //public int getXp(PrimarySkillType skill, BlockType blockType) {
     public int getXp(PrimarySkillType skill, Material blockType) {
         //TODO: This is going to need to be changed, this code here is only placeholder
-        String[] path = new String[]{ EXPERIENCE, StringUtils.getCapitalized(skill.toString()), blockType.toString()};
+        String[] path = new String[]{EXPERIENCE, StringUtils.getCapitalized(skill.toString()), blockType.toString()};
         return getIntValue(path);
     }
 

+ 6 - 10
src/main/java/com/gmail/nossr50/config/hocon/HOCONUtil.java

@@ -4,14 +4,12 @@ import com.gmail.nossr50.util.StringUtils;
 
 public final class HOCONUtil {
 
-    public static String serializeENUMName(String hyphenedString)
-    {
+    public static String serializeENUMName(String hyphenedString) {
         String[] split = hyphenedString.split("_");
         StringBuilder formattedString = new StringBuilder();
 
-        for(int x = 0; x < split.length; x++)
-        {
-            if(x + 1 >= split.length)
+        for (int x = 0; x < split.length; x++) {
+            if (x + 1 >= split.length)
                 formattedString.append(StringUtils.getCapitalized(split[x]));
             else
                 formattedString.append(StringUtils.getCapitalized(split[x])).append('-');
@@ -20,14 +18,12 @@ public final class HOCONUtil {
         return formattedString.toString();
     }
 
-    public static String deserializeENUMName(String serializedName)
-    {
+    public static String deserializeENUMName(String serializedName) {
         String[] split = serializedName.split("-");
         StringBuilder formattedString = new StringBuilder();
 
-        for(int x = 0; x < split.length; x++)
-        {
-            if(x + 1 >= split.length)
+        for (int x = 0; x < split.length; x++) {
+            if (x + 1 >= split.length)
                 formattedString.append(split[x].toUpperCase());
             else
                 formattedString.append(split[x]).append('_');

+ 3 - 3
src/main/java/com/gmail/nossr50/config/hocon/RepairableSerializer.java

@@ -46,7 +46,8 @@ public class RepairableSerializer implements TypeSerializer<Repairable> {
         /* Repairable(Material itemMaterial, Material repairMaterial, int minimumQuantity, int minimumLevel, double xpMultiplier) */
 
         String item = value.getNode(ITEM).getValue(TypeToken.of(String.class));
-        List<String> repairItems = value.getNode(ITEMS_USED_TO_REPAIR).getValue(new TypeToken<List<String>>() {});
+        List<String> repairItems = value.getNode(ITEMS_USED_TO_REPAIR).getValue(new TypeToken<List<String>>() {
+        });
 
 
         /*String itemConstant = HOCONUtil.deserializeENUMName(value.getNode("Item").getString());
@@ -74,8 +75,7 @@ public class RepairableSerializer implements TypeSerializer<Repairable> {
         value.getNode(XP_MULTIPLIER).setValue(obj.getXpMultiplier());
     }
 
-    private Enum getEnum(String enumConstant, TypeToken<?> type) throws ObjectMappingException
-    {
+    private Enum getEnum(String enumConstant, TypeToken<?> type) throws ObjectMappingException {
         //noinspection RedundantCast
         Optional<Enum> ret = (Optional) EnumLookup.lookupEnum(type.getRawType().asSubclass(Enum.class),
                 enumConstant); // XXX: intellij says this cast is optional but it isnt

+ 1 - 2
src/main/java/com/gmail/nossr50/config/hocon/SalvageableSerializer.java

@@ -61,8 +61,7 @@ public class SalvageableSerializer implements TypeSerializer<Salvageable> {
         value.getNode(OVERRIDE_LEVEL_REQUIREMENT).setValue(obj.getMinimumLevel());
     }
 
-    private Enum getEnum(String enumConstant, TypeToken<?> type) throws ObjectMappingException
-    {
+    private Enum getEnum(String enumConstant, TypeToken<?> type) throws ObjectMappingException {
         //noinspection RedundantCast
         Optional<Enum> ret = (Optional) EnumLookup.lookupEnum(type.getRawType().asSubclass(Enum.class),
                 enumConstant); // XXX: intellij says this cast is optional but it isnt

+ 8 - 13
src/main/java/com/gmail/nossr50/config/hocon/SerializedConfigLoader.java

@@ -49,6 +49,7 @@ import java.util.Objects;
 
 /**
  * Handles loading serialized configs with configurate
+ *
  * @param <T> the class type of the config
  */
 public class SerializedConfigLoader<T> {
@@ -61,20 +62,15 @@ public class SerializedConfigLoader<T> {
             "\nOfficial mcMMO Discord - https://discord.gg/bJ7pFS9\n" +
             "\nYou can also consult the new official wiki" +
             "\nhttps://mcmmo.org/wiki - Keep in mind the wiki is a WIP and may not have information about everything in mcMMO!";
-
-    private ConfigurationOptions configurationOptions;
-    private CommentedConfigurationNode data;
-    private CommentedConfigurationNode fileData;
-
     private final String ROOT_NODE_ADDRESS;
-
     private final Path path;
-
     /**
      * The parent configuration - values are inherited from this
      */
     private final SerializedConfigLoader parent;
-
+    private ConfigurationOptions configurationOptions;
+    private CommentedConfigurationNode data;
+    private CommentedConfigurationNode fileData;
     /**
      * The loader (mapped to a file) used to read/write the config to disk
      */
@@ -110,13 +106,12 @@ public class SerializedConfigLoader<T> {
             reload();
             save();
         } catch (Exception e) {
-            mcMMO.p.getLogger().severe("Failed to initialize config - "+path.toString());
+            mcMMO.p.getLogger().severe("Failed to initialize config - " + path.toString());
             e.printStackTrace();
         }
     }
 
-    private Path getPathFromFileName(String fileName)
-    {
+    private Path getPathFromFileName(String fileName) {
         File configFile = new File(ConfigConstants.getConfigFolder(), fileName);
         return configFile.toPath();
     }
@@ -143,7 +138,7 @@ public class SerializedConfigLoader<T> {
             this.loader.save(saveNode);
             return true;
         } catch (IOException | ObjectMappingException e) {
-            mcMMO.p.getLogger().severe("Failed to save configuration - "+path.toString());
+            mcMMO.p.getLogger().severe("Failed to save configuration - " + path.toString());
             e.printStackTrace();
             return false;
         }
@@ -169,7 +164,7 @@ public class SerializedConfigLoader<T> {
             // populate the config object
             populateInstance();
         } catch (Exception e) {
-            mcMMO.p.getLogger().severe("Failed to load configuration - "+path.toString());
+            mcMMO.p.getLogger().severe("Failed to load configuration - " + path.toString());
             e.printStackTrace();
         }
     }

+ 4 - 5
src/main/java/com/gmail/nossr50/config/hocon/antiexploit/AntiExploit.java

@@ -5,18 +5,17 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 
 @ConfigSerializable
 public class AntiExploit {
+    public static final boolean SPAWNED_MOBS_DEFAULT = true;
     private static final boolean ENDERMEN_ENDERMITE_DEFAULT = true;
     private static final boolean PISTONS_MARK_BLOCKS_DEFAULT = true;
-    public static final boolean SPAWNED_MOBS_DEFAULT = true;
 
     /*
      * CONFIG NODES
      */
-
     @Setting(value = "Endermen-Endermite-Fix",
             comment = "Removes XP from Endermen that target endermite, this is a common exploit in The End because of how rapidly they can spawn." +
                     "\nIt is recommended that you leave this on as it allows players to easily gain massive amounts of combat XP" +
-                    "\nDefault value: "+ENDERMEN_ENDERMITE_DEFAULT)
+                    "\nDefault value: " + ENDERMEN_ENDERMITE_DEFAULT)
     private boolean endermenEndermiteFix = ENDERMEN_ENDERMITE_DEFAULT;
 
     @Setting(value = "Pistons-Mark-Blocks-As-Unnatural",
@@ -26,7 +25,7 @@ public class AntiExploit {
 
     @Setting(value = "Spawned-Mobs-Give-No-XP",
             comment = "Spawned mobs will not give players combat XP." +
-            "\nThis includes mobs spawned from a nether portal, mob spawner, or eggs." +
-            "\nThis will not include mobs spawned from commands, typically.")
+                    "\nThis includes mobs spawned from a nether portal, mob spawner, or eggs." +
+                    "\nThis will not include mobs spawned from commands, typically.")
     private boolean spawnedMobsGiveNoXP = SPAWNED_MOBS_DEFAULT;
 }

+ 4 - 4
src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java

@@ -18,7 +18,7 @@ public class ConfigSectionExploitAcrobatics {
                     "\nPlayers cannot gain XP from falling in the same location twice." +
                     "\nIt's best you do not raise this number unless you have some kind of god computer," +
                     "\n mcMMO processes the entire tracked location list anytime a player takes fall damage so the bigger this is the more expensive that calculation is." +
-                    "\nDefault value: "+ACROBATIC_LOCATION_LIMIT_DEFAULT)
+                    "\nDefault value: " + ACROBATIC_LOCATION_LIMIT_DEFAULT)
     private int acrobaticLocationLimit = ACROBATIC_LOCATION_LIMIT_DEFAULT;
 
     @Setting(value = "Prevent-Acrobatics-Farming",
@@ -26,16 +26,16 @@ public class ConfigSectionExploitAcrobatics {
                     "\nEnabled tracking player fall locations" +
                     "\nEnables tracking when a player last teleported" +
                     "\nEnables tracking when a player last respawned" +
-                    "\nDefault value: "+PREVENT_ACROBATICS_ABUSE_DEFAULT)
+                    "\nDefault value: " + PREVENT_ACROBATICS_ABUSE_DEFAULT)
     private boolean preventAcrobaticsAbuse = PREVENT_ACROBATICS_ABUSE_DEFAULT;
 
     @Setting(value = "No-XP-After-Teleporting-Cooldown-In-Seconds", comment = "Prevents XP gains for Acrobatics for a set period of time after teleporting." +
-            "\nDefault value: "+TELEPORT_COOLDOWN_DEFAULT)
+            "\nDefault value: " + TELEPORT_COOLDOWN_DEFAULT)
     private int teleportCooldownSeconds = TELEPORT_COOLDOWN_DEFAULT;
 
     @Setting(value = "Fall-Damage-XP-Gain-Cooldown-In-Seconds", comment = "Prevent players from gaining XP from fall damage if they had gained XP recently." +
             "\nWhen players take fall damage again within this cooldown period the length of the cooldown is increased to discourage automated Roll XP farming." +
-            "\nDefault value: "+ROLL_XP_GAIN_CD_DEFAULT)
+            "\nDefault value: " + ROLL_XP_GAIN_CD_DEFAULT)
     private int rollXPGainCooldownSeconds = ROLL_XP_GAIN_CD_DEFAULT;
 
     public int getRollXPGainCooldownSeconds() {

+ 6 - 7
src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitFishing.java

@@ -6,24 +6,23 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 @ConfigSerializable
 public class ConfigSectionExploitFishing {
 
-    private static final boolean PREVENT_FISHING_EXPLOITS_DEFAULT = true;
     public static final int OVER_FISHING_LIMIT_DEFAULT = 3;
     public static final boolean ADMINS_OVER_FISHING_DEFAULT = true;
     public static final float OVER_FISHING_SIZE = 1.0F;
     public static final int FISHING_ROD_SPAM_THRESHOLD_MILLISECONDS_DEFAULT = 200;
-
+    private static final boolean PREVENT_FISHING_EXPLOITS_DEFAULT = true;
     @Setting(value = "Prevent-Fishing-AFK-Farming",
             comment = "Prevents many methods for automatically farming Fishing XP." +
                     "\nSuch as farming in the same spot more than once." +
                     "\nSpam-click fishing." +
-                    "\nDefault value: "+PREVENT_FISHING_EXPLOITS_DEFAULT)
+                    "\nDefault value: " + PREVENT_FISHING_EXPLOITS_DEFAULT)
     private boolean preventFishingExploits = PREVENT_FISHING_EXPLOITS_DEFAULT;
 
     @Setting(value = "Overfishing-Limit", comment = "How many times a player can fish in the same spot before it becomes over-fished" +
             "\nOver fishing is in place to prevent 99% of AFK fishing from working." +
             "\nFishing in a new spot is all it takes to remove over-fishing from your previous location." +
             "\nOver-fishing is based on where your fishing bobber actually lands and catches fish, it has nothing to do with where you are standing." +
-            "\nDefault value: "+OVER_FISHING_LIMIT_DEFAULT)
+            "\nDefault value: " + OVER_FISHING_LIMIT_DEFAULT)
     private int overfishingLimit = OVER_FISHING_LIMIT_DEFAULT;
 
     @Setting(value = "Overfishing-Area-Size-Radius", comment = "Over-Fishing tracks where you've caught fish from by making a bounding box around where your fishing rod's bobber lands." +
@@ -32,18 +31,18 @@ public class ConfigSectionExploitFishing {
             "\nA value of 1.0 would result in a bounding box that is 2.0 units (blocks) in size" +
             "\nWhen you catch a new fish it makes a new bounding box at that location and checks to see if it overlaps with the bounding box of the last place you caught a fish," +
             "\n if they intersect then that increases your fish counter, if you are at your fishing limit then you get nothing." +
-            "\nDefault value: "+OVER_FISHING_SIZE)
+            "\nDefault value: " + OVER_FISHING_SIZE)
     private float overFishingAreaSize = OVER_FISHING_SIZE;
 
     @Setting(value = "Alert-Admins-To-Overfishing-Abuse", comment = "If someone is triggering over-fishing exploit detection too often, alert admins." +
             "\nThis will send a message to ops in game and to the console, and to anyone with the admin chat permission node." +
-            "\nDefault value: "+ADMINS_OVER_FISHING_DEFAULT)
+            "\nDefault value: " + ADMINS_OVER_FISHING_DEFAULT)
     private boolean alertAdminsOnOverFishing = ADMINS_OVER_FISHING_DEFAULT;
 
     @Setting(value = "Fishing-Rod-Spam-Threshold-In-Milliseconds", comment = "How many milliseconds in between casting the fishing rod before a player suffers from fatigue." +
             "\nFatigue causes a loss of 1 hunger and 5 durability damage to the currently held fishing rod." +
             "\nThis is to prevent exploits for fishing that involve rapid fire auto clickers." +
-            "\nDefault value: "+FISHING_ROD_SPAM_THRESHOLD_MILLISECONDS_DEFAULT)
+            "\nDefault value: " + FISHING_ROD_SPAM_THRESHOLD_MILLISECONDS_DEFAULT)
     private long fishingRodSpamMilliseconds = FISHING_ROD_SPAM_THRESHOLD_MILLISECONDS_DEFAULT;
 
     public long getFishingRodSpamMilliseconds() {

+ 12 - 13
src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionGeneral.java

@@ -6,39 +6,38 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 @ConfigSerializable
 public class ConfigSectionGeneral {
 
-    private static final boolean ENDERMEN_ENDERMITE_DEFAULT = true;
-    private static final boolean PISTONS_MARK_BLOCKS_DEFAULT = true;
     public static final boolean SPAWNED_MOBS_DEFAULT = true;
     public static final boolean TAMED_MOB_DEFAULT = true;
-
+    private static final boolean ENDERMEN_ENDERMITE_DEFAULT = true;
+    private static final boolean PISTONS_MARK_BLOCKS_DEFAULT = true;
     @Setting(value = "Endermen-Endermite-Fix",
             comment = "Removes XP from Endermen that target endermite, this is a common exploit in The End because of how rapidly they can spawn." +
                     "\nIt is recommended that you leave this on as it allows players to easily gain massive amounts of combat XP" +
-                    "\nDefault value: "+ENDERMEN_ENDERMITE_DEFAULT)
+                    "\nDefault value: " + ENDERMEN_ENDERMITE_DEFAULT)
     private boolean endermenEndermiteFix = ENDERMEN_ENDERMITE_DEFAULT;
 
     @Setting(value = "Pistons-Mark-Blocks-As-Unnatural",
             comment = "Unnatural blocks give no XP." +
                     "This helps prevent complex automated stone farms that enable auto clickers to gain XP passively." +
-                    "\nDefault value: "+PISTONS_MARK_BLOCKS_DEFAULT)
+                    "\nDefault value: " + PISTONS_MARK_BLOCKS_DEFAULT)
     private boolean pistonsMarkBlocksUnnatural = PISTONS_MARK_BLOCKS_DEFAULT;
 
     @Setting(value = "Spawned-Mobs-Have-Modified-XP-Values",
             comment =
                     "Spawned mobs will give different XP values than their naturally spawning counterparts" +
-                    "\nBy default, spawned mob XP is reduced to zero, but you could change it in the experience config to whatever you want." +
-                    "\nSpawned mobs include mobs spawned from a nether portal, mob spawner, or eggs." +
-                    "\nThis will not include mobs spawned from commands, typically." +
-                    "\nDefault value: "+SPAWNED_MOBS_DEFAULT)
+                            "\nBy default, spawned mob XP is reduced to zero, but you could change it in the experience config to whatever you want." +
+                            "\nSpawned mobs include mobs spawned from a nether portal, mob spawner, or eggs." +
+                            "\nThis will not include mobs spawned from commands, typically." +
+                            "\nDefault value: " + SPAWNED_MOBS_DEFAULT)
     private boolean markSpawnedMobs = SPAWNED_MOBS_DEFAULT;
 
     @Setting(value = "Tamed-Entities-Have-Modified-XP-Values",
             comment =
                     "Prevents tamed entities from giving normal combat XP when struck by players" +
-                    "\nBy default, combat XP from tamed mobs is reduced to zero, but you could change it in the experience config to whatever you want." +
-                    "\nIt's hard to imagine this being abused, but we disable it anyways." +
-                    "\nTamed entities get marked in the same way that spawned mobs do, so they are affected by the same XP modifiers." +
-            "\nDefault value: "+TAMED_MOB_DEFAULT)
+                            "\nBy default, combat XP from tamed mobs is reduced to zero, but you could change it in the experience config to whatever you want." +
+                            "\nIt's hard to imagine this being abused, but we disable it anyways." +
+                            "\nTamed entities get marked in the same way that spawned mobs do, so they are affected by the same XP modifiers." +
+                            "\nDefault value: " + TAMED_MOB_DEFAULT)
     private boolean preventTamedMobXp = TAMED_MOB_DEFAULT;
 
     public boolean getEndermenEndermiteFix() {

+ 2 - 2
src/main/java/com/gmail/nossr50/config/hocon/backup/ConfigAutomatedBackups.java

@@ -14,12 +14,12 @@ public class ConfigAutomatedBackups {
             "\nYou can find the backups in the following directory inside your mcMMO folder - \\mcMMO\\backup" +
             "\nAutomated backups are deleted regularly once they reach a certain age, see the other options in this config to change this." +
             "\nBackups are made whenever you start your server for the first time and on each reload of the mcMMO plugin" +
-            "\nDefault value: "+ZIP_BACKUPS_ENABLED_DEFAULT)
+            "\nDefault value: " + ZIP_BACKUPS_ENABLED_DEFAULT)
     private boolean zipBackupsEnabled = ZIP_BACKUPS_ENABLED_DEFAULT;
 
     @Setting(value = "Old-File-Age-Limit-In-Days", comment = "How many days should backups be kept in days?" +
             "\nBackups older than this are removed if the number of file backups is greater than \"Minimum-Backups\"." +
-            "\nDefault value: "+ BACKUP_DAY_LIMIT_DEFAULT)
+            "\nDefault value: " + BACKUP_DAY_LIMIT_DEFAULT)
     private int backupDayLimit = BACKUP_DAY_LIMIT_DEFAULT;
 
     public boolean isZipBackupsEnabled() {

+ 5 - 7
src/main/java/com/gmail/nossr50/config/hocon/commands/ConfigCommandsAdminChat.java

@@ -8,18 +8,16 @@ public class ConfigCommandsAdminChat {
 
     private static final String ADMIN_CHAT_PREFIX_DEFAULT = "&b[&f{0}&b]";
     private static final boolean USE_DISPLAY_NAMES_DEFAULT = true;
-
-    @Setting(value = "Admin-Chat-Prefix", comment = "Formatting use at the beginning of an admin chat message." +
-            "\nYou can use & color codes here or type stuff like [[RED]]." +
-            "\nDefault value: "+ADMIN_CHAT_PREFIX_DEFAULT)
-    private String adminChatPrefix = ADMIN_CHAT_PREFIX_DEFAULT;
-
     @Setting(value = "Whether or not to use Display Names for admin chat." +
             "\nDisplay names are the current visible name of a player in the scoreboard, chat, and so on." +
             "\nThese names are modified by mods and are not necessarily the same nickname that a player has associated with their account." +
             "\nIf you turn this off, mcMMO will use a players registered nickname with their Minecraft account instead." +
-            "\nDefault value: "+USE_DISPLAY_NAMES_DEFAULT)
+            "\nDefault value: " + USE_DISPLAY_NAMES_DEFAULT)
     public boolean useDisplayNames = USE_DISPLAY_NAMES_DEFAULT;
+    @Setting(value = "Admin-Chat-Prefix", comment = "Formatting use at the beginning of an admin chat message." +
+            "\nYou can use & color codes here or type stuff like [[RED]]." +
+            "\nDefault value: " + ADMIN_CHAT_PREFIX_DEFAULT)
+    private String adminChatPrefix = ADMIN_CHAT_PREFIX_DEFAULT;
 
     public String getAdminChatPrefix() {
         return adminChatPrefix;

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

@@ -13,17 +13,17 @@ public class ConfigCommandsInspect {
 
     @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)
+            "\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." +
             "Permission to bypass this limit - " + BYPASS_PERMISSION
-            +"\nDefault value: "+LIMIT_INSPECT_RANGE_DEFAULT)
+            + "\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." +
-            "\nDefault value: "+ALLOW_OFFLINE_INSPECTION_DEFAULT)
+            "\nDefault value: " + ALLOW_OFFLINE_INSPECTION_DEFAULT)
     private boolean allowInspectOnOfflinePlayers = ALLOW_OFFLINE_INSPECTION_DEFAULT;
 
     public double getInspectCommandMaxDistance() {

+ 1 - 1
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigDatabaseFlatFile.java

@@ -10,7 +10,7 @@ public class ConfigDatabaseFlatFile {
 
     @Setting(value = "Scoreboard-Leaderboard-Update-Interval", comment = "How often the scoreboard leaderboards will update." +
             "\nThis is an expensive operation, it is highly recommended to avoid doing this often." +
-            "\nDefault value: "+LEADERBOARD_SCOREBOARD_UPDATE_INTERVAL_MINUTES_DEFAULT)
+            "\nDefault value: " + LEADERBOARD_SCOREBOARD_UPDATE_INTERVAL_MINUTES_DEFAULT)
     private int leaderboardUpdateIntervalMinutes = LEADERBOARD_SCOREBOARD_UPDATE_INTERVAL_MINUTES_DEFAULT;
 
     public int getLeaderboardUpdateIntervalMinutes() {

+ 4 - 4
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionCleaning.java

@@ -19,26 +19,26 @@ public class ConfigSectionCleaning {
 
     @Setting(value = "Purge-Old-Users",
             comment = "Turn this on to enable automatic database pruning of old users." +
-                    "\nDefault value: "+PURGE_OLD_USERS)
+                    "\nDefault value: " + PURGE_OLD_USERS)
     private boolean purgeOldUsers = PURGE_OLD_USERS;
 
     @Setting(value = "Purge-Powerless-Users", comment = "Powerless users are players who have not" +
             " leveled up in a single skill." +
-            "\nDefault value: "+PURGE_POWERLESS_USERS)
+            "\nDefault value: " + PURGE_POWERLESS_USERS)
     private boolean purgePowerlessUsers = PURGE_POWERLESS_USERS;
 
     @Setting(value = "Only-Purge-At-Plugin-Startup",
             comment = "If set to true, then purging will only happen when the plugin first loads." +
                     "\nKeep in mind, this will trigger on reload as well." +
                     "\nThis purge is on a 2 second delay from plugin start-up and runs in an ASYNC thread." +
-                    "\nDefault value: "+ONLY_PURGE_AT_STARTUP)
+                    "\nDefault value: " + ONLY_PURGE_AT_STARTUP)
     private boolean onlyPurgeAtStartup = ONLY_PURGE_AT_STARTUP;
 
     @Setting(value = "Purge-Interval-In-Hours", comment = "How many hours between automatic purging?")
     private int purgeInterval = PURGE_INTERVAL_DEFAULT;
 
     @Setting(value = "Old-User-Cutoff-In-Months", comment = "Users who haven't connected in this many months will be purged" +
-            "\nDefault value: "+OLD_USER_CUTOFF_IN_MONTHS)
+            "\nDefault value: " + OLD_USER_CUTOFF_IN_MONTHS)
     private int oldUserCutoffMonths = OLD_USER_CUTOFF_IN_MONTHS;
 
     /*

+ 1 - 1
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionDatabaseGeneral.java

@@ -12,7 +12,7 @@ public class ConfigSectionDatabaseGeneral {
             "\nSaving the database is an expensive operation although it is done in an ASYNC thread." +
             "\nI wouldn't recommend setting this value lower than 10 minutes" +
             "\nKeep in mind if you properly shut down your server with a stop command mcMMO saves before your server shuts down." +
-            "\nDefault value: "+SAVE_INTERVAL_MINUTES_DEFAULT)
+            "\nDefault value: " + SAVE_INTERVAL_MINUTES_DEFAULT)
     private int saveIntervalMinutes = SAVE_INTERVAL_MINUTES_DEFAULT;
 
     public int getSaveIntervalMinutes() {

+ 3 - 3
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMaxConnections.java

@@ -15,13 +15,13 @@ public class ConfigSectionMaxConnections {
      * CONFIG NODES
      */
 
-    @Setting(value = "Misc-Connection-Limit", comment = "Default value: "+MISC_DEFAULT)
+    @Setting(value = "Misc-Connection-Limit", comment = "Default value: " + MISC_DEFAULT)
     private int misc = 30;
 
-    @Setting(value = "Load-Connection-Limit", comment = "Default value: "+LOAD_DEFAULT)
+    @Setting(value = "Load-Connection-Limit", comment = "Default value: " + LOAD_DEFAULT)
     private int load = 30;
 
-    @Setting(value = "Save-Connection-Limit", comment = "Default value: "+SAVE_DEFAULT)
+    @Setting(value = "Save-Connection-Limit", comment = "Default value: " + SAVE_DEFAULT)
     private int save = 30;
 
     /*

+ 3 - 3
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMaxPoolSize.java

@@ -15,13 +15,13 @@ public class ConfigSectionMaxPoolSize {
      * CONFIG NODES
      */
 
-    @Setting(value = "Misc-Pool", comment = "Default value: "+MISC_DEFAULT)
+    @Setting(value = "Misc-Pool", comment = "Default value: " + MISC_DEFAULT)
     private int misc = 10;
 
-    @Setting(value = "Load-Pool", comment = "Default value: "+LOAD_DEFAULT)
+    @Setting(value = "Load-Pool", comment = "Default value: " + LOAD_DEFAULT)
     private int load = 20;
 
-    @Setting(value = "Save-Pool", comment = "Default value: "+SAVE_DEFAULT)
+    @Setting(value = "Save-Pool", comment = "Default value: " + SAVE_DEFAULT)
     private int save = 20;
 
     /*

+ 5 - 9
src/main/java/com/gmail/nossr50/config/hocon/database/ConfigSectionMySQL.java

@@ -17,7 +17,7 @@ public class ConfigSectionMySQL {
     @Setting(value = "Use-MySQL", comment = "If set to true, mcMMO will use MySQL/MariaDB instead of FlatFile storage" +
             "\nIt is highly recommended to use a MySQL/MariaDB server over FlatFile," +
             " especially if the number of players on your Minecraft server is fairly high." +
-            "\nDefault value: "+USE_MYSQL_DEFAULT)
+            "\nDefault value: " + USE_MYSQL_DEFAULT)
     private boolean useMySQL = USE_MYSQL_DEFAULT;
 
     @Setting(value = "User", comment = "Your MySQL User Settings")
@@ -53,10 +53,8 @@ public class ConfigSectionMySQL {
      * HELPER METHODS
      */
 
-    public int getMaxPoolSize(PoolIdentifier poolIdentifier)
-    {
-        switch (poolIdentifier)
-        {
+    public int getMaxPoolSize(PoolIdentifier poolIdentifier) {
+        switch (poolIdentifier) {
             case LOAD:
                 return userConfigSectionServer.getConfigSectionMaxPoolSize().getLoad();
             case SAVE:
@@ -68,10 +66,8 @@ public class ConfigSectionMySQL {
         }
     }
 
-    public int getMaxConnections(PoolIdentifier poolIdentifier)
-    {
-        switch (poolIdentifier)
-        {
+    public int getMaxConnections(PoolIdentifier poolIdentifier) {
+        switch (poolIdentifier) {
             case LOAD:
                 return userConfigSectionServer.getConfigSectionMaxConnections().getLoad();
             case SAVE:

+ 6 - 6
src/main/java/com/gmail/nossr50/config/hocon/database/UserConfigSectionServer.java

@@ -15,20 +15,20 @@ public class UserConfigSectionServer {
      * CONFIG NODES
      */
 
-    @Setting(value = "Use-SSL", comment =   "Enables SSL for MySQL/MariaDB connections." +
-                                            "\nIf your SQL server supports SSL, it is recommended to have it on but not necessary." +
-                                            "\nIf you run into any issues involving SSL, its best to just turn this off." +
-            "\nDefault value: "+USE_SSL_DEFAULT)
+    @Setting(value = "Use-SSL", comment = "Enables SSL for MySQL/MariaDB connections." +
+            "\nIf your SQL server supports SSL, it is recommended to have it on but not necessary." +
+            "\nIf you run into any issues involving SSL, its best to just turn this off." +
+            "\nDefault value: " + USE_SSL_DEFAULT)
     private boolean useSSL = USE_SSL_DEFAULT;
 
     @Setting(value = "Server-Port", comment = "Your MySQL/MariaDB server port" +
             "\nThe default port is typically 3306 for MySQL, but every server configuration is different!" +
-            "\nDefault value: "+SERVER_PORT_DEFAULT)
+            "\nDefault value: " + SERVER_PORT_DEFAULT)
     private int serverPort = SERVER_PORT_DEFAULT;
 
     @Setting(value = "Server-Address", comment = "The address for your MySQL/MariaDB server" +
             "If the MySQL server is hosted on the same machine, you can use the localhost alias" +
-            "\nDefault value: "+SERVER_ADDRESS_DEFAULT)
+            "\nDefault value: " + SERVER_ADDRESS_DEFAULT)
     private String serverAddress = SERVER_ADDRESS_DEFAULT;
 
     @Setting(value = "Max-Connections", comment = "This setting is the max simultaneous MySQL/MariaDB connections allowed at a time." +

+ 3 - 3
src/main/java/com/gmail/nossr50/config/hocon/donation/ConfigAuthorAdvertisements.java

@@ -14,13 +14,13 @@ public class ConfigAuthorAdvertisements {
             comment = "Shows donation info in various mcMMO commands." +
                     "\nSuch as a paypal link for the author on the /mcmmo command" +
                     "\nSupport through donations helps keep mcMMO development going." +
-                    "\nDefault value: "+ SHOW_DONATION_DEFAULT)
+                    "\nDefault value: " + SHOW_DONATION_DEFAULT)
     private boolean showDonationInfo = SHOW_DONATION_DEFAULT;
 
     @Setting(value = "Show-Patreon-Links",
             comment = "Shows patreon links for the mcMMO author in various mcMMO commands." +
                     "\nSupport through Patreon helps keep mcMMO development going" +
-                    "\nDefault value: "+SHOW_PATREON_DEFAULT)
+                    "\nDefault value: " + SHOW_PATREON_DEFAULT)
     private boolean showPatreonInfo = SHOW_PATREON_DEFAULT;
 
     @Setting(value = "Show-Website-Links", comment = "Allows links to various affiliated websites for mcMMO." +
@@ -31,7 +31,7 @@ public class ConfigAuthorAdvertisements {
             "\nThe mcMMO authors Patreon" +
             "\nThe Official mcMMO Spigot Listing" +
             "\nThe Official translation website for mcMMO" +
-            "\nDefault value: "+SHOW_WEBSITE_LINKS_DEFAULT)
+            "\nDefault value: " + SHOW_WEBSITE_LINKS_DEFAULT)
     private boolean showWebsiteLinks = SHOW_WEBSITE_LINKS_DEFAULT;
 
     public boolean isShowDonationInfo() {

+ 4 - 4
src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceAcrobatics.java

@@ -23,7 +23,7 @@ public class ConfigExperienceAcrobatics {
 
     @Setting(value = "Feather-Fall-XP-Multiplier", comment = "Feather Fall grants bonus XP to fall related XP gains." +
             "\nThis value is multiplied against your XP to give the bonus." +
-            "\nDefault value: "+FEATHER_FALL_MULTIPLIER_DEFAULT)
+            "\nDefault value: " + FEATHER_FALL_MULTIPLIER_DEFAULT)
     private Double featherFallMultiplier = FEATHER_FALL_MULTIPLIER_DEFAULT;
 
     public HashMap<String, Integer> getAcrobaticsXPMap() {
@@ -34,15 +34,15 @@ public class ConfigExperienceAcrobatics {
         return featherFallMultiplier;
     }
 
-    public int getDodgeXP(){
+    public int getDodgeXP() {
         return acrobaticsXPMap.get("Dodge");
     }
 
-    public int getRollXP(){
+    public int getRollXP() {
         return acrobaticsXPMap.get("Roll");
     }
 
-    public int getFallXP(){
+    public int getFallXP() {
         return acrobaticsXPMap.get("Fall");
     }
 

+ 11 - 17
src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceAlchemy.java

@@ -11,11 +11,11 @@ public class ConfigExperienceAlchemy {
     private final static HashMap<String, Integer> ALCHEMY_DEFAULT_XP_MAP;
 
     static {
-       ALCHEMY_DEFAULT_XP_MAP = new HashMap<>();
-       ALCHEMY_DEFAULT_XP_MAP.put("Stage-One-Potion", 15);
-       ALCHEMY_DEFAULT_XP_MAP.put("Stage-Two-Potion", 30);
-       ALCHEMY_DEFAULT_XP_MAP.put("Stage-Three-Potion", 60);
-       ALCHEMY_DEFAULT_XP_MAP.put("Stage-Four-Potion", 120);
+        ALCHEMY_DEFAULT_XP_MAP = new HashMap<>();
+        ALCHEMY_DEFAULT_XP_MAP.put("Stage-One-Potion", 15);
+        ALCHEMY_DEFAULT_XP_MAP.put("Stage-Two-Potion", 30);
+        ALCHEMY_DEFAULT_XP_MAP.put("Stage-Three-Potion", 60);
+        ALCHEMY_DEFAULT_XP_MAP.put("Stage-Four-Potion", 120);
     }
 
     @Setting(value = "Alchemy-Experience-Values", comment = "Experience values for alchemy.")
@@ -26,23 +26,19 @@ public class ConfigExperienceAlchemy {
         return alchemyXPMap;
     }
 
-    public int getStageOnePotionXP()
-    {
+    public int getStageOnePotionXP() {
         return alchemyXPMap.get("Stage-One-Potion");
     }
 
-    public int getStageTwoPotionXP()
-    {
+    public int getStageTwoPotionXP() {
         return alchemyXPMap.get("Stage-Two-Potion");
     }
 
-    public int getStageThreePotionXP()
-    {
+    public int getStageThreePotionXP() {
         return alchemyXPMap.get("Stage-Three-Potion");
     }
 
-    public int getStageFourPotionXP()
-    {
+    public int getStageFourPotionXP() {
         return alchemyXPMap.get("Stage-Four-Potion");
     }
 
@@ -52,10 +48,8 @@ public class ConfigExperienceAlchemy {
         return 0;
     }*/
 
-    public int getPotionXPByStage(int potionStage)
-    {
-        switch(potionStage)
-        {
+    public int getPotionXPByStage(int potionStage) {
+        switch (potionStage) {
             case 1:
                 return getStageOnePotionXP();
             case 2:

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно