浏览代码

Skill Behaviour Managers

nossr50 6 年之前
父节点
当前提交
b756938fb1
共有 21 个文件被更改,包括 429 次插入21 次删除
  1. 9 1
      src/main/java/com/gmail/nossr50/core/DynamicSettingsManager.java
  2. 18 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AcrobaticsBehaviour.java
  3. 20 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AlchemyBehaviour.java
  4. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/ArcheryBehaviour.java
  5. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AxesBehaviour.java
  6. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/ExcavationBehaviour.java
  7. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/FishingBehaviour.java
  8. 26 11
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/HerbalismBehaviour.java
  9. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/MiningBehaviour.java
  10. 20 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/RepairBehaviour.java
  11. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SalvageBehaviour.java
  12. 110 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SkillBehaviourManager.java
  13. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SmeltingBehaviour.java
  14. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SwordsBehaviour.java
  15. 20 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/TamingBehaviour.java
  16. 19 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/UnarmedBehaviour.java
  17. 20 0
      src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/WoodcuttingBehaviour.java
  18. 2 2
      src/main/java/com/gmail/nossr50/runnables/backups/CleanBackupFilesTask.java
  19. 1 1
      src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java
  20. 1 1
      src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java
  21. 11 5
      src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java

+ 9 - 1
src/main/java/com/gmail/nossr50/core/DynamicSettingsManager.java

@@ -2,6 +2,7 @@ package com.gmail.nossr50.core;
 
 
 import com.gmail.nossr50.datatypes.party.PartyFeature;
 import com.gmail.nossr50.datatypes.party.PartyFeature;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
+import com.gmail.nossr50.datatypes.skills.behaviours.SkillBehaviourManager;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.skills.repair.repairables.Repairable;
 import com.gmail.nossr50.skills.repair.repairables.Repairable;
 import com.gmail.nossr50.skills.repair.repairables.RepairableManager;
 import com.gmail.nossr50.skills.repair.repairables.RepairableManager;
@@ -41,6 +42,11 @@ public class DynamicSettingsManager {
     private HashMap<Material, Integer> partyItemWeights;
     private HashMap<Material, Integer> partyItemWeights;
     private HashMap<PartyFeature, Integer> partyFeatureUnlocks;
     private HashMap<PartyFeature, Integer> partyFeatureUnlocks;
 
 
+    /* Skill Behaviours */
+    private SkillBehaviourManager skillBehaviourManager;
+    //TODO: This class is a band-aid fix for a large problem with mcMMO code, they will be removed once the new skill system is in place
+
+
     public DynamicSettingsManager(mcMMO pluginRef) {
     public DynamicSettingsManager(mcMMO pluginRef) {
         this.pluginRef = pluginRef;
         this.pluginRef = pluginRef;
         /*
         /*
@@ -70,12 +76,14 @@ public class DynamicSettingsManager {
      * Misc managers
      * Misc managers
      */
      */
     private void initMiscManagers() {
     private void initMiscManagers() {
+        //Init Skill Behaviour Manager
+        skillBehaviourManager = new SkillBehaviourManager(pluginRef);
+
         experienceManager = new ExperienceManager(pluginRef);
         experienceManager = new ExperienceManager(pluginRef);
         //Set the global XP val
         //Set the global XP val
         experienceManager.setGlobalXpMult(pluginRef.getConfigManager().getConfigExperience().getGlobalXPMultiplier());
         experienceManager.setGlobalXpMult(pluginRef.getConfigManager().getConfigExperience().getGlobalXPMultiplier());
         experienceManager.buildBlockXPMaps(); //Block XP value maps
         experienceManager.buildBlockXPMaps(); //Block XP value maps
         experienceManager.fillCombatXPMultiplierMap(pluginRef.getConfigManager().getConfigExperience().getCombatExperienceMap());
         experienceManager.fillCombatXPMultiplierMap(pluginRef.getConfigManager().getConfigExperience().getCombatExperienceMap());
-//        potionManager = new PotionManager();
     }
     }
 
 
     /**
     /**

+ 18 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AcrobaticsBehaviour.java

@@ -0,0 +1,18 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class AcrobaticsBehaviour {
+    private final mcMMO pluginRef;
+
+    public AcrobaticsBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 20 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AlchemyBehaviour.java

@@ -0,0 +1,20 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class AlchemyBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public AlchemyBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/ArcheryBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class ArcheryBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public ArcheryBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/AxesBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class AxesBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public AxesBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/ExcavationBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class ExcavationBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public ExcavationBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/FishingBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class FishingBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public FishingBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 26 - 11
src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java → src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/HerbalismBehaviour.java

@@ -1,6 +1,8 @@
-package com.gmail.nossr50.skills.herbalism;
+package com.gmail.nossr50.datatypes.skills.behaviours;
 
 
 import com.gmail.nossr50.core.MetadataConstants;
 import com.gmail.nossr50.core.MetadataConstants;
+import com.gmail.nossr50.mcMMO;
+import com.gmail.nossr50.skills.herbalism.HerbalismManager;
 import com.gmail.nossr50.util.BlockUtils;
 import com.gmail.nossr50.util.BlockUtils;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import org.bukkit.Material;
 import org.bukkit.Material;
@@ -10,7 +12,20 @@ import org.bukkit.block.BlockState;
 
 
 import java.util.HashSet;
 import java.util.HashSet;
 
 
-public class Herbalism {
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class HerbalismBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public HerbalismBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
 
 
     /**
     /**
      * Convert blocks affected by the Green Thumb & Green Terra abilities.
      * Convert blocks affected by the Green Thumb & Green Terra abilities.
@@ -18,7 +33,7 @@ public class Herbalism {
      * @param blockState The {@link BlockState} to check ability activation for
      * @param blockState The {@link BlockState} to check ability activation for
      * @return true if the ability was successful, false otherwise
      * @return true if the ability was successful, false otherwise
      */
      */
-    protected static boolean convertGreenTerraBlocks(BlockState blockState) {
+    protected boolean convertGreenTerraBlocks(BlockState blockState) {
         switch (blockState.getType()) {
         switch (blockState.getType()) {
             case COBBLESTONE_WALL:
             case COBBLESTONE_WALL:
                 blockState.setType(Material.MOSSY_COBBLESTONE_WALL);
                 blockState.setType(Material.MOSSY_COBBLESTONE_WALL);
@@ -42,11 +57,11 @@ public class Herbalism {
         }
         }
     }
     }
 
 
-    private static int calculateChorusPlantDrops(Block target, boolean triple, HerbalismManager herbalismManager) {
+    private int calculateChorusPlantDrops(Block target, boolean triple, HerbalismManager herbalismManager) {
         return calculateChorusPlantDropsRecursive(target, new HashSet<>(), triple, herbalismManager);
         return calculateChorusPlantDropsRecursive(target, new HashSet<>(), triple, herbalismManager);
     }
     }
 
 
-    private static int calculateChorusPlantDropsRecursive(Block target, HashSet<Block> traversed, boolean triple, HerbalismManager herbalismManager) {
+    private int calculateChorusPlantDropsRecursive(Block target, HashSet<Block> traversed, boolean triple, HerbalismManager herbalismManager) {
         if (target.getType() != Material.CHORUS_PLANT)
         if (target.getType() != Material.CHORUS_PLANT)
             return 0;
             return 0;
 
 
@@ -81,7 +96,7 @@ public class Herbalism {
      * @param blockState The {@link BlockState} of the bottom block of the plant
      * @param blockState The {@link BlockState} of the bottom block of the plant
      * @return the number of bonus drops to award from the blocks in this plant
      * @return the number of bonus drops to award from the blocks in this plant
      */
      */
-    protected static int countAndMarkDoubleDropsMultiBlockPlant(BlockState blockState, boolean triple, HerbalismManager herbalismManager) {
+    protected int countAndMarkDoubleDropsMultiBlockPlant(BlockState blockState, boolean triple, HerbalismManager herbalismManager) {
         Block block = blockState.getBlock();
         Block block = blockState.getBlock();
         Material blockType = blockState.getType();
         Material blockType = blockState.getType();
         int dropAmount = 0;
         int dropAmount = 0;
@@ -137,7 +152,7 @@ public class Herbalism {
      * @param blockState The {@link BlockState} of the bottom block of the plant
      * @param blockState The {@link BlockState} of the bottom block of the plant
      * @return the number of bonus drops to award from the blocks in this plant
      * @return the number of bonus drops to award from the blocks in this plant
      */
      */
-    protected static int countAndMarkDoubleDropsKelp(BlockState blockState, boolean triple, HerbalismManager herbalismManager) {
+    protected int countAndMarkDoubleDropsKelp(BlockState blockState, boolean triple, HerbalismManager herbalismManager) {
         Block block = blockState.getBlock();
         Block block = blockState.getBlock();
 
 
         int kelpMaxHeight = 255;
         int kelpMaxHeight = 255;
@@ -160,7 +175,7 @@ public class Herbalism {
         return amount;
         return amount;
     }
     }
 
 
-    private static int addKelpDrops(int dropAmount, Block relativeBlock) {
+    private int addKelpDrops(int dropAmount, Block relativeBlock) {
         if (isKelp(relativeBlock) && !pluginRef.getPlaceStore().isTrue(relativeBlock)) {
         if (isKelp(relativeBlock) && !pluginRef.getPlaceStore().isTrue(relativeBlock)) {
             dropAmount++;
             dropAmount++;
         } else {
         } else {
@@ -170,7 +185,7 @@ public class Herbalism {
         return dropAmount;
         return dropAmount;
     }
     }
 
 
-    private static boolean isKelp(Block relativeBlock) {
+    private boolean isKelp(Block relativeBlock) {
         Material kelptype_1 = Material.KELP_PLANT;
         Material kelptype_1 = Material.KELP_PLANT;
         Material kelptype_2 = Material.KELP;
         Material kelptype_2 = Material.KELP;
 
 
@@ -183,7 +198,7 @@ public class Herbalism {
      * @param blockState The {@link BlockState} to check ability activation for
      * @param blockState The {@link BlockState} to check ability activation for
      * @return true if the ability was successful, false otherwise
      * @return true if the ability was successful, false otherwise
      */
      */
-    protected static boolean convertShroomThumb(BlockState blockState) {
+    protected boolean convertShroomThumb(BlockState blockState) {
         switch (blockState.getType()) {
         switch (blockState.getType()) {
             case DIRT:
             case DIRT:
             case GRASS_BLOCK:
             case GRASS_BLOCK:
@@ -202,7 +217,7 @@ public class Herbalism {
      * @param blockState The {@link BlockState} to check green thumb regrown for
      * @param blockState The {@link BlockState} to check green thumb regrown for
      * @return true if the block is recently regrown, false otherwise
      * @return true if the block is recently regrown, false otherwise
      */
      */
-    public static boolean isRecentlyRegrown(BlockState blockState) {
+    public boolean isRecentlyRegrown(BlockState blockState) {
         return blockState.hasMetadata(MetadataConstants.GREEN_THUMB_METAKEY) && !SkillUtils.cooldownExpired(blockState.getMetadata(MetadataConstants.GREEN_THUMB_METAKEY).get(0).asInt(), 1);
         return blockState.hasMetadata(MetadataConstants.GREEN_THUMB_METAKEY) && !SkillUtils.cooldownExpired(blockState.getMetadata(MetadataConstants.GREEN_THUMB_METAKEY).get(0).asInt(), 1);
     }
     }
 }
 }

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/MiningBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class MiningBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public MiningBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 20 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/RepairBehaviour.java

@@ -0,0 +1,20 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class RepairBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public RepairBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SalvageBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class SalvageBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public SalvageBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 110 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SkillBehaviourManager.java

@@ -0,0 +1,110 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class SkillBehaviourManager {
+    private final mcMMO pluginRef;
+
+    private final AcrobaticsBehaviour acrobaticsBehaviour;
+    private final AlchemyBehaviour alchemyBehaviour;
+    private final ArcheryBehaviour archeryBehaviour;
+    private final AxesBehaviour axesBehaviour;
+    private final ExcavationBehaviour excavationBehaviour;
+    private final FishingBehaviour fishingBehaviour;
+    private final HerbalismBehaviour herbalismBehaviour;
+    private final MiningBehaviour miningBehaviour;
+    private final RepairBehaviour repairBehaviour;
+    private final SalvageBehaviour salvageBehaviour;
+    private final SmeltingBehaviour smeltingBehaviour;
+    private final SwordsBehaviour swordsBehaviour;
+    private final TamingBehaviour tamingBehaviour;
+    private final UnarmedBehaviour unarmedBehaviour;
+    private final WoodcuttingBehaviour woodcuttingBehaviour;
+
+    public SkillBehaviourManager(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+
+        acrobaticsBehaviour = new AcrobaticsBehaviour(pluginRef);
+        alchemyBehaviour = new AlchemyBehaviour(pluginRef);
+        archeryBehaviour = new ArcheryBehaviour(pluginRef);
+        axesBehaviour = new AxesBehaviour(pluginRef);
+        excavationBehaviour = new ExcavationBehaviour(pluginRef);
+        fishingBehaviour = new FishingBehaviour(pluginRef);
+        herbalismBehaviour = new HerbalismBehaviour(pluginRef);
+        miningBehaviour = new MiningBehaviour(pluginRef);
+        repairBehaviour = new RepairBehaviour(pluginRef);
+        salvageBehaviour = new SalvageBehaviour(pluginRef);
+        smeltingBehaviour = new SmeltingBehaviour(pluginRef);
+        swordsBehaviour = new SwordsBehaviour(pluginRef);
+        tamingBehaviour = new TamingBehaviour(pluginRef);
+        unarmedBehaviour = new UnarmedBehaviour(pluginRef);
+        woodcuttingBehaviour = new WoodcuttingBehaviour(pluginRef);
+    }
+
+    public AcrobaticsBehaviour getAcrobaticsBehaviour() {
+        return acrobaticsBehaviour;
+    }
+
+    public AlchemyBehaviour getAlchemyBehaviour() {
+        return alchemyBehaviour;
+    }
+
+    public ArcheryBehaviour getArcheryBehaviour() {
+        return archeryBehaviour;
+    }
+
+    public AxesBehaviour getAxesBehaviour() {
+        return axesBehaviour;
+    }
+
+    public ExcavationBehaviour getExcavationBehaviour() {
+        return excavationBehaviour;
+    }
+
+    public FishingBehaviour getFishingBehaviour() {
+        return fishingBehaviour;
+    }
+
+    public HerbalismBehaviour getHerbalismBehaviour() {
+        return herbalismBehaviour;
+    }
+
+    public MiningBehaviour getMiningBehaviour() {
+        return miningBehaviour;
+    }
+
+    public RepairBehaviour getRepairBehaviour() {
+        return repairBehaviour;
+    }
+
+    public SalvageBehaviour getSalvageBehaviour() {
+        return salvageBehaviour;
+    }
+
+    public SmeltingBehaviour getSmeltingBehaviour() {
+        return smeltingBehaviour;
+    }
+
+    public SwordsBehaviour getSwordsBehaviour() {
+        return swordsBehaviour;
+    }
+
+    public TamingBehaviour getTamingBehaviour() {
+        return tamingBehaviour;
+    }
+
+    public UnarmedBehaviour getUnarmedBehaviour() {
+        return unarmedBehaviour;
+    }
+
+    public WoodcuttingBehaviour getWoodcuttingBehaviour() {
+        return woodcuttingBehaviour;
+    }
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SmeltingBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class SmeltingBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public SmeltingBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/SwordsBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class SwordsBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public SwordsBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 20 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/TamingBehaviour.java

@@ -0,0 +1,20 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class TamingBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public TamingBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+
+}

+ 19 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/UnarmedBehaviour.java

@@ -0,0 +1,19 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class UnarmedBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public UnarmedBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+}

+ 20 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/behaviours/WoodcuttingBehaviour.java

@@ -0,0 +1,20 @@
+package com.gmail.nossr50.datatypes.skills.behaviours;
+
+import com.gmail.nossr50.mcMMO;
+
+/**
+ * These behaviour classes are a band-aid fix for a larger problem
+ * Until the new skill system for mcMMO is finished/implemented, there is no good place to store the hardcoded behaviours for each skill
+ * These behaviour classes server this purpose, they act as a bad solution to a bad problem
+ * These classes will be removed when the new skill system is in place
+ */
+@Deprecated
+public class WoodcuttingBehaviour {
+
+    private final mcMMO pluginRef;
+
+    public WoodcuttingBehaviour(mcMMO pluginRef) {
+        this.pluginRef = pluginRef;
+    }
+
+}

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

@@ -24,8 +24,8 @@ public class CleanBackupFilesTask extends BukkitRunnable {
 
 
     @Override
     @Override
     public void run() {
     public void run() {
-        List<Integer> savedDays = new ArrayList<>();
-        HashMap<Integer, List<Integer>> savedYearsWeeks = new HashMap<>();
+        List<Integer> savedDays = new ArrayList<>(); //TODO: Should probably look into why this isn't used...
+        HashMap<Integer, List<Integer>> savedYearsWeeks = new HashMap<>(); //TODO: Should probably look into why this isn't used...
         List<File> toDelete = new ArrayList<>();
         List<File> toDelete = new ArrayList<>();
         int amountTotal = 0;
         int amountTotal = 0;
         int amountDeleted = 0;
         int amountDeleted = 0;

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java

@@ -133,7 +133,7 @@ public class AxesManager extends SkillManager {
      * @param target The {@link LivingEntity} being affected by the ability
      * @param target The {@link LivingEntity} being affected by the ability
      */
      */
     public double greaterImpact(LivingEntity target) {
     public double greaterImpact(LivingEntity target) {
-        //static chance (3rd param)
+        //chance (3rd param)
         if (!RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_STATIC_CHANCE, SubSkillType.AXES_GREATER_IMPACT, getPlayer())) {
         if (!RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_STATIC_CHANCE, SubSkillType.AXES_GREATER_IMPACT, getPlayer())) {
             return 0;
             return 0;
         }
         }

+ 1 - 1
src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java

@@ -49,7 +49,7 @@ public class FishingManager extends SkillManager {
     private long fishHookSpawnTimestamp;
     private long fishHookSpawnTimestamp;
     private long lastWarned;
     private long lastWarned;
     private long lastWarnedExhaust;
     private long lastWarnedExhaust;
-    public static final int FISHING_ROD_CAST_CD_MILLISECONDS = 100;
+    public final int FISHING_ROD_CAST_CD_MILLISECONDS = 100;
     private final long FISHING_COOLDOWN_SECONDS = 1000L;
     private final long FISHING_COOLDOWN_SECONDS = 1000L;
 
 
     private FishHook fishHookReference;
     private FishHook fishHookReference;

+ 11 - 5
src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java

@@ -9,6 +9,7 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
 import com.gmail.nossr50.datatypes.skills.SubSkillType;
 import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
 import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
 import com.gmail.nossr50.datatypes.skills.ToolType;
 import com.gmail.nossr50.datatypes.skills.ToolType;
+import com.gmail.nossr50.datatypes.skills.behaviours.HerbalismBehaviour;
 import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
 import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
 import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
@@ -21,6 +22,8 @@ import com.gmail.nossr50.util.skills.SkillActivationType;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import org.bukkit.Location;
 import org.bukkit.Location;
 import org.bukkit.Material;
 import org.bukkit.Material;
+import org.bukkit.block.Block;
+import org.bukkit.block.BlockFace;
 import org.bukkit.block.BlockState;
 import org.bukkit.block.BlockState;
 import org.bukkit.block.data.Ageable;
 import org.bukkit.block.data.Ageable;
 import org.bukkit.entity.Player;
 import org.bukkit.entity.Player;
@@ -28,10 +31,13 @@ import org.bukkit.inventory.ItemStack;
 import org.bukkit.inventory.PlayerInventory;
 import org.bukkit.inventory.PlayerInventory;
 import org.bukkit.metadata.FixedMetadataValue;
 import org.bukkit.metadata.FixedMetadataValue;
 
 
+import java.util.HashSet;
 import java.util.List;
 import java.util.List;
 
 
 public class HerbalismManager extends SkillManager {
 public class HerbalismManager extends SkillManager {
 
 
+    private final HerbalismBehaviour herbalismBehaviour;
+
     public HerbalismManager(mcMMO pluginRef,  McMMOPlayer mcMMOPlayer) {
     public HerbalismManager(mcMMO pluginRef,  McMMOPlayer mcMMOPlayer) {
         super(pluginRef, mcMMOPlayer, PrimarySkillType.HERBALISM);
         super(pluginRef, mcMMOPlayer, PrimarySkillType.HERBALISM);
     }
     }
@@ -114,7 +120,7 @@ public class HerbalismManager extends SkillManager {
         playerInventory.removeItem(seed);
         playerInventory.removeItem(seed);
         player.updateInventory(); // Needed until replacement available
         player.updateInventory(); // Needed until replacement available
 
 
-        return Herbalism.convertGreenTerraBlocks(blockState);
+        return convertGreenTerraBlocks(blockState);
     }
     }
 
 
     /**
     /**
@@ -152,9 +158,9 @@ public class HerbalismManager extends SkillManager {
         if (!oneBlockPlant) {
         if (!oneBlockPlant) {
             //Kelp is actually two blocks mixed together
             //Kelp is actually two blocks mixed together
             if (material == Material.KELP_PLANT || material == Material.KELP) {
             if (material == Material.KELP_PLANT || material == Material.KELP) {
-                amount = Herbalism.countAndMarkDoubleDropsKelp(blockState, greenTerra, this);
+                amount = countAndMarkDoubleDropsKelp(blockState, greenTerra, this);
             } else {
             } else {
-                amount = Herbalism.countAndMarkDoubleDropsMultiBlockPlant(blockState, greenTerra, this);
+                amount = countAndMarkDoubleDropsMultiBlockPlant(blockState, greenTerra, this);
             }
             }
 
 
             xp *= amount;
             xp *= amount;
@@ -198,7 +204,7 @@ public class HerbalismManager extends SkillManager {
             return false;
             return false;
         }
         }
 
 
-        return Herbalism.convertGreenTerraBlocks(blockState);
+        return convertGreenTerraBlocks(blockState);
     }
     }
 
 
     /**
     /**
@@ -269,7 +275,7 @@ public class HerbalismManager extends SkillManager {
             return false;
             return false;
         }
         }
 
 
-        return Herbalism.convertShroomThumb(blockState);
+        return convertShroomThumb(blockState);
     }
     }
 
 
     /**
     /**