Explorar el Código

Major refactoring. This WILL break any mcMMO-related plugin that
does not properly hook into the API classes.

This consolidates the skill-related classes into their own individual
packages, and moves several misc skill classes into the main Skill
package as well. This also moves all Party & Spout related files into
their own respective packages as well.

GJ hace 12 años
padre
commit
6b0e7a9c61
Se han modificado 95 ficheros con 233 adiciones y 239 borrados
  1. 1 0
      Changelog.txt
  2. 1 1
      src/main/java/com/gmail/nossr50/api/AbilityAPI.java
  3. 2 2
      src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
  4. 1 1
      src/main/java/com/gmail/nossr50/api/SpoutToolsAPI.java
  5. 2 2
      src/main/java/com/gmail/nossr50/commands/CommandHelper.java
  6. 2 2
      src/main/java/com/gmail/nossr50/commands/general/AddlevelsCommand.java
  7. 2 2
      src/main/java/com/gmail/nossr50/commands/general/AddxpCommand.java
  8. 1 1
      src/main/java/com/gmail/nossr50/commands/general/InspectCommand.java
  9. 2 2
      src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java
  10. 1 1
      src/main/java/com/gmail/nossr50/commands/general/SkillResetCommand.java
  11. 2 2
      src/main/java/com/gmail/nossr50/commands/mc/McrankCommand.java
  12. 2 2
      src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java
  13. 2 0
      src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java
  14. 6 1
      src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java
  15. 2 2
      src/main/java/com/gmail/nossr50/datatypes/popups/Menu.java
  16. 3 3
      src/main/java/com/gmail/nossr50/datatypes/popups/XpBar.java
  17. 1 1
      src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
  18. 1 1
      src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
  19. 1 1
      src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
  20. 1 1
      src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerDisarmEvent.java
  21. 1 1
      src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerRepairCheckEvent.java
  22. 1 1
      src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java
  23. 12 12
      src/main/java/com/gmail/nossr50/listeners/BlockListener.java
  24. 3 3
      src/main/java/com/gmail/nossr50/listeners/EntityListener.java
  25. 5 5
      src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
  26. 2 2
      src/main/java/com/gmail/nossr50/listeners/SpoutListener.java
  27. 22 22
      src/main/java/com/gmail/nossr50/mcMMO.java
  28. 1 1
      src/main/java/com/gmail/nossr50/party/commands/ACommand.java
  29. 1 1
      src/main/java/com/gmail/nossr50/party/commands/AcceptCommand.java
  30. 1 1
      src/main/java/com/gmail/nossr50/party/commands/InviteCommand.java
  31. 1 1
      src/main/java/com/gmail/nossr50/party/commands/PCommand.java
  32. 1 1
      src/main/java/com/gmail/nossr50/party/commands/PartyCommand.java
  33. 1 1
      src/main/java/com/gmail/nossr50/party/commands/PtpCommand.java
  34. 1 1
      src/main/java/com/gmail/nossr50/runnables/BleedTimer.java
  35. 2 2
      src/main/java/com/gmail/nossr50/runnables/GainXp.java
  36. 2 2
      src/main/java/com/gmail/nossr50/runnables/GreenThumbTimer.java
  37. 2 2
      src/main/java/com/gmail/nossr50/runnables/McRankAsync.java
  38. 3 3
      src/main/java/com/gmail/nossr50/runnables/SkillMonitor.java
  39. 1 1
      src/main/java/com/gmail/nossr50/skills/AbilityType.java
  40. 5 3
      src/main/java/com/gmail/nossr50/skills/Combat.java
  41. 2 3
      src/main/java/com/gmail/nossr50/skills/SkillCommand.java
  42. 0 1
      src/main/java/com/gmail/nossr50/skills/SkillManager.java
  43. 1 1
      src/main/java/com/gmail/nossr50/skills/SkillType.java
  44. 6 5
      src/main/java/com/gmail/nossr50/skills/Skills.java
  45. 1 1
      src/main/java/com/gmail/nossr50/skills/ToolType.java
  46. 3 4
      src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsCommand.java
  47. 1 1
      src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
  48. 2 2
      src/main/java/com/gmail/nossr50/skills/acrobatics/DodgeEventHandler.java
  49. 2 2
      src/main/java/com/gmail/nossr50/skills/acrobatics/RollEventHandler.java
  50. 3 4
      src/main/java/com/gmail/nossr50/skills/archery/ArcheryCommand.java
  51. 1 1
      src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java
  52. 2 2
      src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java
  53. 3 4
      src/main/java/com/gmail/nossr50/skills/axes/AxesCommand.java
  54. 2 2
      src/main/java/com/gmail/nossr50/skills/axes/SkullSplitterEventHandler.java
  55. 3 3
      src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java
  56. 3 3
      src/main/java/com/gmail/nossr50/skills/excavation/ExcavationCommand.java
  57. 4 4
      src/main/java/com/gmail/nossr50/skills/fishing/Fishing.java
  58. 3 4
      src/main/java/com/gmail/nossr50/skills/fishing/FishingCommand.java
  59. 4 4
      src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java
  60. 3 8
      src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java
  61. 2 2
      src/main/java/com/gmail/nossr50/skills/mining/Mining.java
  62. 3 5
      src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java
  63. 1 1
      src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
  64. 2 2
      src/main/java/com/gmail/nossr50/skills/mining/RemoteDetonationEventHandler.java
  65. 1 1
      src/main/java/com/gmail/nossr50/skills/mining/SuperBreakerEventHandler.java
  66. 2 2
      src/main/java/com/gmail/nossr50/skills/repair/Repair.java
  67. 3 6
      src/main/java/com/gmail/nossr50/skills/repair/RepairCommand.java
  68. 1 1
      src/main/java/com/gmail/nossr50/skills/repair/Salvage.java
  69. 1 1
      src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairManager.java
  70. 1 1
      src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java
  71. 1 1
      src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfigManager.java
  72. 1 1
      src/main/java/com/gmail/nossr50/skills/swords/CounterAttackEventHandler.java
  73. 2 2
      src/main/java/com/gmail/nossr50/skills/swords/SerratedStrikesEventHandler.java
  74. 3 4
      src/main/java/com/gmail/nossr50/skills/swords/SwordsCommand.java
  75. 3 3
      src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
  76. 3 4
      src/main/java/com/gmail/nossr50/skills/taming/TamingCommand.java
  77. 1 1
      src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
  78. 1 1
      src/main/java/com/gmail/nossr50/skills/unarmed/IronGripEventHandler.java
  79. 3 4
      src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedCommand.java
  80. 1 1
      src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java
  81. 8 8
      src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java
  82. 7 8
      src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java
  83. 3 2
      src/main/java/com/gmail/nossr50/spout/SpoutConfig.java
  84. 1 3
      src/main/java/com/gmail/nossr50/spout/SpoutStart.java
  85. 2 3
      src/main/java/com/gmail/nossr50/spout/SpoutStuff.java
  86. 4 4
      src/main/java/com/gmail/nossr50/spout/commands/MchudCommand.java
  87. 5 5
      src/main/java/com/gmail/nossr50/spout/commands/XplockCommand.java
  88. 1 1
      src/main/java/com/gmail/nossr50/spout/huds/HudType.java
  89. 5 2
      src/main/java/com/gmail/nossr50/spout/huds/SpoutHud.java
  90. 2 2
      src/main/java/com/gmail/nossr50/util/Database.java
  91. 1 1
      src/main/java/com/gmail/nossr50/util/Hardcore.java
  92. 1 0
      src/main/java/com/gmail/nossr50/util/Item.java
  93. 1 1
      src/main/java/com/gmail/nossr50/util/Leaderboard.java
  94. 2 1
      src/main/java/com/gmail/nossr50/util/Page.java
  95. 1 1
      src/main/java/com/gmail/nossr50/util/Permissions.java

