فهرست منبع

new fishing skill Inner Peace

nossr50 6 سال پیش
والد
کامیت
78aeb0679b

+ 1 - 0
Changelog.txt

@@ -9,6 +9,7 @@ Key:
 
 
 Version 2.2.0
 Version 2.2.0
     mcMMO's config system has been rewritten
     mcMMO's config system has been rewritten
+    Added new subskill to Fishing named 'Inner Peace'
     mcMMO will now warn you in the console if it thinks you are running incompatible server software
     mcMMO will now warn you in the console if it thinks you are running incompatible server software
     Parties no longer have a cap, you can level them forever for bragging rights
     Parties no longer have a cap, you can level them forever for bragging rights
     You can now specify multiple repair-items for an item (such as specifying that a wooden sword can be repaired by all types of planks)
     You can now specify multiple repair-items for an item (such as specifying that a wooden sword can be repaired by all types of planks)

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

@@ -102,7 +102,7 @@ public class FishingCommand extends SkillCommand {
                 location = player.getLocation();
                 location = player.getLocation();
             }
             }
 
 
-            if (Fishing.masterAnglerBiomes.contains(location.getBlock().getBiome())) {
+            if (Fishing.getInstance().getMasterAnglerBiomes().contains(location.getBlock().getBiome())) {
                 rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBiomeModifier();
                 rawBiteChance = rawBiteChance * AdvancedConfig.getInstance().getMasterAnglerBiomeModifier();
             }
             }
 
 
@@ -163,6 +163,11 @@ public class FishingCommand extends SkillCommand {
                     String.valueOf(recordTreasure)));
                     String.valueOf(recordTreasure)));
         }
         }
 
 
+        if(canInnerPeace)
+        {
+            m
+        }
+
         return messages;
         return messages;
     }
     }
 
 

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

@@ -644,7 +644,6 @@ public class AdvancedConfig extends ConfigValidated {
 
 
     /* FISHING */
     /* FISHING */
     public double getShakeChance(int rank) { return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank)); }
     public double getShakeChance(int rank) { return getDoubleValue(SKILLS, FISHING, SHAKE, CHANCE, RANK, String.valueOf(rank)); }
-    public int getFishingVanillaXPModifier(int rank) { return getIntValue(SKILLS, FISHING, VANILLA_XPMULTIPLIER, RANK, String.valueOf(rank)); }
     public double getMasterAnglerBoatModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER); }
     public double getMasterAnglerBoatModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BOAT_MODIFIER); }
     public double getMasterAnglerBiomeModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER); }
     public double getMasterAnglerBiomeModifier() {return getDoubleValue(SKILLS, FISHING, MASTER_ANGLER, BIOME_MODIFIER); }
 
 

+ 0 - 26
src/main/java/com/gmail/nossr50/config/MainConfig.java

@@ -369,14 +369,6 @@ public class MainConfig extends ConfigValidated {
             reason.add(ABILITIES + "." + LIMITS + "." + TREE_FELLER_THRESHOLD + " should be greater than 0!");
             reason.add(ABILITIES + "." + LIMITS + "." + TREE_FELLER_THRESHOLD + " should be greater than 0!");
         }*/
         }*/
 
 
