Browse Source

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 12 năm trước cách đây
mục cha
commit
6b0e7a9c61
95 tập tin đã thay đổi với 233 bổ sung239 xóa
  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)