+ 1 - 0
Changelog.txt

@@ -17,6 +17,7 @@ Version 1.4.00-dev
  = Fixed Woodcutting accidentally using Mining double drop values.
  ! Changed how Tree Feller is handled, it should now put less stress on the CPU
  ! Changed Fisherman's Diet and Farmer's Diet to use two seperate config values
+ ! Major refactoring - please take note, this WILL break any mcMMO-related plugin not properly hooking into the API.
 
 Version 1.3.14
  + Added new Hylian Luck skill to Herbalism.

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

@@ -2,7 +2,7 @@ package com.gmail.nossr50.api;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.AbilityType;
+import com.gmail.nossr50.skills.AbilityType;
 import com.gmail.nossr50.util.Users;
 
 public class AbilityAPI {

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

@@ -2,8 +2,8 @@ package com.gmail.nossr50.api;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.util.Skills;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Users;
 
 public final class ExperienceAPI {

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

@@ -5,7 +5,7 @@ import java.util.List;
 
 import org.bukkit.inventory.ItemStack;
 
-import com.gmail.nossr50.datatypes.ToolType;
+import com.gmail.nossr50.skills.ToolType;
 
 public final class SpoutToolsAPI {
 

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

@@ -4,10 +4,10 @@ import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class CommandHelper {

+ 2 - 2
src/main/java/com/gmail/nossr50/commands/general/AddlevelsCommand.java

@@ -9,10 +9,10 @@ import org.bukkit.entity.Player;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class AddlevelsCommand implements CommandExecutor{

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

@@ -9,10 +9,10 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.McMMOPlayer;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 //TODO: Any way we can make this work for offline use?

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

@@ -8,8 +8,8 @@ import org.bukkit.entity.Player;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.McMMOPlayer;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 import com.gmail.nossr50.util.Users;

+ 2 - 2
src/main/java/com/gmail/nossr50/commands/general/MmoeditCommand.java

@@ -8,10 +8,10 @@ import org.bukkit.entity.Player;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.McMMOPlayer;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class MmoeditCommand implements CommandExecutor {

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

@@ -7,8 +7,8 @@ import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Users;
 
 public class SkillResetCommand implements CommandExecutor {

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

@@ -8,11 +8,11 @@ import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.runnables.McRankAsync;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Leaderboard;
-import com.gmail.nossr50.util.Skills;
 
 public class McrankCommand implements CommandExecutor {
 

+ 2 - 2
src/main/java/com/gmail/nossr50/commands/mc/MctopCommand.java

@@ -10,12 +10,12 @@ import org.bukkit.command.CommandSender;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Database;
 import com.gmail.nossr50.util.Leaderboard;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 
 public class MctopCommand implements CommandExecutor {
 

+ 2 - 0
src/main/java/com/gmail/nossr50/datatypes/McMMOPlayer.java

@@ -10,6 +10,8 @@ import com.gmail.nossr50.datatypes.mods.CustomTool;
 import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
 import com.gmail.nossr50.party.Party;
 import com.gmail.nossr50.party.PartyManager;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
 import com.gmail.nossr50.util.Permissions;

+ 6 - 1
src/main/java/com/gmail/nossr50/datatypes/PlayerProfile.java

@@ -9,9 +9,14 @@ import java.util.HashMap;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.config.SpoutConfig;
 import com.gmail.nossr50.party.Party;
 import com.gmail.nossr50.party.PartyManager;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.ToolType;
+import com.gmail.nossr50.spout.SpoutConfig;
+import com.gmail.nossr50.spout.huds.HudType;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 import com.gmail.nossr50.util.Database;
 import com.gmail.nossr50.util.Misc;
 

+ 2 - 2
src/main/java/com/gmail/nossr50/datatypes/popups/Menu.java

@@ -6,12 +6,12 @@ import org.getspout.spoutapi.gui.InGameHUD;
 import org.getspout.spoutapi.player.SpoutPlayer;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.HudType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SpoutHud;
 import com.gmail.nossr50.datatypes.buttons.McmmoButton;
 import com.gmail.nossr50.datatypes.buttons.McmmoButton.Slot;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.spout.huds.HudType;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 
 public class Menu extends GenericPopup {
     private McmmoButton hudButton;

+ 3 - 3
src/main/java/com/gmail/nossr50/datatypes/popups/XpBar.java

@@ -9,10 +9,10 @@ import org.getspout.spoutapi.gui.Widget;
 import org.getspout.spoutapi.player.SpoutPlayer;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.SpoutConfig;
-import com.gmail.nossr50.datatypes.HudType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.spout.SpoutConfig;
+import com.gmail.nossr50.spout.huds.HudType;
 import com.gmail.nossr50.util.Misc;
 
 public class XpBar {

+ 1 - 1
src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java

@@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.player.PlayerEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 /**
  * Generic event for mcMMO experience events.

+ 1 - 1
src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java

@@ -2,7 +2,7 @@ package com.gmail.nossr50.events.experience;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 /**
  * Called when a user levels up in a skill

+ 1 - 1
src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java

@@ -2,7 +2,7 @@ package com.gmail.nossr50.events.experience;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 /**
  * Called when a player gains XP in a skill

+ 1 - 1
src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerDisarmEvent.java

@@ -3,7 +3,7 @@ package com.gmail.nossr50.events.skills;
 import org.bukkit.entity.Player;
 import org.bukkit.event.Cancellable;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 public class McMMOPlayerDisarmEvent extends McMMOPlayerSkillEvent implements Cancellable {
     private boolean cancelled;

+ 1 - 1
src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerRepairCheckEvent.java

@@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.Cancellable;
 import org.bukkit.inventory.ItemStack;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 /**
  * Called just before a player repairs an object with mcMMO.

+ 1 - 1
src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java

@@ -4,7 +4,7 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.HandlerList;
 import org.bukkit.event.player.PlayerEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 /**
  * Generic event for mcMMO skill handling.

+ 12 - 12
src/main/java/com/gmail/nossr50/listeners/BlockListener.java

@@ -20,26 +20,26 @@ import org.getspout.spoutapi.sound.SoundEffect;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.datatypes.ToolType;
 import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
 import com.gmail.nossr50.events.fake.FakeBlockDamageEvent;
 import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
 import com.gmail.nossr50.runnables.StickyPistonTracker;
-import com.gmail.nossr50.skills.gathering.Excavation;
-import com.gmail.nossr50.skills.gathering.Herbalism;
-import com.gmail.nossr50.skills.gathering.WoodCutting;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.skills.ToolType;
+import com.gmail.nossr50.skills.excavation.Excavation;
+import com.gmail.nossr50.skills.herbalism.Herbalism;
 import com.gmail.nossr50.skills.mining.MiningManager;
 import com.gmail.nossr50.skills.repair.Repair;
 import com.gmail.nossr50.skills.repair.Salvage;
+import com.gmail.nossr50.skills.woodcutting.Woodcutting;
 import com.gmail.nossr50.spout.SpoutSounds;
 import com.gmail.nossr50.util.BlockChecks;
 import com.gmail.nossr50.util.ItemChecks;
 import com.gmail.nossr50.util.ModChecks;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class BlockListener implements Listener {
@@ -179,15 +179,15 @@ public class BlockListener implements Listener {
         else if (BlockChecks.isLog(block) && Permissions.woodcutting(player)) {
             if (configInstance.getWoodcuttingRequiresTool()) {
                 if (ItemChecks.isAxe(inHand)) {
-                    WoodCutting.woodcuttingBlockCheck(player, block);
+                    Woodcutting.woodcuttingBlockCheck(player, block);
                 }
             }
             else {
-                WoodCutting.woodcuttingBlockCheck(player, block);
+                Woodcutting.woodcuttingBlockCheck(player, block);
             }
 
             if (!mcMMO.placeStore.isTrue(block) && profile.getAbilityMode(AbilityType.TREE_FELLER) && Permissions.treeFeller(player) && ItemChecks.isAxe(inHand)) {
-                WoodCutting.treeFeller(event);
+                Woodcutting.treeFeller(event);
             }
         }
 
@@ -318,12 +318,12 @@ public class BlockListener implements Listener {
                 if (configInstance.getWoodcuttingRequiresTool()) {
                     if (ItemChecks.isAxe(inHand)) {
                         event.setInstaBreak(true);
-                        WoodCutting.leafBlower(player, block);
+                        Woodcutting.leafBlower(player, block);
                     }
                 }
                 else if (!inHand.getType().equals(Material.SHEARS)) {
                     event.setInstaBreak(true);
-                    WoodCutting.leafBlower(player, block);
+                    Woodcutting.leafBlower(player, block);
                 }
             }
         }

+ 3 - 3
src/main/java/com/gmail/nossr50/listeners/EntityListener.java

@@ -31,19 +31,19 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
 import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
 import com.gmail.nossr50.party.PartyManager;
 import com.gmail.nossr50.runnables.BleedTimer;
+import com.gmail.nossr50.skills.Combat;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.skills.acrobatics.AcrobaticsManager;
 import com.gmail.nossr50.skills.archery.Archery;
 import com.gmail.nossr50.skills.mining.MiningManager;
 import com.gmail.nossr50.skills.taming.TamingManager;
-import com.gmail.nossr50.util.Combat;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class EntityListener implements Listener {

+ 5 - 5
src/main/java/com/gmail/nossr50/listeners/PlayerListener.java

@@ -26,23 +26,23 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.general.XprateCommand;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.events.chat.McMMOAdminChatEvent;
 import com.gmail.nossr50.events.chat.McMMOPartyChatEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.party.Party;
 import com.gmail.nossr50.runnables.BleedTimer;
-import com.gmail.nossr50.skills.gathering.Fishing;
-import com.gmail.nossr50.skills.gathering.Herbalism;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.skills.fishing.Fishing;
+import com.gmail.nossr50.skills.herbalism.Herbalism;
 import com.gmail.nossr50.skills.mining.MiningManager;
 import com.gmail.nossr50.skills.repair.Salvage;
 import com.gmail.nossr50.skills.taming.TamingManager;
 import com.gmail.nossr50.util.BlockChecks;
 import com.gmail.nossr50.util.Item;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class PlayerListener implements Listener {

+ 2 - 2
src/main/java/com/gmail/nossr50/listeners/SpoutListener.java

@@ -10,14 +10,14 @@ import org.getspout.spoutapi.gui.Button;
 import org.getspout.spoutapi.gui.ScreenType;
 import org.getspout.spoutapi.player.SpoutPlayer;
 
-import com.gmail.nossr50.config.SpoutConfig;
 import com.gmail.nossr50.datatypes.McMMOPlayer;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SpoutHud;
 import com.gmail.nossr50.datatypes.buttons.McmmoButton;
 import com.gmail.nossr50.datatypes.popups.Menu;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.spout.SpoutConfig;
 import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 import com.gmail.nossr50.util.Users;
 
 public class SpoutListener implements Listener {

+ 22 - 22
src/main/java/com/gmail/nossr50/mcMMO.java

@@ -32,26 +32,6 @@ import com.gmail.nossr50.commands.mc.McrankCommand;
 import com.gmail.nossr50.commands.mc.McrefreshCommand;
 import com.gmail.nossr50.commands.mc.McremoveCommand;
 import com.gmail.nossr50.commands.mc.MctopCommand;
-import com.gmail.nossr50.commands.party.ACommand;
-import com.gmail.nossr50.commands.party.AcceptCommand;
-import com.gmail.nossr50.commands.party.InviteCommand;
-import com.gmail.nossr50.commands.party.PCommand;
-import com.gmail.nossr50.commands.party.PartyCommand;
-import com.gmail.nossr50.commands.party.PtpCommand;
-import com.gmail.nossr50.commands.skills.AcrobaticsCommand;
-import com.gmail.nossr50.commands.skills.ArcheryCommand;
-import com.gmail.nossr50.commands.skills.AxesCommand;
-import com.gmail.nossr50.commands.skills.ExcavationCommand;
-import com.gmail.nossr50.commands.skills.FishingCommand;
-import com.gmail.nossr50.commands.skills.HerbalismCommand;
-import com.gmail.nossr50.commands.skills.MiningCommand;
-import com.gmail.nossr50.commands.skills.RepairCommand;
-import com.gmail.nossr50.commands.skills.SwordsCommand;
-import com.gmail.nossr50.commands.skills.TamingCommand;
-import com.gmail.nossr50.commands.skills.UnarmedCommand;
-import com.gmail.nossr50.commands.skills.WoodcuttingCommand;
-import com.gmail.nossr50.commands.spout.MchudCommand;
-import com.gmail.nossr50.commands.spout.XplockCommand;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.config.HiddenConfig;
@@ -59,7 +39,6 @@ import com.gmail.nossr50.config.TreasuresConfig;
 import com.gmail.nossr50.config.mods.CustomArmorConfig;
 import com.gmail.nossr50.config.mods.CustomBlocksConfig;
 import com.gmail.nossr50.config.mods.CustomToolsConfig;
-import com.gmail.nossr50.config.repair.RepairConfigManager;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.listeners.BlockListener;
 import com.gmail.nossr50.listeners.EntityListener;
@@ -68,15 +47,36 @@ import com.gmail.nossr50.listeners.PlayerListener;
 import com.gmail.nossr50.listeners.WorldListener;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.party.PartyManager;
+import com.gmail.nossr50.party.commands.ACommand;
+import com.gmail.nossr50.party.commands.AcceptCommand;
+import com.gmail.nossr50.party.commands.InviteCommand;
+import com.gmail.nossr50.party.commands.PCommand;
+import com.gmail.nossr50.party.commands.PartyCommand;
+import com.gmail.nossr50.party.commands.PtpCommand;
 import com.gmail.nossr50.runnables.BleedTimer;
 import com.gmail.nossr50.runnables.MobStoreCleaner;
 import com.gmail.nossr50.runnables.SaveTimer;
 import com.gmail.nossr50.runnables.SkillMonitor;
-import com.gmail.nossr50.runnables.SpoutStart;
 import com.gmail.nossr50.runnables.UserPurgeTask;
+import com.gmail.nossr50.skills.acrobatics.AcrobaticsCommand;
+import com.gmail.nossr50.skills.archery.ArcheryCommand;
+import com.gmail.nossr50.skills.axes.AxesCommand;
+import com.gmail.nossr50.skills.excavation.ExcavationCommand;
+import com.gmail.nossr50.skills.fishing.FishingCommand;
+import com.gmail.nossr50.skills.herbalism.HerbalismCommand;
+import com.gmail.nossr50.skills.mining.MiningCommand;
+import com.gmail.nossr50.skills.repair.RepairCommand;
 import com.gmail.nossr50.skills.repair.RepairManager;
 import com.gmail.nossr50.skills.repair.RepairManagerFactory;
 import com.gmail.nossr50.skills.repair.Repairable;
+import com.gmail.nossr50.skills.repair.config.RepairConfigManager;
+import com.gmail.nossr50.skills.swords.SwordsCommand;
+import com.gmail.nossr50.skills.taming.TamingCommand;
+import com.gmail.nossr50.skills.unarmed.UnarmedCommand;
+import com.gmail.nossr50.skills.woodcutting.WoodcuttingCommand;
+import com.gmail.nossr50.spout.SpoutStart;
+import com.gmail.nossr50.spout.commands.MchudCommand;
+import com.gmail.nossr50.spout.commands.XplockCommand;
 import com.gmail.nossr50.util.Anniversary;
 import com.gmail.nossr50.util.Database;
 import com.gmail.nossr50.util.Leaderboard;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/ACommand.java → src/main/java/com/gmail/nossr50/party/commands/ACommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/AcceptCommand.java → src/main/java/com/gmail/nossr50/party/commands/AcceptCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/InviteCommand.java → src/main/java/com/gmail/nossr50/party/commands/InviteCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/PCommand.java → src/main/java/com/gmail/nossr50/party/commands/PCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/PartyCommand.java → src/main/java/com/gmail/nossr50/party/commands/PartyCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.ChatColor;
 import org.bukkit.Server;

+ 1 - 1
src/main/java/com/gmail/nossr50/commands/party/PtpCommand.java → src/main/java/com/gmail/nossr50/party/commands/PtpCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.party;
+package com.gmail.nossr50.party.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;

+ 1 - 1
src/main/java/com/gmail/nossr50/runnables/BleedTimer.java

@@ -11,7 +11,7 @@ import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.Combat;
 
 public class BleedTimer implements Runnable {
     private final static int MAX_BLEED_TICKS = 10;

+ 2 - 2
src/main/java/com/gmail/nossr50/runnables/GainXp.java

@@ -4,8 +4,8 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.util.Skills;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 
 public class GainXp implements Runnable {
     private Player player = null;

+ 2 - 2
src/main/java/com/gmail/nossr50/runnables/GreenThumbTimer.java

@@ -5,9 +5,9 @@ import org.bukkit.Material;
 import org.bukkit.block.Block;
 
 import com.gmail.nossr50.config.AdvancedConfig;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
 
 public class GreenThumbTimer implements Runnable {
     AdvancedConfig advancedConfig = AdvancedConfig.getInstance();

+ 2 - 2
src/main/java/com/gmail/nossr50/runnables/McRankAsync.java

@@ -6,10 +6,10 @@ import org.bukkit.Bukkit;
 import org.bukkit.command.CommandSender;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Database;
-import com.gmail.nossr50.util.Skills;
 
 public class McRankAsync implements Runnable {
     private Database database = mcMMO.getPlayerDatabase();

+ 3 - 3
src/main/java/com/gmail/nossr50/runnables/SkillMonitor.java

@@ -3,10 +3,10 @@ package com.gmail.nossr50.runnables;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.util.Skills;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class SkillMonitor implements Runnable {

+ 1 - 1
src/main/java/com/gmail/nossr50/datatypes/AbilityType.java → src/main/java/com/gmail/nossr50/skills/AbilityType.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.datatypes;
+package com.gmail.nossr50.skills;
 
 import org.bukkit.Material;
 import org.bukkit.block.Block;

+ 5 - 3
src/main/java/com/gmail/nossr50/util/Combat.java → src/main/java/com/gmail/nossr50/skills/Combat.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.util;
+package com.gmail.nossr50.skills;
 
 import org.bukkit.Material;
 import org.bukkit.enchantments.Enchantment;
@@ -21,9 +21,7 @@ import org.bukkit.inventory.ItemStack;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
 import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
@@ -37,6 +35,10 @@ import com.gmail.nossr50.skills.swords.Swords;
 import com.gmail.nossr50.skills.swords.SwordsManager;
 import com.gmail.nossr50.skills.taming.TamingManager;
 import com.gmail.nossr50.skills.unarmed.UnarmedManager;
+import com.gmail.nossr50.util.ItemChecks;
+import com.gmail.nossr50.util.Misc;
+import com.gmail.nossr50.util.Permissions;
+import com.gmail.nossr50.util.Users;
 
 public class Combat {
     private static Config configInstance = Config.getInstance();

+ 2 - 3
src/main/java/com/gmail/nossr50/commands/SkillCommand.java → src/main/java/com/gmail/nossr50/skills/SkillCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands;
+package com.gmail.nossr50.skills;
 
 import java.text.DecimalFormat;
 
@@ -7,13 +7,12 @@ import org.bukkit.command.CommandExecutor;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
+import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Page;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public abstract class SkillCommand implements CommandExecutor {

+ 0 - 1
src/main/java/com/gmail/nossr50/skills/SkillManager.java

@@ -3,7 +3,6 @@ package com.gmail.nossr50.skills;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 import com.gmail.nossr50.util.Users;

+ 1 - 1
src/main/java/com/gmail/nossr50/datatypes/SkillType.java → src/main/java/com/gmail/nossr50/skills/SkillType.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.datatypes;
+package com.gmail.nossr50.skills;
 
 import org.bukkit.entity.Player;
 

+ 6 - 5
src/main/java/com/gmail/nossr50/util/Skills.java → src/main/java/com/gmail/nossr50/skills/Skills.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.util;
+package com.gmail.nossr50.skills;
 
 import org.bukkit.block.Block;
 import org.bukkit.enchantments.Enchantment;
@@ -10,14 +10,15 @@ import org.getspout.spoutapi.player.SpoutPlayer;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.config.SpoutConfig;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.datatypes.ToolType;
 import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.spout.SpoutConfig;
 import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.util.Misc;
+import com.gmail.nossr50.util.ModChecks;
+import com.gmail.nossr50.util.Permissions;
+import com.gmail.nossr50.util.Users;
 
 public class Skills {
     static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();

+ 1 - 1
src/main/java/com/gmail/nossr50/datatypes/ToolType.java → src/main/java/com/gmail/nossr50/skills/ToolType.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.datatypes;
+package com.gmail.nossr50.skills;
 
 import org.bukkit.Material;
 import org.bukkit.inventory.ItemStack;

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/AcrobaticsCommand.java → src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsCommand.java

@@ -1,9 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.acrobatics;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.acrobatics.Acrobatics;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class AcrobaticsCommand extends SkillCommand {

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java

@@ -4,8 +4,8 @@ import org.bukkit.entity.Player;
 import org.bukkit.event.entity.EntityDamageEvent;
 
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/acrobatics/DodgeEventHandler.java

@@ -3,10 +3,10 @@ package com.gmail.nossr50.skills.acrobatics;
 import org.bukkit.event.entity.EntityDamageEvent;
 
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 
 public class DodgeEventHandler extends AcrobaticsEventHandler {
     protected DodgeEventHandler(AcrobaticsManager manager, EntityDamageEvent event) {

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/acrobatics/RollEventHandler.java

@@ -2,11 +2,11 @@ package com.gmail.nossr50.skills.acrobatics;
 
 import org.bukkit.event.entity.EntityDamageEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 
 public class RollEventHandler extends AcrobaticsEventHandler {
     protected boolean isGraceful;

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/ArcheryCommand.java → src/main/java/com/gmail/nossr50/skills/archery/ArcheryCommand.java

@@ -1,9 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.archery;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.archery.Archery;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class ArcheryCommand extends SkillCommand {

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java

@@ -4,8 +4,8 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.event.entity.EntityDamageEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/axes/AxeManager.java

@@ -4,9 +4,9 @@ import org.bukkit.entity.Player;
 import org.bukkit.entity.Tameable;
 import org.bukkit.event.entity.EntityDamageByEntityEvent;
 
-import com.gmail.nossr50.datatypes.AbilityType;
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.AbilityType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java → src/main/java/com/gmail/nossr50/skills/axes/AxesCommand.java

@@ -1,9 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.axes;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.axes.Axes;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class AxesCommand extends SkillCommand {

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/axes/SkullSplitterEventHandler.java

@@ -4,8 +4,8 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 import org.bukkit.event.entity.EntityDamageByEntityEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.Combat;
+import com.gmail.nossr50.skills.SkillType;
 
 public class SkullSplitterEventHandler {
     private Player player;

+ 3 - 3
src/main/java/com/gmail/nossr50/skills/gathering/Excavation.java → src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.skills.gathering;
+package com.gmail.nossr50.skills.excavation;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -16,14 +16,14 @@ import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.config.TreasuresConfig;
 import com.gmail.nossr50.config.mods.CustomBlocksConfig;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
 import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.spout.SpoutSounds;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class Excavation {

+ 3 - 3
src/main/java/com/gmail/nossr50/commands/skills/ExcavationCommand.java → src/main/java/com/gmail/nossr50/skills/excavation/ExcavationCommand.java

@@ -1,8 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.excavation;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class ExcavationCommand extends SkillCommand {

+ 4 - 4
src/main/java/com/gmail/nossr50/skills/gathering/Fishing.java → src/main/java/com/gmail/nossr50/skills/fishing/Fishing.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.skills.gathering;
+package com.gmail.nossr50.skills.fishing;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -25,14 +25,14 @@ import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.config.TreasuresConfig;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.Combat;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.ItemChecks;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class Fishing {

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/FishingCommand.java → src/main/java/com/gmail/nossr50/skills/fishing/FishingCommand.java

@@ -1,10 +1,9 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.fishing;
 
-import com.gmail.nossr50.commands.SkillCommand;
 import com.gmail.nossr50.config.AdvancedConfig;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.gathering.Fishing;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class FishingCommand extends SkillCommand {

+ 4 - 4
src/main/java/com/gmail/nossr50/skills/gathering/Herbalism.java → src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.skills.gathering;
+package com.gmail.nossr50.skills.herbalism;
 
 import org.bukkit.CropState;
 import org.bukkit.DyeColor;
@@ -15,16 +15,16 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.config.mods.CustomBlocksConfig;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.mods.CustomBlock;
 import com.gmail.nossr50.locale.LocaleLoader;
 import com.gmail.nossr50.runnables.GreenThumbTimer;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class Herbalism {

+ 3 - 8
src/main/java/com/gmail/nossr50/commands/skills/HerbalismCommand.java → src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismCommand.java

@@ -1,16 +1,11 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.herbalism;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.config.AdvancedConfig;
-import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.gathering.Herbalism;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class HerbalismCommand extends SkillCommand {
-    AdvancedConfig advancedConfig = AdvancedConfig.getInstance();
-
     private String greenTerraLength;
     private String greenTerraLengthEndurance;
     private String greenThumbChance;

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/mining/Mining.java

@@ -12,11 +12,11 @@ import org.bukkit.material.MaterialData;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.mods.CustomBlock;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
-import com.gmail.nossr50.util.Skills;
 
 public class Mining {
     private static AdvancedConfig advancedConfig = AdvancedConfig.getInstance();

+ 3 - 5
src/main/java/com/gmail/nossr50/commands/skills/MiningCommand.java → src/main/java/com/gmail/nossr50/skills/mining/MiningCommand.java

@@ -1,10 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.mining;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.mining.BlastMining;
-import com.gmail.nossr50.skills.mining.Mining;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java

@@ -9,8 +9,8 @@ import org.bukkit.event.entity.ExplosionPrimeEvent;
 import org.bukkit.event.player.PlayerInteractEvent;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/mining/RemoteDetonationEventHandler.java

@@ -9,11 +9,11 @@ import org.bukkit.entity.TNTPrimed;
 import org.bukkit.event.player.PlayerInteractEvent;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.AbilityType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 
 public class RemoteDetonationEventHandler {
     private Player player;

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/mining/SuperBreakerEventHandler.java

@@ -8,10 +8,10 @@ import org.getspout.spoutapi.sound.SoundEffect;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.spout.SpoutSounds;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
-import com.gmail.nossr50.util.Skills;
 
 public class SuperBreakerEventHandler {
     private MiningManager manager;

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/repair/Repair.java

@@ -13,12 +13,12 @@ import org.getspout.spoutapi.player.SpoutPlayer;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.spout.SpoutSounds;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class Repair {

+ 3 - 6
src/main/java/com/gmail/nossr50/commands/skills/RepairCommand.java → src/main/java/com/gmail/nossr50/skills/repair/RepairCommand.java

@@ -1,14 +1,11 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.repair;
 
 import org.bukkit.Material;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.repair.Repair;
-import com.gmail.nossr50.skills.repair.Repairable;
-import com.gmail.nossr50.skills.repair.Salvage;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class RepairCommand extends SkillCommand {

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/repair/Salvage.java

@@ -11,8 +11,8 @@ import org.getspout.spoutapi.player.SpoutPlayer;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.ItemChecks;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairManager.java

@@ -10,9 +10,9 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.PlayerInventory;
 
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.events.skills.McMMOPlayerRepairCheckEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 import com.gmail.nossr50.util.Users;

+ 1 - 1
src/main/java/com/gmail/nossr50/config/repair/RepairConfig.java → src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfig.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.config.repair;
+package com.gmail.nossr50.skills.repair.config;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
src/main/java/com/gmail/nossr50/config/repair/RepairConfigManager.java → src/main/java/com/gmail/nossr50/skills/repair/config/RepairConfigManager.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.config.repair;
+package com.gmail.nossr50.skills.repair.config;
 
 import java.io.File;
 import java.util.ArrayList;

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/swords/CounterAttackEventHandler.java

@@ -4,7 +4,7 @@ import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.Combat;
 import com.gmail.nossr50.util.ItemChecks;
 import com.gmail.nossr50.util.Misc;
 

+ 2 - 2
src/main/java/com/gmail/nossr50/skills/swords/SerratedStrikesEventHandler.java

@@ -3,9 +3,9 @@ package com.gmail.nossr50.skills.swords;
 import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.runnables.BleedTimer;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.Combat;
+import com.gmail.nossr50.skills.SkillType;
 
 public class SerratedStrikesEventHandler {
     private Player player;

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/SwordsCommand.java → src/main/java/com/gmail/nossr50/skills/swords/SwordsCommand.java

@@ -1,9 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.swords;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.swords.Swords;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class SwordsCommand extends SkillCommand {

+ 3 - 3
src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java

@@ -3,10 +3,10 @@ package com.gmail.nossr50.skills.swords;
 import org.bukkit.entity.LivingEntity;
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.AbilityType;
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.AbilityType;
+import com.gmail.nossr50.skills.Combat;
 import com.gmail.nossr50.skills.SkillManager;
-import com.gmail.nossr50.util.Combat;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/TamingCommand.java → src/main/java/com/gmail/nossr50/skills/taming/TamingCommand.java

@@ -1,10 +1,9 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.taming;
 
-import com.gmail.nossr50.commands.SkillCommand;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.taming.Taming;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class TamingCommand extends SkillCommand {

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java

@@ -9,8 +9,8 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
 import org.bukkit.inventory.ItemStack;
 
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/unarmed/IronGripEventHandler.java

@@ -2,8 +2,8 @@ package com.gmail.nossr50.skills.unarmed;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Users;
 

+ 3 - 4
src/main/java/com/gmail/nossr50/commands/skills/UnarmedCommand.java → src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedCommand.java

@@ -1,9 +1,8 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.unarmed;
 
-import com.gmail.nossr50.commands.SkillCommand;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.unarmed.Unarmed;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class UnarmedCommand extends SkillCommand {

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java

@@ -3,8 +3,8 @@ package com.gmail.nossr50.skills.unarmed;
 import org.bukkit.entity.Player;
 import org.bukkit.event.entity.EntityDamageEvent;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.skills.SkillManager;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
 

+ 8 - 8
src/main/java/com/gmail/nossr50/skills/gathering/WoodCutting.java → src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.skills.gathering;
+package com.gmail.nossr50.skills.woodcutting;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -19,20 +19,20 @@ import org.getspout.spoutapi.sound.SoundEffect;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.datatypes.mods.CustomBlock;
 import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.Combat;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.spout.SpoutSounds;
 import com.gmail.nossr50.util.BlockChecks;
-import com.gmail.nossr50.util.Combat;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.ModChecks;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
-public class WoodCutting {
+public class Woodcutting {
     private static final AdvancedConfig ADVANCED_CONFIG = AdvancedConfig.getInstance();
     private static boolean treeFellerReachedThreshold = false;
 
@@ -95,7 +95,7 @@ public class WoodCutting {
             }
 
             if (block.getType() == Material.LOG) {
-                WoodCutting.woodCuttingProcCheck(player, block);
+                Woodcutting.woodCuttingProcCheck(player, block);
 
                 TreeSpecies species = ((Tree) block.getState().getData()).getSpecies();
 
@@ -131,7 +131,7 @@ public class WoodCutting {
                 if (ModChecks.isCustomLogBlock(block)) {
                     CustomBlock customBlock = ModChecks.getCustomBlock(block);
 
-                    WoodCutting.woodCuttingProcCheck(player, block);
+                    Woodcutting.woodCuttingProcCheck(player, block);
 
                     xp = customBlock.getXpGain();
                     int minimumDropAmount = customBlock.getMinimumDropAmount();
@@ -378,7 +378,7 @@ public class WoodCutting {
             }
         }
 
-        WoodCutting.woodCuttingProcCheck(player, block);
+        Woodcutting.woodCuttingProcCheck(player, block);
         Skills.xpProcessing(player,  Users.getProfile(player), SkillType.WOODCUTTING, xp);
     }
 

+ 7 - 8
src/main/java/com/gmail/nossr50/commands/skills/WoodcuttingCommand.java → src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingCommand.java

@@ -1,10 +1,9 @@
-package com.gmail.nossr50.commands.skills;
+package com.gmail.nossr50.skills.woodcutting;
 
-import com.gmail.nossr50.commands.SkillCommand;
 import com.gmail.nossr50.config.AdvancedConfig;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
-import com.gmail.nossr50.skills.gathering.WoodCutting;
+import com.gmail.nossr50.skills.SkillCommand;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.util.Permissions;
 
 public class WoodcuttingCommand extends SkillCommand {
@@ -31,7 +30,7 @@ public class WoodcuttingCommand extends SkillCommand {
         treeFellerLengthEndurance = treeFellerStrings[1];
 
         //DOUBLE DROPS
-        String[] doubleDropStrings = calculateAbilityDisplayValues(WoodCutting.doubleDropsMaxLevel, WoodCutting.doubleDropsMaxChance);
+        String[] doubleDropStrings = calculateAbilityDisplayValues(Woodcutting.doubleDropsMaxLevel, Woodcutting.doubleDropsMaxChance);
         doubleDropChance = doubleDropStrings[0];
         doubleDropChanceLucky = doubleDropStrings[1];
     }
@@ -41,7 +40,7 @@ public class WoodcuttingCommand extends SkillCommand {
         canTreeFell = Permissions.treeFeller(player);
         canDoubleDrop = Permissions.woodcuttingDoubleDrops(player);
         canLeafBlow = Permissions.leafBlower(player);
-        doubleDropsDisabled = WoodCutting.doubleDropsDisabled;
+        doubleDropsDisabled = Woodcutting.doubleDropsDisabled;
     }
 
     @Override
@@ -74,8 +73,8 @@ public class WoodcuttingCommand extends SkillCommand {
     @Override
     protected void statsDisplay() {
         if (canLeafBlow) {
-            if (skillValue < WoodCutting.leafBlowerUnlockLevel) {
-                player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Woodcutting.Ability.Locked.0", new Object[] { WoodCutting.leafBlowerUnlockLevel }) }));
+            if (skillValue < Woodcutting.leafBlowerUnlockLevel) {
+                player.sendMessage(LocaleLoader.getString("Ability.Generic.Template.Lock", new Object[] { LocaleLoader.getString("Woodcutting.Ability.Locked.0", new Object[] { Woodcutting.leafBlowerUnlockLevel }) }));
             }
             else {
                 player.sendMessage(LocaleLoader.getString("Ability.Generic.Template", new Object[] { LocaleLoader.getString("Woodcutting.Ability.0"), LocaleLoader.getString("Woodcutting.Ability.1") }));

+ 3 - 2
src/main/java/com/gmail/nossr50/config/SpoutConfig.java → src/main/java/com/gmail/nossr50/spout/SpoutConfig.java

@@ -1,6 +1,7 @@
-package com.gmail.nossr50.config;
+package com.gmail.nossr50.spout;
 
-import com.gmail.nossr50.datatypes.HudType;
+import com.gmail.nossr50.config.ConfigLoader;
+import com.gmail.nossr50.spout.huds.HudType;
 
 public class SpoutConfig extends ConfigLoader {
     private static SpoutConfig instance;

+ 1 - 3
src/main/java/com/gmail/nossr50/runnables/SpoutStart.java → src/main/java/com/gmail/nossr50/spout/SpoutStart.java

@@ -1,11 +1,9 @@
-package com.gmail.nossr50.runnables;
+package com.gmail.nossr50.spout;
 
 import org.getspout.spoutapi.SpoutManager;
 import org.getspout.spoutapi.player.FileManager;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.SpoutConfig;
-import com.gmail.nossr50.spout.SpoutStuff;
 
 public class SpoutStart implements Runnable{
     private final mcMMO plugin;

+ 2 - 3
src/main/java/com/gmail/nossr50/spout/SpoutStuff.java

@@ -20,13 +20,12 @@ import org.getspout.spoutapi.player.SpoutPlayer;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.AdvancedConfig;
-import com.gmail.nossr50.config.SpoutConfig;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.listeners.SpoutListener;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 import com.gmail.nossr50.util.Misc;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class SpoutStuff {

+ 4 - 4
src/main/java/com/gmail/nossr50/commands/spout/MchudCommand.java → src/main/java/com/gmail/nossr50/spout/commands/MchudCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.spout;
+package com.gmail.nossr50.spout.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
@@ -7,11 +7,11 @@ import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.CommandHelper;
-import com.gmail.nossr50.config.SpoutConfig;
-import com.gmail.nossr50.datatypes.HudType;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SpoutHud;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.spout.SpoutConfig;
+import com.gmail.nossr50.spout.huds.HudType;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 import com.gmail.nossr50.util.Users;
 
 public class MchudCommand implements CommandExecutor {

+ 5 - 5
src/main/java/com/gmail/nossr50/commands/spout/XplockCommand.java → src/main/java/com/gmail/nossr50/spout/commands/XplockCommand.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.commands.spout;
+package com.gmail.nossr50.spout.commands;
 
 import org.bukkit.command.Command;
 import org.bukkit.command.CommandExecutor;
@@ -8,14 +8,14 @@ import org.bukkit.entity.Player;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.commands.CommandHelper;
 import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.config.SpoutConfig;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.datatypes.SpoutHud;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
+import com.gmail.nossr50.spout.SpoutConfig;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.Skills;
 import com.gmail.nossr50.util.Users;
 
 public class XplockCommand implements CommandExecutor {

+ 1 - 1
src/main/java/com/gmail/nossr50/datatypes/HudType.java → src/main/java/com/gmail/nossr50/spout/huds/HudType.java

@@ -1,4 +1,4 @@
-package com.gmail.nossr50.datatypes;
+package com.gmail.nossr50.spout.huds;
 
 public enum HudType {
     DISABLED,

+ 5 - 2
src/main/java/com/gmail/nossr50/datatypes/SpoutHud.java → src/main/java/com/gmail/nossr50/spout/huds/SpoutHud.java

@@ -1,12 +1,15 @@
-package com.gmail.nossr50.datatypes;
+package com.gmail.nossr50.spout.huds;
 
 import org.bukkit.entity.Player;
 import org.getspout.spoutapi.SpoutManager;
 
 import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.config.SpoutConfig;
+import com.gmail.nossr50.datatypes.McMMOPlayer;
+import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.datatypes.popups.Menu;
 import com.gmail.nossr50.datatypes.popups.XpBar;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.spout.SpoutConfig;
 
 public class SpoutHud {
     private Player player;

+ 2 - 2
src/main/java/com/gmail/nossr50/util/Database.java

@@ -17,10 +17,10 @@ import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.DatabaseUpdate;
 import com.gmail.nossr50.datatypes.McMMOPlayer;
-import com.gmail.nossr50.datatypes.SkillType;
-import com.gmail.nossr50.datatypes.SpoutHud;
 import com.gmail.nossr50.runnables.SQLReconnect;
+import com.gmail.nossr50.skills.SkillType;
 import com.gmail.nossr50.spout.SpoutStuff;
+import com.gmail.nossr50.spout.huds.SpoutHud;
 
 public class Database {
 

+ 1 - 1
src/main/java/com/gmail/nossr50/util/Hardcore.java

@@ -4,8 +4,8 @@ import org.bukkit.entity.Player;
 
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
 
 public abstract class Hardcore {
 

+ 1 - 0
src/main/java/com/gmail/nossr50/util/Item.java

@@ -8,6 +8,7 @@ import org.bukkit.inventory.ItemStack;
 import com.gmail.nossr50.config.Config;
 import com.gmail.nossr50.datatypes.PlayerProfile;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.Skills;
 
 public class Item {
 

+ 1 - 1
src/main/java/com/gmail/nossr50/util/Leaderboard.java

@@ -10,7 +10,7 @@ import java.util.List;
 
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.datatypes.PlayerStat;
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 public class Leaderboard {
     private static mcMMO plugin = mcMMO.p;

+ 2 - 1
src/main/java/com/gmail/nossr50/util/Page.java

@@ -4,8 +4,9 @@ import java.util.ArrayList;
 
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
 import com.gmail.nossr50.locale.LocaleLoader;
+import com.gmail.nossr50.skills.SkillType;
+import com.gmail.nossr50.skills.Skills;
 
 public class Page {
 

+ 1 - 1
src/main/java/com/gmail/nossr50/util/Permissions.java

@@ -3,7 +3,7 @@ package com.gmail.nossr50.util;
 import org.bukkit.command.CommandSender;
 import org.bukkit.entity.Player;
 
-import com.gmail.nossr50.datatypes.SkillType;
+import com.gmail.nossr50.skills.SkillType;
 
 public class Permissions {
     public static boolean hasPermission(CommandSender sender, String perm)