-        if (getFishingLureModifier() < 0) {
-            reason.add(ABILITIES + "." + FISHING + "." + LURE_MODIFIER + " should be at least 0!");
-        }
-
-        if (getDetonatorItem() == null) {
-            reason.add(SKILLS + "." + MINING + "." + DETONATOR + "Item is invalid!");
-        }
-
         /*if (getRepairAnvilMaterial() == null) {
         /*if (getRepairAnvilMaterial() == null) {
             reason.add(SKILLS + "." + REPAIR + "." + ANVIL + "Type is invalid!!");
             reason.add(SKILLS + "." + REPAIR + "." + ANVIL + "Type is invalid!!");
         }
         }
@@ -597,24 +589,6 @@ public class MainConfig extends ConfigValidated {
         return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_BOTTLES);
         return getBooleanValue(SKILLS, ALCHEMY, PREVENT_HOPPER_TRANSFER_BOTTLES);
     }
     }
 
 
-    /* Fishing */
-    public boolean getFishingDropsEnabled() {
-        return getBooleanValue(SKILLS, FISHING, DROPS + ENABLED);
-    }
-
-    public boolean getFishingOverrideTreasures() {
-        return getBooleanValue(SKILLS, FISHING, OVERRIDE_VANILLA_TREASURES);
-    }
-
-    public double getFishingLureModifier() {
-        return getDoubleValue(SKILLS, FISHING, LURE_MODIFIER);
-    }
-
-    /* Mining */
-    public Material getDetonatorItem() {
-        //Flint and steel
-        return Material.matchMaterial(getStringValue(SKILLS, MINING, DETONATOR + NAME));
-    }
 
 
     /* Unarmed */
     /* Unarmed */
     public boolean getUnarmedBlockCrackerSmoothbrickToCracked() {
     public boolean getUnarmedBlockCrackerSmoothbrickToCracked() {

+ 2 - 0
src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceFishing.java

@@ -33,4 +33,6 @@ public class ConfigExperienceFishing {
     public int getShakeXP() {
     public int getShakeXP() {
         return shakeXP;
         return shakeXP;
     }
     }
+
+
 }
 }

+ 30 - 0
src/main/java/com/gmail/nossr50/config/hocon/skills/fishing/ConfigFishing.java

@@ -3,12 +3,21 @@ package com.gmail.nossr50.config.hocon.skills.fishing;
 import ninja.leaping.configurate.objectmapping.Setting;
 import ninja.leaping.configurate.objectmapping.Setting;
 import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
 
 
+import java.util.HashMap;
+
 @ConfigSerializable
 @ConfigSerializable
 public class ConfigFishing {
 public class ConfigFishing {
 
 
     @Setting(value = "General")
     @Setting(value = "General")
     private ConfigFishingGeneral fishingGeneral = new ConfigFishingGeneral();
     private ConfigFishingGeneral fishingGeneral = new ConfigFishingGeneral();
 
 
+    @Setting(value = "Sub-Skills")
+    public ConfigFishingSubskills fishingSubskills = new ConfigFishingSubskills();
+
+    /*
+     * GETTERS BOILERPLATE
+     */
+
     public ConfigFishingGeneral getFishingGeneral() {
     public ConfigFishingGeneral getFishingGeneral() {
         return fishingGeneral;
         return fishingGeneral;
     }
     }
@@ -24,4 +33,25 @@ public class ConfigFishing {
     public boolean isOverrideVanillaTreasures() {
     public boolean isOverrideVanillaTreasures() {
         return fishingGeneral.isOverrideVanillaTreasures();
         return fishingGeneral.isOverrideVanillaTreasures();
     }
     }
+
+    public boolean isAllowCustomDrops() {
+        return fishingGeneral.isAllowCustomDrops();
+    }
+
+    public ConfigFishingSubskills getFishingSubskills() {
+        return fishingSubskills;
+    }
+
+    public ConfigFishingInnerPeace getInnerPeace() {
+        return fishingSubskills.getInnerPeace();
+    }
+
+    public HashMap<Integer, Integer> getInnerPeaceVanillaXPMultiplier() {
+        return getInnerPeace().getInnerPeaceVanillaXPMultiplier();
+    }
+
+    public int getVanillaXPMultInnerPeace(int rank)
+    {
+        return getInnerPeaceVanillaXPMultiplier().get(rank);
+    }
 }
 }

+ 9 - 0
src/main/java/com/gmail/nossr50/config/hocon/skills/fishing/ConfigFishingGeneral.java

@@ -9,6 +9,7 @@ public class ConfigFishingGeneral {
     private static final boolean ALWAYS_CATCH_FISH_DEFAULT = true;
     private static final boolean ALWAYS_CATCH_FISH_DEFAULT = true;
     private static final boolean OVERRIDE_VANILLA_TREASURES = true;
     private static final boolean OVERRIDE_VANILLA_TREASURES = true;
     public static final double LURE_MODIFIER_DEFAULT = 4.0D;
     public static final double LURE_MODIFIER_DEFAULT = 4.0D;
+    private static final boolean ALLOW_MCMMO_FISHING_REWARDS = true;
 
 
     @Setting(value = "Always-Catch-Fish", comment = "Enables fish to be caught alongside treasure." +
     @Setting(value = "Always-Catch-Fish", comment = "Enables fish to be caught alongside treasure." +
             "\nDefault value: "+ALWAYS_CATCH_FISH_DEFAULT)
             "\nDefault value: "+ALWAYS_CATCH_FISH_DEFAULT)
@@ -24,6 +25,14 @@ public class ConfigFishingGeneral {
             "\nDefault value: "+LURE_MODIFIER_DEFAULT)
             "\nDefault value: "+LURE_MODIFIER_DEFAULT)
     private double lureLuckModifier = LURE_MODIFIER_DEFAULT;
     private double lureLuckModifier = LURE_MODIFIER_DEFAULT;
 
 
+    @Setting(value = "Allow-Custom-Fishing-Drops", comment = "If set to true, allows mcMMO fishing treasures to be found while fishing." +
+            "\nDefault value: "+ALLOW_MCMMO_FISHING_REWARDS)
+    private boolean allowCustomDrops = ALLOW_MCMMO_FISHING_REWARDS;
+
+    public boolean isAllowCustomDrops() {
+        return allowCustomDrops;
+    }
+
     public double getLureLuckModifier() {
     public double getLureLuckModifier() {
         return lureLuckModifier;
         return lureLuckModifier;
     }
     }

+ 27 - 0
src/main/java/com/gmail/nossr50/config/hocon/skills/fishing/ConfigFishingInnerPeace.java

@@ -0,0 +1,27 @@
+package com.gmail.nossr50.config.hocon.skills.fishing;
+
+import ninja.leaping.configurate.objectmapping.Setting;
+import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
+
+import java.util.HashMap;
+
+@ConfigSerializable
+public class ConfigFishingInnerPeace {
+
+    private static final HashMap<Integer, Integer> INNER_PEACE_DEFAULT;
+
+    static {
+        INNER_PEACE_DEFAULT = new HashMap<>();
+        INNER_PEACE_DEFAULT.put(1, 3);
+        INNER_PEACE_DEFAULT.put(2, 5);
+        INNER_PEACE_DEFAULT.put(3, 7);
+    }
+
+    @Setting(value = "Vanilla-Orb-XP-Multipliers", comment = "How much Inner Peace will grant in bonus XP orbs" +
+            "\nThis value is used to multiply the number of vanilla XP orbs you would normally receive.")
+    private HashMap<Integer, Integer> innerPeaceVanillaXPMultiplier = INNER_PEACE_DEFAULT;
+
+    public HashMap<Integer, Integer> getInnerPeaceVanillaXPMultiplier() {
+        return innerPeaceVanillaXPMultiplier;
+    }
+}

+ 15 - 0
src/main/java/com/gmail/nossr50/config/hocon/skills/fishing/ConfigFishingSubskills.java

@@ -0,0 +1,15 @@
+package com.gmail.nossr50.config.hocon.skills.fishing;
+
+import ninja.leaping.configurate.objectmapping.Setting;
+import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
+
+@ConfigSerializable
+public class ConfigFishingSubskills {
+
+    @Setting(value = "Inner-Peace")
+    private ConfigFishingInnerPeace innerPeace = new ConfigFishingInnerPeace();
+
+    public ConfigFishingInnerPeace getInnerPeace() {
+        return innerPeace;
+    }
+}

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

@@ -1,19 +0,0 @@
-package com.gmail.nossr50.datatypes.skills;
-
-public class SubSkillFlags {
-    /*
-     * Bitwise Flags
-     * These are so I can flag properties for subskills
-     * Flags are in the power of 2 because binary is a base-2 system
-     */
-    public static final int ACTIVE                      = 1; //Active subskills are ones that aren't passive
-    public static final int SUPERABILITY                = 2; // Super abilities are redundantly active
-    public static final int RNG                         = 4; //If the subskill makes use of RNG
-    public static final int PVP                         = 8; //If the subskill has properties that change in PVP conditions
-    public static final int TIMED                       = 16; //If the subskill has a duration or time component
-    public static final int TARGET_COLLECTION           = 32; //If the subskill has multiple target types
-    public static final int REWARD_COLLECTION           = 64; //If the subskill has multiple reward types
-    public static final int CHARGES                     = 128;
-    public static final int LIMITED                     = 256;
-    //public static final int RANDOM_ACTIVATION           = 128; //If the subskill has random activation
-}

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

@@ -38,6 +38,7 @@ public enum SubSkillType {
     FISHING_MAGIC_HUNTER(1),
     FISHING_MAGIC_HUNTER(1),
     FISHING_MASTER_ANGLER(1),
     FISHING_MASTER_ANGLER(1),
     FISHING_TREASURE_HUNTER(8),
     FISHING_TREASURE_HUNTER(8),
+    FISHING_INNER_PEACE(3),
     FISHING_SHAKE(1),
     FISHING_SHAKE(1),
 
 
     /* Herbalism */
     /* Herbalism */

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

@@ -211,7 +211,7 @@ public class FishingManager extends SkillManager {
     }
     }
 
 
     protected int getVanillaXPBoostModifier() {
     protected int getVanillaXPBoostModifier() {
-        return AdvancedConfig.getInstance().getFishingVanillaXPModifier(getLootTier());
+        return mcMMO.getConfigManager().getConfigFishing().getVanillaXPMultInnerPeace(RankUtils.getRank(getPlayer(), SubSkillType.FISHING_INNER_PEACE));
     }
     }
 
 
     /**
     /**
@@ -283,12 +283,13 @@ public class FishingManager extends SkillManager {
      * @param fishingCatch The {@link Item} initially caught
      * @param fishingCatch The {@link Item} initially caught
      */
      */
     public void handleFishing(Item fishingCatch) {
     public void handleFishing(Item fishingCatch) {
-        int fishXp = ExperienceConfig.getInstance().getXp(PrimarySkillType.FISHING, fishingCatch.getItemStack().getType());
+        int fishXp = Fishing.getInstance().getFishXPValue(fishingCatch.getItemStack().getType());
         int treasureXp = 0;
         int treasureXp = 0;
         Player player = getPlayer();
         Player player = getPlayer();
         FishingTreasure treasure = null;
         FishingTreasure treasure = null;
 
 
-        if (MainConfig.getInstance().getFishingDropsEnabled() && Permissions.isSubSkillEnabled(player, SubSkillType.FISHING_TREASURE_HUNTER)) {
+        if (mcMMO.getConfigManager().getConfigFishing().isAllowCustomDrops()
+                && Permissions.isSubSkillEnabled(player, SubSkillType.FISHING_TREASURE_HUNTER)) {
             treasure = getFishingTreasure();
             treasure = getFishingTreasure();
         }
         }
 
 
@@ -326,7 +327,8 @@ public class FishingManager extends SkillManager {
                 }
                 }
 
 
                 if (mcMMO.getConfigManager().getConfigFishing().isAlwaysCatchFish()) {
                 if (mcMMO.getConfigManager().getConfigFishing().isAlwaysCatchFish()) {
-                    Misc.dropItem(player.getEyeLocation(), fishingCatch.getItemStack());
+                    /*Misc.dropItem(player.getEyeLocation(), fishingCatch.getItemStack());*/
+                    Misc.dropItem(fishingCatch.getLocation(), fishingCatch.getItemStack()).setVelocity(fishingCatch.getVelocity());
                 }
                 }
 
 
                 fishingCatch.setItemStack(treasureDrop);
                 fishingCatch.setItemStack(treasureDrop);

+ 9 - 0
src/main/resources/skillranks.yml

@@ -426,6 +426,15 @@ Fishing:
             Rank_6: 750
             Rank_6: 750
             Rank_7: 850
             Rank_7: 850
             Rank_8: 1000
             Rank_8: 1000
+    InnerPeace:
+        Standard:
+            Rank_1: 33
+            Rank_2: 66
+            Rank_3: 100
+        RetroMode:
+            Rank_1: 333
+            Rank_2: 666
+            Rank_3: 1000
 Swords:
 Swords:
     SwordsLimitBreak:
     SwordsLimitBreak:
         Standard:
         Standard: