Browse Source

Merge branch 'master' of https://github.com/mcMMO-Dev/mcMMO into commandsonlevelup

nossr50 3 weeks ago
parent
commit
0af8b2c41d
100 changed files with 1506 additions and 9469 deletions
  1. 3 3
      .github/workflows/maven.yml
  2. 519 16
      Changelog.txt
  3. 25 13
      README.md
  4. 0 439
      extras/mods/1.6.x/LOTR.armor.yml
  5. 0 211
      extras/mods/1.6.x/LOTR.blocks.yml
  6. 0 700
      extras/mods/1.6.x/LOTR.tools.yml
  7. 0 14
      extras/mods/1.6.x/advancedgenetics.tools.yml
  8. 0 9
      extras/mods/1.6.x/appliedenergistics.blocks.yml
  9. 0 65
      extras/mods/1.6.x/appliedenergistics.tools.yml
  10. 0 9
      extras/mods/1.6.x/bigreactors.blocks.yml
  11. 0 77
      extras/mods/1.6.x/biomesoplenty.armor.yml
  12. 0 44
      extras/mods/1.6.x/biomesoplenty.blocks.yml
  13. 0 121
      extras/mods/1.6.x/biomesoplenty.tools.yml
  14. 0 31
      extras/mods/1.6.x/emasher.armor.yml
  15. 0 44
      extras/mods/1.6.x/emasher.blocks.yml
  16. 0 166
      extras/mods/1.6.x/extrabiomesxl.blocks.yml
  17. 0 54
      extras/mods/1.6.x/extrautilities.tools.yml
  18. 0 9
      extras/mods/1.6.x/factorization.blocks.yml
  19. 0 19
      extras/mods/1.6.x/forestry.blocks.yml
  20. 0 27
      extras/mods/1.6.x/forestry.tools.yml
  21. 0 71
      extras/mods/1.6.x/galacticraft.armor.yml
  22. 0 98
      extras/mods/1.6.x/galacticraft.blocks.yml
  23. 0 123
      extras/mods/1.6.x/galacticraft.tools.yml
  24. 0 1018
      extras/mods/1.6.x/metallurgy3.armor.yml
  25. 0 185
      extras/mods/1.6.x/metallurgy3.blocks.yml
  26. 0 1789
      extras/mods/1.6.x/metallurgy3.tools.yml
  27. 0 11
      extras/mods/1.6.x/minefactoryreloaded.armor.yml
  28. 0 41
      extras/mods/1.6.x/natura.armor.yml
  29. 0 272
      extras/mods/1.6.x/natura.tools.yml
  30. 0 29
      extras/mods/1.6.x/projectred.blocks.yml
  31. 0 176
      extras/mods/1.6.x/projectred.tools.yml
  32. 0 49
      extras/mods/1.6.x/railcraft.armor.yml
  33. 0 103
      extras/mods/1.6.x/railcraft.blocks.yml
  34. 0 66
      extras/mods/1.6.x/railcraft.tools.yml
  35. 0 543
      extras/mods/1.6.x/simcraft.blocks.yml
  36. 0 61
      extras/mods/1.6.x/simcraft.tools.yml
  37. 0 9
      extras/mods/1.6.x/stargatetech2.blocks.yml
  38. 0 41
      extras/mods/1.6.x/thermalexpansion.armor.yml
  39. 0 29
      extras/mods/1.6.x/thermalexpansion.blocks.yml
  40. 0 66
      extras/mods/1.6.x/thermalexpansion.tools.yml
  41. 0 74
      extras/mods/1.6.x/tinkersconstruct.armor.yml
  42. 0 55
      extras/mods/1.6.x/tinkersconstruct.blocks.yml
  43. 0 149
      extras/mods/1.6.x/tinkersconstruct.tools.yml
  44. 0 141
      extras/mods/1.6.x/twilightforest.armor.yml
  45. 0 117
      extras/mods/1.6.x/twilightforest.blocks.yml
  46. 0 181
      extras/mods/1.6.x/twilightforest.tools.yml
  47. 0 171
      extras/mods/1.6.x/underground_biomes.blocks.yml
  48. 0 132
      extras/mods/1.7.x/twilightforest.armor.yml
  49. 0 116
      extras/mods/1.7.x/twilightforest.blocks.yml
  50. 0 152
      extras/mods/1.7.x/twilightforest.entities.yml
  51. 0 184
      extras/mods/1.7.x/twilightforest.tools.yml
  52. 0 60
      extras/repair.chain.yml
  53. 101 51
      pom.xml
  54. 6 7
      src/main/java/com/gmail/nossr50/api/AbilityAPI.java
  55. 10 61
      src/main/java/com/gmail/nossr50/api/ChatAPI.java
  56. 6 2
      src/main/java/com/gmail/nossr50/api/DatabaseAPI.java
  57. 186 186
      src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
  58. 89 37
      src/main/java/com/gmail/nossr50/api/PartyAPI.java
  59. 8 14
      src/main/java/com/gmail/nossr50/api/SkillAPI.java
  60. 2 0
      src/main/java/com/gmail/nossr50/api/exceptions/IncompleteNamespacedKeyRegister.java
  61. 3 0
      src/main/java/com/gmail/nossr50/api/exceptions/InvalidFormulaTypeException.java
  62. 3 0
      src/main/java/com/gmail/nossr50/api/exceptions/InvalidPlayerException.java
  63. 3 0
      src/main/java/com/gmail/nossr50/api/exceptions/InvalidSkillException.java
  64. 3 0
      src/main/java/com/gmail/nossr50/api/exceptions/InvalidXPGainReasonException.java
  65. 4 1
      src/main/java/com/gmail/nossr50/api/exceptions/McMMOPlayerNotFoundException.java
  66. 52 33
      src/main/java/com/gmail/nossr50/chat/ChatManager.java
  67. 9 8
      src/main/java/com/gmail/nossr50/chat/SamePartyPredicate.java
  68. 33 24
      src/main/java/com/gmail/nossr50/chat/author/AbstractPlayerAuthor.java
  69. 4 3
      src/main/java/com/gmail/nossr50/chat/author/Author.java
  70. 1 2
      src/main/java/com/gmail/nossr50/chat/author/ConsoleAuthor.java
  71. 24 14
      src/main/java/com/gmail/nossr50/chat/mailer/AdminChatMailer.java
  72. 1 0
      src/main/java/com/gmail/nossr50/chat/mailer/ChatMailer.java
  73. 26 11
      src/main/java/com/gmail/nossr50/chat/mailer/PartyChatMailer.java
  74. 19 13
      src/main/java/com/gmail/nossr50/chat/message/AbstractChatMessage.java
  75. 3 1
      src/main/java/com/gmail/nossr50/chat/message/AdminChatMessage.java
  76. 20 18
      src/main/java/com/gmail/nossr50/chat/message/ChatMessage.java
  77. 30 14
      src/main/java/com/gmail/nossr50/chat/message/PartyChatMessage.java
  78. 50 14
      src/main/java/com/gmail/nossr50/commands/CommandManager.java
  79. 0 336
      src/main/java/com/gmail/nossr50/commands/McImportCommand.java
  80. 4 3
      src/main/java/com/gmail/nossr50/commands/McabilityCommand.java
  81. 17 11
      src/main/java/com/gmail/nossr50/commands/McconvertCommand.java
  82. 4 3
      src/main/java/com/gmail/nossr50/commands/McgodCommand.java
  83. 28 21
      src/main/java/com/gmail/nossr50/commands/McmmoCommand.java
  84. 10 8
      src/main/java/com/gmail/nossr50/commands/McnotifyCommand.java
  85. 6 6
      src/main/java/com/gmail/nossr50/commands/McrefreshCommand.java
  86. 12 9
      src/main/java/com/gmail/nossr50/commands/McscoreboardCommand.java
  87. 16 11
      src/main/java/com/gmail/nossr50/commands/ToggleCommand.java
  88. 36 32
      src/main/java/com/gmail/nossr50/commands/XprateCommand.java
  89. 5 3
      src/main/java/com/gmail/nossr50/commands/admin/CompatibilityCommand.java
  90. 0 57
      src/main/java/com/gmail/nossr50/commands/admin/DropTreasureCommand.java
  91. 3 1
      src/main/java/com/gmail/nossr50/commands/admin/McmmoReloadLocaleCommand.java
  92. 8 5
      src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java
  93. 14 9
      src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java
  94. 5 3
      src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java
  95. 24 16
      src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java
  96. 30 11
      src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java
  97. 5 4
      src/main/java/com/gmail/nossr50/commands/database/McpurgeCommand.java
  98. 13 9
      src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java
  99. 7 5
      src/main/java/com/gmail/nossr50/commands/database/MmoshowdbCommand.java
  100. 16 9
      src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java

+ 3 - 3
.github/workflows/maven.yml

@@ -29,11 +29,11 @@ jobs:
 
 
     # 1. Check out the current working tree
     # 1. Check out the current working tree
     - name: Checkout repository
     - name: Checkout repository
-      uses: actions/checkout@v2
+      uses: actions/checkout@v4
 
 
     # 2. Setup Java 17 JDK (Adopt)
     # 2. Setup Java 17 JDK (Adopt)
     - name: Java 17 setup
     - name: Java 17 setup
-      uses: actions/setup-java@v2
+      uses: actions/setup-java@v4
       with:
       with:
         distribution: 'adopt'
         distribution: 'adopt'
         java-package: jdk
         java-package: jdk
@@ -41,7 +41,7 @@ jobs:
 
 
     # 3. Setup local Maven package cache to speed up building
     # 3. Setup local Maven package cache to speed up building
     - name: Cache Maven packages
     - name: Cache Maven packages
-      uses: actions/cache@v2
+      uses: actions/cache@v4
       with:
       with:
         path: ~/.m2
         path: ~/.m2
         key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
         key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}

+ 519 - 16
Changelog.txt

@@ -1,3 +1,506 @@
+Version 2.2.041
+    Fixed buckets being consumed by furnaces (thanks RunqRun)
+    Fixed Repair stripping unsafe enchantments from items (thanks Techirion)
+    Fixed IronGolem causing cast exceptions in rare cases (thanks Techirion)
+
+Version 2.2.040
+    Fixed hover component and action bar messages not working for 1.21.6 and 1.21.7
+    Fixed bug where entries of mctop could be duplicated when using FlatFile
+    Fixed bug where a party leader could leave a party and the party would be left without a party leader
+    Fixed a bug where EcoEnchants and similar plugins could cause an infinite loop within mcMMO during TreeFeller and other abilities
+    Added 'Happy_Ghast' to experience.yml for combat XP
+    Added 'Ghastling' to experience.yml for combat XP
+    Updated Japanese (ja_JP) translation (Thanks ryota-abe)
+    Updated Simplified Chinese (zh_CN) locale (Thanks GhostDC)
+
+Version 2.2.039
+    Added StackOverflow safeguards for abilities dealing damage in mcMMO
+    Improved compatibility with MythicMobs/ModelEngine
+    Improved compatibility with AdvancedEnchantments
+
+Version 2.2.038
+    Fix potion match failing for non-english locales
+    FoliaLib Performance improvements (thanks SirSalad)
+    Fixed situations where Rupture could never end which affected server performance
+
+Version 2.2.037
+    Fixed bug where Alchemy was not matching potions correctly and producing incorrect results (Thanks TheBentoBox)
+
+Version 2.2.036
+    Fixed a bug where Chimaera Wing could cause an exception when used
+    Fixed bug where Mob Spawners could drop in Blast Mining (thanks TomBock)
+    Fixed Spectral Arrows not granting XP for Archery or Crossbows (thanks broccolai)
+    Fixed bug where Trickshot arrows would lose their potion or custom effects
+    Added locale strings for /mcmmo help command (thanks Griffeng)
+
+Version 2.2.035
+    Support for new additions from Minecraft 1.21.5
+    Fixed bug where Blast Mining would not drop deep slate
+    Swords subskill Stab is now configurable in advanced.yml
+    Added 'Skills.Swords.Stab.Base_Damage' to advanced.yml
+    Added 'Skills.Swords.Stab.Per_Rank_Multiplier' to advanced.yml
+    Added 'Bush' to experience.yml for Herbalism
+    Added 'Bush' to config.yml Bonus Drops for Herbalism
+    Added 'Cactus_Flower' to experience.yml for Herbalism
+    Added 'Cactus_Flower' to config.yml Bonus Drops for Herbalism
+    Added 'Firefly_Bush' to experience.yml for Herbalism
+    Added 'Firefly_Bush' to config.yml Bonus Drops for Herbalism
+    Added 'Leaf_Litter' to experience.yml for Herbalism
+    Added 'Leaf_Litter' to config.yml Bonus Drops for Herbalism
+    Added 'Short_Dry_Grass' to experience.yml for Herbalism
+    Added 'Short_Dry_Grass' to config.yml Bonus Drops for Herbalism
+    Added 'Tall_Dry_Grass' to experience.yml for Herbalism
+    Added 'Tall_Dry_Grass' to config.yml Bonus Drops for Herbalism
+    Added 'Wildflowers' to experience.yml for Herbalism
+    Added 'Wildflowers' to config.yml Bonus Drops for Herbalism
+
+
+    NOTES:
+    The mob variants will use the "base" mob definition for values for now, such a a warm chicken using chicken values from experience.yml
+    The new config settings will be added automatically to advanced.yml
+
+Version 2.2.034
+    Fixed bug where mcMMO would drop items in such a way that they get stuck in an adjacent block and float to the surface
+    Fixed a rare edge case where null entities during chunk unload would cause a NullPointerException and potentially lead to server instability
+    Fixed bug where arrow would award archery xp after a crossbow trickshot bounce
+
+Version 2.2.033
+    Added Breeze_Rod entries to potions.yml for Awkward potion (see notes)
+    Added missing TURTLE_HELMET entry to potions.yml for Tier 1 ingredients
+    Added missing Wind Charging potion entries to potions.yml (see notes)
+    Fixed bug where mcMMO would attempt to load potions that required ingredients or effects from newer versions of Minecraft
+    mcMMO is a little more specific during start up of how many potions it loaded, it will now report on incompatible potions from being on an older game version.
+
+    NOTES:
+    You will have to update your potions.yml manually to receive these changes, it is highly recommended that if you haven't customized this file that you simply just delete it, mcMMO will generate a new one on the next start up and it will contain all the missing entries.
+    If you have customized this file, you can find the "default" version of this file here on the mcMMO github repo: https://github.com/mcMMO-Dev/mcMMO/blob/master/src/main/resources/potions.yml
+    You can use this file to compare it to your own and make the manual changes needed to get the new entries.
+    After making the changes to potions.yml (either via deleting it or not...) mcMMO should now recognize the Wind Charging potion and the Awkward potion created from Breeze Rods
+
+Version 2.2.032
+    Fixed bug where Roll would throw exceptions with certain CMI interactions
+    Blast Mining no longer drops infested block variants
+    Reduced bonus drops on Blast Mining and randomized results (see notes)
+    Added Beetroot to experience.yml for Herbalism
+    Added Open_Eyeblossom to experience.yml for Herbalism
+    Addeed Open_Eyeblossom to config.yml Bonus Drops for Herbalism
+    Added Closed_Eyeblossom to experience.yml for Herbalism
+    Addeed Closed_Eyeblossom to config.yml Bonus Drops for Herbalism
+
+    NOTES:
+    A balance pass for Blast Mining is coming, but for now, I've reduced the total bonus drops and clamped the yield ceiling as Blast Mining is a bit too good.
+
+Version 2.2.031
+    Fixed potential NPE when player or blockstate is null for Inventory events on Furnaces
+    Fixed bug where en_us locale was being set system-wide (thanks BlvckBytes)
+    Fixed bug where Decimal format would throw exception on non en_us systems (thanks BlvckBytes)
+    (API) Added McMMOPlayerTameEntityEvent event (thanks Warriorrr)
+
+Version 2.2.030
+    Fixed bug where rupture task could cause an exception (Thanks Wariorrrr)
+    Fixed bug where Smelting permission was needed for Alchemy XP gain
+    Fixed material based salvage permissions not functioning (Thanks Momshroom)
+
+Version 2.2.029
+    Fixed bug where block checks at world height would throw IndexOutOfBounds exceptions
+    Added Eyeblossom to experience.yml for Herbalism xp
+    Added Bonus_Drops.Herbalism.Eyeblossom to config.yml to enable double/triple drops for Eyeblossom
+    Added Pale_Hanging_Moss to experience.yml for Herbalism xp
+    Added Pale_Moss_Block to experience.yml for Herbalism xp
+    Added Pale_Moss_Carpet to experience.yml for Herbalism xp
+    Added Pale_Oak_Log to experience.yml for Woodcutting xp
+    Added Pale_Oak_Wood to experience.yml for Woodcutting xp
+    Added Stripped_Pale_Oak_Log to experience.yml for Woodcutting xp
+    Added Stripped_Pale_Oak_Wood to experience.yml for Woodcutting xp
+    Added Bonus_Drops.Woodcutting.Pale_Oak_Wood to config.yml to enable double/triple drops for Pale Oak Wood
+    Added Bonus_Drops.Woodcutting.Pale_Oak_Log to config.yml to enable double/triple drops for Pale Oak Log
+    Temporarily disabled the party item share functionality until it is fixed or potentially removed (see notes)
+
+    Notes:
+    This update adds support for the new stuff added by the "The Garden Awakens" Minecraft Update
+    I noticed some issues with the party item share feature, so I've temporarily disabled it until those issues are addressed.
+    I'm not even sure people like or dislike this feature, I'm personally not a fan.. I'd like to hear what you guys think.
+
+Version 2.2.028
+    Fixed stack overflow during ChunkUnloadEvent
+    Fixed a bug where you had to wait to summon another COTW summon if one or more of them had died or otherwise expired before their time limit
+    McMMOItemSpawnEvent#setItemStack being ignored (thanks galacticwarrior9)
+    (API) Added McMMOPlayerMasterAnglerEvent (thanks bobcat4848)
+
+Version 2.2.027
+    Added Tridents / Crossbows to salvage.vanilla.yml config (see notes)
+    Fixed an issue where Folia could have all of its threads lock up effectively killing the server
+    Fixed concurrency issue with Folia regarding locale strings
+    Fixed concurrency issue with Folia regarding COTW summons
+    Updated 'Salvage.SubSkill.ScrapCollector.Stat' to no longer mention luck being involved
+    The amount of materials from salvage are no longer luck-based, you will get a deterministic amount based on damage to the item.
+    Fixed Ricocheted arrows losing some data after a ricochet
+    Changed color of locale strings for 'Repair.Listener.Anvil' to be easier to read
+    Changed color of locale strings for 'Salvage.Listener.Anvil' to be easier to read
+
+    NOTES:
+    Tridents and Crossbows are now in the salvage.vanilla.yml config, you will need to either delete this config file to regenerate it or add the entries manually.
+    You can check the default config file after running this mcMMO update at least once in the defaults folder at plugins\mcMMO\defaults to see what you would need to add if you want to take the manual approach
+
+Version 2.2.026
+    Fixed NullPointerException on ChunkUnloadEvent
+
+Version 2.2.025
+    Fixed NullPointerException spam when processing XP for child skills
+
+Version 2.2.024
+    Fixed errors when Fishing or using Shake ability
+    Significant optimizations made to reading new chunks for mcMMO
+    Significant optimizations to most block interactions in mcMMO code
+    Fixed a horrendous edge case where Tree Feller could cause a lot of lag
+
+    Notes:
+    Part of this update focused on optimization, there's improvements of around 30% in CPU time for most code involving block interactions in mcMMO, which happens to be most code in mcMMO.
+    One of the optimizations made in this update removes an edge case where Tree Feller could cause a lot of lag, but the optimizations really are across the board in regards to any abilities that interact with blocks.
+
+Version 2.2.023
+    Compatibility with Minecraft 1.21.3
+    (API) add causingPlayer to McMMOReplaceVanillaTreasureEvent and update Fish Event to use it (thanks bobcat4848 and Jacob Cuomo)
+
+    Notes:
+    Tested this version of mcMMO against 1.21.3, 1.21.1, and 1.19.4, which should be full coverage for all the changes, but it is possible you will run into things I didn't catch.
+    Please report any errors or bugs to GitHub if you find them.
+
+Version 2.2.022
+    Fixed a bug where Roll was always reducing damage (thanks Ineusia)
+    Fix COTW errors on older versions (thanks Warriorrrr)
+    Fixed slimes spawning from slime division not inheriting tags. (thanks Ineusia)
+
+Version 2.2.021
+    Fixed issue where Roll wasn't reducing as much damage as it should have been (thanks Ineusia)
+    Updated locale_es (thanks Devilcasters)
+    Updated locale_lt_LT (thanks tautuxs)
+
+Version 2.2.020
+    (Codebase) Reworked Roll implementation (See notes)
+    (Codebase) Added unit test coverage for Roll
+    Fixed Alchemy error spam in mcMMO potion matching logic (see notes)
+    Fixed Alchemy NPE when brewing finishes
+    Fixed a bug where Roll was modifying damage unnecessarily
+    Fixed blast mining trying to drop non-items (thanks IAISI)
+
+    NOTES:
+    I'll need to rework Alchemy config logic a bit further to address some issues I've found, for now mcMMO will ignore harmless matching errors in the potion matching logic.
+    The code for Roll was a bit of a mess, I've rewritten a good chunk of it and added some unit test coverage.
+    I will likely put out another update for Acrobatics in general, as the code for Acrobatics is whack.
+    This would be a good time to suggest changes to Acrobatics on discord.
+
+Version 2.2.019
+    Optimized Alchemy code (thanks MrPowerGamerBR)
+    Fixed an exception that could occur when shooting entities through worlds (thanks Wariorrrr)
+    Fixes to en_US locale (thanks BlockMasters617)
+    Maces, Crossbows, and Tridents skill commands don't warn you that they are work in progress anymore.
+    Fixed IllegalArgumentException when Rupture would trigger on an entity with illegal state
+
+    NOTES:
+    Maces, Crossbows, and Tridents are still in development, the change to remove the message from the skill command was to reduce the visual noise.
+
+Version 2.2.018
+    Fixed a probability bug where certain skills would max out in chance to succeed well before they were supposed to (such as Dodge)
+    Blast Mining will no longer drop mob spawners (see notes)
+    (Codebase) Added more unit tests for Probability and RNG
+    The Herbalism XP gained when breaking certain plants that can grow unnaturally tall vertically (bamboo, kelp) is now capped to the most it could give when naturally grown, this can be disabled in experience.yml
+    Added 'ExploitFix.LimitTallPlantFarming' to experience.yml
+
+    NOTES:
+    This probability bug was a big oopsie and showed a gap in unit test coverage, I've added that coverage and a bug like this in theory shouldn't happen again.
+    In a future version I will add configuration for admins to control what blocks are not allowed to be dropped by blast mining.
+    A setting has been added to disable player-created super tall plants from giving full XP, this is on by default, you can tun it off in experience.yml via 'ExploitFix.LimitTallPlantFarming'
+Version 2.2.017
+    Fixed a bug with default Mace permissions (thanks SrBedrock)
+    Fixed Blast Mining being almost completely broken
+    Reworked Blast Mining to drop non-mining related blocks too
+    Reworked Blast Mining to use your pickaxe when determining drops (will apply Silk Touch)
+    Fixed shift-clicking ingredients into the brewing stand not working on older versions of Minecraft
+    Added a setting in advanced.yml to ignore attack cooldowns (see notes)
+    Updated zh_CN locale (thanks libook)
+    Updated pt_BR locale (thanks JesusRuescas)
+    Updated fr locale (thanks Ted-18)
+
+    NOTES:
+    If Mace skills weren't working for your players before and you were scratching your head wondering why, this should fix it (thanks SrBedrock).
+    Skills.General.Attack_Cooldown.Adjust_Skills_For_Attack_Cooldown is a new setting in advanced.yml that will allow you to ignore attack cooldowns for the combat skills.
+    When a player spams an attack, they have a reduced amount of bonus damage from mcMMO and reduced chance for chance-on-hit subskills to activate.
+    You can have mcMMO ignore this value and apply full bonus damage and full chance to proc abilities by setting this to false.
+
+Version 2.2.016
+    (SQL) Fixed a bug where skill cooldowns were being loaded for players incorrectly
+
+Version 2.2.015
+    Added Maces skill
+    Added Mace to repair.vanilla.yml (see notes)
+    Fixed a bug where spamming attacks would still apply full bonus dmg and full chance to proc abilities (see notes)
+    Fixed some misc missing permissions for crossbows/tridents
+
+    NOTES:
+    You shouldn't need to update repair.vanilla.yml, it should update automatically
+    Maces is a new skill that is in early development, feedback is appreciated.
+    Some ideas I had for the Maces are on hold as they are lacking proper API from Spigot.
+    This is mostly pertaining to smash attacks, I had some ideas for enhancing them but without the proper API I will hold off for now.
+    While working on Maces, I noticed a bug where spamming attacks would still apply full bonus damage and full chance to proc abilities, this has been fixed.
+    When you swing your weapon in Minecraft, you gain an "Attack Strength" value, which is relative to your cooldown, mcMMO was supposed to be making use of this value, but at some point in the past this was broken.
+    I have fixed this and now mcMMO will use the attack strength value to determine the bonus damage and chance to proc abilities.
+    For servers modifying Minecraft combat to not have this "cooldown", mcMMO should behave as you would expect, with full damage and full chance to proc abilities even when spamming attacks.
+
+Version 2.2.014
+    Fixed a bug where Luck Of The Sea was being applied for Super Breaker (and other abilities)
+
+Version 2.2.013
+    Added Breeze to experience.yml
+    Added Bogged to experience.yml
+    (Locale) Updates to zh_TW (thanks chunkiuu)
+    (Locale) Updates to zh_CN (thanks haha44444)
+    Modified the RNG for dropping non-ore blocks from Blast Mining to yield about 50% of what was destroyed
+    (API) Deprecated com.gmail.nossr50.mcMMO.getPlaceStore
+    (API) Added com.gmail.nossr50.mcMMO.getUserBlockTracker
+    (API) Added com.gmail.nossr50.mcMMO.getChunkManager
+    (API) Added new methods to com.gmail.nossr50.util.blockmeta.UserBlockTracker for easier readability
+    (API) Deprecated many poorly named methods in UserBlockTracker (see notes)
+    (Codebase) Cleaned up and organized unit tests relating to UserBlockTracker
+    Added missing entries for Tridents/Xbows/Maces to config.yml (see notes)
+
+    NOTES:
+    Some settings such as Hardcore.Death_Stat_Loss.Enabled were missing entries for the new skills, I have added them to the default config.
+    Missing entries does not mean these things wouldn't work without them present, as default values will be used when config entries are not present.
+    These missing entries should be added to your config upon start up with this update.
+    Regarding the API changes, not planning to delete the deprecated methods in UserBlockTracker anytime soon, as nothing has really changed other than the names.
+    For anyone consuming mcMMO API, I would still recommend switching off these deprecated methods as soon as you can, just for future-proofing.
+
+Version 2.2.012
+    Fixed a bug where Daze would cause an exception in older game versions (1.20.4 and older)
+
+Version 2.2.011
+    Fixed bug where some potions on older versions (1.20.4 and older) were not brewable (night vision extended, etc)
+    Improved logging for Alchemy potion look up (see notes)
+
+NOTES:
+    Added detailed logging when multiple configured potions match an ItemStack.
+    This will help identify issues with potion configuration.
+
+Version 2.2.010
+    Fixed being unable to load REGEN potion type on new versions of Paper/Spigot 1.20.6
+    Fixed some potions not gaining XP when brewed (Level 2 potions, etc)
+    BrewingStands will now remember who owns them, this persists across restarts (see notes)
+    Fixed rare NPE in mcMMO events when player data was unable to be retrieved
+    Fixed a NPE that could happen when damaging armor with Axes
+    Fixed a bug where Alchemy brewing would be cancelled if the player died
+    (API) Added getMcMMOPlayer() to McMMOPlayerSkillEvent
+    (API) Added new ctor McMMOPlayerSkillEvent(@NotNull McMMOPlayer mmoPlayer, @NotNull PrimarySkillType primarySkillType)
+    (API) Deprecated ctor McMMOPlayerSkillEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Added ctor McMMOPlayerAbilityEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Deprecated ctor McMMOPlayerAbilityEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Deprecated ctor McMMOPlayerAbilityActivateEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Added ctor McMMOPlayerAbilityActivateEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Deprecated ctor McMMOPlayerCatalysisEvent(org.bukkit.entity.Player, double)
+    (API) Added ctor McMMOPlayerCatalysisEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, double)
+    (API) Deprecated util method EventUtils.callPlayerAbilityActivateEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Added util method EventUtils.callPlayerAbilityActivateEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Deprecated ctor McMMOPlayerFishingEvent(org.bukkit.entity.Player)
+    (API) Added ctor McMMOPlayerFishingEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer)
+    (API) Deprecated ctor McMMOPlayerFishingTreasureEvent.McMMOPlayerFishingTreasureEvent(org.bukkit.entity.Player, org.bukkit.inventory.ItemStack, int)
+    (API) Added ctor McMMOPlayerFishingTreasureEvent.McMMOPlayerFishingTreasureEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, org.bukkit.inventory.ItemStack, int)
+    (API) Deprecated ctor McMMOPlayerMagicHunterEvent(org.bukkit.entity.Player, org.bukkit.inventory.ItemStack, int, java.util.Map<org.bukkit.enchantments.Enchantment,java.lang.Integer>)
+    (API) Added ctor McMMOPlayerMagicHunterEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, org.bukkit.inventory.ItemStack, int, java.util.Map<org.bukkit.enchantments.Enchantment,java.lang.Integer>)
+    (API) Deprecated ctor McMMOPlayerAbilityDeactivateEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Added ctor McMMOPlayerAbilityDeactivateEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.PrimarySkillType)
+    (API) Deprecated util method EventUtils.callAbilityDeactivateEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.SuperAbilityType)
+    (API) Added util method EventUtils.callAbilityDeactivateEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.SuperAbilityType)
+    (API) Deprecated util EventUtils.callSubSkillEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.SubSkillType)
+    (API) Added util EventUtils.callSubSkillEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.SubSkillType)
+    (API) Deprecated ctor SubSkillEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.SubSkillType)
+    (API) Added ctor SubSkillEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.SubSkillType)
+    (API) Deprecated ctor SubSkillEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.SubSkillType, double)
+    (API) Added ctor SubSkillEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.SubSkillType, double)
+    (API) Deprecated ctor SubSkillEvent(org.bukkit.entity.Player, com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill)
+    (API) Added ctor SubSkillEvent(com.gmail.nossr50.datatypes.player.McMMOPlayer, com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill)
+    (API) Deprecated ctor AlchemyBrewCheckTask(org.bukkit.entity.Player, org.bukkit.block.BrewingStand)
+    (API) Added ctor AlchemyBrewCheckTask(org.bukkit.block.BrewingStand)
+
+    NOTES:
+    You can now use hoppers and brewing stands and not have to worry about having to re-interact with the brewing stand over and over again
+    Ownership of a brewing stand is whoever last interacted with it, this persists across restarts
+    This is not an exhaustive list of API changes in this update, but most of the important ones should be documented here.
+
+Version 2.2.009
+    Fixed a bug that prevented mcMMO from loading on MC versions older than 1.20.6
+    Dramatically increased the base XP for Alchemy again (see notes)
+
+    NOTES:
+    Alchemy leveling still felt too slow, so I've increased it again. You can either delete experience.yml to get the new values or adjust them manually.
+    If you haven't updated mcMMO since 2.2.006 or older you don't need to do anything to get these new values.
+    The new default values are...
+            Potion_Brewing:
+                Stage_1: 666
+                Stage_2: 1111
+                Stage_3: 1750
+                Stage_4: 2250
+
+Version 2.2.008
+    Fixed alchemy potions not upgrading correctly (This will only affect new potions made, see notes)
+    Fixed a bug where alchemy potions had italicized names
+    Fixed a bug where messages were not being sent to the action bar in 1.20.6
+    (SQL) Fixed bug that broke /mccooldowns and /archery in some circumstances
+    Fixed some exceptions that could happen with parties disabled (thanks IAISI)
+
+    NOTES:
+    mcMMO-exclusive Potions (haste, etc) made on version 2.2.007 of mcMMO will not upgrade correctly, you'll just have to make new ones. Sorry for the inconvenience.
+    Alchemy potions will now be brewed as type "Mundane" behind the scenes, this used to be Uncraftable/Water. This led to some issues. So I've changed it to be Mundane.
+
+Version 2.2.007
+    Compatibility with the 1.20.5 / 1.20.6 MC Update
+    Fixed bug where Alchemy was not brewing certain potions (haste, etc)
+    Tree Feller no longer restricts how many saplings can drop
+    Tree Feller now drops leaves 25% of the time (up from 10%)
+    Alchemy XP has been DRAMATICALLY increased, it was extremely grindy by default
+    Alchemy experience values in experience.yml are now found under 'Experience_Values.Alchemy.Potion_Brewing'
+    Fixed bug where the probability of success of Graceful Roll was not being calculated correctly
+    Fixed bug where Green Thumb did not replant if seed was in the off hand
+    Added armadillo to combat experience in experience.yml
+
+    NOTES:
+    While fixing various Alchemy bugs, I noticed Alchemy leveled SUPER slow, I have increased it dramatically. Feel free to change it back by modifying the new values in experience.yml
+    I did my best to keep mcMMO compatible with older versions of Minecraft for this update.
+    This update to MC was quite large, with breaking changes to a lot of code relating to Alchemy, and some other things.
+    I expect there to be bugs, please report them on GitHub or Discord, but preferably GitHub.
+    I will be working on fixing these bugs as they come in, so please be patient.
+Version 2.2.006
+    Added new config custom_item_support.yml
+    Added support for hex color codes in the locale file, uses the format &#RRGGBB (see notes)
+    Added setting to disable repair on items with custom models, this is not on by default
+    Fixed a bug where sometimes the locale name of a skill would get lowercased
+    Fixed a bug where JSON text components did not get colored properly some of the time
+    Fixed en_US locale string 'Commands.Skill.Leaderboard' not being colored properly
+    Fixed skill commands incorrectly telling you to use their locale name, this isn't currently possible
+    Updated outdated wiki URLs in commands to point to the new wiki
+    Removed the msg about skills being migrated to a new system when using /mmoinfo command
+    Added new locale entry 'Anvil.Repair.Reject.CustomModelData'
+    Added new locale entry 'Anvil.Salvage.Reject.CustomModelData'
+    Updated en_US locale entry 'JSON.DescriptionHeader'
+    (API/Codebase) Added some util methods and basic unit tests for LocaleLoader
+
+    NOTES:
+    Hex Color support in locale files is here!
+    The hex color code format for the locale files is &#RRGGBB
+    An example entry applying yellow as a hex color code would look like this:
+    Axes.SkillName=&#FFFF00Axes
+    In general, JSON locale entries will either not work with hex color codes or will have the color code stripped out, in the future I will add support for the JSON components to use hex colors from the locale
+
+    Let me know in detail what kind of support you'd like to see in mcMMO regarding custom items, I'm open to suggestions.
+    This update adds a new config file to allow server owners to disable repair or salvage on items with custom models,
+    This prevention mechanism is not enabled by default, change the settings in custom_item_support.yml if you want to enable it.
+    This feature is off by default for now to keep compatibility with existing servers, but it may be enabled by default in the future if feedback suggests it should be.
+    As a reminder, anyone can update the wiki by clicking on the "edit on github" link on various pages, this will take you to the wiki's source code on GitHub, submit a PR to make changes
+
+Version 2.2.005
+    Fixed a bug where certain skills such as Dodge/Arrow Deflect had no skill cap and would continue improving forever
+    Reduced messages on startup for SQL DB
+    (API) Constructor for ProbabilityImpl now takes a raw value between 0 and 1 instead of an inflated percentage
+    (API) Added some convenience methods to Probability, and ProbabilityUtil classes
+    (Codebase) Added more unit tests revolving around Probability/RNG
+
+Version 2.2.004
+    Fixed bug where values from Experience_Formula.Skill_Multiplier were not functioning
+
+    NOTES:
+    A reminder that these values are multipliers and no longer divisors, if you want 10x lower XP, a value of .1 would do the job.
+
+Version 2.2.003
+    (SQLDB) Fixed a bug where lastlogin was using a value that was too large
+    (SQLDB) Fixed bug where crossbows was not getting added to SQL schema for some users
+
+Version 2.2.002
+    Fixed bug where thrown tridents did not grant XP or benefit from subskills
+    Fixed bug where trickshot marked bounced arrows as being shot from a bow instead of being shot from a crossbow
+
+Version 2.2.001
+    Fixed Crossbow's Powered shot showing the text for the wrong skill from the locale when using /crossbows command
+
+Version 2.2.000
+    General
+    Added Crossbows Skill, this skill is an early preview / WIP and feedback on discord is appreciated
+    Added Tridents Skill, this skill is an early preview / WIP and feedback on discord is appreciated
+    Added an "endgame" triple drop subskill 'Mother Lode' to Mining
+    Added an "endgame" triple drop subskill 'Clean Cuts' to Woodcutting
+    Added an "endgame" triple drop subskill 'Verdant Bounty' to Herbalism
+    Added /mmopower command which simply shows your power level (aliases /mmopowerlevel /powerlevel)
+    Quite a few misc bugs were patched relating to random chance, some involving perk permissions
+
+    Config
+    Added 'Send_To_Console' settings to chat.yml to toggle sending party or admin chat messages to console
+    Replaced 'Experience_Formula.Modifier' in experience.yml with 'Experience_Formula.Skill_Multiplier' which is easier to understand and less prone to divide by zero bugs
+    child.yml config is gone now, feel free to delete it
+    Added ExploitFix.PreventArmorStandInteraction to experience.yml to prevent players from triggering mcMMO abilities off armor stands
+
+    Tweaks
+    Tree Feller now drops 90% less non-wood block rewards (leaves/etc) on average from Knock on Wood.
+    Treasure drop rate from Shake, Fishing, Hylian, and Excavation now benefit from the Luck perk
+    Updated advanced.yml with entries for the new skills
+
+    Permission nodes
+    Added 'mcmmo.commands.mmopower' permission node for the new /mmopower command
+    Added 'mcmmo.commands.crossbows' permission node
+    Added 'mcmmo.ability.crossbows.crossbowslimitbreak' permission node
+    Added 'mcmmo.ability.crossbows.trickshot' permission node
+    Added 'mcmmo.ability.crossbows.poweredshot' permission node
+    Added 'mcmmo.commands.tridents' permission node
+    Added 'mcmmo.ability.tridents.tridentslimitbreak' permission node
+    Added 'mcmmo.ability.tridents.impale' permission node
+    Added 'mcmmo.ability.herbalism.verdantbounty' permission node
+    Added 'mcmmo.ability.mining.motherlode' permission node
+    Added 'mcmmo.ability.woodcutting.cleancuts' permission node
+
+    Locale
+    Added locale entries for all the new skills/subskills
+
+    Codebase / Misc
+    PAPI's '/papi reload' command will no longer unload mcMMO (thanks gecko10000)
+    Major rewrite for how random chance was handled in the code
+    Many skills with RNG elements now send out a SubSkillEvent (which can be used to modify probability or cancel the results), some skills without RNG still send out this event when activated, this event is cancellable so it can be used to make a skill fail
+    A lot of new unit tests were added to help keep mcMMO stable as part of this update, of course, more could always be added.
+
+    NOTES:
+    One feature of this update is to provide a endgame benefits to some skills that you can grind for a long time, ideally for a long while. I will likely expand upon this idea in future updates.
+    A few skills have these endgame oriented subskills, these new subskills provide a small benefit at first that grows and scales up to level 10,000 (or 1,000 for Standard mode which no one uses) and does not have ranks (other than the initial rank to unlock it).
+    These endgame sub skills unlock at level 1000 for users with default mcMMO settings, or 100 for those using the optional Standard scaling.
+    You can tweak the benefits of these skills in advanced.yml, the default settings are meant to be a good starting point.
+
+    Crossbows and Tridents are WIP skills, I would like feedback on discord about them.
+    Tridents especially is very early, I have some ideas but I want to hear what you think about it.
+
+    More info on the new Triple Drop skills (Mother Lode, Clean Cuts, Verdant Bounty):
+    Currently these start at about 5%  chance and can reach a maximum 50% chance if a player acquired 10,000 skill, you can adjust this in advanced.yml
+    These skills respect double drop settings from config.yml just like the corresponding Double Drop skills do, if a double drop is disabled for an item, then its disabled for triple drops too.
+    I added a new Power Level Command, for now this just shows you your current power level. If I ever add features based on power level, this command will likely display output related to those features.
+
+    Regarding Maces, I will likely add that as a WIP skill when the next Minecraft update drops.
+
+Version 2.1.231
+    Fixed a bug preventing parties from being made without passwords (Thanks Momshroom)
+    Updated korean locale (thanks mangchi57)
+    Added some unit tests for party creation
+
+Version 2.1.230
+    Fixed an error that could happen when mcMMO was saving when parties were disabled by party.yml (thanks IAISI & L4BORG)
+    Fixed several exceptions when checking PVP damage when parties were disabled by party.yml (thanks IAISI & L4BORG)
+
+Version 2.1.229
+    Added new party.yml config, which lets admins disable the party system entirely without having to use permissions
+    Fixed error caused by missing API in McMMOEntityDamageByRuptureEvent
+    (API) Major API changes to PartyManager
+    (API) PartyManager is no longer a static singleton class, use mcMMO.getPartyManager() to get the PartyManager
+    (API) Added com.gmail.nossr50.mcMMO.isPartySystemEnabled to check if the party system is enabled
+    (API) Added com.gmail.nossr50.api.PartyAPI.isPartySystemEnabled as an alternative, to check if the party system is enabled
+    (API) Added missing com.gmail.nossr50.events.skills.rupture.McMMOEntityDamageByRuptureEvent.getHandlerList
+
+    NOTES:
+    Admins can now enable/disable the whole party system with a setting in the new party.yml config
+    You'll have to start your server one time to generate the config, then change the setting and reboot your server.
+
 Version 2.1.228
 Version 2.1.228
     Fixed a stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event
     Fixed a stack trace due to Spigot API break on EntityDamageEvent and EntityDamageByEntity event
     (API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent
     (API) - Removed FakeEntityDamageEvent and FakeEntityDamageByEntityEvent
@@ -1309,7 +1812,7 @@ Version 2.1.128
     Fixed a bug where certain types of ore did not receive bonuses from Blast Mining
     Fixed a bug where certain types of ore did not receive bonuses from Blast Mining
     Fixed a few locale errors with commands
     Fixed a few locale errors with commands
     (API) Added ExperienceAPI::addCombatXP for adding combat XP to players, signature may change so its deprecated for now
     (API) Added ExperienceAPI::addCombatXP for adding combat XP to players, signature may change so its deprecated for now
-    mcMMO now logs whether or not its using FlatFile or SQL database on load
+    mcMMO now logs whether its using FlatFile or SQL database on load
     (1.16) Strider added to combat experience with a value of 1.2
     (1.16) Strider added to combat experience with a value of 1.2
 
 
     NOTES: A more thorough look at Unarmed balance will happen in the future, the intention of this nerf is to make Unarmed less rewarding until it is leveled quite a bit.
     NOTES: A more thorough look at Unarmed balance will happen in the future, the intention of this nerf is to make Unarmed less rewarding until it is leveled quite a bit.
@@ -1329,7 +1832,7 @@ Version 2.1.127
 Version 2.1.126
 Version 2.1.126
     mcMMO now relies on NMS for some of its features, if NMS cannot properly be wired up when initializing mcMMO behaviours relying on NMS will either be partially supported or disabled
     mcMMO now relies on NMS for some of its features, if NMS cannot properly be wired up when initializing mcMMO behaviours relying on NMS will either be partially supported or disabled
     mcMMO now has a compatibility mode, any features that require specific versions of Minecraft for full functionality will be disabled if your server is not running a compatible version, mcMMO will still function in compatibility mode, but either the feature will be modified or disabled depending on the version of the server software
     mcMMO now has a compatibility mode, any features that require specific versions of Minecraft for full functionality will be disabled if your server is not running a compatible version, mcMMO will still function in compatibility mode, but either the feature will be modified or disabled depending on the version of the server software
-    New command /mmocompat - Shows information about whether or not mcMMO is fully functional or if some features are disabled due to the server software not being fully supported. Can be used by players or console.
+    New command /mmocompat - Shows information about whether mcMMO is fully functional or if some features are disabled due to the server software not being fully supported. Can be used by players or console.
     New command /mmoxpbar (alias /xpbarsettings) - Players can choose to always show XP bars or to never show XP bars on a per skill basis
     New command /mmoxpbar (alias /xpbarsettings) - Players can choose to always show XP bars or to never show XP bars on a per skill basis
     XPBars now last for 3 seconds before hiding instead of 2 seconds
     XPBars now last for 3 seconds before hiding instead of 2 seconds
     Fixed an exploit involving fishing rods
     Fixed an exploit involving fishing rods
@@ -1965,7 +2468,7 @@ Version 2.1.68
     Fixed a bug where consuming food in the off hand did not trigger the Diet abilities
     Fixed a bug where consuming food in the off hand did not trigger the Diet abilities
 
 
 Version 2.1.67
 Version 2.1.67
-    The XP bar now reflects whether or not the player is receiving the early game boost
+    The XP bar now reflects whether the player is receiving the early game boost
     Players who are receiving an early game boost will be shown "Learning a skill..." as the title of the XP bar while gaining XP
     Players who are receiving an early game boost will be shown "Learning a skill..." as the title of the XP bar while gaining XP
     New locale string 'XPBar.Template.EarlyGameBoost'
     New locale string 'XPBar.Template.EarlyGameBoost'
 
 
@@ -2014,7 +2517,7 @@ Version 2.1.63
 Version 2.1.62
 Version 2.1.62
     Added a new admin notification system, sensitive commands will print chat messages to "admins" (players with either Operator status or admin chat permission)
     Added a new admin notification system, sensitive commands will print chat messages to "admins" (players with either Operator status or admin chat permission)
     Added a setting to disable the new admin notifications to config.yml 'General.AdminNotifications' (this will be more configurable in 2.2)
     Added a setting to disable the new admin notifications to config.yml 'General.AdminNotifications' (this will be more configurable in 2.2)
-    OPs and players with the admin chat permission will now see details about XP rate event commands regardless of whether or not the XP rate event messages are enabled
+    OPs and players with the admin chat permission will now see details about XP rate event commands regardless of whether the XP rate event messages are enabled
     Updated hu_HU locale (thanks andris155)
     Updated hu_HU locale (thanks andris155)
     Added XP for mining Magma_Block (default 30 XP - Update your config, see notes)
     Added XP for mining Magma_Block (default 30 XP - Update your config, see notes)
     Diamond tools & armor in the repair config now have a minimum level of 0 (Update your config, temporary hotfix, 2.2 addresses this issue, see notes)
     Diamond tools & armor in the repair config now have a minimum level of 0 (Update your config, temporary hotfix, 2.2 addresses this issue, see notes)
@@ -2022,9 +2525,9 @@ Version 2.1.62
     New locale string - 'Server.ConsoleName' the name of the server console, this will be used in place of player names when sending admin notifications out if the command was used from console
     New locale string - 'Server.ConsoleName' the name of the server console, this will be used in place of player names when sending admin notifications out if the command was used from console
     New locale string - 'Notifications.Admin.Format.Others' style formatting + prefix for admin notifications used in the other new strings below
     New locale string - 'Notifications.Admin.Format.Others' style formatting + prefix for admin notifications used in the other new strings below
     New locale string - 'Notifications.Admin.Format.Self' style formatting + prefix for admin command confirmations sent to the user who executed the command
     New locale string - 'Notifications.Admin.Format.Self' style formatting + prefix for admin command confirmations sent to the user who executed the command
-    New locale string - 'Notifications.Admin.XPRate.Start.Self' sent to the user who modifies the XP rate regardless of whether or not messages for the event are enabled
+    New locale string - 'Notifications.Admin.XPRate.Start.Self' sent to the user who modifies the XP rate regardless of whether messages for the event are enabled
     New locale string - 'Notifications.Admin.XPRate.Start.Others' details of who started an XP rate event are sent to players who have Operator status or admin chat permission when the command to start or modify XP of an event has been issued
     New locale string - 'Notifications.Admin.XPRate.Start.Others' details of who started an XP rate event are sent to players who have Operator status or admin chat permission when the command to start or modify XP of an event has been issued
-    New locale string - 'Notifications.Admin.XPRate.End.Self' sent to the user who ended the XP rate event regardless of whether or not messages for the event are enabled
+    New locale string - 'Notifications.Admin.XPRate.End.Self' sent to the user who ended the XP rate event regardless of whether messages for the event are enabled
     New locale string - 'Notifications.Admin.XPRate.End.Others' details of who ended an XP rate event are sent to players who have Operator status or admin chat permission when the command to end the event has been issued
     New locale string - 'Notifications.Admin.XPRate.End.Others' details of who ended an XP rate event are sent to players who have Operator status or admin chat permission when the command to end the event has been issued
 
 
     NOTES:
     NOTES:
@@ -2217,7 +2720,7 @@ Version 2.1.38
 Version 2.1.37
 Version 2.1.37
     Fixed a potential IndexOutOfBoundsException when informing a disconnected player that their Blast Mining was off CD
     Fixed a potential IndexOutOfBoundsException when informing a disconnected player that their Blast Mining was off CD
     Updated hu_HU locale (thanks andris)
     Updated hu_HU locale (thanks andris)
-    
+
 Version 2.1.36
 Version 2.1.36
     Updated German locale (Thanks OverCrave)
     Updated German locale (Thanks OverCrave)
     Fixed a bug preventing Villagers from giving combat XP
     Fixed a bug preventing Villagers from giving combat XP
@@ -2295,7 +2798,7 @@ Version 2.1.26
 
 
     Notes:
     Notes:
     The new Limit Break subskills are intended to make Prot IV players less tanky and for you to feel more powerful for having high skill level.
     The new Limit Break subskills are intended to make Prot IV players less tanky and for you to feel more powerful for having high skill level.
-    Limit Break has 10 ranks, each rank gives 1 extra RAW damage, this is damage before reductions from armor and enchantments. The net result is you deal about 50% more damage with an end game skill compared to before.
+    Limit Break has 10 ranks, each rank gives 1 extra RAW damage, this is damage before reductions from armor and enchantments. The net result is you deal about 50% more damage with an endgame skill compared to before.
     With these new changes, most skills can 2 shot normal diamond armor, and it takes about 5 hits to kill someone in Prot IV Diamond Armor.
     With these new changes, most skills can 2 shot normal diamond armor, and it takes about 5 hits to kill someone in Prot IV Diamond Armor.
     I'm not sure everyone will like these changes, the net result is players are a lot easier to kill now, whereas before you could take quite a beating before getting killed.
     I'm not sure everyone will like these changes, the net result is players are a lot easier to kill now, whereas before you could take quite a beating before getting killed.
     I collected several sets of data before making these changes, including damage to player with and without prot 4 diamond armor, damage to those players with and without enchanted weapons, damage with and without leveling your skills, and combinations of the previously mentioned things.
     I collected several sets of data before making these changes, including damage to player with and without prot 4 diamond armor, damage to those players with and without enchanted weapons, damage with and without leveling your skills, and combinations of the previously mentioned things.
@@ -2757,7 +3260,7 @@ Version 1.5.01
  = Fixed bug where pistons would mess with the block tracking
  = Fixed bug where pistons would mess with the block tracking
  = Fixed bug where the Updater was running on the main thread.
  = Fixed bug where the Updater was running on the main thread.
  = Fixed bug when players would use /ptp without being in a party
  = Fixed bug when players would use /ptp without being in a party
- = Fixed bug where player didn't have a mcMMOPlayer object in AsyncPlayerChatEvent
+ = Fixed bug where player didn't have a mmoPlayer object in AsyncPlayerChatEvent
  = Fixed bug where dodge would check the wrong player skill level
  = Fixed bug where dodge would check the wrong player skill level
  = Fixed bug which causes /party teleport to stop working
  = Fixed bug which causes /party teleport to stop working
  = Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException
  = Fixed bug where SaveTimerTask would produce an IndexOutOfBoundsException
@@ -3205,7 +3708,7 @@ Version 1.3.13
  + Added displaying bonus perks on skill commands
  + Added displaying bonus perks on skill commands
  + Added config option to disable gaining Acrobatics XP from dodging lightning
  + Added config option to disable gaining Acrobatics XP from dodging lightning
  + Added missing skill guides. They're finally here!
  + Added missing skill guides. They're finally here!
- + Added more localization 
+ + Added more localization
  + Added a very secret easter egg
  + Added a very secret easter egg
  = Fix issue with Sand/Gravel tracking
  = Fix issue with Sand/Gravel tracking
  = Fix possible NPE when using the PartyAPI to add a player to a party that doesn't exist.
  = Fix possible NPE when using the PartyAPI to add a player to a party that doesn't exist.
@@ -3302,7 +3805,7 @@ Version 1.3.11
  = Fixed bug where mcMMO could throw NPE errors if trees cut down were from a custom mod and had an id of 17
  = Fixed bug where mcMMO could throw NPE errors if trees cut down were from a custom mod and had an id of 17
  = Fixed dupe bug where mcMMO would ignore other block-protection plugins for various abilities
  = Fixed dupe bug where mcMMO would ignore other block-protection plugins for various abilities
  = Fixed NPE with hardcore mode's vampirism
  = Fixed NPE with hardcore mode's vampirism
- 
+
 Version 1.3.10
 Version 1.3.10
  + Added 1.3.1 compatibility
  + Added 1.3.1 compatibility
  + Added permission node for Iron Grip ability (mcmmo.ability.unarmed.irongrip)
  + Added permission node for Iron Grip ability (mcmmo.ability.unarmed.irongrip)
@@ -3564,7 +4067,7 @@ Version 1.3.02
 Version 1.3.01
 Version 1.3.01
  = Fixed bug where Tree Feller had no cooldown
  = Fixed bug where Tree Feller had no cooldown
  = Fixed bug with activating Skull Splitter after using Tree Feller
  = Fixed bug with activating Skull Splitter after using Tree Feller
- 
+
 Version 1.3.00
 Version 1.3.00
  + Added ability to customize drops for Excavation skill (treasures.yml)
  + Added ability to customize drops for Excavation skill (treasures.yml)
  + Added ability to customize drops for Fishing skill (treasures.yml)
  + Added ability to customize drops for Fishing skill (treasures.yml)
@@ -3628,7 +4131,7 @@ Version 1.3.00
  - Removed unused settings from config.yml (HP Regen)
  - Removed unused settings from config.yml (HP Regen)
  - Removed Nether Brick from Mining XP Tables
  - Removed Nether Brick from Mining XP Tables
  - Removed Stone Brick from Mining XP Tables
  - Removed Stone Brick from Mining XP Tables
- 
+
 Version 1.2.12
 Version 1.2.12
  - Fixed issue that caused terrible MySQL performance and negative XP on levelup (Issue #134)
  - Fixed issue that caused terrible MySQL performance and negative XP on levelup (Issue #134)
  - Fixed addxp command taking xprate and skill modifiers into account
  - Fixed addxp command taking xprate and skill modifiers into account
@@ -3996,7 +4499,7 @@ Removed performance debugging
 Removed some useless settings from the config file
 Removed some useless settings from the config file
 
 
 Version 1.0.34
 Version 1.0.34
-Fixed the PVP setting determining whether or not you would hurt yourself from AoE Abilities
+Fixed the PVP setting determining whether you would hurt yourself from AoE Abilities
 Added Dutch (nl) language support
 Added Dutch (nl) language support
 Super Breaker now gives the correct XP as determined by config.yml
 Super Breaker now gives the correct XP as determined by config.yml
 Sand Stone XP is now configurable and no longer shares the 'stone' node
 Sand Stone XP is now configurable and no longer shares the 'stone' node
@@ -4006,7 +4509,7 @@ Version 1.0.33
 Fixed the toggle for the Excavation drop 'Cocoa Beans'
 Fixed the toggle for the Excavation drop 'Cocoa Beans'
 Fixed bug where Unarmed users could disarm without being bare handed
 Fixed bug where Unarmed users could disarm without being bare handed
 Cocoa Beans now have an XP modifier in config.yml
 Cocoa Beans now have an XP modifier in config.yml
-You can now toggle whether or not Mobspawners will give XP (in config.yml)
+You can now toggle whether Mobspawners will give XP (in config.yml)
 MySQL version now makes requests to the MySQL server less frequently (should help performance)
 MySQL version now makes requests to the MySQL server less frequently (should help performance)
 Fixed bug with Skull Splitter hitting the user
 Fixed bug with Skull Splitter hitting the user
 
 
@@ -4637,7 +5140,7 @@ Version 0.5.9
 Version 0.5.8
 Version 0.5.8
 
 
     Fixed bug where players inventories would dupe during combat
     Fixed bug where players inventories would dupe during combat
-    
+
 Version 0.5.7
 Version 0.5.7
 
 
     Fixed monsters instant killing players
     Fixed monsters instant killing players

+ 25 - 13
README.md

@@ -1,18 +1,33 @@
 # mcMMO
 # mcMMO
-## The #1 RPG Mod for Minecraft
+The #1 RPG Mod for Minecraft
 
 
-## Website
-I'm working on a brand new website for mcMMO
-
-You can check it out here http://www.mcmmo.org
+## Useful URLs
+Website: http://www.mcmmo.org
 
 
 Spigot Resource: https://spigot.mcmmo.org
 Spigot Resource: https://spigot.mcmmo.org
 
 
-I plan to post links to our new wiki (its still under development), downloads, and dev blogs there.
-
+Polymart Resource: https://polymart.org/product/727/mcmmo
+
+Wiki: https://wiki.mcmmo.org/
+
+## API
+If you are using maven, you can add mcMMO API to your plugin by adding it to pom.xml like so...
+
+```
+<repository>
+    <id>neetgames</id>
+    <url>https://nexus.neetgames.com/repository/maven-releases/</url>
+</repository>
+```
+```
+<dependency>
+    <groupId>com.gmail.nossr50.mcMMO</groupId>
+    <artifactId>mcMMO</artifactId>
+    <version>2.2.004</version>
+</dependency>
+```
 ### Builds
 ### Builds
-Currently, you can obtain our builds via the Spigot or Polymart:
-
+Currently, you can obtain our builds via Spigot or Polymart:
 
 
 http://spigot.mcmmo.org
 http://spigot.mcmmo.org
 
 
@@ -23,8 +38,6 @@ The goal of mcMMO is to take core Minecraft game mechanics and expand them into
 
 
 ## About the Team
 ## About the Team
 In December 2018, the original author and creator of mcMMO (nossr50) returned and took over the role of project lead once again, to develop and improve mcMMO.
 In December 2018, the original author and creator of mcMMO (nossr50) returned and took over the role of project lead once again, to develop and improve mcMMO.
-#### Project Lead & Founder
-[![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
 
 
 #### Current mcMMO Devs
 #### Current mcMMO Devs
 [![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
 [![nossr50](http://www.gravatar.com/avatar/f2ee41eedfd645fb4a3a2c8f6cb1b18c.png)](https://github.com/nossr50)
@@ -56,8 +69,7 @@ The typical command used to build mcMMO is: `mvn clean install`
 
 
 https://spigot.mcmmo.org for more up to date information.
 https://spigot.mcmmo.org for more up to date information.
 
 
-Downloads:
-
+## Downloads
 
 
 https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
 https://www.spigotmc.org/resources/official-mcmmo-original-author-returns.64348/
 
 

+ 0 - 439
extras/mods/1.6.x/LOTR.armor.yml

@@ -1,439 +0,0 @@
-# Lord of the Rings mod config by Dragyn
-# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
-#
-#
-#  Settings for Boots
-###
-Boots:
-    # Bronze
-    X12015:
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orc
-    X12035:
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Gondorian
-    X12060:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X12064:
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Elven
-    X12088:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Warg
-    X12098:
-        Repairable: true
-        Repair_Material: X12094
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dwarven
-    X12129:
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Galven
-    X12134:
-        Repairable: true
-        Repair_Material: X12130
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Uruk
-    X12161:
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Wood Elf
-    X12176:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ancient
-    X12180:
-        Repairable: true
-        Repair_Material: X12179
-        Repair_Material_Data_Value: 3
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rohirric
-    X12187:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rangers
-    X12206:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dunlending
-    X12210:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Morgul
-    X12222:
-        Repairable: true
-        Repair_Material: X12217
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Chestplates
-###
-Chestplates:
-    # Bronze
-    X12013:
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orc
-    X12033:
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Gondorian
-    X12058:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X12062:
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Elven
-    X12086:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Warg
-    X12096:
-        Repairable: true
-        Repair_Material: X12094
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dwarven
-    X12127:
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Galven
-    X12132:
-        Repairable: true
-        Repair_Material: X12130
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Uruk
-    X12159:
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Wood Elf
-    X12174:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ancient
-    X12178:
-        Repairable: true
-        Repair_Material: X12179
-        Repair_Material_Data_Value: 3
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rohirric
-    X12185:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rangers
-    X12204:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dunlending
-    X12208:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Morgul
-    X12220:
-        Repairable: true
-        Repair_Material: X12217
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Helmets
-###
-Helmets:
-    # Bronze
-    X12012:
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orc
-    X12032:
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Gondorian
-    X12057:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X12061:
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Elven
-    X12085:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Warg
-    X12095:
-        Repairable: true
-        Repair_Material: X12094
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dwarven
-    X12126:
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Galven
-    X12131:
-        Repairable: true
-        Repair_Material: X12130
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Uruk
-    X12158:
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Wood Elf
-    X12173:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ancient
-    X12177:
-        Repairable: true
-        Repair_Material: X12179
-        Repair_Material_Data_Value: 3
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rohirric
-    X12184:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rangers
-    X12203:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dunlending
-    X12207:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Morgul
-    X12219:
-        Repairable: true
-        Repair_Material: X12217
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Leggings
-###
-Leggings:
-    # Bronze
-    X12014:
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orc
-    X12034:
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Gondorian
-    X12059:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X12063:
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Elven
-    X12087:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Warg
-    X12097:
-        Repairable: true
-        Repair_Material: X12094
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dwarven
-    X12128:
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Galven
-    X12133:
-        Repairable: true
-        Repair_Material: X12130
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Uruk
-    X12160:
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Wood Elf
-    X12175:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ancient
-    X12179:
-        Repairable: true
-        Repair_Material: X12179
-        Repair_Material_Data_Value: 3
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rohirric
-    X12186:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Rangers
-    X12205:
-        Repairable: true
-        Repair_Material: LEATHER
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Dunlending
-    X12209:
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Morgul
-    X12221:
-        Repairable: true
-        Repair_Material: X12217
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 211
extras/mods/1.6.x/LOTR.blocks.yml

@@ -1,211 +0,0 @@
-# Lord of the Rings mod config by Skuli (Updated by Dragyn)
-# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
-#
-#  Settings for Custom Excavation Blocks
-###
-Excavation:
-    Block_1|0:
-        XP_Gain: 99
-        Double_Drops_Enabled: true
-    Block_2|0:
-        XP_Gain: 99
-        Double_Drops_Enabled: true
-
-#
-#  Settings for Custom Herbalism Blocks
-###
-Herbalism:
-
-# Shireheather
-    X1813:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Simbelmyne
-    X1805:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Asphodel
-    X1895:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Bluebell
-    X1867:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Clover
-    X1873:
-        XP_Gain: 10
-        Double_Drops_Enabled: false
-
-# Dead Marsh Plant
-    X1886:
-        XP_Gain: 10
-        Double_Drops_Enabled: false
-
-# DwarfWort
-    X1902:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Elanor
-    X1833:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Lettuce Crop
-    X1830:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Morgul Shroom
-    X1870:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Niphredil
-    X1834:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Pipeweed Crop
-    X1823:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-# Pipeweed Plant
-    X1822:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-
-# Mithril
-    X1803:
-        XP_Gain: 2000
-        Double_Drops_Enabled: false
-        Is_Ore: true
-# Naurite
-    X1818:
-        XP_Gain: 150
-        Double_Drops_Enabled: false
-        Is_Ore: false
-#Glowstone Ore
-    X1859:
-        XP_Gain: 30
-        Double_Drops_Enabled: false
-        Is_Ore: false
-# Remains
-    X1885:
-        XP_Gain: 1800
-        Double_Drops_Enabled: false
-        Is_Ore: false
-# Gulduril
-    X1887:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Ore: false
-
-# Quendite
-    X1846:
-        XP_Gain: 150
-        Double_Drops_Enabled: false
-        Is_Ore: false
-
-# MorgulIron
-    X1819:
-        XP_Gain: 25
-        Double_Drops_Enabled: true
-        Is_Ore: false
-
-# Rohan Rock
-    X180|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: false
-        Is_Ore: false
-
-
-#Gondor Stone
-    X180|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: false
-        Is_Ore: false
-
-# Mordor Stone
-    X180|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: false
-        Is_Ore: false
-
-#
-#  Settings for Custom Woodcutting Blocks
-###
-Woodcutting:
-# Shire Pine
-    X1806|0:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Mallorn
-    X1806|1:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Apple
-    X1860|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-#  Pear
-    X1860|1:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Cherry
-    X1860|2:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Mirkwood
-    X1806|2:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Charred
-    X1806|3:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Lebethron
-    X1896|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-# Beech
-    X1896|1:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-
-
-#
-#  Settings for Custom Ability Blocks
-#  (These blocks don't trigger abilities)
-###
-Ability_Blocks:
-    Block_1|0:
-    Block_2|0:

+ 0 - 700
extras/mods/1.6.x/LOTR.tools.yml

@@ -1,700 +0,0 @@
-# Lord of the Rings mod config by Skuli (Updated by Dragyn)
-# Built against version [1.6.4] The Lord of the Rings Mod Public Beta 11.1
-
-Axes:
-    #DwarvenThrowingAxe
-    X12146:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 451
-    #UrukWarhammer
-    X12156:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 391
-    #Gondorian Warhammer
-    X12140:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 281
-    #UrukBattleaxe
-    X12155:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 391
-    #MithrilBattleaxe
-    X12138:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2479
-    #MithrilWarhamer
-    X12139:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2479
-    #OrcWarhammer
-    X12125:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 261
-    #Dwarven Warhammer
-    X12120:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 451
-    #DwarvenZbattleaxe
-    X12119:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 451
-    #BronzeAxe
-    X12009:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 197
-    #MithrilAxe
-    X12050:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2479
-    #MallornAxe
-    X12075:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 121
-    #Elven Axe
-    X12080:
-        XP_Modifer: 2
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 313
-    #DwarvenAxe
-    X12115:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 450
-    #OrcAxe
-    X12123:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 261
-    #UrukAxe
-    X12150:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 391
-Bows:    
-    #ElvenBow
-    X12093:
-        XP_Modifer: 2
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 9
-        Durability: 485
-    #mallornbow
-    X12084:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 417
-    #orcBow
-    X12099:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 441
-    #UrukCrossbow
-    X12163:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 471
-    #MithrilCrossbow
-    X12171:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 1761
-    #IronCrossbow
-    X12170:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 9
-        Durability: 357
-    #BowofMirkwood
-    X12177:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X1806
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 3
-        Durability: 417
-Hoes:    
-    #BronzeHoe
-    X12011:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 197
-    #MithrilHoe
-    X12052:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 2479
-    #MallornHoe
-    X12077:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 1
-        Repair_Material_Quantity: 2
-        Durability: 121
-    #CopperHoe
-    X26511:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #ElvenHoe
-    X12082:
-        XP_Modifer: 2
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12082
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #DwarvenHoe
-    X12117:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-Pickaxes:    
-    #MEBronzePickaxe
-    X12008:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 197
-    #MithrilPixkaxe
-    X12049:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2479
-    #MallornPickaxe
-    X12074:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 121
-    #ElvenPickaxe
-    X12079:
-        XP_Modifer: 2
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 313
-    #DwarvenPickaxe
-    X12114:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 451
-    #UrukPickaxe
-    X12149:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 391
-    #OrcPickaxe
-    X12122:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 261
-Shovels:    
-    #BronzeShovel
-    X12007:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 197
-    #MithrilShovel
-    X12048:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 2479
-    #MallornShovel
-    X12073:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 1
-        Repair_Material_Quantity: 1
-        Durability: 121
-    #ElvenShovel
-    X12078:
-        XP_Modifer: 2
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12082
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 313
-    #DwarvenShovel
-    X12113:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 451
-    #UrukShovel
-    X12148:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 391
-    #OrcShovel
-    X12121:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 261
-
-Swords:    
-    #Uruk Dagger
-    X12153:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #Poisoned urukd agger
-    X12154:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #Uruk Spear
-    X12157:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 391
-    #Rohirric Sword
-    X12181:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 251
-    #Rohirric Dagger
-    X12182:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 201
-    #Rohirric Spear
-    X12183:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 251
-    #Dunlending Spear
-    X12212:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 251
-    #Uruk Scimitar
-    X12151:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12147
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 391
-    #Mithril Dagger
-    X12137:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1983
-    #Iron Dagger
-    X12136:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 201
-    #Dwarven Dagger
-    X12118:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 361
-    #Dwarven Sword
-    X12116:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12112
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 451
-    #Elven Sword
-    X12081:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #Elven Spear
-    X12083:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #Anduril
-    X12070:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 313
-    #Mallorn Sword
-    X12076:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X1801
-        Repair_Material_Data_Value: 1
-        Repair_Material_Quantity: 2
-        Durability: 121
-    #Mithril Spear
-    X12069:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 2479
-    #Iron Spear
-    X12068:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: IRON_INGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 251
-    #Orc Spear
-    X12066:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 261
-    #Bronze Spear
-    X12067:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 197
-    #Gondor Spear
-    X12065:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 281
-    #Gondor Sword
-    X12056:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 281
-    #Orc Scimitar
-    X12031:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12036
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 261
-    #Steel Sword
-    X26862:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 751
-    #Bronze Sword
-    X12010:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X12004
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 197
-    #Mithril Sword
-    X12051:
-        XP_Modifer: 1
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X12006
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 2479    

+ 0 - 14
extras/mods/1.6.x/advancedgenetics.tools.yml

@@ -1,14 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Advanced Genetics 1.4.3
-Bows:
-    # Genetic
-    X31179:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31197
-        Repair_Material_Pretty_Name: "Cell"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 1501

+ 0 - 9
extras/mods/1.6.x/appliedenergistics.blocks.yml

@@ -1,9 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Applied Energistics rv14-finale3
-Mining:
-    # Certus Quartz Ore
-    X4076|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 65
extras/mods/1.6.x/appliedenergistics.tools.yml

@@ -1,65 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Applied Energistics rv14-finale3
-Axes:
-    # Quartz
-    X4365:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X4362
-        Repair_Material_Pretty_Name: "Certus Quartz"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 3
-        Durability: 250
-
-Hoes:
-    # Quartz
-    X4366:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X4362
-        Repair_Material_Pretty_Name: "Certus Quartz"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 2
-
-Pickaxes:
-    # Quartz
-    X4368:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X4362
-        Repair_Material_Pretty_Name: "Certus Quartz"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 3
-        Durability: 250
-
-Shovels:
-    # Quartz
-    X4367:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X4362
-        Repair_Material_Pretty_Name: "Certus Quartz"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 1
-        Durability: 750
-
-Swords:
-    # Quartz
-    X4369:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X4362
-        Repair_Material_Pretty_Name: "Certus Quartz"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 2
-        Durability: 250

+ 0 - 9
extras/mods/1.6.x/bigreactors.blocks.yml

@@ -1,9 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Big Reactors 0.3.4A2
-Mining:
-    # Yellorite
-    X1750|0:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 77
extras/mods/1.6.x/biomesoplenty.armor.yml

@@ -1,77 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of BoP 1.2.1.434
-Boots:
-    # Wading
-    X21269:
-        Repairable: false
-        Durability: 9999
-    # Muddy
-    X21283:
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 26
-    # Amethyst
-    X21293:
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 520
-
-Chestplates:
-    # Muddy
-    X21281:
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 32
-    # Amethyst
-    X21291:
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 640
-
-Helmets:
-    # Muddy
-    X21280:
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 22
-    # Amethyst
-    X21290:
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 440
-
-Leggings:
-    # Muddy
-    X21280:
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 30
-    # Amethyst
-    X21290:
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 600

+ 0 - 44
extras/mods/1.6.x/biomesoplenty.blocks.yml

@@ -1,44 +0,0 @@
-# Config wrote by M1cr0man
-# Incomplete! Only covers ores
-# Up to date as of BoP 1.2.1.434
-Mining:
-    # Red Rock
-    X162|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Amethyst
-    X1921|0:
-        XP_Gain: 200
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Ruby
-    X1921|2:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Peridot
-    X1921|4:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Topaz
-    X1921|6:
-        XP_Gain: 200
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tanzanite
-    X1921|8:
-        XP_Gain: 200
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Malachite
-    X1921|10:
-        XP_Gain: 200
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Sapphire
-    X1921|12:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 121
extras/mods/1.6.x/biomesoplenty.tools.yml

@@ -1,121 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of BoP 1.2.1.434
-Axes:
-    # Amethyst
-    X21287:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2013
-    # Muddy
-    X21277:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 32
-
-Hoes:
-    # Amethyst
-    X21288:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 2013
-    # Muddy
-    X21278:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 32
-
-Pickaxes:
-    # Amethyst
-    X21286:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 2013
-    # Muddy
-    X21276:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 32
-
-Shovels:
-    # Amethyst
-    X21285:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 2013
-    # Muddy
-    X21275:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 32
-
-Swords:
-    # Amethyst
-    X21284:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X21264
-        Repair_Material_Pretty_Name: "Amethyst"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 2013
-    # Muddy
-    X21274:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X21263
-        Repair_Material_Pretty_Name: "Mud Ball"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 32

+ 0 - 31
extras/mods/1.6.x/emasher.armor.yml

@@ -1,31 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Emasher Resource 1.2.3.5
-Boots:
-    # Hemp
-    X9301:
-        Repairable: true
-        Repair_Material: X9291
-        Repair_Material_Pretty_Name: "Hemp"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 65
-
-Chestplates:
-    # Hemp
-    X9299:
-        Repairable: true
-        Repair_Material: X9291
-        Repair_Material_Pretty_Name: "Hemp"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 80
-
-Leggings:
-    # Hemp
-    X9300:
-        Repairable: true
-        Repair_Material: X9291
-        Repair_Material_Pretty_Name: "Hemp"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 75

+ 0 - 44
extras/mods/1.6.x/emasher.blocks.yml

@@ -1,44 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Emasher Resource 1.2.3.5
-Mining:
-    # Bauxite
-    X1565|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Cassiterite
-    X1565|1:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Emery
-    X1565|2:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Galena
-    X1565|3:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Native Copper
-    X1565|4:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Petlandite
-    X1565|5:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Ruby
-    X1565|6:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Sapphire
-    X1565|7:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 166
extras/mods/1.6.x/extrabiomesxl.blocks.yml

@@ -1,166 +0,0 @@
-# Config created by Dragyn
-# Created For ExtrabiomesXL-universal-1.6.4-3.14.5
-
-#
-#  Settings for Custom Excavation Blocks
-###
-Excavation:
-    # Quicksand
-    X2214|0:
-        XP_Gain: 40
-        Double_Drops_Enabled: true
-
-
-#
-#  Settings for Custom Herbalism Blocks
-###
-Herbalism:
-    # Cattails
-    X2201|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-    # Hydrangea
-    X2202|1:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-    # Buttercups
-    X2202|2:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-    # Lavender
-    X2202|3:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-    # Tiny Cactus
-    X2202|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-    # Toadstool
-    X2202|6:
-        XP_Gain: 150
-        Double_Drops_Enabled: true        
-    # Calla Lillies
-    X2202|7:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    X254|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-
-    X254|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-
-#
-#  Settings for Custom Woodcutting Blocks
-###
-Woodcutting:
-    # Fir 
-    X2208|0:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Acacia 
-    X2208|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Cypress 
-    X2208|2:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Japanese Maple
-    X2208|3:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Redwood Quarter
-    X2209|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2211|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2212|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2213|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Fir Quarters
-    X2211|1:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2212|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2213|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true        
-    # Oak Quarters
-    X2211|2:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2212|2:
-        XP_Gain: 70
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X2213|2:
-        XP_Gain: 70
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Acacia 
-    # Cypress
-    # Bald Cypress Quarter
-    X2225|0:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true    
-    # Bald Cypress Elbow
-    X2227|0:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true     
-    # Bald Cypress Log
-    X2231|2:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Rainbow Eucalyptus
-    X2228|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true           
-    X2229|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true  
-    X2231|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true     
-    # Autumn Log
-    X2231|1:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Sakura Log
-    X2238|0:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true         

+ 0 - 54
extras/mods/1.6.x/extrautilities.tools.yml

@@ -1,54 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Extra Utilities 1.0.3c
-Axes:
-    # Healing
-    X10264:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X10258
-        Repair_Material_Pretty_Name: "Unstable Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 1561
-
-Hoes:
-    # Reversing
-    X10265:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X10258
-        Repair_Material_Pretty_Name: "Unstable Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1561
-
-Pickaxes:
-    # Destruction
-    X10263:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: false
-        Durability: 6244
-
-Shovels:
-    # Erosion
-    X10262:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: false
-        Durability: 6244
-
-Swords:
-    # Etheric
-    X10261:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: false
-        Durability: 1561

+ 0 - 9
extras/mods/1.6.x/factorization.blocks.yml

@@ -1,9 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Factorization 0.8.34
-Mining:
-    # Dark Iron Ore
-    X1004|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 19
extras/mods/1.6.x/forestry.blocks.yml

@@ -1,19 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Forestry 2.3.1.1
-Mining:
-    # Apatite
-    X1398|0:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Copper
-    X1398|1:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tin
-    X1398|2:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 27
extras/mods/1.6.x/forestry.tools.yml

@@ -1,27 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Forestry 2.3.1.1
-Pickaxes:
-    # Survivalist
-    X13261:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X5261
-        Repair_Material_Pretty_Name: "Bronze Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 200
-
-Shovels:
-    # Survivalist
-    X13264:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X5261
-        Repair_Material_Pretty_Name: "Bronze Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 200

+ 0 - 71
extras/mods/1.6.x/galacticraft.armor.yml

@@ -1,71 +0,0 @@
-# Config created by Dragyn
-# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
-#
-#  Settings for Boots
-###
-Boots:
-    # Heavy Duty
-    X10149:
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    X10171:
-        Repairable: true
-        Repair_Material: X10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 999
-#
-#  Settings for Chestplates
-###
-Chestplates:
-    # Heavy Duty
-    X10147:
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    X10169:
-        Repairable: true
-        Repair_Material: X10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 999
-#
-#  Settings for Helmets
-###
-Helmets:
-    # Heavy Duty
-        X10146:
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    X10168:
-        Repairable: true
-        Repair_Material: X10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 999
-#
-#  Settings for Leggings
-###
-Leggings:
-    # Heavy Duty
-    X10148:
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    X10170:
-        Repairable: true
-        Repair_Material: X10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 999
-        

+ 0 - 98
extras/mods/1.6.x/galacticraft.blocks.yml

@@ -1,98 +0,0 @@
-# Config created by Dragyn
-# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
-#
-#  Settings for Custom Excavation Blocks
-###
-Excavation:
-    # Dirt
-    X3347|3:
-        XP_Gain: 40
-        Double_Drops_Enabled: true
-    Block_2|0:
-        XP_Gain: 99
-        Double_Drops_Enabled: true
-
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    # Copper Ore
-    X3347|0:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    X3372|5:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    X3390|0:
-        XP_Gain: 550
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tin Ore
-    X3347|1:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    X3372|6:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    X3390|1:
-        XP_Gain: 550
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Aluminum Ore
-    X3372|7:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Silicon Ore
-    X3372|8:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Cheese Ore
-    X3347|2:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true   
-    # Iron Ore
-    X3390|3:
-        XP_Gain: 550
-        Double_Drops_Enabled: true
-        Is_Ore: true        
-    # Desh Ore
-    X3390|2:
-        XP_Gain: 600
-        Double_Drops_Enabled: true
-        Is_Ore: true                    
-    # Moon Stone
-    X3347|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false    
-    # Moon Turf
-    X3347|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false    
-    # Mars Cobblestone
-    X3390|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false     
-    # Mars Rock/Stone
-    X3390|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false 
-    X3390|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false 
-    X3390|9:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false 
-

+ 0 - 123
extras/mods/1.6.x/galacticraft.tools.yml

@@ -1,123 +0,0 @@
-# Config created by Dragyn
-# Created For Galacticraft-1.6.4-2.0.7.904 and Galacticraft-Planets-1.6.4-2.0.7.904
-#
-#  Settings for Axes
-###
-Axes:
-    # Heavy Duty
-    X10145:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desh
-    X10167:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: 10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 1000
-
-#
-#  Settings for Hoes
-###
-Hoes:
-    # Heavy Duty
-    X10144:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desh
-    X10166:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: 10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 1000
-#
-#  Settings for Pickaxes
-###
-Pickaxes:
-    # Heavy Duty
-    X10142:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desh
-    X10164:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: 10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 1000
-#
-#  Settings for Shovels
-###
-Shovels:
-    # Heavy Duty
-    X10143:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desh
-    X10165:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: 10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 1000
-#
-#  Settings for Swords
-###
-Swords:
-    # Heavy Duty
-    X10141:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 4
-        Repairable: true
-        Repair_Material: X10150
-        Repair_Material_Data_Value: 9
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desh
-    X10163:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: 10161
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 1000

+ 0 - 1018
extras/mods/1.6.x/metallurgy3.armor.yml

@@ -1,1018 +0,0 @@
-# Config created by Dragyn
-# Created For Metallurgy-1.6.4-3.3.1 
-#
-#  Settings for Boots
-###
-Boots:
-    # Copper
-    X26516:
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Bronze
-    X26666:
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Hepatizon
-    X26716:
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Damascus
-    X26766:
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Angmallen
-    X26816:
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steel
-    X26866:
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Silver
-    X26966:
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Platinum
-    X27016:
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Brass
-    X27066:
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Electrum
-    X27116:
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ignatius
-    X27166:
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Shadow Iron
-    X27216:
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Midasium
-    X27316:
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vyroxeres
-    X27366:
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ceruclase
-    X27416:
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Kalendrite
-    X27516:
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vulcanite
-    X27566:
-        Repairable: true
-        Repair_Material: X27557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sanguinite
-    X27616:
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Inolashite
-    X27716:
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Amordrine
-    X27766:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Prometheum
-    X27816:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Deep Iron
-    X27866:
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Black Steel
-    X27966:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Oureclase
-    X28016:
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Astral Silver
-    X28066:
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Carmot
-    X28116:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X28166:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Haderoth
-    X28316:
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orichalcum
-    X28366:
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Celenegil
-    X28416:
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Adamantine
-    X28466:
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Atlarus
-    X28516:
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Tartarite
-    X28566:
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Eximite
-    X28616:
-        Repairable: true
-        Repair_Material: X28607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desichalkos
-    X28716:
-        Repairable: true
-        Repair_Material: X28707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-                                                                                                                                           
-                                                                                                                                           
-#
-#  Settings for Chestplates
-###
-Chestplates:
-    # Copper
-    X26514:
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Bronze
-    X26664:
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Hepatizon
-    X26714:
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Damascus
-    X26764:
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Angmallen
-    X26814:
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steel
-    X26864:
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Silver
-    X26964:
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Platinum
-    X27014:
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Brass
-    X27064:
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500                                       
-    # Electrum
-    X27114:
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ignatius
-    X27164:
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Shadow Iron
-    X27214:
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Midasium
-    X27314:
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vyroxeres
-    X27364:
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ceruclase
-    X27414:
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Kalendrite
-    X27514:
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vulcanite
-    X27564:
-        Repairable: true
-        Repair_Material: X27557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sanguinite
-    X27614:
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Inolashite
-    X27714:
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Amordrine
-    X27764:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Prometheum
-    X27814:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Deep Iron
-    X27864:
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Black Steel
-    X27964:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Oureclase
-    X28014:
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Astral Silver
-    X28064:
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Carmot
-    X28114:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X28164:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Haderoth
-    X28314:
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orichalcum
-    X28364:
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Celenegil
-    X28414:
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Adamantine
-    X28464:
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Atlarus
-    X28514:
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Tartarite
-    X28564:
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Eximite
-    X28614:
-        Repairable: true
-        Repair_Material: X28607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desichalkos
-    X28714:
-        Repairable: true
-        Repair_Material: X28707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-                                                                                                                                           
-                                                                                                                            
-                                                                                                                                    
-
-#
-#  Settings for Helmets
-###
-Helmets:
-    # Copper
-    X26513:
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Bronze
-    X26663:
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Hepatizon
-    X26713:
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Damascus
-    X26763:
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Angmallen
-    X26813:
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steel
-    X26863:
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Silver
-    X26963:
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Platinum
-    X27013:
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Brass
-    X27063:
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500                                       
-    # Electrum
-    X27113:
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ignatius
-    X27163:
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Shadow Iron
-    X27213:
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Midasium
-    X27313:
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vyroxeres
-    X27363:
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ceruclase
-    X27413:
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Kalendrite
-    X27513:
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vulcanite
-    X27563:
-        Repairable: true
-        Repair_Material: X27557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sanguinite
-    X27613:
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Inolashite
-    X27713:
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Amordrine
-    X27763:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Prometheum
-    X27813:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Deep Iron
-    X27863:
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Black Steel
-    X27963:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Oureclase
-    X28013:
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Astral Silver
-    X28063:
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Carmot
-    X28113:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X28163:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Haderoth
-    X28313:
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orichalcum
-    X28363:
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Celenegil
-    X28413:
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Adamantine
-    X28463:
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Atlarus
-    X28513:
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Tartarite
-    X28563:
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Eximite
-    X28613:
-        Repairable: true
-        Repair_Material: X28607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desichalkos
-    X28713:
-        Repairable: true
-        Repair_Material: X28707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-                                                                                                                                           
-                                                                                                                            
-                                                                                                                
-
-#
-#  Settings for Leggings
-###
-Leggings:
-    # Copper
-    X26515:
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Bronze
-    X26665:
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Hepatizon
-    X26715:
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Damascus
-    X26765:
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Angmallen
-    X26815:
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steel
-    X26865:
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Silver
-    X26965:
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Platinum
-    X27015:
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Brass
-    X27065:
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500                                       
-    # Electrum
-    X27115:
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ignatius
-    X27165:
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Shadow Iron
-    X27215:
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Midasium
-    X27315:
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vyroxeres
-    X27365:
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Ceruclase
-    X27415:
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Kalendrite
-    X27515:
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Vulcanite
-    X27565:
-        Repairable: true
-        Repair_Material: X27557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sanguinite
-    X27615:
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Inolashite
-    X27715:
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Amordrine
-    X27765:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Prometheum
-    X27815:
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Deep Iron
-    X27865:
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Black Steel
-    X27965:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Oureclase
-    X28015:
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Astral Silver
-    X28065:
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Carmot
-    X28115:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Mithril
-    X28165:
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Haderoth
-    X28315:
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Orichalcum
-    X28365:
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Celenegil
-    X28415:
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Adamantine
-    X28465:
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Atlarus
-    X28515:
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Tartarite
-    X28565:
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Eximite
-    X28615:
-        Repairable: true
-        Repair_Material: X28607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Desichalkos
-    X28715:
-        Repairable: true
-        Repair_Material: X28707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-                                                                                                                                           
-                                                                                                                                           
-                                                                                                                             
-                                                                                                                                   
-
-
-
-
-
-

+ 0 - 185
extras/mods/1.6.x/metallurgy3.blocks.yml

@@ -1,185 +0,0 @@
-# Config created by Dragyn
-# Created For Metallurgy-1.6.4-3.3.1 
-#
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    # Copper
-    X900|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tin
-    X900|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Zinc
-    X902|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Silver
-    X902|1:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Platinum
-    X902|3:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-
-    # NETHER ORES
-    # Ignatius
-    X903|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Shadow Iron
-    X903|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Lemurite
-    X903|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true                
-    # Midasium
-    X903|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Vyroxeres
-    X903|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Ceruclase
-    X903|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Alduorite
-    X903|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Kalendrite
-    X903|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Vulcanite
-    X903|8:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Sanguinite
-    X903|9:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: true
-
-    # Manganese
-    X900|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Eximite
-    X900|5:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Meutoite
-    X900|6:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Sulfur
-    X905|7:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Phosphorite
-    X905|8:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Saltpeter
-    X905|9:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Magnesium
-    X905|10:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Bitumen
-    X905|11:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Potash
-    X905|12:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Prometheum
-    X906|0:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true        
-    # Deep Iron
-    X906|1:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true 
-    # Infuscolium
-    X906|2:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true 
-    # Oureclase
-    X906|4:
-        XP_Gain: 650
-        Double_Drops_Enabled: true
-        Is_Ore: true 
-    # Astral Silver
-    X906|5:
-        XP_Gain: 650
-        Double_Drops_Enabled: true
-        Is_Ore: true 
-    # Carmot
-    X906|6:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Mithril
-    X906|7:
-        XP_Gain: 750
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Rubracium
-    X906|8:
-        XP_Gain: 800
-        Double_Drops_Enabled: true
-        Is_Ore: true         
-    # Orichalcum
-    X906|11:
-        XP_Gain: 900
-        Double_Drops_Enabled: true
-        Is_Ore: true         
-    # Adamantine
-    X906|13:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Ore: true         
-    # Atlarus
-    X906|14:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Ore: true   

+ 0 - 1789
extras/mods/1.6.x/metallurgy3.tools.yml

@@ -1,1789 +0,0 @@
-#
-#  mcMMO Mod configuration for use with Metallurgy
-#  Made for Metallurgy-1.6.4-3.3.1
-#  By Skuli, updated by Dragyn
-#
-###
-
-#
-#  Settings for Axes
-###
-Axes:
-    #Copper_Axe
-    X26510:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #Bronze_Axe
-    X26660:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Hepatizon_Axe
-    X26710:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Damascus_Steel_Axe
-    X26760:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Angmallen_Axe
-    X26810:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Steel_Axe
-    X26860:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Brass_Axe
-    X27060:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 15
-    #Silver_Axe
-    X26960:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 25
-    #Electrum_Axe
-    X27110:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Platinum_Axe
-    X27010:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Ignatius_Axe
-    X27160:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Shadow_Iron_Axe
-    X27210:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Shadow_Steel_Axe
-    X27660:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 400
-    #Midasium_Axe
-    X27310:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Vyroxeres_Axe
-    X27360:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Ceruclase_Axe
-    X27410:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Inolashite_Axe
-    X27710:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 900
-    #Kalendrite_Axe
-    X27510:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Amordrine_Axe
-    X27760:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Vulcanite_Axe
-    X27560:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1500
-    #Sanguinite_Axe
-    X27610:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Prometheum_Axe
-    X27810:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27808
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Deep_Iron_Axe
-    X27860:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Black_Steel_Axe
-    X27960:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Oureclase_Axe
-    X28010:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Astral_Silver_Axe
-    X28060:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 35
-    #Carmot_Axe
-    X28110:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Mithril_Axe
-    X28160:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Quicksilver_Axe
-    X28260:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28257
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1100
-    #Haderoth_Axe
-    X28310:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1250
-    #Orichalcum_Axe
-    X28360:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1350
-    #Celenegil_Axe
-    X28410:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1600
-    #Adamantine_Axe
-    X28460:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1550
-    #Atlarus_Axe
-    X28510:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Tartarite_Axe
-    X28560:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 3000
-
-
-#
-#  Settings for Bows
-###
-Bows:
-    #Bow_1
-    #Bow_2
-
-#
-#  Settings for Hoes
-###
-Hoes:
-    #Copper_Hoe
-    X26511:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #Bronze_Hoe
-    X26661:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Hepatizon_Hoe
-    X26711:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Damascus_Steel_Hoe
-    X26761:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Angmallen_Hoe
-    X26811:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Steel_Hoe
-    X26861:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Brass_Hoe
-    X27061:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 15
-    #Silver_Hoe
-    X26961:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 25
-    #Electrum_Hoe
-    X27111:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Platinum_Hoe
-    X27011:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Ignatius_Hoe
-    X27161:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Shadow_Iron_Hoe
-    X27211:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Shadow_Steel_Hoe
-    X27661:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 400
-    #Midasium_Hoe
-    X27311:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Vyroxeres_Hoe
-    X27361:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Ceruclase_Hoe
-    X27411:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Inolashite_Hoe
-    X27711:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 900
-    #Kalendrite_Hoe
-    X27511:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Amordrine_Hoe
-    X27761:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Vulcanite_Hoe
-    X27561:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1500
-    #Sanguinite_Hoe
-    X27611:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Prometheum_Hoe
-    X27811:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27808
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Deep_Iron_Hoe
-    X27861:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Black_Steel_Hoe
-    X27961:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Oureclase_Hoe
-    X28011:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Astral_Silver_Hoe
-    X28061:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 35
-    #Carmot_Hoe
-    X28111:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Mithril_Hoe
-    X28161:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Quicksilver_Hoe
-    X28261:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28257
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1100
-    #Haderoth_Hoe
-    X28311:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1250
-    #Orichalcum_Hoe
-    X28361:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1350
-    #Celenegil_Hoe
-    X28411:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1600
-    #Adamantine_Hoe
-    X28461:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1550
-    #Atlarus_Hoe
-    X28511:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Tartarite_Hoe
-    X28561:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 3000
-
-
-#
-#  Settings for Pickaxes
-###
-Pickaxes:
-    #Copper_Pickaxe
-    X26508:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #Bronze_Pickaxe
-    X26658:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Hepatizon_Pickaxe
-    X26708:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Damascus_Steel_Pickaxe
-    X26758:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Angmallen_Pickaxe
-    X26808:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Steel_Pickaxe
-    X26858:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Brass_Pickaxe
-    X27058:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 15
-    #Silver_Pickaxe
-    X26958:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 25
-    #Electrum_Pickaxe
-    X27108:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Platinum_Pickaxe
-    X27008:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Ignatius_Pickaxe
-    X27158:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Shadow_Iron_Pickaxe
-    X27208:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Shadow_Steel_Pickaxe
-    X27658:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 400
-    #Midasium_Pickaxe
-    X27308:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Vyroxeres_Pickaxe
-    X27358:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Ceruclase_Pickaxe
-    X27408:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Inolashite_Pickaxe
-    X27708:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 900
-    #Kalendrite_Pickaxe
-    X27508:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Amordrine_Pickaxe
-    X27758:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Vulcanite_Pickaxe
-    X27558:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1500
-    #Sanguinite_Pickaxe
-    X27608:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Prometheum_Pickaxe
-    X27808:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27808
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Deep_Iron_Pickaxe
-    X27858:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Black_Steel_Pickaxe
-    X27958:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Oureclase_Pickaxe
-    X28008:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Astral_Silver_Pickaxe
-    X28058:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 35
-    #Carmot_Pickaxe
-    X28108:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Mithril_Pickaxe
-    X28158:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Quicksilver_Pickaxe
-    X28258:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28257
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1100
-    #Haderoth_Pickaxe
-    X28308:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1250
-    #Orichalcum_Pickaxe
-    X28358:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1350
-    #Celenegil_Pickaxe
-    X28408:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1600
-    #Adamantine_Pickaxe
-    X28458:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1550
-    #Atlarus_Pickaxe
-    X28508:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Tartarite_Pickaxe
-    X28558:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 3000
-
-#
-#  Settings for Shovels
-###
-Shovels:
-    #Copper_Shovel
-    X26509:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #Bronze_Shovel
-    X26659:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Hepatizon_Shovel
-    X26709:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Damascus_Steel_Shovel
-    X26759:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Angmallen_Shovel
-    X26809:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Steel_Shovel
-    X26859:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Brass_Shovel
-    X27059:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 15
-    #Silver_Shovel
-    X26959:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 25
-    #Electrum_Shovel
-    X27109:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Platinum_Shovel
-    X27009:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Ignatius_Shovel
-    X27159:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Shadow_Iron_Shovel
-    X27209:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Shadow_Steel_Shovel
-    X27659:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 400
-    #Midasium_Shovel
-    X27309:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Vyroxeres_Shovel
-    X27359:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Ceruclase_Shovel
-    X27409:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Inolashite_Shovel
-    X27709:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 900
-    #Kalendrite_Shovel
-    X27509:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Amordrine_Shovel
-    X27759:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Vulcanite_Shovel
-    X27559:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1500
-    #Sanguinite_Shovel
-    X27609:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Prometheum_Shovel
-    X27809:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27808
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Deep_Iron_Shovel
-    X27859:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Black_Steel_Shovel
-    X27959:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Oureclase_Shovel
-    X28009:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Astral_Silver_Shovel
-    X28059:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 35
-    #Carmot_Shovel
-    X28109:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Mithril_Shovel
-    X28159:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Quicksilver_Shovel
-    X28259:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28257
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1100
-    #Haderoth_Shovel
-    X28309:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1250
-    #Orichalcum_Shovel
-    X28359:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1350
-    #Celenegil_Shovel
-    X28409:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1600
-    #Adamantine_Shovel
-    X28459:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1550
-    #Atlarus_Shovel
-    X28509:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Tartarite_Shovel
-    X28559:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 3000
-#
-#  Settings for Swords
-###
-Swords:
-    #Copper_Sword
-    X26512:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 180
-    #Bronze_Sword
-    X26661:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Hepatizon_Sword
-    X26712:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Damascus_Steel_Sword
-    X26762:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Angmallen_Sword
-    X26812:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26807
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Steel_Sword
-    X26862:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Brass_Sword
-    X27062:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 15
-    #Silver_Sword
-    X26962:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X26957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 25
-    #Electrum_Sword
-    X27111:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Platinum_Sword
-    X27012:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Ignatius_Sword
-    X27162:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27207
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Shadow_Iron_Sword
-    X27212:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Shadow_Steel_Sword
-    X27662:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27657
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 400
-    #Midasium_Sword
-    X27312:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 100
-    #Vyroxeres_Sword
-    X27362:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 300
-    #Ceruclase_Sword
-    X27412:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Inolashite_Sword
-    X27712:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27707
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 900
-    #Kalendrite_Sword
-    X27512:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Amordrine_Sword
-    X27762:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Vulcanite_Sword
-    X27562:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27757
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1500
-    #Sanguinite_Sword
-    X27612:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27607
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    #Prometheum_Sword
-    X27812:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27808
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 200
-    #Deep_Iron_Sword
-    X27862:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27857
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 250
-    #Black_Steel_Sword
-    X27962:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    #Oureclase_Sword
-    X28012:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28007
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 750
-    #Astral_Silver_Sword
-    X28062:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28057
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 35
-    #Carmot_Sword
-    X28111:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28107
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-    #Mithril_Sword
-    X28162:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28157
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1000
-    #Quicksilver_Sword
-    X28262:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28257
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1100
-    #Haderoth_Sword
-    X28312:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28307
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1250
-    #Orichalcum_Sword
-    X28362:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28357
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1350
-    #Celenegil_Sword
-    X28412:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28407
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1600
-    #Adamantine_Sword
-    X28462:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28457
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1550
-    #Atlarus_Sword
-    X28512:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28507
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1750
-    # Tartarite_Sword
-    X28562:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28557
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 3000

+ 0 - 11
extras/mods/1.6.x/minefactoryreloaded.armor.yml

@@ -1,11 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Minefactory Reloaded 2.7.9 Final
-Boots:
-    # Plastic
-    X12306:
-        Repairable: true
-        Repair_Material: X12249
-        Repair_Material_Pretty_Name: "Plastic Sheets"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 39

+ 0 - 41
extras/mods/1.6.x/natura.armor.yml

@@ -1,41 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Natura 2.1.14
-Boots:
-    # Impskin
-    X12712:
-        Repairable: true
-        Repair_Material: X12660
-        Repair_Material_Pretty_Name: "Imp Leather"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 4
-        Durability: 429
-
-Chestplates:
-    # Impskin
-    X12710:
-        Repairable: true
-        Repair_Material: X12660
-        Repair_Material_Pretty_Name: "Imp Leather"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 8
-        Durability: 528
-
-Helmets:
-    # Impskin
-    X12709:
-        Repairable: true
-        Repair_Material: X12660
-        Repair_Material_Pretty_Name: "Imp Leather"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 5
-        Durability: 363
-
-Leggings:
-    # Impskin
-    X12709:
-        Repairable: true
-        Repair_Material: X12660
-        Repair_Material_Pretty_Name: "Imp Leather"
-        Repair_Material_Data_Value: 6
-        Repair_Material_Quantity: 7
-        Durability: 495

+ 0 - 272
extras/mods/1.6.x/natura.tools.yml

@@ -1,272 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Natura 2.1.14
-Axes:
-    # Bloodwood
-    X12685:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Bloodwood Planks"
-        Repair_Material_Data_Value: 4
-        Repair_Material_Quantity: 3
-        Durability: 350
-    # Darkwood
-    X12689:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Darkwood Planks"
-        Repair_Material_Data_Value: 11
-        Repair_Material_Quantity: 3
-        Durability: 131
-    # Fusewood
-    X12693:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Fusewood Planks"
-        Repair_Material_Data_Value: 12
-        Repair_Material_Quantity: 3
-        Durability: 250
-    # Ghostwood
-    X12681:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Ghostwood Planks"
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 3
-        Durability: 59
-    # Quartz
-    X12697:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: QUARTZ_BLOCK
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 131
-
-Bows:
-    # Bloodwood
-    X12706:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X12677
-        Repair_Material_Pretty_Name: "Bloodwood Stick"
-        Repair_Material_Data_Value: 4
-        Repair_Material_Quantity: 3
-        Durability: 1501
-    # Darkwood
-    X12707:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X12677
-        Repair_Material_Pretty_Name: "Darkwood Stick"
-        Repair_Material_Data_Value: 11
-        Repair_Material_Quantity: 3
-        Durability: 162
-    # Fusewood
-    X12708:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X12677
-        Repair_Material_Pretty_Name: "Fusewood Stick"
-        Repair_Material_Data_Value: 12
-        Repair_Material_Quantity: 3
-        Durability: 28
-    # Ghostwood
-    X12705:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X12677
-        Repair_Material_Pretty_Name: "Ghostwood Stick"
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 3
-        Durability: 384
-
-
-Pickaxes:
-    # Bloodwood
-    X12683:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Bloodwood Planks"
-        Repair_Material_Data_Value: 4
-        Repair_Material_Quantity: 3
-        Durability: 350
-    # Darkwood
-    X12687:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Darkwood Planks"
-        Repair_Material_Data_Value: 11
-        Repair_Material_Quantity: 3
-        Durability: 131
-    # Fusewood
-    X12691:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Fusewood Planks"
-        Repair_Material_Data_Value: 12
-        Repair_Material_Quantity: 3
-        Durability: 250
-    # Ghostwood
-    X12679:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Ghostwood Planks"
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 3
-        Durability: 59
-    # Quartz
-    X12695:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: QUARTZ_BLOCK
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 3
-        Durability: 131
-
-Shovels:
-    # Bloodwood
-    X12684:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Bloodwood Planks"
-        Repair_Material_Data_Value: 4
-        Repair_Material_Quantity: 1
-        Durability: 350
-    # Darkwood
-    X12688:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Darkwood Planks"
-        Repair_Material_Data_Value: 11
-        Repair_Material_Quantity: 1
-        Durability: 131
-    # Fusewood
-    X12692:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Fusewood Planks"
-        Repair_Material_Data_Value: 12
-        Repair_Material_Quantity: 1
-        Durability: 250
-    # Ghostwood
-    X12680:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Ghostwood Planks"
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 1
-        Durability: 59
-    # Quartz
-    X12696:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: QUARTZ_BLOCK
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 1
-        Durability: 131
-
-Swords:
-    # Bloodwood
-    X12682:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Bloodwood Planks"
-        Repair_Material_Data_Value: 4
-        Repair_Material_Quantity: 2
-        Durability: 350
-    # Darkwood
-    X12686:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Darkwood Planks"
-        Repair_Material_Data_Value: 11
-        Repair_Material_Quantity: 2
-        Durability: 131
-    # Fusewood
-    X12690:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Fusewood Planks"
-        Repair_Material_Data_Value: 12
-        Repair_Material_Quantity: 2
-        Durability: 250
-    # Ghostwood
-    X12678:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: X3262
-        Repair_Material_Pretty_Name: "Ghostwood Planks"
-        Repair_Material_Data_Value: 2
-        Repair_Material_Quantity: 2
-        Durability: 59
-    # Quartz
-    X12694:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: true
-        Repair_Material: QUARTZ_BLOCK
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131

+ 0 - 29
extras/mods/1.6.x/projectred.blocks.yml

@@ -1,29 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Project Red 4.3.5.30
-Mining:
-    # Ruby
-    X2130|0:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Sapphire
-    X2130|1:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Peridot
-    X2130|2:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Marble
-    X2131|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Basalt
-    X2131|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false

+ 0 - 176
extras/mods/1.6.x/projectred.tools.yml

@@ -1,176 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Project Red 4.3.5.30
-Axes:
-    # Ruby
-    X9353:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Ruby"
-        Repair_Material_Data_Value: 37
-        Repair_Material_Quantity: 3
-        Durability: 500
-    # Sapphire
-    X9354:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Sapphire"
-        Repair_Material_Data_Value: 38
-        Repair_Material_Quantity: 3
-        Durability: 500
-    # Peridot
-    X9355:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Peridot"
-        Repair_Material_Data_Value: 39
-        Repair_Material_Quantity: 3
-        Durability: 500
-
-Hoes:
-    # Ruby
-    X9356:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Ruby"
-        Repair_Material_Data_Value: 37
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sapphire
-    X9357:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Sapphire"
-        Repair_Material_Data_Value: 38
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Peridot
-    X9358:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Peridot"
-        Repair_Material_Data_Value: 39
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-Pickaxes:
-    # Ruby
-    X9359:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Ruby"
-        Repair_Material_Data_Value: 37
-        Repair_Material_Quantity: 3
-        Durability: 500
-    # Sapphire
-    X9360:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Sapphire"
-        Repair_Material_Data_Value: 38
-        Repair_Material_Quantity: 3
-        Durability: 500
-    # Peridot
-    X9361:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Peridot"
-        Repair_Material_Data_Value: 39
-        Repair_Material_Quantity: 3
-        Durability: 500
-
-Shovels:
-    # Ruby
-    X9362:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Ruby"
-        Repair_Material_Data_Value: 37
-        Repair_Material_Quantity: 1
-        Durability: 500
-    # Sapphire
-    X9363:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Sapphire"
-        Repair_Material_Data_Value: 38
-        Repair_Material_Quantity: 1
-        Durability: 500
-    # Peridot
-    X9364:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Peridot"
-        Repair_Material_Data_Value: 39
-        Repair_Material_Quantity: 1
-        Durability: 500
-
-Swords:
-    # Ruby
-    X9365:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Ruby"
-        Repair_Material_Data_Value: 37
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Sapphire
-    X9366:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Sapphire"
-        Repair_Material_Data_Value: 38
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Peridot
-    X9368:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X9281
-        Repair_Material_Pretty_Name: "Peridot"
-        Repair_Material_Data_Value: 39
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 49
extras/mods/1.6.x/railcraft.armor.yml

@@ -1,49 +0,0 @@
-# Config wrote by Dragyn, updated by M1cr0man
-# Up to date as of Railcraft 8.4.0.0
-Boots:
-    # Steel
-    X7758:
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 325
-
-Chestplates:
-    # Steel
-    X7761:
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 400
-
-Helmets:
-    # Steel
-    X7759:
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 275
-
-Leggings:
-    # Steel
-    X7760:
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 375
-    # Overalls
-    X7757:
-        Repairable: true
-        Repair_Material: WOOL
-        Repair_Material_Pretty_Name: "Light Blue Wool"
-        Repair_Material_Data_Value: 3
-        Repair_Material_Quantity: 7
-        Durability: 75

+ 0 - 103
extras/mods/1.6.x/railcraft.blocks.yml

@@ -1,103 +0,0 @@
-# Config created by Dragyn
-# Created For Railcraft_1.6.2-8.1.0.0 
-#
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    # Abyssal Stone
-    X457|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Quarried Stone
-    X457|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Sulfur
-    X458|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Saltpeter
-    X458|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Dark Diamond
-    X458|2:
-        XP_Gain: 750
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Dark Emerald
-    X458|3:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Dark Lapis
-    X458|4:
-        XP_Gain: 400
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Firestone
-    X458|5:
-        XP_Gain: 450
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Infernal Stone
-    X467|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X467|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Blood Stained Stone
-    X468|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X468|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Sandy Stone
-    X469|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X469|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Quarried Stone
-    X471|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X471|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Frost Bound Stone
-    X472|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X472|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    # Nether Stone
-    X475|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X475|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-              
-              

+ 0 - 66
extras/mods/1.6.x/railcraft.tools.yml

@@ -1,66 +0,0 @@
-# Config wrote by Dragyn, updated by M1cr0man
-# Up to date as of Railcraft 8.4.0.0
-Axes:
-    # Steel
-    X7819:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-Hoes:
-    # Steel
-    X7820:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-Pickaxes:
-    # Steel
-    X7821:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-Shovels:
-    # Steel
-    X7823:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-Swords:
-    # Steel
-    X7824:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X7796
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 543
extras/mods/1.6.x/simcraft.blocks.yml

@@ -1,543 +0,0 @@
-# Config created by Dragyn
-# Created For SimCraft 1.6.4 
-#
-#
-#  Settings for Custom Herbalism Blocks
-###
-Herbalism:
-    X705|0:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|1:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|2:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|3:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|4:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|5:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|6:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|7:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|8:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|9:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|10:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|11:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|12:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|13:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|14:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X705|15:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|0:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|1:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|2:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|3:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|4:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|5:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|6:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|7:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|8:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|9:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|10:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|11:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|12:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|13:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|14:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X706|15:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|0:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|1:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|2:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|3:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|4:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|5:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|6:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|7:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|8:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|9:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|10:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|11:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|12:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|13:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|14:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-    X707|15:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    X700|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|8:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|9:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|10:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|11:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|12:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|13:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|14:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X700|15:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|0:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|1:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|2:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|3:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|4:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|5:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|6:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|7:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|8:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|9:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|10:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|11:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|12:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|13:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|14:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X701|15:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|8:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|9:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|10:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|11:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|12:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|13:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|14:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X702|15:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|8:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|9:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|10:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|11:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|12:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|13:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|14:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X703|15:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|8:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|9:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|10:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|11:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|12:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|13:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|14:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X704|15:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-#
-#  Settings for Custom Woodcutting Blocks
-###
-Woodcutting:
-    X708|0:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|2:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|3:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|4:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|5:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|6:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|7:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|8:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|9:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|10:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X708|11:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X1095|0:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X1095|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X1095|2:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    X1095|3:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true

+ 0 - 61
extras/mods/1.6.x/simcraft.tools.yml

@@ -1,61 +0,0 @@
-# Config created by Dragyn
-# Created For Railcraft_1.6.2-8.1.0.0 
-#
-#
-#  Settings for Axes
-###
-Axes:
-    # Steel
-    X15787:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X15260
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-
-#
-#  Settings for Pickaxes
-###
-Pickaxes:
-    # Steel
-    X15788:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X15260
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Shovels
-###
-Shovels:
-    # Steel
-    X15789:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X15260
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Swords
-###
-Swords:
-    # Steel
-    X15786:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X15260
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 9
extras/mods/1.6.x/stargatetech2.blocks.yml

@@ -1,9 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Stargate Tech 2 Alpha 0.7.3
-Mining:
-    # Naquadah Ore
-    X1005|0:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 41
extras/mods/1.6.x/thermalexpansion.armor.yml

@@ -1,41 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Thermal Expansion 3.0.0.7
-Boots:
-    # Invar
-    X31973:
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 4
-        Durability: 325
-
-Chestplates:
-    # Invar
-    X31975:
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 8
-        Durability: 400
-
-Helmets:
-    # Invar
-    X31976:
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 5
-        Durability: 275
-
-Leggings:
-    # Invar
-    X31976:
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 7
-        Durability: 375

+ 0 - 29
extras/mods/1.6.x/thermalexpansion.blocks.yml

@@ -1,29 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Thermal Expansion 3.0.0.7
-Mining:
-    # Copper
-    X4064|0:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tin
-    X4064|1:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Silver
-    X4064|2:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Lead
-    X4064|3:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Ferrous
-    X4064|4:
-        XP_Gain: 300
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 66
extras/mods/1.6.x/thermalexpansion.tools.yml

@@ -1,66 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Thermal Expansion 3.0.0.7
-Axes:
-    # Invar
-    X31969:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 3
-        Durability: 450
-
-Hoes:
-    # Invar
-    X31968:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 2
-        Durability: 450
-
-Pickaxes:
-    # Invar
-    X31970:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 3
-        Durability: 450
-
-Shovels:
-    # Invar
-    X31971:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 1
-        Durability: 450
-
-Swords:
-    # Invar
-    X31972:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 3
-        Repairable: true
-        Repair_Material: X31978
-        Repair_Material_Pretty_Name: "Invar Ingot"
-        Repair_Material_Data_Value: 71
-        Repair_Material_Quantity: 2
-        Durability: 450

+ 0 - 74
extras/mods/1.6.x/tinkersconstruct.armor.yml

@@ -1,74 +0,0 @@
-# Config wrote by M1cr0man
-# Up to date as of Tinker's Construct 1.5.5.7
-# Also covers Tinker's Steelworks 0.0.4.2-fix2
-Boots:
-    # Wooden (Repaired with Oak Wood)
-    X14366:
-        Repairable: true
-        Repair_Material: LOG
-        Repair_Material_Pretty_Name: "Oak Wood"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 26
-    # Steel
-    X14771:
-        Repairable: true
-        Repair_Material: X14276
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 16
-        Repair_Material_Quantity: 4
-        Durability: 325
-
-Chestplates:
-    # Wooden (Repaired with Oak Wood)
-    X14364:
-        Repairable: true
-        Repair_Material: LOG
-        Repair_Material_Pretty_Name: "Oak Wood"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 32
-    # Steel
-    X14769:
-        Repairable: true
-        Repair_Material: X14276
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 16
-        Repair_Material_Quantity: 8
-        Durability: 400
-
-Helmets:
-    # Wooden (Repaired with Oak Wood)
-    X14362:
-        Repairable: true
-        Repair_Material: LOG
-        Repair_Material_Pretty_Name: "Oak Wood"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 22
-    # Steel
-    X14768:
-        Repairable: true
-        Repair_Material: X14276
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 16
-        Repair_Material_Quantity: 5
-        Durability: 275
-
-Leggings:
-    # Wooden (Repaired with Oak Wood)
-    X14362:
-        Repairable: true
-        Repair_Material: LOG
-        Repair_Material_Pretty_Name: "Oak Wood"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 30
-    # Steel
-    X14768:
-        Repairable: true
-        Repair_Material: X14276
-        Repair_Material_Pretty_Name: "Steel Ingot"
-        Repair_Material_Data_Value: 16
-        Repair_Material_Quantity: 7
-        Durability: 375

+ 0 - 55
extras/mods/1.6.x/tinkersconstruct.blocks.yml

@@ -1,55 +0,0 @@
-# Config wrote by M1cr0man
-# Possibly incomplete. Only covers ores
-# Up to date as of Tinker's Construct 1.5.5.7
-Excavation:
-    # Iron
-    X1488|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-    # Gold
-    X1488|1:
-        XP_Gain: 350
-        Double_Drops_Enabled: true
-    # Copper
-    X1488|2:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-    # Tin
-    X1488|3:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-    # Aluminum
-    X1488|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-    # Cobalt
-    X1488|5:
-        XP_Gain: 500
-        Double_Drops_Enabled: true
-
-Mining:
-    # Cobalt
-    X1475|1:
-        XP_Gain: 500
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Ardite
-    X1475|2:
-        XP_Gain: 500
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Copper
-    X1475|3:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Tin
-    X1475|4:
-        XP_Gain: 175
-        Double_Drops_Enabled: true
-        Is_Ore: true
-    # Aluminium 
-    X1475|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: true

+ 0 - 149
extras/mods/1.6.x/tinkersconstruct.tools.yml

@@ -1,149 +0,0 @@
-# Config wrote by M1cr0man
-# Abilites for Pickaxes and Shovels disabled due to a bug
-# Repair disabled as mcMMO does not support NBTTag - based tools
-# Up to date as of Tinker's Construct 1.5.5.7
-# Also covers Tinker's Steelworks 0.0.4.2-fix2
-Axes:
-    # Hatchets
-    X14309:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Mattocks
-    X14316:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Lumber Axes
-    X14317:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Battle Axes
-    X14327:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-
-Bows:
-    # Shortbows
-    X14319:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-
-Hoes:
-    # Mattocks
-    X14316:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Scythes
-    X14323:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-
-Pickaxes:
-    # Pickaxes
-    X14307:
-        XP_Modifier: 1.0
-        Ability_Enabled: false
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Hammers
-    X14326:
-        XP_Modifier: 1.0
-        Ability_Enabled: false
-        Tier: 2
-        Repairable: false
-        Durability: 500
-
-Shovels:
-    # Shovels
-    X14308:
-        XP_Modifier: 1.0
-        Ability_Enabled: false
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Mattocks
-    X14316:
-        XP_Modifier: 1.0
-        Ability_Enabled: false
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Excavators
-    X14325:
-        XP_Modifier: 1.0
-        Ability_Enabled: false
-        Tier: 2
-        Repairable: false
-        Durability: 500
-
-Swords:
-    # Broadswords
-    X14311:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Longswords
-    X14312:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Rapiers
-    X14313:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Daggers
-    X14321:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Cleavers
-    X14324:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Battle Axes
-    X14327:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500
-    # Cutlasses
-    X14328:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 2
-        Repairable: false
-        Durability: 500

+ 0 - 141
extras/mods/1.6.x/twilightforest.armor.yml

@@ -1,141 +0,0 @@
-# Config wrote by Dragyn, updated by M1cr0man
-# Up to date as of Twilight Forest 1.20.5
-Boots:
-    # Ironwood
-    X27978:
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 260
-    # Fiery
-    X27995:
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Pretty_Name: "Fiery Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 325
-    # Stealeaf
-    X28002:
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 260
-    # Knightmetal
-    X28037:
-        Repairable: true
-        Repair_Material: X28032
-        Repair_Material_Pretty_Name: "Knightmetal Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 4
-        Durability: 260
-
-Chestplates:
-    # Ironwood
-    X27976:
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 320
-    # Naga Scale
-    X27958:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Pretty_Name: "Naga Scale"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 336
-    # Fiery
-    X27993:
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Pretty_Name: "Fiery Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 400
-    # Stealeaf
-    X28000:
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 8
-        Durability: 320
-    # Knightmetal
-    # Phantom
-
-Helmets:
-    # Ironwood
-    X27975:
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 220
-    # Fiery
-    X27992:
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Pretty_Name: "Fiery Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 275
-    # Stealeaf
-    X27999:
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 5
-        Durability: 220
-    # Knightmetal
-    # Phantom
-
-Leggings:
-    # Ironwood
-    X27977:
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 300
-    # Naga Scale
-    X27959:
-        Repairable: true
-        Repair_Material: X27957
-        Repair_Material_Pretty_Name: "Naga Scale"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 315
-    # Fiery
-    X27994:
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Pretty_Name: "Fiery Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 375
-    # Stealeaf
-    X28001:
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 300
-    # Knightmetal
-    X28036:
-        Repairable: true
-        Repair_Material: X28032
-        Repair_Material_Pretty_Name: "Knightmetal Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 7
-        Durability: 300

+ 0 - 117
extras/mods/1.6.x/twilightforest.blocks.yml

@@ -1,117 +0,0 @@
-# Config created by Dragyn
-# Created For twilightforest-1.20.3 
-#
-#
-#  Settings for Custom Herbalism Blocks
-###
-Herbalism:
-    # Mushgloom
-    X2169|9:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-    # Torchberry Plant
-    X2169|13:
-        XP_Gain: 20
-        Double_Drops_Enabled: true
-    # Mayapple
-    X2169|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-    # Fiddlehead
-    X2169|8:
-        XP_Gain: 35
-        Double_Drops_Enabled: true
-
-
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    # Mazestone
-    X2165|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2165|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-        
-#
-#  Settings for Custom Woodcutting Blocks
-###
-Woodcutting:
-    # Twilight Oak
-    X2163|0:
-        XP_Gain: 70
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Canopy
-    X2163|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Mangrove
-    X2163|2:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Darkwood
-    X2163|3:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Roots
-    X2170|0:
-        XP_Gain: 10
-        Double_Drops_Enabled: true
-        Is_Log: false
-    X2170|1:
-        XP_Gain: 10
-        Double_Drops_Enabled: true
-        Is_Log: false
-    # Timewood
-    X2176|0:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Transwood
-    X2176|1:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Minewood
-    X2176|2:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Sortingwood
-    X2176|3:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-                 

+ 0 - 181
extras/mods/1.6.x/twilightforest.tools.yml

@@ -1,181 +0,0 @@
-# Config wrote by Dragyn, updated by M1cr0man
-# Up to date as of Twilight Forest 1.20.5
-Axes:
-    # Ironwood
-    X27982:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Steeleaf
-    X28006:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131
-    # Knightmetal
-    X28040:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28032
-        Repair_Material_Pretty_Name: "Knightmetal Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Minotaur
-    X28008:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: false
-        Durability: 1561
-
-Hoes:
-    # Ironwood
-    X27983:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Steeleaf
-    X28007:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131
-
-Pickaxes:
-    # Ironwood
-    X27981:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Fiery
-    X27997:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1024
-    # Steeleaf
-    X28005:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131
-    # Knightmetal
-    X28039:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28032
-        Repair_Material_Pretty_Name: "Knightmetal Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-
-Shovels:
-    # Ironwood
-    X27980:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Steeleaf
-    X28004:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131
-
-Swords:
-    # Ironwood
-    X27979:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27974
-        Repair_Material_Pretty_Name: "Ironwood Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512
-    # Fiery
-    X27996:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27991
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 1024
-    # Steeleaf
-    X28003:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X27998
-        Repair_Material_Pretty_Name: "Steeleaf"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 131
-    # Knightmetal
-    X28038:
-        XP_Modifier: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: X28032
-        Repair_Material_Pretty_Name: "Knightmetal Ingot"
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 512

+ 0 - 171
extras/mods/1.6.x/underground_biomes.blocks.yml

@@ -1,171 +0,0 @@
-# Config created by Dragyn
-# Created For UndergroundBiomes 1.6.x - 0.4.2c 
-#
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    X2000|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2000|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-#        
-    X2001|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2001|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false        
-#        
-    X2009|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2009|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false   
-#
-    X2010|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2010|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false   
-#    
-    X2011|0:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|1:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|2:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|3:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|4:
-        XP_Gain: 50
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|5:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|6:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    X2011|7:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-        Is_Ore: false                   

+ 0 - 132
extras/mods/1.7.x/twilightforest.armor.yml

@@ -1,132 +0,0 @@
-# Config created by joulesbeef
-# Created For twilightforest-2.2.3
-#
-#
-#  Settings for Boots
-###
-Boots:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODBOOTS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYBOOTS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Stealeaf
-    TWILIGHTFOREST_ITEM_STEELEAFBOOTS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYBOOTS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-#
-#  Settings for Chestplates
-###
-Chestplates:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODPLATE:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYPLATE:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Stealeaf
-    TWILIGHTFOREST_ITEM_STEELEAFPLATE:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYPLATE:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-#
-#  Settings for Helmets
-###
-Helmets:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODHELM:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYHELM:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Stealeaf
-    TWILIGHTFOREST_ITEM_STEELEAFHELM:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYHELM:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 50
-#  Settings for Leggings
-###
-Leggings:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODLEGS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYLEGS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Stealeaf
-    TWILIGHTFOREST_ITEM_STEELEAFLEGS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYLEGS:
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 116
extras/mods/1.7.x/twilightforest.blocks.yml

@@ -1,116 +0,0 @@
-# Config created by joulesbeef
-# Created For twilightforest-2.2.3
-#
-#
-#  Settings for Custom Herbalism Blocks
-###
-Herbalism:
-    # Mushgloom
-    TWILIGHTFOREST_TILE_TFLOG|9:
-        XP_Gain: 150
-        Double_Drops_Enabled: true
-    # Torchberry Plant
-    TWILIGHTFOREST_TILE_TFLOG|13:
-        XP_Gain: 20
-        Double_Drops_Enabled: true
-    # Mayapple
-    TWILIGHTFOREST_TILE_TFLOG|4:
-        XP_Gain: 30
-        Double_Drops_Enabled: true
-    # Fiddlehead
-    TWILIGHTFOREST_TILE_TFLOG|8:
-        XP_Gain: 35
-        Double_Drops_Enabled: true
-
-
-#
-#  Settings for Custom Mining Blocks
-###
-Mining:
-    # Mazestone
-    TWILIGHTFOREST_TILE_TFMAZESTONE|0:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|1:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|2:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|3:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|4:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|5:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|6:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-    TWILIGHTFOREST_TILE_TFMAZESTONE|7:
-        XP_Gain: 250
-        Double_Drops_Enabled: true
-        Is_Ore: false
-        
-#
-#  Settings for Custom Woodcutting Blocks
-###
-Woodcutting:
-    # Twilight Oak
-    TWILIGHTFOREST_TILE_TFLOG|0:
-        XP_Gain: 70
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Canopy
-    TWILIGHTFOREST_TILE_TFLOG|1:
-        XP_Gain: 80
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Mangrove
-    TWILIGHTFOREST_TILE_TFLOG|2:
-        XP_Gain: 90
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Darkwood
-    TWILIGHTFOREST_TILE_TFLOG|3:
-        XP_Gain: 100
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Roots
-    TWILIGHTFOREST_TILE_TFROOTS|0:
-        XP_Gain: 10
-        Double_Drops_Enabled: true
-        Is_Log: false
-    TWILIGHTFOREST_TILE_TFROOTS|1:
-        XP_Gain: 10
-        Double_Drops_Enabled: true
-        Is_Log: false
-    # Timewood
-    TWILIGHTFOREST_TILE_TFMAGICLOG|0:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Transwood
-    TWILIGHTFOREST_TILE_TFMAGICLOG|1:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Minewood
-    TWILIGHTFOREST_TILE_TFMAGICLOG|2:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true
-    # Sortingwood
-    TWILIGHTFOREST_TILE_TFMAGICLOG|3:
-        XP_Gain: 1000
-        Double_Drops_Enabled: true
-        Is_Log: true

+ 0 - 152
extras/mods/1.7.x/twilightforest.entities.yml

@@ -1,152 +0,0 @@
-# Config created by joulesbeef
-# Created For twilightforest-2.2.3
-#
-#  Settings for Custom Mobs
-MoCreatures-Ogre:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-TwilightLich:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-HelmetCrab:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-SlimeBeetle:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-TwilightWraith:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-Naga:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-MoCreatures-Shark:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-TowerTermite:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-MoCreatures-SmallFish:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-Redcap:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-YetiBoss:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-MoCreatures-HellRat:
-  Class: Monster
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-Hydra:
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-Firefly:
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-KnightPhantom:
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-TwilightForest-TowerGolem:
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0
-MoCreatures-FishBowl:
-  XP_Multiplier: 1.0
-  Tameable: false
-  Taming_XP: 0
-  CanBeSummoned: false
-  COTW_Material: ''
-  COTW_Material_Data: 0
-  COTW_Material_Amount: 0

+ 0 - 184
extras/mods/1.7.x/twilightforest.tools.yml

@@ -1,184 +0,0 @@
-# Config created by joulesbeef
-# Created For twilightforest-2.2.3
-#
-#
-#  Settings for Axes
-###
-Axes:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODAXE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steeleaf
-    TWILIGHTFOREST_ITEM_STEELEAFAXE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYAXE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Minotaur
-    TWILIGHTFOREST_ITEM_MINOTAURAXE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: Diamond
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Hoes
-###
-Hoes:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODHOE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steeleaf
-    TWILIGHTFOREST_ITEM_STEELEAFHOE:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-
-#
-#  Settings for Pickaxes
-###
-Pickaxes:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODPICK:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYPICK:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steeleaf
-    TWILIGHTFOREST_ITEM_STEELEAFPICK:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYPICK:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Shovels
-###
-Shovels:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODSHOVEL:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steeleaf
-    TWILIGHTFOREST_ITEM_STEELEAFSHOVEL:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-#
-#  Settings for Swords
-###
-Swords:
-    # Ironwood
-    TWILIGHTFOREST_ITEM_IRONWOODSWORD:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_IRONWOODINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Fiery
-    TWILIGHTFOREST_ITEM_FIERYSWORD:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_FIERYINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Steeleaf
-    TWILIGHTFOREST_ITEM_STEELEAFSWORD:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_STEELEAFINGOT
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500
-    # Knightmetal
-    TWILIGHTFOREST_ITEM_KNIGHTLYSWORD:
-        XP_Modifer: 1.0
-        Ability_Enabled: true
-        Tier: 1
-        Repairable: true
-        Repair_Material: TWILIGHTFOREST_ITEM_KNIGHTMETAL
-        Repair_Material_Data_Value: 0
-        Repair_Material_Quantity: 2
-        Durability: 500

+ 0 - 60
extras/repair.chain.yml

@@ -1,60 +0,0 @@
-#
-#  Repair configuration
-#  Last updated on ${project.version}-b${BUILD_NUMBER}
-#
-# Any file named repair.*.yml in the mcmmmo folder will be loaded as a repair config
-# All repair configs have a main section titled "Repairables"
-# Afterwards, all sub-items are considered a Repairable to be loaded. The names of each subitem should be the exact material name.
-# The bare minimum of a Repairable is that it have a RepairMaterial and a MaximumDurability
-#
-# ItemType: This is the type of item to be repaired, this is only important to permissions.
-## Valid values are ARMOR, TOOL, and OTHER.
-## This defaults to OTHER.
-#
-# MaterialType: This is the type of the material of the item to be repaired, this is only important for permissions.
-## Valid values are STRING, LEATHER, WOOD, STONE, IRON, GOLD, DIAMOND, and OTHER
-## This defaults to OTHER.
-#
-# RepairMaterial: This is the material name of the item used to repair this repairable.
-## This is required to be set.
-#
-# RepairMaterialMetadata: This is the metadata of the item used to repair this repairable.
-## A value of -1 means to ignore all metadata when repairing.
-## This defaults to -1
-#
-# MaximumDurability: This is the maximum durability of the item.
-## This is required to be set.
-#
-# MinimumLevel: This is the minimum repair level needed to repair this item.
-## Valid values are => 0
-## This defaults to 0
-#
-# MinimumQuantity: This is the minimum number of items needed to repair this item ignoring all other repair bonuses.
-## This is typically the number of the repair material needed to create a new item, for example for a sword it is 2, for an axe it is 3
-## This defaults to 2
-#
-# XpMultiplier: This is the amount to multiply the xp bonus by.
-## This defaults to 1
-#
-#
-# The following is an example of a repair.*.yml config which adds the ability to repair Chainmail armor using fire.
-#
-#
-###
-Repairables:
-    #
-    # Chainmail repairables
-    ###
-    # Armor
-    CHAINMAIL_HELMET:
-        RepairMaterial: FIRE
-        XpMultiplier: 2
-    CHAINMAIL_CHESTPLATE:
-        RepairMaterial: FIRE
-        XpMultiplier: 2
-    CHAINMAIL_LEGGINGS:
-        RepairMaterial: FIRE
-        XpMultiplier: 2
-    CHAINMAIL_BOOTS:
-        RepairMaterial: FIRE
-        XpMultiplier: 2

+ 101 - 51
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.228</version>
+    <version>2.2.041-SNAPSHOT</version>
     <name>mcMMO</name>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>
     <scm>
@@ -13,10 +13,15 @@
     </scm>
     </scm>
 
 
     <properties>
     <properties>
+<!--        <spigot.version>1.19-R0.1-SNAPSHOT</spigot.version>-->
+        <spigot.version>1.21.7-R0.1-SNAPSHOT</spigot.version>
+        <kyori.adventure.version>4.23.0</kyori.adventure.version>
+        <kyori.adventure.platform.version>4.4.1-SNAPSHOT</kyori.adventure.platform.version>
+        <kyori.option.version>1.1.0</kyori.option.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>16</maven.compiler.source>
-        <maven.compiler.target>16</maven.compiler.target>
-        <java.version>16</java.version>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <java.version>17</java.version>
     </properties>
     </properties>
 
 
     <issueManagement>
     <issueManagement>
@@ -73,36 +78,44 @@
             </resource>
             </resource>
         </resources>
         </resources>
         <plugins>
         <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-resources-plugin</artifactId>
+                <version>3.3.1</version>
+                <configuration>
+                    <encoding>UTF-8</encoding>
+                    <propertiesEncoding>UTF-8</propertiesEncoding>
+                </configuration>
+            </plugin>
             <plugin>
             <plugin>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <artifactId>maven-surefire-plugin</artifactId>
-                <version>3.0.0-M7</version>
+                <version>3.2.5</version>
 
 
                 <configuration>
                 <configuration>
                     <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                     <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                     <trimStackTrace>false</trimStackTrace>
                     <trimStackTrace>false</trimStackTrace>
+                    <excludedGroups>skip</excludedGroups>
                 </configuration>
                 </configuration>
             </plugin>
             </plugin>
             <plugin>
             <plugin>
                 <artifactId>maven-failsafe-plugin</artifactId>
                 <artifactId>maven-failsafe-plugin</artifactId>
-                <version>3.0.0-M7</version>
-
+                <version>3.2.5</version>
                 <configuration>
                 <configuration>
                     <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                     <junitArtifactName>org.junit.jupiter:junit-jupiter</junitArtifactName>
                     <trimStackTrace>false</trimStackTrace>
                     <trimStackTrace>false</trimStackTrace>
                 </configuration>
                 </configuration>
             </plugin>
             </plugin>
-
             <plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-release-plugin</artifactId>
                 <artifactId>maven-release-plugin</artifactId>
-                <version>3.0.0-M6</version>
+                <version>3.0.1</version>
             </plugin>
             </plugin>
             <plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.10.1</version>
+                <version>3.13.0</version>
                 <configuration>
                 <configuration>
-                    <release>16</release>
+                    <release>17</release>
                     <compilerArgs>
                     <compilerArgs>
                         <arg>-parameters</arg> <!-- used for ACF syntax stuff -->
                         <arg>-parameters</arg> <!-- used for ACF syntax stuff -->
                     </compilerArgs>
                     </compilerArgs>
@@ -112,6 +125,7 @@
             </plugin>
             </plugin>
             <plugin>
             <plugin>
                 <artifactId>maven-assembly-plugin</artifactId>
                 <artifactId>maven-assembly-plugin</artifactId>
+                <version>3.7.1</version>
                 <configuration>
                 <configuration>
                     <descriptors>
                     <descriptors>
                         <descriptor>src/main/assembly/package.xml</descriptor>
                         <descriptor>src/main/assembly/package.xml</descriptor>
@@ -130,7 +144,7 @@
             <plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-shade-plugin</artifactId>
                 <artifactId>maven-shade-plugin</artifactId>
-                <version>3.3.0</version>
+                <version>3.5.3</version>
                 <configuration>
                 <configuration>
                     <artifactSet>
                     <artifactSet>
                         <includes>
                         <includes>
@@ -140,23 +154,23 @@
                             <include>org.bstats:bstats-base</include>
                             <include>org.bstats:bstats-base</include>
                             <include>org.bstats:bstats-bukkit</include>
                             <include>org.bstats:bstats-bukkit</include>
                             <include>net.kyori:adventure-api</include>
                             <include>net.kyori:adventure-api</include>
-                            <include>net.kyori:adventure-text-serializer-gson</include>
-                            <include>net.kyori:adventure-platform-bukkit</include>
+                            <include>net.kyori:adventure-key</include>
+                            <include>net.kyori:adventure-nbt</include>
                             <include>net.kyori:adventure-platform-api</include>
                             <include>net.kyori:adventure-platform-api</include>
-                            <include>net.kyori:adventure-platform-viaversion</include>
+                            <include>net.kyori:adventure-platform-bukkit</include>
                             <include>net.kyori:adventure-platform-facet</include>
                             <include>net.kyori:adventure-platform-facet</include>
-                            <include>net.kyori:adventure-nbt</include>
-                            <include>net.kyori:adventure-key</include>
-                            <include>net.kyori:examination-api</include>
-                            <include>net.kyori:examination-string</include>
-                            <include>net.kyori:adventure-text-serializer-legacy</include>
-                            <include>net.kyori:adventure-text-serializer-gson</include>
-                            <include>net.kyori:adventure-text-serializer-json</include>
+                            <include>net.kyori:adventure-platform-viaversion</include>
                             <include>net.kyori:adventure-text-serializer-bungeecord</include>
                             <include>net.kyori:adventure-text-serializer-bungeecord</include>
-                            <include>net.kyori:adventure-text-serializer-craftbukkit</include>
+                            <include>net.kyori:adventure-text-serializer-commons</include>
+                            <include>net.kyori:adventure-text-serializer-gson</include>
                             <include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
                             <include>net.kyori:adventure-text-serializer-gson-legacy-impl</include>
+                            <include>net.kyori:adventure-text-serializer-json</include>
                             <include>net.kyori:adventure-text-serializer-json-legacy-impl</include>
                             <include>net.kyori:adventure-text-serializer-json-legacy-impl</include>
+                            <include>net.kyori:adventure-text-serializer-legacy</include>
+                            <include>net.kyori:examination-api</include>
+                            <include>net.kyori:examination-string</include>
                             <include>net.kyori:option</include>
                             <include>net.kyori:option</include>
+                            <include>net.kyori:adventure-text-serializer-craftbukkit</include>
                             <include>co.aikar:acf-bukkit</include>
                             <include>co.aikar:acf-bukkit</include>
                             <include>com.tcoded:FoliaLib</include>
                             <include>com.tcoded:FoliaLib</include>
                         </includes>
                         </includes>
@@ -222,6 +236,11 @@
     </pluginRepositories>
     </pluginRepositories>
 
 
     <repositories>
     <repositories>
+        <!-- Protocol Lib Repository -->
+        <repository>
+            <id>dmulloy2-repo</id>
+            <url>https://repo.dmulloy2.net/repository/public/</url>
+        </repository>
         <repository>
         <repository>
             <id>spigot-repo</id>
             <id>spigot-repo</id>
             <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
             <url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
@@ -250,18 +269,44 @@
             <id>placeholderapi</id>
             <id>placeholderapi</id>
             <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
             <url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
         </repository>
         </repository>
+        <!-- MockBukkit -->
         <repository>
         <repository>
-            <id>devmart-other</id>
-            <url>https://nexuslite.gcnt.net/repos/other/</url>
+            <id>papermc</id>
+            <url>https://repo.papermc.io/repository/maven-public/</url>
+        </repository>
+        <repository>
+            <id>jitpack</id>
+            <url>https://jitpack.io</url>
+        </repository>
+        <repository>
+            <id>tcoded-releases</id>
+            <url>https://repo.tcoded.com/releases/</url>
         </repository>
         </repository>
-        <!-- ... -->
-        <!-- ... -->
     </repositories>
     </repositories>
     <dependencies>
     <dependencies>
+        <!-- https://mvnrepository.com/artifact/com.h2database/h2 -->
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <version>3.25.3</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.comphenix.protocol</groupId>
+            <artifactId>ProtocolLib</artifactId>
+            <version>5.3.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.h2database</groupId>
+            <artifactId>h2</artifactId>
+            <version>2.2.224</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
         <dependency>
             <groupId>me.clip</groupId>
             <groupId>me.clip</groupId>
             <artifactId>placeholderapi</artifactId>
             <artifactId>placeholderapi</artifactId>
-            <version>2.11.3</version>
+            <version>2.11.6</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
@@ -272,83 +317,88 @@
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-text-serializer-bungeecord</artifactId>
             <artifactId>adventure-text-serializer-bungeecord</artifactId>
-            <version>4.3.2</version>
+            <version>${kyori.adventure.platform.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-text-serializer-gson</artifactId>
             <artifactId>adventure-text-serializer-gson</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
             <artifactId>adventure-text-serializer-gson-legacy-impl</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-text-serializer-json</artifactId>
             <artifactId>adventure-text-serializer-json</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
             <artifactId>adventure-text-serializer-json-legacy-impl</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-api</artifactId>
             <artifactId>adventure-api</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-nbt</artifactId>
             <artifactId>adventure-nbt</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-key</artifactId>
             <artifactId>adventure-key</artifactId>
-            <version>4.15.0</version>
+            <version>${kyori.adventure.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-platform-api</artifactId>
             <artifactId>adventure-platform-api</artifactId>
-            <version>4.3.2</version>
+            <version>${kyori.adventure.platform.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-platform-bukkit</artifactId>
             <artifactId>adventure-platform-bukkit</artifactId>
-            <version>4.3.2</version>
+            <version>${kyori.adventure.platform.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-platform-facet</artifactId>
             <artifactId>adventure-platform-facet</artifactId>
-            <version>4.3.2</version>
+            <version>${kyori.adventure.platform.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>adventure-platform-viaversion</artifactId>
             <artifactId>adventure-platform-viaversion</artifactId>
-            <version>4.3.2</version>
+            <version>${kyori.adventure.platform.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>net.kyori</groupId>
             <groupId>net.kyori</groupId>
             <artifactId>option</artifactId>
             <artifactId>option</artifactId>
-            <version>1.0.0</version>
+            <version>${kyori.option.version}</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.apache.maven.scm</groupId>
             <groupId>org.apache.maven.scm</groupId>
             <artifactId>maven-scm-provider-gitexe</artifactId>
             <artifactId>maven-scm-provider-gitexe</artifactId>
-            <version>2.0.0-M1</version>
+            <version>2.1.0</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.bstats</groupId>
             <groupId>org.bstats</groupId>
             <artifactId>bstats-bukkit</artifactId>
             <artifactId>bstats-bukkit</artifactId>
-            <version>3.0.0</version>
+            <version>3.0.2</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
+<!--        <dependency>-->
+<!--            <groupId>io.papermc.paper</groupId>-->
+<!--            <artifactId>paper-api</artifactId>-->
+<!--            <version>1.21.5-R0.1-SNAPSHOT</version>-->
+<!--        </dependency>-->
         <dependency>
         <dependency>
             <groupId>org.spigotmc</groupId>
             <groupId>org.spigotmc</groupId>
             <artifactId>spigot-api</artifactId>
             <artifactId>spigot-api</artifactId>
-            <version>1.20.4-R0.1-SNAPSHOT</version>
+            <version>${spigot.version}</version>
             <scope>provided</scope>
             <scope>provided</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
@@ -384,42 +434,42 @@
         <dependency>
         <dependency>
             <groupId>org.junit.jupiter</groupId>
             <groupId>org.junit.jupiter</groupId>
             <artifactId>junit-jupiter</artifactId>
             <artifactId>junit-jupiter</artifactId>
-            <version>5.9.0</version>
+            <version>5.11.0-M2</version>
             <scope>test</scope>
             <scope>test</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.mockito</groupId>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-core</artifactId>
             <artifactId>mockito-core</artifactId>
-            <version>4.6.1</version>
+            <version>5.12.0</version>
             <scope>test</scope>
             <scope>test</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.mockito</groupId>
             <groupId>org.mockito</groupId>
             <artifactId>mockito-inline</artifactId>
             <artifactId>mockito-inline</artifactId>
-            <version>4.6.1</version>
+            <version>5.2.0</version>
             <scope>test</scope>
             <scope>test</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.apache.tomcat</groupId>
             <groupId>org.apache.tomcat</groupId>
             <artifactId>tomcat-jdbc</artifactId>
             <artifactId>tomcat-jdbc</artifactId>
-            <version>10.1.0-M17</version>
+            <version>10.1.24</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>org.jetbrains</groupId>
             <groupId>org.jetbrains</groupId>
             <artifactId>annotations</artifactId>
             <artifactId>annotations</artifactId>
-            <version>23.0.0</version>
+            <version>24.1.0</version>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
             <artifactId>guava</artifactId>
-            <version>32.1.1-jre</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
+            <version>33.2.0-jre</version> <!-- At this time Spigot is including 29.0 Guava classes that we are using -->
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
         <dependency>
         <dependency>
             <groupId>com.tcoded</groupId>
             <groupId>com.tcoded</groupId>
             <artifactId>FoliaLib</artifactId>
             <artifactId>FoliaLib</artifactId>
-            <version>0.3.1</version>
+            <version>0.5.1</version>
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
     </dependencies>
     </dependencies>

+ 6 - 7
src/main/java/com/gmail/nossr50/api/AbilityAPI.java

@@ -8,7 +8,8 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 
 
 public final class AbilityAPI {
 public final class AbilityAPI {
-    private AbilityAPI() {}
+    private AbilityAPI() {
+    }
 
 
     public static boolean berserkEnabled(Player player) {
     public static boolean berserkEnabled(Player player) {
         return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
         return UserManager.getPlayer(player).getAbilityMode(SuperAbilityType.BERSERK);
@@ -39,10 +40,10 @@ public final class AbilityAPI {
     }
     }
 
 
     public static boolean isAnyAbilityEnabled(Player player) {
     public static boolean isAnyAbilityEnabled(Player player) {
-        McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
+        final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
 
 
         for (SuperAbilityType ability : SuperAbilityType.values()) {
         for (SuperAbilityType ability : SuperAbilityType.values()) {
-            if (mcMMOPlayer.getAbilityMode(ability)) {
+            if (mmoPlayer.getAbilityMode(ability)) {
                 return true;
                 return true;
             }
             }
         }
         }
@@ -83,10 +84,8 @@ public final class AbilityAPI {
     }
     }
 
 
     public static boolean isBleeding(LivingEntity entity) {
     public static boolean isBleeding(LivingEntity entity) {
-        if(entity.isValid()) {
-            if(entity.hasMetadata(MetadataConstants.METADATA_KEY_RUPTURE)) {
-                return true;
-            }
+        if (entity.isValid()) {
+            return entity.hasMetadata(MetadataConstants.METADATA_KEY_RUPTURE);
         }
         }
 
 
         return false;
         return false;

+ 10 - 61
src/main/java/com/gmail/nossr50/api/ChatAPI.java

@@ -6,63 +6,8 @@ import com.gmail.nossr50.util.player.UserManager;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 
 
 public final class ChatAPI {
 public final class 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 displayName The display name of the sender
-//     * @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);
-//    }
-//
-//    /**
-//     * 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 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) {
-//        getPartyChatManager(plugin, party).handleChat(sender, message);
-//    }
-//
-//    /**
-//     * Send a message to administrators
-//     * </br>
-//     * This function is designed for API usage.
-//     *
-//     * @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
-//     */
-//    public static void sendAdminChat(Plugin plugin, String sender, String displayName, String message) {
-//        ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, displayName, message);
-//    }
-//
-//    /**
-//     * Send a message to administrators
-//     * </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 message The message to send
-//     */
-//    public static void sendAdminChat(Plugin plugin, String sender, String message) {
-//        ChatManagerFactory.getChatManager(plugin, ChatChannel.ADMIN).handleChat(sender, message);
-//    }
+    private ChatAPI() {
+    }
 
 
     /**
     /**
      * Check if a player is currently talking in party chat.
      * Check if a player is currently talking in party chat.
@@ -110,7 +55,8 @@ public final class ChatAPI {
      * @param player The player to toggle party chat on.
      * @param player The player to toggle party chat on.
      */
      */
     public static void togglePartyChat(Player player) {
     public static void togglePartyChat(Player player) {
-        mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.PARTY);
+        mcMMO.p.getChatManager()
+                .setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.PARTY);
     }
     }
 
 
     /**
     /**
@@ -119,7 +65,8 @@ public final class ChatAPI {
      * @param playerName The name of the player to toggle party chat on.
      * @param playerName The name of the player to toggle party chat on.
      */
      */
     public static void togglePartyChat(String playerName) {
     public static void togglePartyChat(String playerName) {
-        mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
+        mcMMO.p.getChatManager()
+                .setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.PARTY);
     }
     }
 
 
     /**
     /**
@@ -128,7 +75,8 @@ public final class ChatAPI {
      * @param player The player to toggle admin chat on.
      * @param player The player to toggle admin chat on.
      */
      */
     public static void toggleAdminChat(Player player) {
     public static void toggleAdminChat(Player player) {
-        mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.ADMIN);
+        mcMMO.p.getChatManager()
+                .setOrToggleChatChannel(UserManager.getPlayer(player), ChatChannel.ADMIN);
     }
     }
 
 
     /**
     /**
@@ -137,6 +85,7 @@ public final class ChatAPI {
      * @param playerName The name of the player to toggle party chat on.
      * @param playerName The name of the player to toggle party chat on.
      */
      */
     public static void toggleAdminChat(String playerName) {
     public static void toggleAdminChat(String playerName) {
-        mcMMO.p.getChatManager().setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
+        mcMMO.p.getChatManager()
+                .setOrToggleChatChannel(UserManager.getPlayer(playerName), ChatChannel.ADMIN);
     }
     }
 }
 }

+ 6 - 2
src/main/java/com/gmail/nossr50/api/DatabaseAPI.java

@@ -2,15 +2,17 @@ package com.gmail.nossr50.api;
 
 
 import com.gmail.nossr50.datatypes.player.PlayerProfile;
 import com.gmail.nossr50.datatypes.player.PlayerProfile;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
+import java.util.UUID;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.OfflinePlayer;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.UUID;
-
 public class DatabaseAPI {
 public class DatabaseAPI {
+    private DatabaseAPI() {
+    }
 
 
     /**
     /**
      * Checks if a player exists in the mcMMO Database
      * Checks if a player exists in the mcMMO Database
+     *
      * @param offlinePlayer target player
      * @param offlinePlayer target player
      * @return true if the player exists in the DB, false if they do not
      * @return true if the player exists in the DB, false if they do not
      */
      */
@@ -22,6 +24,7 @@ public class DatabaseAPI {
 
 
     /**
     /**
      * Checks if a player exists in the mcMMO Database
      * Checks if a player exists in the mcMMO Database
+     *
      * @param uuid target player
      * @param uuid target player
      * @return true if the player exists in the DB, false if they do not
      * @return true if the player exists in the DB, false if they do not
      */
      */
@@ -38,6 +41,7 @@ public class DatabaseAPI {
 
 
     /**
     /**
      * Checks if a player exists in the mcMMO Database
      * Checks if a player exists in the mcMMO Database
+     *
      * @param playerName target player
      * @param playerName target player
      * @return true if the player exists in the DB, false if they do not
      * @return true if the player exists in the DB, false if they do not
      */
      */

File diff suppressed because it is too large
+ 186 - 186
src/main/java/com/gmail/nossr50/api/ExperienceAPI.java


+ 89 - 37
src/main/java/com/gmail/nossr50/api/PartyAPI.java

@@ -3,17 +3,22 @@ package com.gmail.nossr50.api;
 import com.gmail.nossr50.datatypes.interactions.NotificationType;
 import com.gmail.nossr50.datatypes.interactions.NotificationType;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.party.PartyLeader;
 import com.gmail.nossr50.datatypes.party.PartyLeader;
+import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.util.player.NotificationManager;
 import com.gmail.nossr50.util.player.NotificationManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.UUID;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.OfflinePlayer;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
-
-import java.util.*;
+import org.jetbrains.annotations.Nullable;
 
 
 public final class PartyAPI {
 public final class PartyAPI {
-    private PartyAPI() {}
+    private PartyAPI() {
+    }
 
 
     /**
     /**
      * Get the name of the party a player is in.
      * Get the name of the party a player is in.
@@ -24,13 +29,22 @@ public final class PartyAPI {
      * @return the name of the player's party, or null if not in a party
      * @return the name of the player's party, or null if not in a party
      */
      */
     public static String getPartyName(Player player) {
     public static String getPartyName(Player player) {
-        if (!inParty(player)) {
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled() || !inParty(player)) {
             return null;
             return null;
         }
         }
 
 
         return UserManager.getPlayer(player).getParty().getName();
         return UserManager.getPlayer(player).getParty().getName();
     }
     }
 
 
+    /**
+     * Check if the party system is enabled.
+     *
+     * @return true if the party system is enabled, false otherwise
+     */
+    public static boolean isPartySystemEnabled() {
+        return mcMMO.p.getPartyConfig().isPartyEnabled();
+    }
+
     /**
     /**
      * Checks if a player is in a party.
      * Checks if a player is in a party.
      * </br>
      * </br>
@@ -40,8 +54,9 @@ public final class PartyAPI {
      * @return true if the player is in a party, false otherwise
      * @return true if the player is in a party, false otherwise
      */
      */
     public static boolean inParty(Player player) {
     public static boolean inParty(Player player) {
-        if(UserManager.getPlayer(player) == null)
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
             return false;
             return false;
+        }
 
 
         return UserManager.getPlayer(player).inParty();
         return UserManager.getPlayer(player).inParty();
     }
     }
@@ -51,12 +66,16 @@ public final class PartyAPI {
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
-     * @param playera The first player to check
-     * @param playerb The second player to check
+     * @param playerA The first player to check
+     * @param playerB The second player to check
      * @return true if the two players are in the same party, false otherwise
      * @return true if the two players are in the same party, false otherwise
      */
      */
-    public static boolean inSameParty(Player playera, Player playerb) {
-        return PartyManager.inSameParty(playera, playerb);
+    public static boolean inSameParty(Player playerA, Player playerB) {
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return false;
+        }
+
+        return mcMMO.p.getPartyManager().inSameParty(playerA, playerB);
     }
     }
 
 
     /**
     /**
@@ -67,7 +86,7 @@ public final class PartyAPI {
      * @return the list of parties.
      * @return the list of parties.
      */
      */
     public static List<Party> getParties() {
     public static List<Party> getParties() {
-        return PartyManager.getParties();
+        return mcMMO.p.getPartyManager().getParties();
     }
     }
 
 
     /**
     /**
@@ -81,32 +100,39 @@ public final class PartyAPI {
      */
      */
     @Deprecated
     @Deprecated
     public static void addToParty(Player player, String partyName) {
     public static void addToParty(Player player, String partyName) {
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return;
+        }
+
         //Check if player profile is loaded
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
+
+        if (mmoPlayer == null) {
             return;
             return;
+        }
 
 
-        Party party = PartyManager.getParty(partyName);
+        Party party = mcMMO.p.getPartyManager().getParty(partyName);
 
 
         if (party == null) {
         if (party == null) {
             party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
             party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
         } else {
         } else {
-            if(PartyManager.isPartyFull(player, party))
-            {
-                NotificationManager.sendPlayerInformation(player, NotificationType.PARTY_MESSAGE, "Commands.Party.PartyFull", party.toString());
+            if (mcMMO.p.getPartyManager().isPartyFull(player, party)) {
+                NotificationManager.sendPlayerInformation(
+                        player, NotificationType.PARTY_MESSAGE,
+                        "Commands.Party.PartyFull", party.toString());
                 return;
                 return;
             }
             }
         }
         }
 
 
-        PartyManager.addToParty(UserManager.getPlayer(player), party);
+        mcMMO.p.getPartyManager().addToParty(mmoPlayer, party);
     }
     }
 
 
     /**
     /**
-     * The max party size of the server
-     * 0 or less for no size limit
+     * The max party size of the server 0 or less for no size limit
+     *
      * @return the max party size on this server
      * @return the max party size on this server
      */
      */
-    public static int getMaxPartySize()
-    {
+    public static int getMaxPartySize() {
         return mcMMO.p.getGeneralConfig().getPartyMaxSize();
         return mcMMO.p.getGeneralConfig().getPartyMaxSize();
     }
     }
 
 
@@ -119,19 +145,19 @@ public final class PartyAPI {
      * @param partyName The party to add the player to
      * @param partyName The party to add the player to
      * @param bypassLimit if true bypasses party size limits
      * @param bypassLimit if true bypasses party size limits
      */
      */
-    //TODO: bypasslimit not used?
     public static void addToParty(Player player, String partyName, boolean bypassLimit) {
     public static void addToParty(Player player, String partyName, boolean bypassLimit) {
         //Check if player profile is loaded
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
             return;
             return;
+        }
 
 
-        Party party = PartyManager.getParty(partyName);
+        Party party = mcMMO.p.getPartyManager().getParty(partyName);
 
 
         if (party == null) {
         if (party == null) {
             party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
             party = new Party(new PartyLeader(player.getUniqueId(), player.getName()), partyName);
         }
         }
 
 
-        PartyManager.addToParty(UserManager.getPlayer(player), party);
+        mcMMO.p.getPartyManager().addToParty(UserManager.getPlayer(player), party);
     }
     }
 
 
     /**
     /**
@@ -143,10 +169,11 @@ public final class PartyAPI {
      */
      */
     public static void removeFromParty(Player player) {
     public static void removeFromParty(Player player) {
         //Check if player profile is loaded
         //Check if player profile is loaded
-        if(UserManager.getPlayer(player) == null)
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled() || UserManager.getPlayer(player) == null) {
             return;
             return;
+        }
 
 
-        PartyManager.removeFromParty(UserManager.getPlayer(player));
+        mcMMO.p.getPartyManager().removeFromParty(UserManager.getPlayer(player));
     }
     }
 
 
     /**
     /**
@@ -157,8 +184,12 @@ public final class PartyAPI {
      * @param partyName The party name
      * @param partyName The party name
      * @return the leader of the party
      * @return the leader of the party
      */
      */
-    public static String getPartyLeader(String partyName) {
-        return PartyManager.getPartyLeaderName(partyName);
+    public static @Nullable String getPartyLeader(String partyName) {
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return null;
+        }
+
+        return mcMMO.p.getPartyManager().getPartyLeaderName(partyName);
     }
     }
 
 
     /**
     /**
@@ -171,7 +202,13 @@ public final class PartyAPI {
      */
      */
     @Deprecated
     @Deprecated
     public static void setPartyLeader(String partyName, String playerName) {
     public static void setPartyLeader(String partyName, String playerName) {
-        PartyManager.setPartyLeader(mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(), PartyManager.getParty(partyName));
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return;
+        }
+
+        mcMMO.p.getPartyManager().setPartyLeader(
+                mcMMO.p.getServer().getOfflinePlayer(playerName).getUniqueId(),
+                mcMMO.p.getPartyManager().getParty(partyName));
     }
     }
 
 
     /**
     /**
@@ -184,9 +221,12 @@ public final class PartyAPI {
      */
      */
     @Deprecated
     @Deprecated
     public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
     public static List<OfflinePlayer> getOnlineAndOfflineMembers(Player player) {
-        List<OfflinePlayer> members = new ArrayList<>();
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return null;
+        }
 
 
-        for (UUID memberUniqueId : PartyManager.getAllMembers(player).keySet()) {
+        final List<OfflinePlayer> members = new ArrayList<>();
+        for (UUID memberUniqueId : mcMMO.p.getPartyManager().getAllMembers(player).keySet()) {
             OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
             OfflinePlayer member = mcMMO.p.getServer().getOfflinePlayer(memberUniqueId);
             members.add(member);
             members.add(member);
         }
         }
@@ -203,7 +243,11 @@ public final class PartyAPI {
      */
      */
     @Deprecated
     @Deprecated
     public static LinkedHashSet<String> getMembers(Player player) {
     public static LinkedHashSet<String> getMembers(Player player) {
-        return (LinkedHashSet<String>) PartyManager.getAllMembers(player).values();
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return null;
+        }
+
+        return (LinkedHashSet<String>) mcMMO.p.getPartyManager().getAllMembers(player).values();
     }
     }
 
 
     /**
     /**
@@ -215,7 +259,11 @@ public final class PartyAPI {
      * @return all the player names and uuids in the player's party
      * @return all the player names and uuids in the player's party
      */
      */
     public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
     public static LinkedHashMap<UUID, String> getMembersMap(Player player) {
-        return PartyManager.getAllMembers(player);
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return null;
+        }
+
+        return mcMMO.p.getPartyManager().getAllMembers(player);
     }
     }
 
 
     /**
     /**
@@ -227,7 +275,11 @@ public final class PartyAPI {
      * @return all online players in this party
      * @return all online players in this party
      */
      */
     public static List<Player> getOnlineMembers(String partyName) {
     public static List<Player> getOnlineMembers(String partyName) {
-        return PartyManager.getOnlineMembers(partyName);
+        if (!mcMMO.p.getPartyConfig().isPartyEnabled()) {
+            return null;
+        }
+
+        return mcMMO.p.getPartyManager().getOnlineMembers(partyName);
     }
     }
 
 
     /**
     /**
@@ -239,7 +291,7 @@ public final class PartyAPI {
      * @return all online players in the player's party
      * @return all online players in the player's party
      */
      */
     public static List<Player> getOnlineMembers(Player player) {
     public static List<Player> getOnlineMembers(Player player) {
-        return PartyManager.getOnlineMembers(player);
+        return mcMMO.p.getPartyManager().getOnlineMembers(player);
     }
     }
 
 
     public static boolean hasAlly(String partyName) {
     public static boolean hasAlly(String partyName) {
@@ -247,7 +299,7 @@ public final class PartyAPI {
     }
     }
 
 
     public static String getAllyName(String partyName) {
     public static String getAllyName(String partyName) {
-        Party ally = PartyManager.getParty(partyName).getAlly();
+        Party ally = mcMMO.p.getPartyManager().getParty(partyName).getAlly();
         if (ally != null) {
         if (ally != null) {
             return ally.getName();
             return ally.getName();
         }
         }

+ 8 - 14
src/main/java/com/gmail/nossr50/api/SkillAPI.java

@@ -3,17 +3,16 @@ package com.gmail.nossr50.api;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.util.skills.SkillTools;
 import com.gmail.nossr50.util.skills.SkillTools;
-
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 
 
 public final class SkillAPI {
 public final class SkillAPI {
-    private SkillAPI() {}
+    private SkillAPI() {
+    }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This includes parent and child skills
+     * Returns a list of strings with mcMMO's skills This includes parent and child skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
@@ -24,8 +23,7 @@ public final class SkillAPI {
     }
     }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This only includes parent skills
+     * Returns a list of strings with mcMMO's skills This only includes parent skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
@@ -36,8 +34,7 @@ public final class SkillAPI {
     }
     }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This only includes child skills
+     * Returns a list of strings with mcMMO's skills This only includes child skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
@@ -48,8 +45,7 @@ public final class SkillAPI {
     }
     }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This only includes combat skills
+     * Returns a list of strings with mcMMO's skills This only includes combat skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
@@ -60,8 +56,7 @@ public final class SkillAPI {
     }
     }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This only includes gathering skills
+     * Returns a list of strings with mcMMO's skills This only includes gathering skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *
@@ -72,8 +67,7 @@ public final class SkillAPI {
     }
     }
 
 
     /**
     /**
-     * Returns a list of strings with mcMMO's skills
-     * This only includes misc skills
+     * Returns a list of strings with mcMMO's skills This only includes misc skills
      * </br>
      * </br>
      * This function is designed for API usage.
      * This function is designed for API usage.
      *
      *

+ 2 - 0
src/main/java/com/gmail/nossr50/api/exceptions/IncompleteNamespacedKeyRegister.java

@@ -1,8 +1,10 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
 public class IncompleteNamespacedKeyRegister extends RuntimeException {
 public class IncompleteNamespacedKeyRegister extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = -6905157273569301219L;
     private static final long serialVersionUID = -6905157273569301219L;
 
 
     public IncompleteNamespacedKeyRegister(@NotNull String message) {
     public IncompleteNamespacedKeyRegister(@NotNull String message) {

+ 3 - 0
src/main/java/com/gmail/nossr50/api/exceptions/InvalidFormulaTypeException.java

@@ -1,6 +1,9 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
+
 public class InvalidFormulaTypeException extends RuntimeException {
 public class InvalidFormulaTypeException extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = 3368670229490121886L;
     private static final long serialVersionUID = 3368670229490121886L;
 
 
     public InvalidFormulaTypeException() {
     public InvalidFormulaTypeException() {

+ 3 - 0
src/main/java/com/gmail/nossr50/api/exceptions/InvalidPlayerException.java

@@ -1,6 +1,9 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
+
 public class InvalidPlayerException extends RuntimeException {
 public class InvalidPlayerException extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = 907213002618581385L;
     private static final long serialVersionUID = 907213002618581385L;
 
 
     public InvalidPlayerException() {
     public InvalidPlayerException() {

+ 3 - 0
src/main/java/com/gmail/nossr50/api/exceptions/InvalidSkillException.java

@@ -1,6 +1,9 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
+
 public class InvalidSkillException extends RuntimeException {
 public class InvalidSkillException extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = 942705284195791157L;
     private static final long serialVersionUID = 942705284195791157L;
 
 
     public InvalidSkillException() {
     public InvalidSkillException() {

+ 3 - 0
src/main/java/com/gmail/nossr50/api/exceptions/InvalidXPGainReasonException.java

@@ -1,6 +1,9 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
+
 public class InvalidXPGainReasonException extends RuntimeException {
 public class InvalidXPGainReasonException extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = 4427052841957931157L;
     private static final long serialVersionUID = 4427052841957931157L;
 
 
     public InvalidXPGainReasonException() {
     public InvalidXPGainReasonException() {

+ 4 - 1
src/main/java/com/gmail/nossr50/api/exceptions/McMMOPlayerNotFoundException.java

@@ -1,12 +1,15 @@
 package com.gmail.nossr50.api.exceptions;
 package com.gmail.nossr50.api.exceptions;
 
 
+import java.io.Serial;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
 public class McMMOPlayerNotFoundException extends RuntimeException {
 public class McMMOPlayerNotFoundException extends RuntimeException {
+    @Serial
     private static final long serialVersionUID = 761917904993202836L;
     private static final long serialVersionUID = 761917904993202836L;
 
 
     public McMMOPlayerNotFoundException(@NotNull Player player) {
     public McMMOPlayerNotFoundException(@NotNull Player player) {
-        super("McMMOPlayer object was not found for [NOTE: This can mean the profile is not loaded yet! : " + player.getName() + " " + player.getUniqueId());
+        super("McMMOPlayer object was not found for [NOTE: This can mean the profile is not loaded yet! : "
+                + player.getName() + " " + player.getUniqueId());
     }
     }
 }
 }

+ 52 - 33
src/main/java/com/gmail/nossr50/chat/ChatManager.java

@@ -23,7 +23,6 @@ public class ChatManager {
 
 
     private final @NotNull AdminChatMailer adminChatMailer;
     private final @NotNull AdminChatMailer adminChatMailer;
     private final @NotNull PartyChatMailer partyChatMailer;
     private final @NotNull PartyChatMailer partyChatMailer;
-
     private final @NotNull ConsoleAuthor consoleAuthor;
     private final @NotNull ConsoleAuthor consoleAuthor;
     private final @NotNull Audience consoleAudience;
     private final @NotNull Audience consoleAudience;
 
 
@@ -34,7 +33,8 @@ public class ChatManager {
         partyChatMailer = new PartyChatMailer(pluginRef);
         partyChatMailer = new PartyChatMailer(pluginRef);
 
 
         this.consoleAuthor = new ConsoleAuthor(LocaleLoader.getString("Chat.Identity.Console"));
         this.consoleAuthor = new ConsoleAuthor(LocaleLoader.getString("Chat.Identity.Console"));
-        this.consoleAudience = mcMMO.getAudiences().filter((cs) -> cs instanceof ConsoleCommandSender);
+        this.consoleAudience = mcMMO.getAudiences()
+                .filter((cs) -> cs instanceof ConsoleCommandSender);
         this.isChatEnabled = ChatConfig.getInstance().isChatEnabled();
         this.isChatEnabled = ChatConfig.getInstance().isChatEnabled();
     }
     }
 
 
@@ -45,7 +45,8 @@ public class ChatManager {
      * @param rawMessage the raw message from the player as it was typed
      * @param rawMessage the raw message from the player as it was typed
      * @param isAsync whether this is getting processed via async
      * @param isAsync whether this is getting processed via async
      */
      */
-    public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String rawMessage, boolean isAsync) {
+    public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String rawMessage,
+            boolean isAsync) {
         processPlayerMessage(mmoPlayer, mmoPlayer.getChatChannel(), rawMessage, isAsync);
         processPlayerMessage(mmoPlayer, mmoPlayer.getChatChannel(), rawMessage, isAsync);
     }
     }
 
 
@@ -56,7 +57,8 @@ public class ChatManager {
      * @param args the raw command arguments from the player
      * @param args the raw command arguments from the player
      * @param chatChannel target channel
      * @param chatChannel target channel
      */
      */
-    public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args, @NotNull ChatChannel chatChannel) {
+    public void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull String[] args,
+            @NotNull ChatChannel chatChannel) {
         String chatMessageWithoutCommand = buildChatMessage(args);
         String chatMessageWithoutCommand = buildChatMessage(args);
 
 
         //Commands are never async
         //Commands are never async
@@ -71,13 +73,20 @@ public class ChatManager {
      * @param rawMessage raw chat message as it was typed
      * @param rawMessage raw chat message as it was typed
      * @param isAsync whether this is getting processed via async
      * @param isAsync whether this is getting processed via async
      */
      */
-    private void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer, @NotNull ChatChannel chatChannel, @NotNull String rawMessage, boolean isAsync) {
+    private void processPlayerMessage(@NotNull McMMOPlayer mmoPlayer,
+            @NotNull ChatChannel chatChannel,
+            @NotNull String rawMessage, boolean isAsync) {
         switch (chatChannel) {
         switch (chatChannel) {
             case ADMIN:
             case ADMIN:
-                adminChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, isAsync, Permissions.colorChat(mmoPlayer.getPlayer()));
+                adminChatMailer.processChatMessage(
+                        mmoPlayer.getPlayerAuthor(), rawMessage, isAsync,
+                        Permissions.colorChat(mmoPlayer.getPlayer()));
                 break;
                 break;
             case PARTY:
             case PARTY:
-                partyChatMailer.processChatMessage(mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(), isAsync, Permissions.colorChat(mmoPlayer.getPlayer()), Misc.isPartyLeader(mmoPlayer));
+                partyChatMailer.processChatMessage(
+                        mmoPlayer.getPlayerAuthor(), rawMessage, mmoPlayer.getParty(),
+                        isAsync, Permissions.colorChat(mmoPlayer.getPlayer()),
+                        Misc.isPartyLeader(mmoPlayer));
                 break;
                 break;
             case PARTY_OFFICER:
             case PARTY_OFFICER:
             case NONE:
             case NONE:
@@ -87,6 +96,7 @@ public class ChatManager {
 
 
     /**
     /**
      * Handles console messaging to admins
      * Handles console messaging to admins
+     *
      * @param rawMessage raw message from the console
      * @param rawMessage raw message from the console
      */
      */
     public void processConsoleMessage(@NotNull String rawMessage) {
     public void processConsoleMessage(@NotNull String rawMessage) {
@@ -95,6 +105,7 @@ public class ChatManager {
 
 
     /**
     /**
      * Handles console messaging to admins
      * Handles console messaging to admins
+     *
      * @param args raw command args from the console
      * @param args raw command args from the console
      */
      */
     public void processConsoleMessage(@NotNull String[] args) {
     public void processConsoleMessage(@NotNull String[] args) {
@@ -103,15 +114,18 @@ public class ChatManager {
 
 
     /**
     /**
      * Handles console messaging to a specific party
      * Handles console messaging to a specific party
+     *
      * @param rawMessage raw message from the console
      * @param rawMessage raw message from the console
      * @param party target party
      * @param party target party
      */
      */
     public void processConsoleMessage(@NotNull String rawMessage, @NotNull Party party) {
     public void processConsoleMessage(@NotNull String rawMessage, @NotNull Party party) {
-        partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true, false);
+        partyChatMailer.processChatMessage(getConsoleAuthor(), rawMessage, party, false, true,
+                false);
     }
     }
 
 
     /**
     /**
      * Gets a console author
      * Gets a console author
+     *
      * @return a {@link ConsoleAuthor}
      * @return a {@link ConsoleAuthor}
      */
      */
     private @NotNull Author getConsoleAuthor() {
     private @NotNull Author getConsoleAuthor() {
@@ -119,32 +133,39 @@ public class ChatManager {
     }
     }
 
 
     /**
     /**
-     * Change the chat channel of a {@link McMMOPlayer}
-     *  Targeting the channel a player is already in will remove that player from the chat channel
+     * Change the chat channel of a {@link McMMOPlayer} Targeting the channel a player is already in
+     * will remove that player from the chat channel
+     *
      * @param mmoPlayer target player
      * @param mmoPlayer target player
      * @param targetChatChannel target chat channel
      * @param targetChatChannel target chat channel
      */
      */
-    public void setOrToggleChatChannel(@NotNull McMMOPlayer mmoPlayer, @NotNull ChatChannel targetChatChannel) {
-        if(targetChatChannel == mmoPlayer.getChatChannel()) {
+    public void setOrToggleChatChannel(@NotNull McMMOPlayer mmoPlayer,
+            @NotNull ChatChannel targetChatChannel) {
+        if (targetChatChannel == mmoPlayer.getChatChannel()) {
             //Disabled message
             //Disabled message
-            mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Chat.Channel.Off", StringUtils.getCapitalized(targetChatChannel.toString())));
+            mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
+                    "Chat.Channel.Off",
+                    StringUtils.getCapitalized(targetChatChannel.toString())));
             mmoPlayer.setChatMode(ChatChannel.NONE);
             mmoPlayer.setChatMode(ChatChannel.NONE);
         } else {
         } else {
             mmoPlayer.setChatMode(targetChatChannel);
             mmoPlayer.setChatMode(targetChatChannel);
-            mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Chat.Channel.On", StringUtils.getCapitalized(targetChatChannel.toString())));
+            mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
+                    "Chat.Channel.On",
+                    StringUtils.getCapitalized(targetChatChannel.toString())));
         }
         }
     }
     }
 
 
     /**
     /**
      * Create a chat message from an array of {@link String}
      * Create a chat message from an array of {@link String}
+     *
      * @param args array of {@link String}
      * @param args array of {@link String}
      * @return a String built from the array
      * @return a String built from the array
      */
      */
     private @NotNull String buildChatMessage(@NotNull String[] args) {
     private @NotNull String buildChatMessage(@NotNull String[] args) {
         StringBuilder stringBuilder = new StringBuilder();
         StringBuilder stringBuilder = new StringBuilder();
 
 
-        for(int i = 0; i < args.length; i++) {
-            if(i + 1 >= args.length) {
+        for (int i = 0; i < args.length; i++) {
+            if (i + 1 >= args.length) {
                 stringBuilder.append(args[i]);
                 stringBuilder.append(args[i]);
             } else {
             } else {
                 stringBuilder.append(args[i]).append(" ");
                 stringBuilder.append(args[i]).append(" ");
@@ -156,18 +177,19 @@ public class ChatManager {
 
 
     /**
     /**
      * Whether the player is allowed to send a message to the chat channel they are targeting
      * Whether the player is allowed to send a message to the chat channel they are targeting
+     *
      * @param mmoPlayer target player
      * @param mmoPlayer target player
      * @return true if the player can send messages to that chat channel
      * @return true if the player can send messages to that chat channel
      */
      */
     public boolean isMessageAllowed(@NotNull McMMOPlayer mmoPlayer) {
     public boolean isMessageAllowed(@NotNull McMMOPlayer mmoPlayer) {
         switch (mmoPlayer.getChatChannel()) {
         switch (mmoPlayer.getChatChannel()) {
             case ADMIN:
             case ADMIN:
-                if(mmoPlayer.getPlayer().isOp() || Permissions.adminChat(mmoPlayer.getPlayer())) {
+                if (mmoPlayer.getPlayer().isOp() || Permissions.adminChat(mmoPlayer.getPlayer())) {
                     return true;
                     return true;
                 }
                 }
                 break;
                 break;
             case PARTY:
             case PARTY:
-                if(mmoPlayer.getParty() != null && Permissions.partyChat(mmoPlayer.getPlayer())) {
+                if (mmoPlayer.getParty() != null && Permissions.partyChat(mmoPlayer.getPlayer())) {
                     return true;
                     return true;
                 }
                 }
                 break;
                 break;
@@ -181,6 +203,7 @@ public class ChatManager {
 
 
     /**
     /**
      * Sends just the console a message
      * Sends just the console a message
+     *
      * @param author author of the message
      * @param author author of the message
      * @param message message contents in component form
      * @param message message contents in component form
      */
      */
@@ -190,6 +213,7 @@ public class ChatManager {
 
 
     /**
     /**
      * Whether the mcMMO chat system which handles party and admin chat is enabled or disabled
      * Whether the mcMMO chat system which handles party and admin chat is enabled or disabled
+     *
      * @return true if mcMMO chat processing (for party/admin chat) is enabled
      * @return true if mcMMO chat processing (for party/admin chat) is enabled
      */
      */
     public boolean isChatEnabled() {
     public boolean isChatEnabled() {
@@ -197,28 +221,23 @@ public class ChatManager {
     }
     }
 
 
     /**
     /**
-     * Whether a specific chat channel is enabled
-     * ChatChannels are enabled/disabled via user config
+     * Whether a specific chat channel is enabled ChatChannels are enabled/disabled via user config
+     * <p>
+     * If chat is disabled, this always returns false If NONE is passed as a {@link ChatChannel} it
+     * will return true
      *
      *
-     * If chat is disabled, this always returns false
-     * If NONE is passed as a {@link ChatChannel} it will return true
      * @param chatChannel target chat channel
      * @param chatChannel target chat channel
      * @return true if the chat channel is enabled
      * @return true if the chat channel is enabled
      */
      */
     public boolean isChatChannelEnabled(@NotNull ChatChannel chatChannel) {
     public boolean isChatChannelEnabled(@NotNull ChatChannel chatChannel) {
-        if(!isChatEnabled) {
+        if (!isChatEnabled) {
             return false;
             return false;
         } else {
         } else {
-            switch(chatChannel) {
-                case ADMIN:
-                case PARTY:
-                case PARTY_OFFICER:
-                    return ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
-                case NONE:
-                    return true;
-                default:
-                    return false;
-            }
+            return switch (chatChannel) {
+                case ADMIN, PARTY, PARTY_OFFICER ->
+                        ChatConfig.getInstance().isChatChannelEnabled(chatChannel);
+                case NONE -> true;
+            };
         }
         }
     }
     }
 
 

+ 9 - 8
src/main/java/com/gmail/nossr50/chat/SamePartyPredicate.java

@@ -3,12 +3,11 @@ package com.gmail.nossr50.chat;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
+import java.util.function.Predicate;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.ConsoleCommandSender;
 import org.bukkit.command.ConsoleCommandSender;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 
 
-import java.util.function.Predicate;
-
 public class SamePartyPredicate<T extends CommandSender> implements Predicate<T> {
 public class SamePartyPredicate<T extends CommandSender> implements Predicate<T> {
 
 
     final Party party;
     final Party party;
@@ -20,13 +19,15 @@ public class SamePartyPredicate<T extends CommandSender> implements Predicate<T>
     @Override
     @Override
     public boolean test(T t) {
     public boolean test(T t) {
         //Include the console in the audience
         //Include the console in the audience
-        if(t instanceof ConsoleCommandSender) {
-            return false; //Party audiences are special, we exclude console from them to avoid double messaging since we send a more verbose version to consoles
+        if (t instanceof ConsoleCommandSender) {
+            //Party audiences are special, we exclude console from them to avoid double
+            // messaging since we send a more verbose version to consoles
+            return false;
         } else {
         } else {
-            if(t instanceof Player player) {
-                McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
-                if(mcMMOPlayer != null) {
-                    return mcMMOPlayer.getParty() == party;
+            if (t instanceof Player player) {
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
+                if (mmoPlayer != null) {
+                    return mmoPlayer.getParty() == party;
                 }
                 }
             }
             }
         }
         }

+ 33 - 24
src/main/java/com/gmail/nossr50/chat/author/AbstractPlayerAuthor.java

@@ -3,17 +3,17 @@ package com.gmail.nossr50.chat.author;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.util.text.TextUtils;
 import com.gmail.nossr50.util.text.TextUtils;
 import com.google.common.base.Objects;
 import com.google.common.base.Objects;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.HashMap;
-import java.util.UUID;
-
 public abstract class AbstractPlayerAuthor implements Author {
 public abstract class AbstractPlayerAuthor implements Author {
     private final @NotNull Player player;
     private final @NotNull Player player;
+    private final @NotNull Map<ChatChannel, String> sanitizedNameCache;
     private @NotNull String lastKnownDisplayName;
     private @NotNull String lastKnownDisplayName;
-    private final @NotNull HashMap<ChatChannel, String> sanitizedNameCache;
 
 
     public AbstractPlayerAuthor(@NotNull Player player) {
     public AbstractPlayerAuthor(@NotNull Player player) {
         this.player = player;
         this.player = player;
@@ -31,32 +31,34 @@ public abstract class AbstractPlayerAuthor implements Author {
     }
     }
 
 
     /**
     /**
-     * Player display names can change and this method will update the last known display name of this player
+     * Player display names can change and this method will update the last known display name of
+     * this player
      */
      */
     private void updateLastKnownDisplayName() {
     private void updateLastKnownDisplayName() {
         lastKnownDisplayName = player.getDisplayName();
         lastKnownDisplayName = player.getDisplayName();
     }
     }
 
 
     /**
     /**
-     * Gets a sanitized name for a channel
-     * Sanitized names are names that are friendly to the {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer}
-     * Sanitized names for authors are cached by channel and are only created as needed
-     * Sanitized names will update if a players display name has updated
+     * Gets a sanitized name for a channel Sanitized names are names that are friendly to the
+     * {@link net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer} Sanitized names
+     * for authors are cached by channel and are only created as needed Sanitized names will update
+     * if a players display name has updated
      *
      *
      * @param chatChannel target chat channel
      * @param chatChannel target chat channel
      * @return the sanitized name for a player
      * @return the sanitized name for a player
      */
      */
-    protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
+    protected @NotNull String getSanitizedName(@NotNull ChatChannel chatChannel,
+            boolean useDisplayName) {
         //Already in cache
         //Already in cache
-        if(sanitizedNameCache.containsKey(chatChannel)) {
+        if (sanitizedNameCache.containsKey(chatChannel)) {
             //Update cache
             //Update cache
-            if(useDisplayName && hasPlayerDisplayNameChanged()) {
+            if (useDisplayName && hasPlayerDisplayNameChanged()) {
                 updateLastKnownDisplayName();
                 updateLastKnownDisplayName();
                 updateSanitizedNameCache(chatChannel, true);
                 updateSanitizedNameCache(chatChannel, true);
             }
             }
         } else {
         } else {
             //Update last known display name
             //Update last known display name
-            if(useDisplayName && hasPlayerDisplayNameChanged()) {
+            if (useDisplayName && hasPlayerDisplayNameChanged()) {
                 updateLastKnownDisplayName();
                 updateLastKnownDisplayName();
             }
             }
 
 
@@ -68,16 +70,18 @@ public abstract class AbstractPlayerAuthor implements Author {
     }
     }
 
 
     /**
     /**
-     * Update the sanitized name cache
-     * This will add entries if one didn't exit
-     * Sanitized names are associated with a {@link ChatChannel} as different chat channels have different chat name settings
+     * Update the sanitized name cache This will add entries if one didn't exit Sanitized names are
+     * associated with a {@link ChatChannel} as different chat channels have different chat name
+     * settings
      *
      *
      * @param chatChannel target chat channel
      * @param chatChannel target chat channel
      * @param useDisplayName whether to use this authors display name
      * @param useDisplayName whether to use this authors display name
      */
      */
-    private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel, boolean useDisplayName) {
-        if(useDisplayName) {
-            sanitizedNameCache.put(chatChannel, TextUtils.sanitizeForSerializer(player.getDisplayName()));
+    private void updateSanitizedNameCache(@NotNull ChatChannel chatChannel,
+            boolean useDisplayName) {
+        if (useDisplayName) {
+            sanitizedNameCache.put(chatChannel,
+                    TextUtils.sanitizeForSerializer(player.getDisplayName()));
         } else {
         } else {
             //No need to sanitize a basic String
             //No need to sanitize a basic String
             sanitizedNameCache.put(chatChannel, player.getName());
             sanitizedNameCache.put(chatChannel, player.getName());
@@ -105,12 +109,17 @@ public abstract class AbstractPlayerAuthor implements Author {
 
 
     @Override
     @Override
     public boolean equals(Object o) {
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
         AbstractPlayerAuthor that = (AbstractPlayerAuthor) o;
         AbstractPlayerAuthor that = (AbstractPlayerAuthor) o;
-        return Objects.equal(player, that.player) &&
-                Objects.equal(lastKnownDisplayName, that.lastKnownDisplayName) &&
-                Objects.equal(sanitizedNameCache, that.sanitizedNameCache);
+        return Objects.equal(player, that.player) && Objects.equal(
+                lastKnownDisplayName,
+                that.lastKnownDisplayName) && Objects.equal(
+                sanitizedNameCache, that.sanitizedNameCache);
     }
     }
 
 
     @Override
     @Override

+ 4 - 3
src/main/java/com/gmail/nossr50/chat/author/Author.java

@@ -7,9 +7,9 @@ import org.jetbrains.annotations.NotNull;
 public interface Author extends Identity {
 public interface Author extends Identity {
 
 
     /**
     /**
-     * The name of this author as used in mcMMO chat
-     * This is the {@link String} representation of the users current chat username
-     * This can either be the player's display name or the player's official registered nickname with Mojang it depends on the servers chat settings for mcMMO
+     * The name of this author as used in mcMMO chat This is the {@link String} representation of
+     * the users current chat username This can either be the player's display name or the player's
+     * official registered nickname with Mojang it depends on the servers chat settings for mcMMO
      *
      *
      * @param chatChannel which chat channel this is going to
      * @param chatChannel which chat channel this is going to
      * @return The name of this author as used in mcMMO chat
      * @return The name of this author as used in mcMMO chat
@@ -25,6 +25,7 @@ public interface Author extends Identity {
 
 
     /**
     /**
      * Whether this author is a {@link org.bukkit.entity.Player}
      * Whether this author is a {@link org.bukkit.entity.Player}
+     *
      * @return true if this author is a player
      * @return true if this author is a player
      */
      */
     boolean isPlayer();
     boolean isPlayer();

+ 1 - 2
src/main/java/com/gmail/nossr50/chat/author/ConsoleAuthor.java

@@ -2,11 +2,10 @@ package com.gmail.nossr50.chat.author;
 
 
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.util.text.TextUtils;
 import com.gmail.nossr50.util.text.TextUtils;
+import java.util.UUID;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.checkerframework.checker.nullness.qual.NonNull;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.UUID;
-
 public class ConsoleAuthor implements Author {
 public class ConsoleAuthor implements Author {
     private final UUID uuid;
     private final UUID uuid;
     private final @NotNull String name;
     private final @NotNull String name;

+ 24 - 14
src/main/java/com/gmail/nossr50/chat/mailer/AdminChatMailer.java

@@ -3,12 +3,14 @@ package com.gmail.nossr50.chat.mailer;
 import com.gmail.nossr50.chat.author.Author;
 import com.gmail.nossr50.chat.author.Author;
 import com.gmail.nossr50.chat.message.AdminChatMessage;
 import com.gmail.nossr50.chat.message.AdminChatMessage;
 import com.gmail.nossr50.chat.message.ChatMessage;
 import com.gmail.nossr50.chat.message.ChatMessage;
+import com.gmail.nossr50.config.ChatConfig;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
 import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
 import com.gmail.nossr50.events.chat.McMMOChatEvent;
 import com.gmail.nossr50.events.chat.McMMOChatEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.util.text.TextUtils;
 import com.gmail.nossr50.util.text.TextUtils;
+import java.util.function.Predicate;
 import net.kyori.adventure.audience.Audience;
 import net.kyori.adventure.audience.Audience;
 import net.kyori.adventure.text.TextComponent;
 import net.kyori.adventure.text.TextComponent;
 import org.bukkit.Bukkit;
 import org.bukkit.Bukkit;
@@ -17,16 +19,14 @@ import org.bukkit.command.ConsoleCommandSender;
 import org.bukkit.plugin.Plugin;
 import org.bukkit.plugin.Plugin;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.function.Predicate;
-
 public class AdminChatMailer extends AbstractChatMailer {
 public class AdminChatMailer extends AbstractChatMailer {
 
 
+    public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
+
     public AdminChatMailer(Plugin pluginRef) {
     public AdminChatMailer(Plugin pluginRef) {
         super(pluginRef);
         super(pluginRef);
     }
     }
 
 
-    public static final @NotNull String MCMMO_CHAT_ADMINCHAT_PERMISSION = "mcmmo.chat.adminchat";
-
     /**
     /**
      * Constructs an audience of admins
      * Constructs an audience of admins
      *
      *
@@ -42,9 +42,10 @@ public class AdminChatMailer extends AbstractChatMailer {
      * @return admin chat audience predicate
      * @return admin chat audience predicate
      */
      */
     public @NotNull Predicate<CommandSender> predicate() {
     public @NotNull Predicate<CommandSender> predicate() {
-        return (commandSender) -> commandSender.isOp()
-                || commandSender.hasPermission(MCMMO_CHAT_ADMINCHAT_PERMISSION)
-                || commandSender instanceof ConsoleCommandSender;
+        return (commandSender) -> commandSender.isOp() || commandSender.hasPermission(
+                MCMMO_CHAT_ADMINCHAT_PERMISSION) || (
+                ChatConfig.getInstance().isConsoleIncludedInAudience(
+                        ChatChannel.ADMIN) && commandSender instanceof ConsoleCommandSender);
     }
     }
 
 
     /**
     /**
@@ -55,11 +56,16 @@ public class AdminChatMailer extends AbstractChatMailer {
      * @param canColor whether to replace colors codes with colors in the raw message
      * @param canColor whether to replace colors codes with colors in the raw message
      * @return the styled string, based on a locale entry
      * @return the styled string, based on a locale entry
      */
      */
-    public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor) {
-        if(canColor) {
-            return LocaleLoader.getTextComponent("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message);
+    public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
+            boolean canColor) {
+        if (canColor) {
+            return LocaleLoader.getTextComponent(
+                    "Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN),
+                    message);
         } else {
         } else {
-            return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Admin", author.getAuthoredName(ChatChannel.ADMIN), message));
+            return TextUtils.ofLegacyTextRaw(
+                    LocaleLoader.getString("Chat.Style.Admin",
+                            author.getAuthoredName(ChatChannel.ADMIN), message));
         }
         }
     }
     }
 
 
@@ -76,13 +82,17 @@ public class AdminChatMailer extends AbstractChatMailer {
      * @param isAsync whether this is being processed asynchronously
      * @param isAsync whether this is being processed asynchronously
      * @param canColor whether the author can use colors in chat
      * @param canColor whether the author can use colors in chat
      */
      */
-    public void processChatMessage(@NotNull Author author, @NotNull String rawString, boolean isAsync, boolean canColor) {
-        AdminChatMessage chatMessage = new AdminChatMessage(pluginRef, author, constructAudience(), rawString, addStyle(author, rawString, canColor));
+    public void processChatMessage(@NotNull Author author, @NotNull String rawString,
+            boolean isAsync,
+            boolean canColor) {
+        AdminChatMessage chatMessage = new AdminChatMessage(
+                pluginRef, author, constructAudience(), rawString,
+                addStyle(author, rawString, canColor));
 
 
         McMMOChatEvent chatEvent = new McMMOAdminChatEvent(pluginRef, chatMessage, isAsync);
         McMMOChatEvent chatEvent = new McMMOAdminChatEvent(pluginRef, chatMessage, isAsync);
         Bukkit.getPluginManager().callEvent(chatEvent);
         Bukkit.getPluginManager().callEvent(chatEvent);
 
 
-        if(!chatEvent.isCancelled()) {
+        if (!chatEvent.isCancelled()) {
             sendMail(chatMessage);
             sendMail(chatMessage);
         }
         }
     }
     }

+ 1 - 0
src/main/java/com/gmail/nossr50/chat/mailer/ChatMailer.java

@@ -6,6 +6,7 @@ import org.jetbrains.annotations.NotNull;
 public interface ChatMailer {
 public interface ChatMailer {
     /**
     /**
      * Send out a chat message
      * Send out a chat message
+     *
      * @param chatMessage the {@link ChatMessage}
      * @param chatMessage the {@link ChatMessage}
      */
      */
     void sendMail(@NotNull ChatMessage chatMessage);
     void sendMail(@NotNull ChatMessage chatMessage);

+ 26 - 11
src/main/java/com/gmail/nossr50/chat/mailer/PartyChatMailer.java

@@ -30,13 +30,17 @@ public class PartyChatMailer extends AbstractChatMailer {
      * @param isAsync whether this is being processed asynchronously
      * @param isAsync whether this is being processed asynchronously
      * @param canColor whether the author can use colors in chat
      * @param canColor whether the author can use colors in chat
      */
      */
-    public void processChatMessage(@NotNull Author author, @NotNull String rawString, @NotNull Party party, boolean isAsync, boolean canColor, boolean isLeader) {
-        PartyChatMessage chatMessage = new PartyChatMessage(pluginRef, author, constructPartyAudience(party), rawString, addStyle(author, rawString, canColor, isLeader), party);
+    public void processChatMessage(@NotNull Author author, @NotNull String rawString,
+            @NotNull Party party,
+            boolean isAsync, boolean canColor, boolean isLeader) {
+        PartyChatMessage chatMessage = new PartyChatMessage(
+                pluginRef, author, constructPartyAudience(party), rawString,
+                addStyle(author, rawString, canColor, isLeader), party);
 
 
         McMMOChatEvent chatEvent = new McMMOPartyChatEvent(pluginRef, chatMessage, party, isAsync);
         McMMOChatEvent chatEvent = new McMMOPartyChatEvent(pluginRef, chatMessage, party, isAsync);
         Bukkit.getPluginManager().callEvent(chatEvent);
         Bukkit.getPluginManager().callEvent(chatEvent);
 
 
-        if(!chatEvent.isCancelled()) {
+        if (!chatEvent.isCancelled()) {
             sendMail(chatMessage);
             sendMail(chatMessage);
         }
         }
     }
     }
@@ -59,18 +63,29 @@ public class PartyChatMailer extends AbstractChatMailer {
      * @param canColor whether to replace colors codes with colors in the raw message
      * @param canColor whether to replace colors codes with colors in the raw message
      * @return the styled string, based on a locale entry
      * @return the styled string, based on a locale entry
      */
      */
-    public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message, boolean canColor, boolean isLeader) {
-        if(canColor) {
-            if(isLeader) {
-                return LocaleLoader.getTextComponent("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message);
+    public @NotNull TextComponent addStyle(@NotNull Author author, @NotNull String message,
+            boolean canColor,
+            boolean isLeader) {
+        if (canColor) {
+            if (isLeader) {
+                return LocaleLoader.getTextComponent(
+                        "Chat.Style.Party.Leader",
+                        author.getAuthoredName(ChatChannel.PARTY), message);
             } else {
             } else {
-                return LocaleLoader.getTextComponent("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message);
+                return LocaleLoader.getTextComponent(
+                        "Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY),
+                        message);
             }
             }
         } else {
         } else {
-            if(isLeader) {
-                return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party.Leader", author.getAuthoredName(ChatChannel.PARTY), message));
+            if (isLeader) {
+                return TextUtils.ofLegacyTextRaw(
+                        LocaleLoader.getString(
+                                "Chat.Style.Party.Leader",
+                                author.getAuthoredName(ChatChannel.PARTY), message));
             } else {
             } else {
-                return TextUtils.ofLegacyTextRaw(LocaleLoader.getString("Chat.Style.Party", author.getAuthoredName(ChatChannel.PARTY), message));
+                return TextUtils.ofLegacyTextRaw(
+                        LocaleLoader.getString("Chat.Style.Party",
+                                author.getAuthoredName(ChatChannel.PARTY), message));
             }
             }
         }
         }
     }
     }

+ 19 - 13
src/main/java/com/gmail/nossr50/chat/message/AbstractChatMessage.java

@@ -15,7 +15,9 @@ public abstract class AbstractChatMessage implements ChatMessage {
     protected @NotNull TextComponent componentMessage;
     protected @NotNull TextComponent componentMessage;
     protected @NotNull Audience audience;
     protected @NotNull Audience audience;
 
 
-    public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
+    public AbstractChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
+            @NotNull Audience audience,
+            @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
         this.pluginRef = pluginRef;
         this.pluginRef = pluginRef;
         this.author = author;
         this.author = author;
         this.audience = audience;
         this.audience = audience;
@@ -38,6 +40,11 @@ public abstract class AbstractChatMessage implements ChatMessage {
         return audience;
         return audience;
     }
     }
 
 
+    @Override
+    public void setAudience(@NotNull Audience newAudience) {
+        audience = newAudience;
+    }
+
     @Override
     @Override
     public @NotNull TextComponent getChatMessage() {
     public @NotNull TextComponent getChatMessage() {
         return componentMessage;
         return componentMessage;
@@ -48,21 +55,20 @@ public abstract class AbstractChatMessage implements ChatMessage {
         this.componentMessage = textComponent;
         this.componentMessage = textComponent;
     }
     }
 
 
-    @Override
-    public void setAudience(@NotNull Audience newAudience) {
-        audience = newAudience;
-    }
-
     @Override
     @Override
     public boolean equals(Object o) {
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
         AbstractChatMessage that = (AbstractChatMessage) o;
         AbstractChatMessage that = (AbstractChatMessage) o;
-        return Objects.equal(pluginRef, that.pluginRef) &&
-                Objects.equal(author, that.author) &&
-                Objects.equal(rawMessage, that.rawMessage) &&
-                Objects.equal(componentMessage, that.componentMessage) &&
-                Objects.equal(audience, that.audience);
+        return Objects.equal(pluginRef, that.pluginRef) && Objects.equal(author, that.author)
+                && Objects.equal(
+                rawMessage, that.rawMessage) && Objects.equal(componentMessage,
+                that.componentMessage) && Objects.equal(
+                audience, that.audience);
     }
     }
 
 
     @Override
     @Override

+ 3 - 1
src/main/java/com/gmail/nossr50/chat/message/AdminChatMessage.java

@@ -8,7 +8,9 @@ import org.bukkit.plugin.Plugin;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
 public class AdminChatMessage extends AbstractChatMessage {
 public class AdminChatMessage extends AbstractChatMessage {
-    public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
+    public AdminChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
+            @NotNull Audience audience,
+            @NotNull String rawMessage, @NotNull TextComponent componentMessage) {
         super(pluginRef, author, audience, rawMessage, componentMessage);
         super(pluginRef, author, audience, rawMessage, componentMessage);
     }
     }
 
 

+ 20 - 18
src/main/java/com/gmail/nossr50/chat/message/ChatMessage.java

@@ -7,8 +7,8 @@ import org.jetbrains.annotations.NotNull;
 
 
 public interface ChatMessage {
 public interface ChatMessage {
     /**
     /**
-     * The original message from the {@link Author}
-     * This is formatted and styled before being sent out to players by mcMMO
+     * The original message from the {@link Author} This is formatted and styled before being sent
+     * out to players by mcMMO
      *
      *
      * @return the original message without any formatting or alterations
      * @return the original message without any formatting or alterations
      * @see #getChatMessage()
      * @see #getChatMessage()
@@ -18,33 +18,42 @@ public interface ChatMessage {
     /**
     /**
      * The {@link Author} from which this payload originated
      * The {@link Author} from which this payload originated
      *
      *
-     * @see #getChatMessage()
      * @return the source of the chat message
      * @return the source of the chat message
+     * @see #getChatMessage()
      */
      */
     @NotNull Author getAuthor();
     @NotNull Author getAuthor();
 
 
     /**
     /**
-     * The authors display name which is used in the initial creation of the message payload, it is provided for convenience.
-     *
+     * The authors display name which is used in the initial creation of the message payload, it is
+     * provided for convenience.
+     * <p>
      * This is a name generated by mcMMO during the creation of the {@link ChatMessage}
      * This is a name generated by mcMMO during the creation of the {@link ChatMessage}
-     *
+     * <p>
      * This is used by mcMMO when generating the message payload
      * This is used by mcMMO when generating the message payload
+     * <p>
+     * This method provides the display name for the convenience of plugins constructing their own
+     * {@link TextComponent payloads}
      *
      *
-     * This method provides the display name for the convenience of plugins constructing their own {@link TextComponent payloads}
-     *
-     * @see #getChatMessage()
      * @return the author display name as generated by mcMMO
      * @return the author display name as generated by mcMMO
+     * @see #getChatMessage()
      */
      */
     @NotNull String getAuthorDisplayName();
     @NotNull String getAuthorDisplayName();
 
 
     /**
     /**
-     * The target audience of this chat message
-     * Unless modified, this will include the {@link Author}
+     * The target audience of this chat message Unless modified, this will include the
+     * {@link Author}
      *
      *
      * @return target audience
      * @return target audience
      */
      */
     @NotNull Audience getAudience();
     @NotNull Audience getAudience();
 
 
+    /**
+     * Changes the audience
+     *
+     * @param newAudience the replacement audience
+     */
+    void setAudience(@NotNull Audience newAudience);
+
     /**
     /**
      * The {@link TextComponent message} being sent to the audience
      * The {@link TextComponent message} being sent to the audience
      *
      *
@@ -59,13 +68,6 @@ public interface ChatMessage {
      */
      */
     void setChatMessage(@NotNull TextComponent textComponent);
     void setChatMessage(@NotNull TextComponent textComponent);
 
 
-    /**
-     * Changes the audience
-     *
-     * @param newAudience the replacement audience
-     */
-    void setAudience(@NotNull Audience newAudience);
-
     /**
     /**
      * Deliver the message to the audience
      * Deliver the message to the audience
      */
      */

+ 30 - 14
src/main/java/com/gmail/nossr50/chat/message/PartyChatMessage.java

@@ -1,6 +1,7 @@
 package com.gmail.nossr50.chat.message;
 package com.gmail.nossr50.chat.message;
 
 
 import com.gmail.nossr50.chat.author.Author;
 import com.gmail.nossr50.chat.author.Author;
+import com.gmail.nossr50.config.ChatConfig;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
@@ -18,13 +19,17 @@ public class PartyChatMessage extends AbstractChatMessage {
 
 
     private final @NotNull Party party;
     private final @NotNull Party party;
 
 
-    public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author, @NotNull Audience audience, @NotNull String rawMessage, @NotNull TextComponent componentMessage, @NotNull Party party) {
+    public PartyChatMessage(@NotNull Plugin pluginRef, @NotNull Author author,
+            @NotNull Audience audience,
+            @NotNull String rawMessage, @NotNull TextComponent componentMessage,
+            @NotNull Party party) {
         super(pluginRef, author, audience, rawMessage, componentMessage);
         super(pluginRef, author, audience, rawMessage, componentMessage);
         this.party = party;
         this.party = party;
     }
     }
 
 
     /**
     /**
      * The party that this chat message was intended for
      * The party that this chat message was intended for
+     *
      * @return the party that this message was intended for
      * @return the party that this message was intended for
      */
      */
     public @NotNull Party getParty() {
     public @NotNull Party getParty() {
@@ -45,31 +50,36 @@ public class PartyChatMessage extends AbstractChatMessage {
 
 
         //Sends to everyone but console
         //Sends to everyone but console
         audience.sendMessage(author, componentMessage);
         audience.sendMessage(author, componentMessage);
-        TextComponent spyMessage = LocaleLoader.getTextComponent("Chat.Spy.Party", author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
+        final TextComponent spyMessage = LocaleLoader.getTextComponent(
+                "Chat.Spy.Party",
+                author.getAuthoredName(ChatChannel.PARTY), rawMessage, party.getName());
 
 
         //Relay to spies
         //Relay to spies
         messagePartyChatSpies(spyMessage);
         messagePartyChatSpies(spyMessage);
 
 
         //Console message
         //Console message
-        mcMMO.p.getChatManager().sendConsoleMessage(author, spyMessage);
+        if (ChatConfig.getInstance().isConsoleIncludedInAudience(ChatChannel.PARTY)) {
+            mcMMO.p.getChatManager().sendConsoleMessage(author, spyMessage);
+        }
     }
     }
 
 
     /**
     /**
-     * Console and Party Chat Spies get a more verbose version of the message
-     * Party Chat Spies will get a copy of the message as well
+     * Console and Party Chat Spies get a more verbose version of the message Party Chat Spies will
+     * get a copy of the message as well
+     *
      * @param spyMessage the message to copy to spies
      * @param spyMessage the message to copy to spies
      */
      */
     private void messagePartyChatSpies(@NotNull TextComponent spyMessage) {
     private void messagePartyChatSpies(@NotNull TextComponent spyMessage) {
         //Find the people with permissions
         //Find the people with permissions
-        for(McMMOPlayer mcMMOPlayer : UserManager.getPlayers()) {
-            Player player = mcMMOPlayer.getPlayer();
+        for (McMMOPlayer mmoPlayer : UserManager.getPlayers()) {
+            final Player player = mmoPlayer.getPlayer();
 
 
             //Check for toggled players
             //Check for toggled players
-            if(mcMMOPlayer.isPartyChatSpying()) {
-                Party adminParty = mcMMOPlayer.getParty();
+            if (mmoPlayer.isPartyChatSpying()) {
+                Party adminParty = mmoPlayer.getParty();
 
 
                 //Only message admins not part of this party
                 //Only message admins not part of this party
-                if(adminParty == null || adminParty != getParty()) {
+                if (adminParty == null || adminParty != getParty()) {
                     //TODO: Hacky, rewrite later
                     //TODO: Hacky, rewrite later
                     Audience audience = mcMMO.getAudiences().player(player);
                     Audience audience = mcMMO.getAudiences().player(player);
                     audience.sendMessage(spyMessage);
                     audience.sendMessage(spyMessage);
@@ -80,10 +90,16 @@ public class PartyChatMessage extends AbstractChatMessage {
 
 
     @Override
     @Override
     public boolean equals(Object o) {
     public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        if (!super.equals(o)) return false;
-        PartyChatMessage that = (PartyChatMessage) o;
+        if (this == o) {
+            return true;
+        }
+        if (o == null || getClass() != o.getClass()) {
+            return false;
+        }
+        if (!super.equals(o)) {
+            return false;
+        }
+        final PartyChatMessage that = (PartyChatMessage) o;
         return Objects.equal(party, that.party);
         return Objects.equal(party, that.party);
     }
     }
 
 

+ 50 - 14
src/main/java/com/gmail/nossr50/commands/CommandManager.java

@@ -5,6 +5,7 @@ import co.aikar.commands.BukkitCommandManager;
 import co.aikar.commands.ConditionFailedException;
 import co.aikar.commands.ConditionFailedException;
 import com.gmail.nossr50.commands.chat.AdminChatCommand;
 import com.gmail.nossr50.commands.chat.AdminChatCommand;
 import com.gmail.nossr50.commands.chat.PartyChatCommand;
 import com.gmail.nossr50.commands.chat.PartyChatCommand;
+import com.gmail.nossr50.commands.skills.PowerLevelCommand;
 import com.gmail.nossr50.config.ChatConfig;
 import com.gmail.nossr50.config.ChatConfig;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
@@ -20,9 +21,14 @@ import org.jetbrains.annotations.NotNull;
  * For now this class will only handle ACF converted commands, all other commands will be handled elsewhere
  * For now this class will only handle ACF converted commands, all other commands will be handled elsewhere
  */
  */
 public class CommandManager {
 public class CommandManager {
+    public static final @NotNull String MMO_DATA_LOADED = "mmoDataLoaded";
+
+    //CHAT
     public static final @NotNull String ADMIN_CONDITION = "adminCondition";
     public static final @NotNull String ADMIN_CONDITION = "adminCondition";
     public static final @NotNull String PARTY_CONDITION = "partyCondition";
     public static final @NotNull String PARTY_CONDITION = "partyCondition";
-    public static final @NotNull String MMO_DATA_LOADED = "mmoDataLoaded";
+
+    //SKILLS
+    public static final @NotNull String POWER_LEVEL_CONDITION = "powerLevelCondition";
 
 
     private final @NotNull mcMMO pluginRef;
     private final @NotNull mcMMO pluginRef;
     private final @NotNull BukkitCommandManager bukkitCommandManager;
     private final @NotNull BukkitCommandManager bukkitCommandManager;
@@ -36,29 +42,56 @@ public class CommandManager {
     }
     }
 
 
     private void registerCommands() {
     private void registerCommands() {
+        registerSkillCommands(); //TODO: Implement other skills not just power level
         registerChatCommands();
         registerChatCommands();
     }
     }
 
 
+    private void registerSkillCommands() {
+        if (mcMMO.p.getGeneralConfig().isMasterySystemEnabled()) {
+            bukkitCommandManager.registerCommand(new PowerLevelCommand(pluginRef));
+        }
+    }
+
     /**
     /**
      * Registers chat commands if the chat system is enabled
      * Registers chat commands if the chat system is enabled
      */
      */
     private void registerChatCommands() {
     private void registerChatCommands() {
-        if(ChatConfig.getInstance().isChatEnabled()) {
-            if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) {
+        if (ChatConfig.getInstance().isChatEnabled()) {
+            if (ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.ADMIN)) {
                 bukkitCommandManager.registerCommand(new AdminChatCommand(pluginRef));
                 bukkitCommandManager.registerCommand(new AdminChatCommand(pluginRef));
             }
             }
-            if(ChatConfig.getInstance().isChatChannelEnabled(ChatChannel.PARTY)) {
+            if (pluginRef.getPartyConfig().isPartyEnabled() && ChatConfig.getInstance()
+                    .isChatChannelEnabled(ChatChannel.PARTY)) {
                 bukkitCommandManager.registerCommand(new PartyChatCommand(pluginRef));
                 bukkitCommandManager.registerCommand(new PartyChatCommand(pluginRef));
             }
             }
         }
         }
     }
     }
 
 
     public void registerConditions() {
     public void registerConditions() {
+        registerChatCommandConditions(); //Chat Commands
+        registerSkillConditions();
+    }
+
+    private void registerSkillConditions() {
+        bukkitCommandManager.getCommandConditions()
+                .addCondition(POWER_LEVEL_CONDITION, (context) -> {
+                    BukkitCommandIssuer issuer = context.getIssuer();
+
+                    if (issuer.getIssuer() instanceof Player) {
+                        validateLoadedData(issuer.getPlayer());
+                    } else {
+                        throw new ConditionFailedException(
+                                LocaleLoader.getString("Commands.NoConsole"));
+                    }
+                });
+    }
+
+    private void registerChatCommandConditions() {
         // Method or Class based - Can only be used on methods
         // Method or Class based - Can only be used on methods
         bukkitCommandManager.getCommandConditions().addCondition(ADMIN_CONDITION, (context) -> {
         bukkitCommandManager.getCommandConditions().addCondition(ADMIN_CONDITION, (context) -> {
             BukkitCommandIssuer issuer = context.getIssuer();
             BukkitCommandIssuer issuer = context.getIssuer();
 
 
-            if(issuer.getIssuer() instanceof Player) {
+            if (issuer.getIssuer() instanceof Player) {
                 validateLoadedData(issuer.getPlayer());
                 validateLoadedData(issuer.getPlayer());
                 validateAdmin(issuer.getPlayer());
                 validateAdmin(issuer.getPlayer());
             }
             }
@@ -67,7 +100,7 @@ public class CommandManager {
         bukkitCommandManager.getCommandConditions().addCondition(MMO_DATA_LOADED, (context) -> {
         bukkitCommandManager.getCommandConditions().addCondition(MMO_DATA_LOADED, (context) -> {
             BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
             BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
 
 
-            if(bukkitCommandIssuer.getIssuer() instanceof Player) {
+            if (bukkitCommandIssuer.getIssuer() instanceof Player) {
                 validateLoadedData(bukkitCommandIssuer.getPlayer());
                 validateLoadedData(bukkitCommandIssuer.getPlayer());
             }
             }
         });
         });
@@ -75,37 +108,40 @@ public class CommandManager {
         bukkitCommandManager.getCommandConditions().addCondition(PARTY_CONDITION, (context) -> {
         bukkitCommandManager.getCommandConditions().addCondition(PARTY_CONDITION, (context) -> {
             BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
             BukkitCommandIssuer bukkitCommandIssuer = context.getIssuer();
 
 
-            if(bukkitCommandIssuer.getIssuer() instanceof Player) {
+            if (bukkitCommandIssuer.getIssuer() instanceof Player) {
                 validateLoadedData(bukkitCommandIssuer.getPlayer());
                 validateLoadedData(bukkitCommandIssuer.getPlayer());
                 validatePlayerParty(bukkitCommandIssuer.getPlayer());
                 validatePlayerParty(bukkitCommandIssuer.getPlayer());
+                //TODO: Is there even a point in validating permission? look into this later
                 validatePermission("mcmmo.chat.partychat", bukkitCommandIssuer.getPlayer());
                 validatePermission("mcmmo.chat.partychat", bukkitCommandIssuer.getPlayer());
             }
             }
         });
         });
     }
     }
 
 
-    private void validatePermission(@NotNull String permissionNode, @NotNull Permissible permissible) {
-        if(!permissible.hasPermission(permissionNode)) {
+    private void validatePermission(@NotNull String permissionNode,
+            @NotNull Permissible permissible) {
+        if (!permissible.hasPermission(permissionNode)) {
             throw new ConditionFailedException(LocaleLoader.getString("mcMMO.NoPermission"));
             throw new ConditionFailedException(LocaleLoader.getString("mcMMO.NoPermission"));
         }
         }
     }
     }
 
 
 
 
     public void validateAdmin(@NotNull Player player) {
     public void validateAdmin(@NotNull Player player) {
-        if(!player.isOp() && !Permissions.adminChat(player)) {
-            throw new ConditionFailedException("You are lacking the correct permissions to use this command.");
+        if (!player.isOp() && !Permissions.adminChat(player)) {
+            throw new ConditionFailedException(
+                    "You are lacking the correct permissions to use this command.");
         }
         }
     }
     }
 
 
     public void validateLoadedData(@NotNull Player player) {
     public void validateLoadedData(@NotNull Player player) {
-        if(UserManager.getPlayer(player) == null) {
+        if (UserManager.getPlayer(player) == null) {
             throw new ConditionFailedException(LocaleLoader.getString("Profile.PendingLoad"));
             throw new ConditionFailedException(LocaleLoader.getString("Profile.PendingLoad"));
         }
         }
     }
     }
 
 
     public void validatePlayerParty(@NotNull Player player) {
     public void validatePlayerParty(@NotNull Player player) {
-        McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
+        final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
 
 
-        if(mmoPlayer.getParty() == null) {
+        if (!pluginRef.getPartyConfig().isPartyEnabled() || mmoPlayer.getParty() == null) {
             throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None"));
             throw new ConditionFailedException(LocaleLoader.getString("Commands.Party.None"));
         }
         }
     }
     }

+ 0 - 336
src/main/java/com/gmail/nossr50/commands/McImportCommand.java

@@ -1,336 +0,0 @@
-package com.gmail.nossr50.commands;
-
-import com.gmail.nossr50.datatypes.skills.ModConfigType;
-import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.util.Misc;
-import org.bukkit.Material;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.*;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Locale;
-
-public class McImportCommand implements CommandExecutor {
-    int fileAmount;
-
-    @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
-        if (args.length == 0) {
-            importModConfig();
-            return true;
-        }
-        return false;
-    }
-
-    public boolean importModConfig() {
-        String importFilePath = mcMMO.getModDirectory() + File.separator + "import";
-        File importFile = new File(importFilePath, "import.log");
-        mcMMO.p.getLogger().info("Starting import of mod materials...");
-        fileAmount = 0;
-
-        HashMap<ModConfigType, ArrayList<String>> materialNames = new HashMap<>();
-
-        BufferedReader in = null;
-
-        try {
-            // Open the file
-            in = new BufferedReader(new FileReader(importFile));
-
-            String line;
-            String materialName;
-            String modName;
-
-            // While not at the end of the file
-            while ((line = in.readLine()) != null) {
-                String[] split1 = line.split("material ");
-
-                if (split1.length != 2) {
-                    continue;
-                }
-
-                String[] split2 = split1[1].split(" with");
-
-                if (split2.length != 2) {
-                    continue;
-                }
-
-                materialName = split2[0];
-
-                // Categorise each material under a mod config type
-                ModConfigType type = ModConfigType.getModConfigType(materialName);
-
-                if (!materialNames.containsKey(type)) {
-                    materialNames.put(type, new ArrayList<>());
-                }
-
-                materialNames.get(type).add(materialName);
-            }
-        }
-        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 false;
-        }
-        catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-        finally {
-            tryClose(in);
-        }
-
-        createOutput(materialNames);
-
-        mcMMO.p.getLogger().info("Import finished! Created " + fileAmount + " files!");
-        return true;
-    }
-
-    private void createOutput(HashMap<ModConfigType, ArrayList<String>> materialNames) {
-        for (ModConfigType modConfigType : materialNames.keySet()) {
-            HashMap<String, ArrayList<String>> materialNamesType = new HashMap<>();
-
-            for (String materialName : materialNames.get(modConfigType)) {
-                String modName = Misc.getModName(materialName);
-
-                if (!materialNamesType.containsKey(modName)) {
-                    materialNamesType.put(modName, new ArrayList<>());
-                }
-
-                materialNamesType.get(modName).add(materialName);
-            }
-
-            createOutput(modConfigType, materialNamesType);
-        }
-
-    }
-
-    private void tryClose(Closeable c) {
-        if (c == null) {
-            return;
-        }
-        try {
-            c.close();
-        }
-        catch (IOException e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void createOutput(ModConfigType modConfigType, HashMap<String, ArrayList<String>> materialNames) {
-        File outputFilePath = new File(mcMMO.getModDirectory() + File.separator + "output");
-        if (!outputFilePath.exists() && !outputFilePath.mkdirs()) {
-            mcMMO.p.getLogger().severe("Could not create output directory! " + outputFilePath.getAbsolutePath());
-        }
-
-        FileWriter out = null;
-        String type = modConfigType.name().toLowerCase(Locale.ENGLISH);
-
-        for (String modName : materialNames.keySet()) {
-            File outputFile = new File(outputFilePath, modName + "." + type + ".yml");
-            mcMMO.p.getLogger().info("Creating " + outputFile.getName());
-            try {
-                if (outputFile.exists() && !outputFile.delete()) {
-                    mcMMO.p.getLogger().severe("Not able to delete old output file! " + outputFile.getAbsolutePath());
-                }
-
-                if (!outputFile.createNewFile()) {
-                    mcMMO.p.getLogger().severe("Could not create output file! " + outputFile.getAbsolutePath());
-                    continue;
-                }
-
-                StringBuilder writer = new StringBuilder();
-                HashMap<String, ArrayList<String>> configSections = getConfigSections(modConfigType, modName, materialNames);
-
-                if (configSections == null) {
-                    mcMMO.p.getLogger().severe("Something went wrong!! type is " + type);
-                    return;
-                }
-
-                // Write the file, go through each skill and write all the materials
-                for (String configSection : configSections.keySet()) {
-                    if (configSection.equals("UNIDENTIFIED")) {
-                        writer.append("# This isn't a valid config section and all materials in this category need to be").append("\r\n");
-                        writer.append("# copy and pasted to a valid section of this config file.").append("\r\n");
-                    }
-                    writer.append(configSection).append(":").append("\r\n");
-
-                    for (String line : configSections.get(configSection)) {
-                        writer.append(line).append("\r\n");
-                    }
-
-                    writer.append("\r\n");
-                }
-
-                out = new FileWriter(outputFile);
-                out.write(writer.toString());
-            } catch (Exception e) {
-                e.printStackTrace();
-                return;
-            } finally {
-                tryClose(out);
-                fileAmount++;
-            }
-        }
-    }
-
-    private HashMap<String, ArrayList<String>> getConfigSections(ModConfigType type, String modName, HashMap<String, ArrayList<String>> materialNames) {
-        switch (type) {
-            case BLOCKS:
-                return getConfigSectionsBlocks(modName, materialNames);
-            case TOOLS:
-                return getConfigSectionsTools(modName, materialNames);
-            case ARMOR:
-                return getConfigSectionsArmor(modName, materialNames);
-            case UNKNOWN:
-                return getConfigSectionsUnknown(modName, materialNames);
-        }
-
-        return null;
-    }
-
-    private HashMap<String, ArrayList<String>> getConfigSectionsBlocks(String modName, HashMap<String, ArrayList<String>> materialNames) {
-        HashMap<String, ArrayList<String>> configSections = new HashMap<>();
-
-        // Go through all the materials and categorise them under a skill
-        for (String materialName : materialNames.get(modName)) {
-            String skillName = "UNIDENTIFIED";
-            if (materialName.contains("ORE")) {
-                skillName = "Mining";
-            }
-            else if (materialName.contains("LOG") || materialName.contains("LEAVES")) {
-                skillName = "Woodcutting";
-            }
-            else if (materialName.contains("GRASS") || materialName.contains("SHORT_GRASS") || materialName.contains("FLOWER") || materialName.contains("CROP")) {
-                skillName = "Herbalism";
-            }
-            else if (materialName.contains("DIRT") || materialName.contains("SAND")) {
-                skillName = "Excavation";
-            }
-
-            if (!configSections.containsKey(skillName)) {
-                configSections.put(skillName, new ArrayList<>());
-            }
-
-            ArrayList<String> skillContents = configSections.get(skillName);
-            skillContents.add("    " + materialName + "|0:");
-            skillContents.add("    " + "    " + "XP_Gain: 99");
-            skillContents.add("    " + "    " + "Double_Drops_Enabled: true");
-
-            if (skillName.equals("Mining")) {
-                skillContents.add("    " + "    " + "Smelting_XP_Gain: 9");
-            }
-            else if (skillName.equals("Woodcutting")) {
-                skillContents.add("    " + "    " + "Is_Log: " + materialName.contains("LOG"));
-            }
-        }
-
-        return configSections;
-    }
-
-    private HashMap<String, ArrayList<String>> getConfigSectionsTools(String modName, HashMap<String, ArrayList<String>> materialNames) {
-        HashMap<String, ArrayList<String>> configSections = new HashMap<>();
-
-        // Go through all the materials and categorise them under a tool type
-        for (String materialName : materialNames.get(modName)) {
-            String toolType = "UNIDENTIFIED";
-            if (materialName.contains("PICKAXE")) {
-                toolType = "Pickaxes";
-            }
-            else if (materialName.contains("AXE")) {
-                toolType = "Axes";
-            }
-            else if (materialName.contains("BOW")) {
-                toolType = "Bows";
-            }
-            else if (materialName.contains("HOE")) {
-                toolType = "Hoes";
-            }
-            else if (materialName.contains("SHOVEL") || materialName.contains("SPADE")) {
-                toolType = "Shovels";
-            }
-            else if (materialName.contains("SWORD")) {
-                toolType = "Swords";
-            }
-
-            if (!configSections.containsKey(toolType)) {
-                configSections.put(toolType, new ArrayList<>());
-            }
-
-            ArrayList<String> skillContents = configSections.get(toolType);
-            skillContents.add("    " + materialName + ":");
-            skillContents.add("    " + "    " + "XP_Modifier: 1.0");
-            skillContents.add("    " + "    " + "Tier: 1");
-            skillContents.add("    " + "    " + "Ability_Enabled: true");
-            addRepairableLines(materialName, skillContents);
-        }
-
-        return configSections;
-    }
-
-    private HashMap<String, ArrayList<String>> getConfigSectionsArmor(String modName, HashMap<String, ArrayList<String>> materialNames) {
-        HashMap<String, ArrayList<String>> configSections = new HashMap<>();
-
-        // Go through all the materials and categorise them under an armor type
-        for (String materialName : materialNames.get(modName)) {
-            String toolType = "UNIDENTIFIED";
-            if (materialName.contains("BOOT") || materialName.contains("SHOE")) {
-                toolType = "Boots";
-            }
-            else if (materialName.contains("CHESTPLATE") || materialName.contains("CHEST")) {
-                toolType = "Chestplates";
-            }
-            else if (materialName.contains("HELM") || materialName.contains("HAT")) {
-                toolType = "Helmets";
-            }
-            else if (materialName.contains("LEGGINGS") || materialName.contains("LEGS") || materialName.contains("PANTS")) {
-                toolType = "Leggings";
-            }
-
-            if (!configSections.containsKey(toolType)) {
-                configSections.put(toolType, new ArrayList<>());
-            }
-
-            ArrayList<String> skillContents = configSections.get(toolType);
-            skillContents.add("    " + materialName + ":");
-            addRepairableLines(materialName, skillContents);
-        }
-
-        return configSections;
-    }
-
-    private void addRepairableLines(String materialName, ArrayList<String> skillContents) {
-        skillContents.add("    " + "    " + "Repairable: true");
-        skillContents.add("    " + "    " + "Repair_Material: REPAIR_MATERIAL_NAME");
-        skillContents.add("    " + "    " + "Repair_Material_Data_Value: 0");
-        skillContents.add("    " + "    " + "Repair_Material_Quantity: 9");
-        skillContents.add("    " + "    " + "Repair_Material_Pretty_Name: Repair Item Name");
-        skillContents.add("    " + "    " + "Repair_MinimumLevel: 0");
-        skillContents.add("    " + "    " + "Repair_XpMultiplier: 1.0");
-
-        Material material = Material.matchMaterial(materialName);
-        short durability = (material == null) ? (short) 9999 : material.getMaxDurability();
-        skillContents.add("    " + "    " + "Durability: " + ((durability > 0) ? durability : (short) 9999));
-    }
-
-    private HashMap<String, ArrayList<String>> getConfigSectionsUnknown(String modName, HashMap<String, ArrayList<String>> materialNames) {
-        HashMap<String, ArrayList<String>> configSections = new HashMap<>();
-
-        // Go through all the materials and print them
-        for (String materialName : materialNames.get(modName)) {
-            String configKey = "UNIDENTIFIED";
-
-            if (!configSections.containsKey(configKey)) {
-                configSections.put(configKey, new ArrayList<>());
-            }
-
-            ArrayList<String> skillContents = configSections.get(configKey);
-            skillContents.add("    " + materialName);
-        }
-
-        return configSections;
-    }
-}

+ 4 - 3
src/main/java/com/gmail/nossr50/commands/McabilityCommand.java

@@ -17,9 +17,10 @@ public class McabilityCommand extends ToggleCommand {
     }
     }
 
 
     @Override
     @Override
-    protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
-        mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.Ability." + (mcMMOPlayer.getAbilityUse() ? "Off" : "On")));
-        mcMMOPlayer.toggleAbilityUse();
+    protected void applyCommandAction(McMMOPlayer mmoPlayer) {
+        mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
+                "Commands.Ability." + (mmoPlayer.getAbilityUse() ? "Off" : "On")));
+        mmoPlayer.toggleAbilityUse();
     }
     }
 
 
     @Override
     @Override

+ 17 - 11
src/main/java/com/gmail/nossr50/commands/McconvertCommand.java

@@ -7,6 +7,9 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
 import com.gmail.nossr50.datatypes.experience.FormulaType;
 import com.gmail.nossr50.datatypes.experience.FormulaType;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
@@ -14,10 +17,6 @@ import org.bukkit.command.TabExecutor;
 import org.bukkit.util.StringUtil;
 import org.bukkit.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
 public class McconvertCommand implements TabExecutor {
 public class McconvertCommand implements TabExecutor {
     private static final List<String> FORMULA_TYPES;
     private static final List<String> FORMULA_TYPES;
     private static final List<String> DATABASE_TYPES;
     private static final List<String> DATABASE_TYPES;
@@ -54,11 +53,13 @@ public class McconvertCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (args.length == 2) {
         if (args.length == 2) {
             if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
             if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
                 return databaseConvertCommand.onCommand(sender, command, label, args);
                 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);
                 return experienceConvertCommand.onCommand(sender, command, label, args);
             }
             }
 
 
@@ -68,17 +69,22 @@ public class McconvertCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 1:
             case 1:
-                return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS, new ArrayList<>(SUBCOMMANDS.size()));
+                return StringUtil.copyPartialMatches(args[0], SUBCOMMANDS,
+                        new ArrayList<>(SUBCOMMANDS.size()));
             case 2:
             case 2:
                 if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
                 if (args[0].equalsIgnoreCase("database") || args[0].equalsIgnoreCase("db")) {
-                    return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES, new ArrayList<>(DATABASE_TYPES.size()));
+                    return StringUtil.copyPartialMatches(args[0], DATABASE_TYPES,
+                            new ArrayList<>(DATABASE_TYPES.size()));
                 }
                 }
 
 
-                if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp") || args[0].equalsIgnoreCase("exp")) {
-                    return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES, new ArrayList<>(FORMULA_TYPES.size()));
+                if (args[0].equalsIgnoreCase("experience") || args[0].equalsIgnoreCase("xp")
+                        || args[0].equalsIgnoreCase("exp")) {
+                    return StringUtil.copyPartialMatches(args[0], FORMULA_TYPES,
+                            new ArrayList<>(FORMULA_TYPES.size()));
                 }
                 }
 
 
                 return ImmutableList.of();
                 return ImmutableList.of();

+ 4 - 3
src/main/java/com/gmail/nossr50/commands/McgodCommand.java

@@ -17,9 +17,10 @@ public class McgodCommand extends ToggleCommand {
     }
     }
 
 
     @Override
     @Override
-    protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
-        mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.GodMode." + (mcMMOPlayer.getGodMode() ? "Disabled" : "Enabled")));
-        mcMMOPlayer.toggleGodMode();
+    protected void applyCommandAction(McMMOPlayer mmoPlayer) {
+        mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
+                "Commands.GodMode." + (mmoPlayer.getGodMode() ? "Disabled" : "Enabled")));
+        mmoPlayer.toggleGodMode();
     }
     }
 
 
     @Override
     @Override

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

@@ -12,7 +12,8 @@ import org.jetbrains.annotations.NotNull;
 
 
 public class McmmoCommand implements CommandExecutor {
 public class McmmoCommand implements CommandExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 0:
             case 0:
                 if (!Permissions.mcmmoDescription(sender)) {
                 if (!Permissions.mcmmoDescription(sender)) {
@@ -27,18 +28,22 @@ public class McmmoCommand implements CommandExecutor {
 
 
                 if (mcMMO.p.getGeneralConfig().getDonateMessageEnabled()) {
                 if (mcMMO.p.getGeneralConfig().getDonateMessageEnabled()) {
                     sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
                     sender.sendMessage(LocaleLoader.getString("MOTD.Donate"));
-                    sender.sendMessage(ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com" + ChatColor.GOLD + " Paypal");
+                    sender.sendMessage(
+                            ChatColor.GOLD + " - " + ChatColor.GREEN + "nossr50@gmail.com"
+                                    + ChatColor.GOLD + " Paypal");
                 }
                 }
 
 
                 if (Permissions.showversion(sender)) {
                 if (Permissions.showversion(sender)) {
-                    sender.sendMessage(LocaleLoader.getString("MOTD.Version", mcMMO.p.getDescription().getVersion()));
+                    sender.sendMessage(LocaleLoader.getString("MOTD.Version",
+                            mcMMO.p.getDescription().getVersion()));
                 }
                 }
 
 
 //                mcMMO.getHolidayManager().anniversaryCheck(sender);
 //                mcMMO.getHolidayManager().anniversaryCheck(sender);
                 return true;
                 return true;
 
 
             case 1:
             case 1:
-                if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("commands")) {
+                if (args[0].equalsIgnoreCase("?") || args[0].equalsIgnoreCase("help")
+                        || args[0].equalsIgnoreCase("commands")) {
                     if (!Permissions.mcmmoHelp(sender)) {
                     if (!Permissions.mcmmoHelp(sender)) {
                         sender.sendMessage(command.getPermissionMessage());
                         sender.sendMessage(command.getPermissionMessage());
                         return true;
                         return true;
@@ -57,59 +62,61 @@ public class McmmoCommand implements CommandExecutor {
     }
     }
 
 
     private void displayGeneralCommands(CommandSender sender) {
     private void displayGeneralCommands(CommandSender sender) {
-        sender.sendMessage(ChatColor.DARK_AQUA + " /mcstats " + LocaleLoader.getString("Commands.Stats"));
-        sender.sendMessage(ChatColor.DARK_AQUA + " /<skill>" + LocaleLoader.getString("Commands.SkillInfo"));
-        sender.sendMessage(ChatColor.DARK_AQUA + " /mctop " + LocaleLoader.getString("Commands.Leaderboards"));
+        sender.sendMessage(LocaleLoader.getString("Commands.Stats"));
+        sender.sendMessage(LocaleLoader.getString("Commands.SkillInfo"));
+        sender.sendMessage(LocaleLoader.getString("Commands.Leaderboards"));
 
 
         if (Permissions.inspect(sender)) {
         if (Permissions.inspect(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /inspect " + LocaleLoader.getString("Commands.Inspect"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Inspect"));
         }
         }
 
 
         if (Permissions.mcability(sender)) {
         if (Permissions.mcability(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /mcability " + LocaleLoader.getString("Commands.ToggleAbility"));
+            sender.sendMessage(LocaleLoader.getString("Commands.ToggleAbility"));
         }
         }
     }
     }
 
 
     private void displayOtherCommands(CommandSender sender) {
     private void displayOtherCommands(CommandSender sender) {
         //Don't show them this category if they have none of the permissions
         //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;
             return;
+        }
 
 
         sender.sendMessage(LocaleLoader.getString("Commands.Other"));
         sender.sendMessage(LocaleLoader.getString("Commands.Other"));
 
 
         if (Permissions.skillreset(sender)) {
         if (Permissions.skillreset(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /skillreset <skill|all> " + LocaleLoader.getString("Commands.Reset"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Reset"));
         }
         }
 
 
         if (Permissions.mmoedit(sender)) {
         if (Permissions.mmoedit(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /mmoedit " + LocaleLoader.getString("Commands.mmoedit"));
+            sender.sendMessage(LocaleLoader.getString("Commands.mmoedit"));
         }
         }
 
 
         if (Permissions.adminChat(sender)) {
         if (Permissions.adminChat(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /adminchat " + LocaleLoader.getString("Commands.AdminToggle"));
+            sender.sendMessage(LocaleLoader.getString("Commands.AdminToggle"));
         }
         }
 
 
         if (Permissions.mcgod(sender)) {
         if (Permissions.mcgod(sender)) {
-            sender.sendMessage(ChatColor.DARK_AQUA + " /mcgod " + LocaleLoader.getString("Commands.mcgod"));
+            sender.sendMessage(LocaleLoader.getString("Commands.mcgod"));
         }
         }
     }
     }
 
 
     private void displayPartyCommands(CommandSender sender) {
     private void displayPartyCommands(CommandSender sender) {
         if (Permissions.party(sender)) {
         if (Permissions.party(sender)) {
             sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
             sender.sendMessage(LocaleLoader.getString("Commands.Party.Commands"));
-            sender.sendMessage(ChatColor.DARK_AQUA + " /party create <" + LocaleLoader.getString("Commands.Usage.PartyName") + "> " + LocaleLoader.getString("Commands.Party1"));
-            sender.sendMessage(ChatColor.DARK_AQUA + " /party join <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party2"));
-            sender.sendMessage(ChatColor.DARK_AQUA + " /party quit " + LocaleLoader.getString("Commands.Party.Quit"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Party1"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Party2"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Party.Quit"));
 
 
             if (Permissions.partyChat(sender)) {
             if (Permissions.partyChat(sender)) {
-                sender.sendMessage(ChatColor.DARK_AQUA + " /party chat " + LocaleLoader.getString("Commands.Party.Toggle"));
+                sender.sendMessage(LocaleLoader.getString("Commands.Party.Toggle"));
             }
             }
 
 
-            sender.sendMessage(ChatColor.DARK_AQUA + " /party invite <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Invite"));
-            sender.sendMessage(ChatColor.DARK_AQUA + " /party accept " + LocaleLoader.getString("Commands.Party.Accept"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Party.Invite"));
+            sender.sendMessage(LocaleLoader.getString("Commands.Party.Accept"));
 
 
             if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
             if (Permissions.partySubcommand(sender, PartySubcommandType.TELEPORT)) {
-                sender.sendMessage(ChatColor.DARK_AQUA + " /party teleport <" + LocaleLoader.getString("Commands.Usage.Player") + "> " + LocaleLoader.getString("Commands.Party.Teleport"));
+                sender.sendMessage(LocaleLoader.getString("Commands.Party.Teleport"));
             }
             }
         }
         }
     }
     }

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

@@ -5,39 +5,41 @@ import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.List;
-
 public class McnotifyCommand implements TabExecutor {
 public class McnotifyCommand implements TabExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (CommandUtils.noConsoleUsage(sender)) {
         if (CommandUtils.noConsoleUsage(sender)) {
             return true;
             return true;
         }
         }
 
 
         if (args.length == 0) {
         if (args.length == 0) {
-            McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
+            final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
 
 
             //Not Loaded yet
             //Not Loaded yet
-            if (mcMMOPlayer == null) {
+            if (mmoPlayer == null) {
                 sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                 sender.sendMessage(LocaleLoader.getString("Profile.PendingLoad"));
                 return true;
                 return true;
             }
             }
 
 
-            sender.sendMessage(LocaleLoader.getString("Commands.Notifications." + (mcMMOPlayer.useChatNotifications() ? "Off" : "On")));
-            mcMMOPlayer.toggleChatNotifications();
+            sender.sendMessage(LocaleLoader.getString(
+                    "Commands.Notifications." + (mmoPlayer.useChatNotifications() ? "Off" : "On")));
+            mmoPlayer.toggleChatNotifications();
             return true;
             return true;
         }
         }
         return false;
         return false;
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }
 }
 }

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

@@ -17,13 +17,13 @@ public class McrefreshCommand extends ToggleCommand {
     }
     }
 
 
     @Override
     @Override
-    protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
-        mcMMOPlayer.setRecentlyHurt(0);
-        mcMMOPlayer.resetCooldowns();
-        mcMMOPlayer.resetToolPrepMode();
-        mcMMOPlayer.resetAbilityMode();
+    protected void applyCommandAction(McMMOPlayer mmoPlayer) {
+        mmoPlayer.setRecentlyHurt(0);
+        mmoPlayer.resetCooldowns();
+        mmoPlayer.resetToolPrepMode();
+        mmoPlayer.resetAbilityMode();
 
 
-        mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
+        mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString("Ability.Generic.Refresh"));
     }
     }
 
 
     @Override
     @Override

+ 12 - 9
src/main/java/com/gmail/nossr50/commands/McscoreboardCommand.java

@@ -5,30 +5,30 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
 import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.util.StringUtil;
 import org.bukkit.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.ArrayList;
-import java.util.List;
-
 public class McscoreboardCommand implements TabExecutor {
 public class McscoreboardCommand implements TabExecutor {
     private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
     private static final List<String> FIRST_ARGS = ImmutableList.of("keep", "time", "clear");
 
 
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (CommandUtils.noConsoleUsage(sender)) {
         if (CommandUtils.noConsoleUsage(sender)) {
             return true;
             return true;
         }
         }
 
 
-        if(!mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
+        if (!mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
             sender.sendMessage(LocaleLoader.getString("Scoreboard.Disabled"));
             sender.sendMessage(LocaleLoader.getString("Scoreboard.Disabled"));
             return true;
             return true;
         }
         }
 
 
-        if(!ScoreboardManager.isPlayerBoardSetup(sender.getName())) {
+        if (!ScoreboardManager.isPlayerBoardSetup(sender.getName())) {
             sender.sendMessage(LocaleLoader.getString("Scoreboard.NotSetupYet"));
             sender.sendMessage(LocaleLoader.getString("Scoreboard.NotSetupYet"));
             return true;
             return true;
         }
         }
@@ -42,7 +42,8 @@ public class McscoreboardCommand implements TabExecutor {
                 }
                 }
 
 
                 if (args[0].equalsIgnoreCase("keep")) {
                 if (args[0].equalsIgnoreCase("keep")) {
-                    if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard() || !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
+                    if (!mcMMO.p.getGeneralConfig().getAllowKeepBoard()
+                            || !mcMMO.p.getGeneralConfig().getScoreboardsEnabled()) {
                         sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
                         sender.sendMessage(LocaleLoader.getString("Commands.Disabled"));
                         return true;
                         return true;
                     }
                     }
@@ -80,9 +81,11 @@ public class McscoreboardCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         if (args.length == 1) {
         if (args.length == 1) {
-            return StringUtil.copyPartialMatches(args[0], FIRST_ARGS, new ArrayList<>(FIRST_ARGS.size()));
+            return StringUtil.copyPartialMatches(args[0], FIRST_ARGS,
+                    new ArrayList<>(FIRST_ARGS.size()));
         }
         }
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }

+ 16 - 11
src/main/java/com/gmail/nossr50/commands/ToggleCommand.java

@@ -4,18 +4,18 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.util.StringUtil;
 import org.bukkit.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.ArrayList;
-import java.util.List;
-
 public abstract class ToggleCommand implements TabExecutor {
 public abstract class ToggleCommand implements TabExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 0:
             case 0:
                 if (CommandUtils.noConsoleUsage(sender)) {
                 if (CommandUtils.noConsoleUsage(sender)) {
@@ -41,17 +41,17 @@ public abstract class ToggleCommand implements TabExecutor {
                 }
                 }
 
 
                 String playerName = CommandUtils.getMatchedPlayerName(args[0]);
                 String playerName = CommandUtils.getMatchedPlayerName(args[0]);
-                McMMOPlayer mcMMOPlayer = UserManager.getPlayer(playerName);
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(playerName);
 
 
-                if (!CommandUtils.checkPlayerExistence(sender, playerName, mcMMOPlayer)) {
+                if (!CommandUtils.checkPlayerExistence(sender, playerName, mmoPlayer)) {
                     return true;
                     return true;
                 }
                 }
 
 
-                if (CommandUtils.isOffline(sender, mcMMOPlayer.getPlayer())) {
+                if (CommandUtils.isOffline(sender, mmoPlayer.getPlayer())) {
                     return true;
                     return true;
                 }
                 }
 
 
-                applyCommandAction(mcMMOPlayer);
+                applyCommandAction(mmoPlayer);
                 sendSuccessMessage(sender, playerName);
                 sendSuccessMessage(sender, playerName);
                 return true;
                 return true;
 
 
@@ -61,16 +61,21 @@ public abstract class ToggleCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         if (args.length == 1) {
         if (args.length == 1) {
             List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
             List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
-            return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
+            return StringUtil.copyPartialMatches(args[0], playerNames,
+                    new ArrayList<>(playerNames.size()));
         }
         }
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }
 
 
     protected abstract boolean hasOtherPermission(CommandSender sender);
     protected abstract boolean hasOtherPermission(CommandSender sender);
+
     protected abstract boolean hasSelfPermission(CommandSender sender);
     protected abstract boolean hasSelfPermission(CommandSender sender);
-    protected abstract void applyCommandAction(McMMOPlayer mcMMOPlayer);
+
+    protected abstract void applyCommandAction(McMMOPlayer mmoPlayer);
+
     protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
     protected abstract void sendSuccessMessage(CommandSender sender, String playerName);
 }
 }

+ 36 - 32
src/main/java/com/gmail/nossr50/commands/XprateCommand.java

@@ -9,6 +9,8 @@ import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.player.NotificationManager;
 import com.gmail.nossr50.util.player.NotificationManager;
 import com.gmail.nossr50.util.text.StringUtils;
 import com.gmail.nossr50.util.text.StringUtils;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
 import org.bukkit.ChatColor;
 import org.bukkit.ChatColor;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
@@ -16,17 +18,16 @@ import org.bukkit.command.TabExecutor;
 import org.bukkit.util.StringUtil;
 import org.bukkit.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.ArrayList;
-import java.util.List;
-
 public class XprateCommand implements TabExecutor {
 public class XprateCommand implements TabExecutor {
-    private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier();
+    private final double ORIGINAL_XP_RATE = ExperienceConfig.getInstance()
+            .getExperienceGainsGlobalMultiplier();
 
 
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 1:
             case 1:
-                if (!args[0].equalsIgnoreCase("reset") &&  !args[0].equalsIgnoreCase("clear")) {
+                if (!args[0].equalsIgnoreCase("reset") && !args[0].equalsIgnoreCase("clear")) {
                     return false;
                     return false;
                 }
                 }
 
 
@@ -37,22 +38,23 @@ public class XprateCommand implements TabExecutor {
 
 
                 if (mcMMO.p.isXPEventEnabled()) {
                 if (mcMMO.p.isXPEventEnabled()) {
 
 
-                    if(mcMMO.p.getAdvancedConfig().useTitlesForXPEvent())
-                    {
+                    if (mcMMO.p.getAdvancedConfig().useTitlesForXPEvent()) {
                         NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                         NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                                 LocaleLoader.getString("Commands.Event.Stop"),
                                 LocaleLoader.getString("Commands.Event.Stop"),
                                 LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
                                 LocaleLoader.getString("Commands.Event.Stop.Subtitle"),
-                                10, 10*20, 20);
+                                10, 10 * 20, 20);
                     }
                     }
 
 
-                    if(mcMMO.p.getGeneralConfig().broadcastEventMessages())
-                    {
-                        mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
-                        mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
+                    if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
+                        mcMMO.p.getServer()
+                                .broadcastMessage(LocaleLoader.getString("Commands.Event.Stop"));
+                        mcMMO.p.getServer().broadcastMessage(
+                                LocaleLoader.getString("Commands.Event.Stop.Subtitle"));
                     }
                     }
 
 
                     //Admin notification
                     //Admin notification
-                    NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_END);
+                    NotificationManager.processSensitiveCommandNotification(sender,
+                            SensitiveCommandType.XPRATE_END);
 
 
                     mcMMO.p.toggleXpEventEnabled();
                     mcMMO.p.toggleXpEventEnabled();
                 }
                 }
@@ -72,40 +74,39 @@ public class XprateCommand implements TabExecutor {
 
 
                 if (CommandUtils.shouldDisableToggle(args[1])) {
                 if (CommandUtils.shouldDisableToggle(args[1])) {
                     mcMMO.p.setXPEventEnabled(false);
                     mcMMO.p.setXPEventEnabled(false);
-                }
-                else if (CommandUtils.shouldEnableToggle(args[1])) {
+                } else if (CommandUtils.shouldEnableToggle(args[1])) {
                     mcMMO.p.setXPEventEnabled(true);
                     mcMMO.p.setXPEventEnabled(true);
-                }
-                else {
+                } else {
                     return false;
                     return false;
                 }
                 }
 
 
                 int newXpRate = Integer.parseInt(args[0]);
                 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;
                     return true;
                 }
                 }
 
 
                 ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
                 ExperienceConfig.getInstance().setExperienceGainsGlobalMultiplier(newXpRate);
 
 
-                if(mcMMO.p.getAdvancedConfig().useTitlesForXPEvent())
-                {
+                if (mcMMO.p.getAdvancedConfig().useTitlesForXPEvent()) {
                     NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                     NotificationManager.broadcastTitle(mcMMO.p.getServer(),
                             LocaleLoader.getString("Commands.Event.Start"),
                             LocaleLoader.getString("Commands.Event.Start"),
                             LocaleLoader.getString("Commands.Event.XP", newXpRate),
                             LocaleLoader.getString("Commands.Event.XP", newXpRate),
-                            10, 10*20, 20);
+                            10, 10 * 20, 20);
                 }
                 }
 
 
-                if(mcMMO.p.getGeneralConfig().broadcastEventMessages())
-                {
-                    mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
-                    mcMMO.p.getServer().broadcastMessage(LocaleLoader.getString("Commands.Event.XP", newXpRate));
+                if (mcMMO.p.getGeneralConfig().broadcastEventMessages()) {
+                    mcMMO.p.getServer()
+                            .broadcastMessage(LocaleLoader.getString("Commands.Event.Start"));
+                    mcMMO.p.getServer().broadcastMessage(
+                            LocaleLoader.getString("Commands.Event.XP", newXpRate));
                 }
                 }
 
 
                 //Admin notification
                 //Admin notification
-                NotificationManager.processSensitiveCommandNotification(sender, SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
+                NotificationManager.processSensitiveCommandNotification(sender,
+                        SensitiveCommandType.XPRATE_MODIFY, String.valueOf(newXpRate));
 
 
                 return true;
                 return true;
 
 
@@ -115,16 +116,19 @@ public class XprateCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         switch (args.length) {
         switch (args.length) {
             case 1:
             case 1:
                 if (StringUtils.isInt(args[0])) {
                 if (StringUtils.isInt(args[0])) {
                     return ImmutableList.of();
                     return ImmutableList.of();
                 }
                 }
 
 
-                return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS, new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
+                return StringUtil.copyPartialMatches(args[0], CommandUtils.RESET_OPTIONS,
+                        new ArrayList<>(CommandUtils.RESET_OPTIONS.size()));
             case 2:
             case 2:
-                return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS, new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
+                return StringUtil.copyPartialMatches(args[1], CommandUtils.TRUE_FALSE_OPTIONS,
+                        new ArrayList<>(CommandUtils.TRUE_FALSE_OPTIONS.size()));
             default:
             default:
                 return ImmutableList.of();
                 return ImmutableList.of();
         }
         }

+ 5 - 3
src/main/java/com/gmail/nossr50/commands/admin/CompatibilityCommand.java

@@ -11,8 +11,8 @@ public class CompatibilityCommand implements CommandExecutor {
     /**
     /**
      * Executes the given command, returning its success.
      * Executes the given command, returning its success.
      * <br>
      * <br>
-     * If false is returned, then the "usage" plugin.yml entry for this command
-     * (if defined) will be sent to the player.
+     * If false is returned, then the "usage" plugin.yml entry for this command (if defined) will be
+     * sent to the player.
      *
      *
      * @param commandSender Source of the command
      * @param commandSender Source of the command
      * @param command Command which was executed
      * @param command Command which was executed
@@ -21,7 +21,9 @@ public class CompatibilityCommand implements CommandExecutor {
      * @return true if a valid command, otherwise false
      * @return true if a valid command, otherwise false
      */
      */
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String s, @NotNull String[] strings) {
+    public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command,
+            @NotNull String s,
+            @NotNull String[] strings) {
         mcMMO.getCompatibilityManager().reportCompatibilityStatus(commandSender);
         mcMMO.getCompatibilityManager().reportCompatibilityStatus(commandSender);
         return true;
         return true;
     }
     }

+ 0 - 57
src/main/java/com/gmail/nossr50/commands/admin/DropTreasureCommand.java

@@ -1,57 +0,0 @@
-//package com.gmail.nossr50.commands.admin;
-//
-//import com.gmail.nossr50.config.treasure.FishingTreasureConfig;
-//import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-//import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
-//import com.gmail.nossr50.datatypes.treasure.Rarity;
-//import com.gmail.nossr50.mcMMO;
-//import com.gmail.nossr50.skills.fishing.FishingManager;
-//import com.gmail.nossr50.util.player.UserManager;
-//import org.bukkit.Location;
-//import org.bukkit.command.Command;
-//import org.bukkit.command.CommandExecutor;
-//import org.bukkit.command.CommandSender;
-//import org.bukkit.entity.Player;
-//import org.jetbrains.annotations.NotNull;
-//
-//public class DropTreasureCommand implements CommandExecutor {
-//    @Override
-//    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
-//        if(sender instanceof Player) {
-//            if(!sender.isOp()) {
-//                sender.sendMessage("This command is for Operators only");
-//                return false;
-//            }
-//
-//            Player player = (Player) sender;
-//            Location location = player.getLocation();
-//            McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
-//
-//            if(mmoPlayer == null) {
-//                //TODO: Localize
-//                player.sendMessage("Your player data is not loaded yet");
-//                return false;
-//            }
-//
-//            if(args.length == 0) {
-//                mcMMO.p.getLogger().info(player.toString() +" is dropping all mcMMO treasures via admin command at location "+location.toString());
-//                for(Rarity rarity : FishingTreasureConfig.getInstance().fishingRewards.keySet()) {
-//                    for(FishingTreasure fishingTreasure : FishingTreasureConfig.getInstance().fishingRewards.get(rarity)) {
-//                        FishingManager fishingManager = mmoPlayer.getFishingManager();
-//                    }
-//                }
-//                //TODO: impl
-//            } else {
-//                String targetTreasure = args[1];
-//
-//                //Drop all treasures matching the name
-//                //TODO: impl
-//            }
-//
-//            return true;
-//        } else {
-//            sender.sendMessage("No console support for this command");
-//            return false;
-//        }
-//    }
-//}

+ 3 - 1
src/main/java/com/gmail/nossr50/commands/admin/McmmoReloadLocaleCommand.java

@@ -12,7 +12,9 @@ import org.jetbrains.annotations.NotNull;
  */
  */
 public final class McmmoReloadLocaleCommand implements CommandExecutor {
 public final class McmmoReloadLocaleCommand implements CommandExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label,
+            String[] args) {
         if (args.length == 0) {
         if (args.length == 0) {
             if (!Permissions.reloadlocale(sender)) {
             if (!Permissions.reloadlocale(sender)) {
                 sender.sendMessage(command.getPermissionMessage());
                 sender.sendMessage(command.getPermissionMessage());

+ 8 - 5
src/main/java/com/gmail/nossr50/commands/admin/PlayerDebugCommand.java

@@ -12,11 +12,14 @@ import org.jetbrains.annotations.NotNull;
 public class PlayerDebugCommand implements CommandExecutor {
 public class PlayerDebugCommand implements CommandExecutor {
 
 
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
-        if(sender instanceof Player) {
-            McMMOPlayer mcMMOPlayer = UserManager.getPlayer((Player) sender);
-            mcMMOPlayer.toggleDebugMode(); //Toggle debug mode
-            NotificationManager.sendPlayerInformationChatOnlyPrefixed(mcMMOPlayer.getPlayer(), "Commands.Mmodebug.Toggle", String.valueOf(mcMMOPlayer.isDebugMode()));
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label,
+            String[] args) {
+        if (sender instanceof Player) {
+            final McMMOPlayer mmoPlayer = UserManager.getPlayer((Player) sender);
+            mmoPlayer.toggleDebugMode(); //Toggle debug mode
+            NotificationManager.sendPlayerInformationChatOnlyPrefixed(mmoPlayer.getPlayer(),
+                    "Commands.Mmodebug.Toggle", String.valueOf(mmoPlayer.isDebugMode()));
             return true;
             return true;
         } else {
         } else {
             return false;
             return false;

+ 14 - 9
src/main/java/com/gmail/nossr50/commands/chat/AdminChatCommand.java

@@ -22,24 +22,29 @@ public class AdminChatCommand extends BaseCommand {
         this.pluginRef = pluginRef;
         this.pluginRef = pluginRef;
     }
     }
 
 
-    @Default @Conditions(CommandManager.ADMIN_CONDITION)
+    @Default
+    @Conditions(CommandManager.ADMIN_CONDITION)
     public void processCommand(String[] args) {
     public void processCommand(String[] args) {
-        BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
-        if(args == null || args.length == 0) {
+        final BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
+        if (args == null || args.length == 0) {
             //Process with no arguments
             //Process with no arguments
-            if(bukkitCommandIssuer.isPlayer()) {
-                McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
+            if (bukkitCommandIssuer.isPlayer()) {
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(
+                        bukkitCommandIssuer.getPlayer());
                 pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
                 pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.ADMIN);
             } else {
             } else {
                 //Not support for console
                 //Not support for console
-                mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
+                mcMMO.p.getLogger()
+                        .info("You cannot switch chat channels as console, please provide full arguments.");
             }
             }
         } else {
         } else {
-            if(bukkitCommandIssuer.isPlayer()) {
-                McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
+            if (bukkitCommandIssuer.isPlayer()) {
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(
+                        bukkitCommandIssuer.getPlayer());
 
 
-                if(mmoPlayer == null)
+                if (mmoPlayer == null) {
                     return;
                     return;
+                }
 
 
                 //Message contains the original command so it needs to be passed to this method to trim it
                 //Message contains the original command so it needs to be passed to this method to trim it
                 pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);
                 pluginRef.getChatManager().processPlayerMessage(mmoPlayer, args, ChatChannel.ADMIN);

+ 5 - 3
src/main/java/com/gmail/nossr50/commands/chat/McChatSpy.java

@@ -18,9 +18,11 @@ public class McChatSpy extends ToggleCommand {
     }
     }
 
 
     @Override
     @Override
-    protected void applyCommandAction(McMMOPlayer mcMMOPlayer) {
-        mcMMOPlayer.getPlayer().sendMessage(LocaleLoader.getString("Commands.AdminChatSpy." + (mcMMOPlayer.isPartyChatSpying() ? "Disabled" : "Enabled")));
-        mcMMOPlayer.togglePartyChatSpying();
+    protected void applyCommandAction(McMMOPlayer mmoPlayer) {
+        mmoPlayer.getPlayer().sendMessage(LocaleLoader.getString(
+                "Commands.AdminChatSpy." + (mmoPlayer.isPartyChatSpying() ? "Disabled"
+                        : "Enabled")));
+        mmoPlayer.togglePartyChatSpying();
     }
     }
 
 
     @Override
     @Override

+ 24 - 16
src/main/java/com/gmail/nossr50/commands/chat/PartyChatCommand.java

@@ -11,7 +11,6 @@ import com.gmail.nossr50.datatypes.chat.ChatChannel;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.party.Party;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.text.StringUtils;
 import com.gmail.nossr50.util.text.StringUtils;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
@@ -31,14 +30,16 @@ public class PartyChatCommand extends BaseCommand {
     public void processCommand(String[] args) {
     public void processCommand(String[] args) {
         BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
         BukkitCommandIssuer bukkitCommandIssuer = (BukkitCommandIssuer) getCurrentCommandIssuer();
 
 
-        if(args == null || args.length == 0) {
+        if (args == null || args.length == 0) {
             //Process with no arguments
             //Process with no arguments
-            if(bukkitCommandIssuer.isPlayer()) {
-                McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
+            if (bukkitCommandIssuer.isPlayer()) {
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(
+                        bukkitCommandIssuer.getPlayer());
                 pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY);
                 pluginRef.getChatManager().setOrToggleChatChannel(mmoPlayer, ChatChannel.PARTY);
             } else {
             } else {
                 //Not support for console
                 //Not support for console
-                mcMMO.p.getLogger().info("You cannot switch chat channels as console, please provide full arguments.");
+                mcMMO.p.getLogger()
+                        .info("You cannot switch chat channels as console, please provide full arguments.");
             }
             }
         } else {
         } else {
             //Here we split the logic, consoles need to target a party name and players do not
             //Here we split the logic, consoles need to target a party name and players do not
@@ -46,12 +47,13 @@ public class PartyChatCommand extends BaseCommand {
             /*
             /*
              * Player Logic
              * Player Logic
              */
              */
-            if(bukkitCommandIssuer.getIssuer() instanceof Player) {
-                McMMOPlayer mmoPlayer = UserManager.getPlayer(bukkitCommandIssuer.getPlayer());
+            if (bukkitCommandIssuer.getIssuer() instanceof Player) {
+                final McMMOPlayer mmoPlayer = UserManager.getPlayer(
+                        bukkitCommandIssuer.getPlayer());
                 processCommandArgsPlayer(mmoPlayer, args);
                 processCommandArgsPlayer(mmoPlayer, args);
-            /*
-             * Console Logic
-             */
+                /*
+                 * Console Logic
+                 */
             } else {
             } else {
                 processCommandArgsConsole(args);
                 processCommandArgsConsole(args);
             }
             }
@@ -60,6 +62,7 @@ public class PartyChatCommand extends BaseCommand {
 
 
     /**
     /**
      * Processes the command with arguments for a {@link McMMOPlayer}
      * Processes the command with arguments for a {@link McMMOPlayer}
+     *
      * @param mmoPlayer target player
      * @param mmoPlayer target player
      * @param args command arguments
      * @param args command arguments
      */
      */
@@ -69,19 +72,24 @@ public class PartyChatCommand extends BaseCommand {
     }
     }
 
 
     /**
     /**
-     * Processes the command with arguments for a {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
+     * Processes the command with arguments for a
+     * {@link com.gmail.nossr50.chat.author.ConsoleAuthor}
+     *
      * @param args command arguments
      * @param args command arguments
      */
      */
     private void processCommandArgsConsole(@NotNull String[] args) {
     private void processCommandArgsConsole(@NotNull String[] args) {
-        if(args.length <= 1) {
+        if (args.length <= 1) {
             //Only specific a party and not the message
             //Only specific a party and not the message
-            mcMMO.p.getLogger().severe("You need to specify a party name and then write a message afterwards.");
+            mcMMO.p.getLogger()
+                    .severe("You need to specify a party name and then write a message afterwards.");
         } else {
         } else {
             //Grab party
             //Grab party
-            Party targetParty = PartyManager.getParty(args[0]);
+            Party targetParty = mcMMO.p.getPartyManager().getParty(args[0]);
 
 
-            if(targetParty != null) {
-                pluginRef.getChatManager().processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1), targetParty);
+            if (targetParty != null) {
+                pluginRef.getChatManager()
+                        .processConsoleMessage(StringUtils.buildStringAfterNthElement(args, 1),
+                                targetParty);
             } else {
             } else {
                 mcMMO.p.getLogger().severe("A party with that name doesn't exist!");
                 mcMMO.p.getLogger().severe("A party with that name doesn't exist!");
             }
             }

+ 30 - 11
src/main/java/com/gmail/nossr50/commands/database/ConvertDatabaseCommand.java

@@ -17,18 +17,26 @@ import org.jetbrains.annotations.NotNull;
 
 
 public class ConvertDatabaseCommand implements CommandExecutor {
 public class ConvertDatabaseCommand implements CommandExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label,
+            String[] args) {
         if (args.length == 2) {
         if (args.length == 2) {
             DatabaseType previousType = DatabaseType.getDatabaseType(args[1]);
             DatabaseType previousType = DatabaseType.getDatabaseType(args[1]);
             DatabaseType newType = mcMMO.getDatabaseManager().getDatabaseType();
             DatabaseType newType = mcMMO.getDatabaseManager().getDatabaseType();
 
 
-            if (previousType == newType || (newType == DatabaseType.CUSTOM && DatabaseManagerFactory.getCustomDatabaseManagerClass().getSimpleName().equalsIgnoreCase(args[1]))) {
-                sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same", newType.toString()));
+            if (previousType == newType || (newType == DatabaseType.CUSTOM
+                    && DatabaseManagerFactory.getCustomDatabaseManagerClass()
+                    .getSimpleName()
+                    .equalsIgnoreCase(args[1]))) {
+                sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Same",
+                        newType.toString()));
                 return true;
                 return true;
             }
             }
 
 
-            DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType, mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(), mcMMO.p.getAdvancedConfig().getStartingLevel());
-            if(oldDatabase == null) {
+            DatabaseManager oldDatabase = DatabaseManagerFactory.createDatabaseManager(previousType,
+                    mcMMO.getUsersFilePath(), mcMMO.p.getLogger(), mcMMO.p.getPurgeTime(),
+                    mcMMO.p.getAdvancedConfig().getStartingLevel());
+            if (oldDatabase == null) {
                 sender.sendMessage("Unable to load the old database! Check your log for errors.");
                 sender.sendMessage("Unable to load the old database! Check your log for errors.");
                 return true;
                 return true;
             }
             }
@@ -40,19 +48,26 @@ public class ConvertDatabaseCommand implements CommandExecutor {
                     clazz = Class.forName(args[1]);
                     clazz = Class.forName(args[1]);
 
 
                     if (!DatabaseManager.class.isAssignableFrom(clazz)) {
                     if (!DatabaseManager.class.isAssignableFrom(clazz)) {
-                        sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
+                        sender.sendMessage(
+                                LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
+                                        args[1]));
                         return true;
                         return true;
                     }
                     }
 
 
-                    oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager((Class<? extends DatabaseManager>) clazz);
+                    oldDatabase = DatabaseManagerFactory.createCustomDatabaseManager(
+                            (Class<? extends DatabaseManager>) clazz);
                 } catch (Throwable e) {
                 } catch (Throwable e) {
                     e.printStackTrace();
                     e.printStackTrace();
-                    sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.InvalidType", args[1]));
+                    sender.sendMessage(
+                            LocaleLoader.getString("Commands.mcconvert.Database.InvalidType",
+                                    args[1]));
                     return true;
                     return true;
                 }
                 }
             }
             }
 
 
-            sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start", previousType.toString(), newType.toString()));
+            sender.sendMessage(LocaleLoader.getString("Commands.mcconvert.Database.Start",
+                    previousType.toString(),
+                    newType.toString()));
 
 
             UserManager.saveAll();
             UserManager.saveAll();
             UserManager.clearAll();
             UserManager.clearAll();
@@ -64,10 +79,14 @@ public class ConvertDatabaseCommand implements CommandExecutor {
                     mcMMO.getDatabaseManager().saveUser(profile);
                     mcMMO.getDatabaseManager().saveUser(profile);
                 }
                 }
 
 
-                mcMMO.p.getFoliaLib().getImpl().runLaterAsync(new PlayerProfileLoadingTask(player), 1); // 1 Tick delay to ensure the player is marked as online before we begin loading
+                mcMMO.p.getFoliaLib().getScheduler()
+                        .runLaterAsync(new PlayerProfileLoadingTask(player),
+                                1); // 1 Tick delay to ensure the player is marked as online before we begin loading
             }
             }
 
 
-            mcMMO.p.getFoliaLib().getImpl().runAsync(new DatabaseConversionTask(oldDatabase, sender, previousType.toString(), newType.toString()));
+            mcMMO.p.getFoliaLib().getScheduler().runAsync(
+                    new DatabaseConversionTask(oldDatabase, sender, previousType.toString(),
+                            newType.toString()));
             return true;
             return true;
         }
         }
         return false;
         return false;

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

@@ -3,16 +3,16 @@ package com.gmail.nossr50.commands.database;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.command.TabExecutor;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.List;
-
 public class McpurgeCommand implements TabExecutor {
 public class McpurgeCommand implements TabExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (args.length == 0) {
         if (args.length == 0) {
             mcMMO.getDatabaseManager().purgePowerlessUsers();
             mcMMO.getDatabaseManager().purgePowerlessUsers();
 
 
@@ -27,7 +27,8 @@ public class McpurgeCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }
 }
 }

+ 13 - 9
src/main/java/com/gmail/nossr50/commands/database/McremoveCommand.java

@@ -5,6 +5,9 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.commands.CommandUtils;
 import com.gmail.nossr50.util.player.UserManager;
 import com.gmail.nossr50.util.player.UserManager;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
 import org.bukkit.Bukkit;
 import org.bukkit.Bukkit;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
@@ -12,17 +15,15 @@ import org.bukkit.command.TabExecutor;
 import org.bukkit.util.StringUtil;
 import org.bukkit.util.StringUtil;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-
 public class McremoveCommand implements TabExecutor {
 public class McremoveCommand implements TabExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (args.length == 1) {
         if (args.length == 1) {
             String playerName = CommandUtils.getMatchedPlayerName(args[0]);
             String playerName = CommandUtils.getMatchedPlayerName(args[0]);
 
 
-            if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName))) {
+            if (UserManager.getOfflinePlayer(playerName) == null && CommandUtils.unloadedProfile(
+                    sender, mcMMO.getDatabaseManager().loadPlayerProfile(playerName))) {
                 return true;
                 return true;
             }
             }
 
 
@@ -35,7 +36,8 @@ public class McremoveCommand implements TabExecutor {
             if (mcMMO.getDatabaseManager().removeUser(playerName, uuid)) {
             if (mcMMO.getDatabaseManager().removeUser(playerName, uuid)) {
                 sender.sendMessage(LocaleLoader.getString("Commands.mcremove.Success", 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.
+                sender.sendMessage(playerName
+                        + " could not be removed from the database."); // Pretty sure this should NEVER happen.
             }
             }
 
 
             return true;
             return true;
@@ -44,10 +46,12 @@ public class McremoveCommand implements TabExecutor {
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         if (args.length == 1) {
         if (args.length == 1) {
             List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
             List<String> playerNames = CommandUtils.getOnlinePlayerNames(sender);
-            return StringUtil.copyPartialMatches(args[0], playerNames, new ArrayList<>(playerNames.size()));
+            return StringUtil.copyPartialMatches(args[0], playerNames,
+                    new ArrayList<>(playerNames.size()));
         }
         }
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }

+ 7 - 5
src/main/java/com/gmail/nossr50/commands/database/MmoshowdbCommand.java

@@ -4,16 +4,16 @@ import com.gmail.nossr50.database.DatabaseManagerFactory;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableList;
+import java.util.List;
 import org.bukkit.command.Command;
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.CommandSender;
 import org.bukkit.command.TabExecutor;
 import org.bukkit.command.TabExecutor;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 
 
-import java.util.List;
-
 public class MmoshowdbCommand implements TabExecutor {
 public class MmoshowdbCommand implements TabExecutor {
     @Override
     @Override
-    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, String[] args) {
+    public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String label, String[] args) {
         if (args.length == 0) {
         if (args.length == 0) {
             Class<?> clazz = DatabaseManagerFactory.getCustomDatabaseManagerClass();
             Class<?> clazz = DatabaseManagerFactory.getCustomDatabaseManagerClass();
 
 
@@ -22,14 +22,16 @@ public class MmoshowdbCommand implements TabExecutor {
                 return true;
                 return true;
             }
             }
 
 
-            sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb", (mcMMO.p.getGeneralConfig().getUseMySQL() ? "sql" : "flatfile")));
+            sender.sendMessage(LocaleLoader.getString("Commands.mmoshowdb",
+                    (mcMMO.p.getGeneralConfig().getUseMySQL() ? "sql" : "flatfile")));
             return true;
             return true;
         }
         }
         return false;
         return false;
     }
     }
 
 
     @Override
     @Override
-    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, String[] args) {
+    public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command,
+            @NotNull String alias, String[] args) {
         return ImmutableList.of();
         return ImmutableList.of();
     }
     }
 }
 }

+ 16 - 9
src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java

@@ -24,7 +24,8 @@ public class AddlevelsCommand extends ExperienceCommand {
     }
     }
 
 
     @Override
     @Override
-    protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
+    protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill,
+            int value) {
         float xpRemoved = profile.getSkillXpLevelRaw(skill);
         float xpRemoved = profile.getSkillXpLevelRaw(skill);
         profile.addLevels(skill, value);
         profile.addLevels(skill, value);
 
 
@@ -33,29 +34,35 @@ public class AddlevelsCommand extends ExperienceCommand {
             return;
             return;
         }
         }
 
 
-        McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
+        final McMMOPlayer mmoPlayer = UserManager.getPlayer(player);
 
 
-        if(mmoPlayer == null) {
-            EventUtils.tryLevelChangeEvent(player, skill, value, xpRemoved, true, XPGainReason.COMMAND);
+        if (mmoPlayer == null) {
+            EventUtils.tryLevelChangeEvent(player, skill, value, xpRemoved, true,
+                    XPGainReason.COMMAND);
         } else {
         } else {
-            EventUtils.tryLevelChangeEvent(mmoPlayer, skill, value, xpRemoved, true, XPGainReason.COMMAND);
+            EventUtils.tryLevelChangeEvent(mmoPlayer, skill, value, xpRemoved, true,
+                    XPGainReason.COMMAND);
         }
         }
 
 
     }
     }
 
 
     @Override
     @Override
     protected void handlePlayerMessageAll(Player player, int value, boolean isSilent) {
     protected void handlePlayerMessageAll(Player player, int value, boolean isSilent) {
-        if(isSilent)
+        if (isSilent) {
             return;
             return;
+        }
 
 
         player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
         player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardAll.1", value));
     }
     }
 
 
     @Override
     @Override
-    protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill, boolean isSilent) {
-        if(isSilent)
+    protected void handlePlayerMessageSkill(Player player, int value, PrimarySkillType skill,
+            boolean isSilent) {
+        if (isSilent) {
             return;
             return;
+        }
 
 
-        player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value, mcMMO.p.getSkillTools().getLocalizedSkillName(skill)));
+        player.sendMessage(LocaleLoader.getString("Commands.addlevels.AwardSkill.1", value,
+                mcMMO.p.getSkillTools().getLocalizedSkillName(skill)));
     }
     }
 }
 }

Some files were not shown because too many files changed in this diff