瀏覽代碼

More work on new super abilities

nossr50 5 年之前
父節點
當前提交
916a747f88

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

@@ -563,7 +563,7 @@ public class Config extends AutoUpdateConfigLoader {
     }
 
     public int getLevelCap(PrimarySkillType skill) {
-        int cap = config.getInt("Skills." + StringUtils.getCapitalized(skill.toString()) + ".Level_Cap");
+        int cap = config.getInt("Skills." + StringUtils.getCapitalized(skill.toString()) + ".Level_Cap", 0);
         return (cap <= 0) ? Integer.MAX_VALUE : cap;
     }
 

+ 155 - 120
src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java

@@ -30,6 +30,72 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
     private final File usersFile;
     private static final Object fileWritingLock = new Object();
 
+    //Used to map out the split data in the FFDB
+    public static int USERNAME = 0;
+    public static int SKILLS_MINING = 1;
+    public static int EXP_MINING = 4;
+    public static int SKILLS_WOODCUTTING = 5;
+    public static int EXP_WOODCUTTING = 6;
+    public static int SKILLS_REPAIR = 7;
+    public static int SKILLS_UNARMED = 8;
+    public static int SKILLS_HERBALISM = 9;
+    public static int SKILLS_EXCAVATION = 10;
+    public static int SKILLS_ARCHERY = 11;
+    public static int SKILLS_SWORDS = 12;
+    public static int SKILLS_AXES = 13;
+    public static int SKILLS_ACROBATICS = 14;
+    public static int EXP_REPAIR = 15;
+    public static int EXP_UNARMED = 16;
+    public static int EXP_HERBALISM = 17;
+    public static int EXP_EXCAVATION = 18;
+    public static int EXP_ARCHERY = 19;
+    public static int EXP_SWORDS = 20;
+    public static int EXP_AXES = 21;
+    public static int EXP_ACROBATICS = 22;
+    public static int SKILLS_TAMING = 24;
+    public static int EXP_TAMING = 25;
+    public static int COOLDOWN_BERSERK = 26;
+    public static int COOLDOWN_GIGA_DRILL_BREAKER = 27;
+    public static int COOLDOWN_TREE_FELLER = 28;
+    public static int COOLDOWN_GREEN_TERRA = 29;
+    public static int COOLDOWN_SERRATED_STRIKES = 30;
+    public static int COOLDOWN_SKULL_SPLITTER = 31;
+    public static int COOLDOWN_SUPER_BREAKER = 32;
+    public static int SKILLS_FISHING = 34;
+    public static int EXP_FISHING = 35;
+    public static int COOLDOWN_BLAST_MINING = 36;
+    public static int LAST_LOGIN = 37;
+    public static int HEALTHBAR = 38;
+    public static int SKILLS_ALCHEMY = 39;
+    public static int EXP_ALCHEMY = 40;
+    public static int UUID_INDEX = 41;
+    public static int SCOREBOARD_TIPS = 42;
+    public static int COOLDOWN_CHIMAERA_WING = 43;
+    public static int SKILLS_TRIDENTS = 44;
+    public static int EXP_TRIDENTS = 45;
+    public static int SKILLS_CROSSBOWS = 46;
+    public static int EXP_CROSSBOWS = 47;
+    public static int BARSTATE_ACROBATICS = 48;
+    public static int BARSTATE_ALCHEMY = 49;
+    public static int BARSTATE_ARCHERY = 50;
+    public static int BARSTATE_AXES = 51;
+    public static int BARSTATE_EXCAVATION = 52;
+    public static int BARSTATE_FISHING = 53;
+    public static int BARSTATE_HERBALISM = 54;
+    public static int BARSTATE_MINING = 55;
+    public static int BARSTATE_REPAIR = 56;
+    public static int BARSTATE_SALVAGE = 57;
+    public static int BARSTATE_SMELTING = 58;
+    public static int BARSTATE_SWORDS = 59;
+    public static int BARSTATE_TAMING = 60;
+    public static int BARSTATE_UNARMED = 61;
+    public static int BARSTATE_WOODCUTTING = 62;
+    public static int BARSTATE_TRIDENTS = 63;
+    public static int BARSTATE_CROSSBOWS = 64;
+    public static int COOLDOWN_ARCHERY_SUPER_1 = 65;
+    public static int COOLDOWN_CROSSBOWS_SUPER_1 = 66;
+    public static int COOLDOWN_TRIDENTS_SUPER_1 = 67;
+
     protected FlatfileDatabaseManager() {
         usersFile = new File(mcMMO.getUsersFilePath());
         checkStructure();
@@ -491,6 +557,11 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                 out.append("0:"); // Scoreboard tips shown
                 out.append("0:"); // Chimaera Wing Dats
 
+                out.append("0:"); // Tridents Skill Level
+                out.append("0:"); // Tridents XP
+                out.append("0:"); // Crossbow Skill Level
+                out.append("0:"); // Crossbow XP Level
+
                 //Barstates for the 15 currently existing skills by ordinal value
                 out.append("NORMAL:"); // Acrobatics
                 out.append("NORMAL:"); // Alchemy
@@ -860,6 +931,8 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                     powerLevel += putStat(taming, playerName, skills.get(PrimarySkillType.TAMING));
                     powerLevel += putStat(unarmed, playerName, skills.get(PrimarySkillType.UNARMED));
                     powerLevel += putStat(woodcutting, playerName, skills.get(PrimarySkillType.WOODCUTTING));
+                    powerLevel += putStat(woodcutting, playerName, skills.get(PrimarySkillType.CROSSBOWS));
+                    powerLevel += putStat(woodcutting, playerName, skills.get(PrimarySkillType.TRIDENTS));
 
                     putStat(powerLevels, playerName, powerLevel);
                 }
@@ -940,6 +1013,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                         }
                         boolean updated = false;
                         String[] character = line.split(":");
+                        int originalLength = character.length;
 
                         // Prevent the same username from being present multiple times
                         if (!usernames.add(character[USERNAME])) {
@@ -950,10 +1024,6 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             }
                         }
 
-                        // Prevent the same player from being present multiple times
-                        if (character.length >= 42 && (!character[UUID_INDEX].isEmpty() && !character[UUID_INDEX].equals("NULL") && !players.add(character[UUID_INDEX]))) {
-                            continue;
-                        }
 
                         if (character.length < 33) {
                             // Before Version 1.0 - Drop
@@ -968,34 +1038,10 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             // Version 1.4.07-dev2
                             // commit 7bac0e2ca5143bce84dc160617fed97f0b1cb968
                             character[33] = "";
-                            if (oldVersion == null) {
-                                oldVersion = "1.4.07";
-                            }
+                            oldVersion = "1.4.07";
                             updated = true;
                         }
 
-                        //TODO: If new skills are added this needs to be rewritten
-                        if (Config.getInstance().getTruncateSkills()) {
-                            for (PrimarySkillType skill : PrimarySkillType.NON_CHILD_SKILLS) {
-                                int index = getSkillIndex(skill);
-                                if (index >= character.length) {
-                                    continue;
-                                }
-                                int cap = Config.getInstance().getLevelCap(skill);
-                                if (Integer.parseInt(character[index]) > cap) {
-                                    mcMMO.p.getLogger().warning("Truncating " + skill.getName() + " to configured max level for player " + character[USERNAME]);
-                                    character[index] = cap + "";
-                                    updated = true;
-                                }
-                            }
-                        }
-
-                        // If they're valid, rewrite them to the file.
-                        if (!updated && character.length == 43) {
-                            writer.append(line).append("\r\n");
-                            continue;
-                        }
-
                         if (character.length <= 33) {
                             // Introduction of HUDType
                             // Version 1.1.06
@@ -1003,6 +1049,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             character = Arrays.copyOf(character, character.length + 1);
                             character[character.length - 1] = "";
                             oldVersion = "1.1.06";
+                            updated = true;
                         }
 
                         if (character.length <= 35) {
@@ -1015,6 +1062,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.2.00";
                             }
+                            updated = true;
                         }
                         if (character.length <= 36) {
                             // Introduction of Blast Mining cooldowns
@@ -1025,6 +1073,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.3.00";
                             }
+                            updated = true;
                         }
                         if (character.length <= 37) {
                             // Making old-purge work with flatfile
@@ -1036,6 +1085,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.4.00";
                             }
+                            updated = true;
                         }
                         if (character.length <= 38) {
                             // Addition of mob healthbars
@@ -1046,6 +1096,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.4.06";
                             }
+                            updated = true;
                         }
                         if (character.length <= 39) {
                             // Addition of Alchemy
@@ -1056,6 +1107,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.4.08";
                             }
+                            updated = true;
                         }
                         if (character.length <= 41) {
                             // Addition of UUIDs
@@ -1066,6 +1118,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.5.01";
                             }
+                            updated = true;
                         }
                         if (character.length <= 42) {
                             // Addition of scoreboard tips auto disable
@@ -1076,6 +1129,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "1.5.02";
                             }
+                            updated = true;
                         }
 
                         if(character.length <= 43) {
@@ -1086,15 +1140,16 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             if (oldVersion == null) {
                                 oldVersion = "2.1.133";
                             }
+                            updated = true;
                         }
 
-                        if(character.length <= 65) {
+                        if(character.length <= 67) {
 
                             if (oldVersion == null) {
-                                oldVersion = "2.1.133";
+                                oldVersion = "2.1.134";
                             }
 
-                            character = Arrays.copyOf(character, 64); // new array size
+                            character = Arrays.copyOf(character, 68); // new array size
 
                             /*
                                 public static int SKILLS_TRIDENTS = 44;
@@ -1120,33 +1175,64 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                                 public static int BARSTATE_CROSSBOWS = 64;
                              */
 
-                            character[44-1] = "0"; //trident skill lvl
-                            character[45-1] = "0"; //trident xp value
-                            character[46-1] = "0"; //xbow skill lvl
-                            character[47-1] = "0"; //xbow xp lvl
+                            character[SKILLS_TRIDENTS] = "0"; //trident skill lvl
+                            character[EXP_TRIDENTS] = "0"; //trident xp value
+                            character[SKILLS_CROSSBOWS] = "0"; //xbow skill lvl
+                            character[EXP_CROSSBOWS] = "0"; //xbow xp lvl
 
                             //Barstates 48-64
-                            character[48-1] = "NORMAL";
-                            character[49-1] = "NORMAL";
-                            character[50-1] = "NORMAL";
-                            character[51-1] = "NORMAL";
-                            character[52-1] = "NORMAL";
-                            character[53-1] = "NORMAL";
-                            character[54-1] = "NORMAL";
-                            character[55-1] = "NORMAL";
-                            character[56-1] = "NORMAL";
-                            character[57-1] = "DISABLED"; //Child skills
-                            character[58-1] = "DISABLED"; //Child skills
-                            character[59-1] = "NORMAL";
-                            character[60-1] = "NORMAL";
-                            character[61-1] = "NORMAL";
-                            character[62-1] = "NORMAL";
-                            character[63-1] = "NORMAL";
-                            character[64-1] = "NORMAL";
+                            character[BARSTATE_ACROBATICS] = "NORMAL";
+                            character[BARSTATE_ALCHEMY] = "NORMAL";
+                            character[BARSTATE_ARCHERY] = "NORMAL";
+                            character[BARSTATE_AXES] = "NORMAL";
+                            character[BARSTATE_EXCAVATION] = "NORMAL";
+                            character[BARSTATE_FISHING] = "NORMAL";
+                            character[BARSTATE_HERBALISM] = "NORMAL";
+                            character[BARSTATE_MINING] = "NORMAL";
+                            character[BARSTATE_REPAIR] = "NORMAL";
+                            character[BARSTATE_SALVAGE] = "DISABLED"; //Child skills
+                            character[BARSTATE_SMELTING] = "DISABLED"; //Child skills
+                            character[BARSTATE_SWORDS] = "NORMAL";
+                            character[BARSTATE_TAMING] = "NORMAL";
+                            character[BARSTATE_UNARMED] = "NORMAL";
+                            character[BARSTATE_WOODCUTTING] = "NORMAL";
+                            character[BARSTATE_TRIDENTS] = "NORMAL";
+                            character[BARSTATE_CROSSBOWS] = "NORMAL";
+
+                            character[COOLDOWN_ARCHERY_SUPER_1] = "0";
+                            character[COOLDOWN_CROSSBOWS_SUPER_1] = "0";
+                            character[COOLDOWN_TRIDENTS_SUPER_1] = "0";
+                            updated = true;
+                        }
+
+                        //TODO: If new skills are added this needs to be rewritten
+                        if (Config.getInstance().getTruncateSkills()) {
+                            for (PrimarySkillType skill : PrimarySkillType.NON_CHILD_SKILLS) {
+                                int index = getSkillIndex(skill);
+                                if (index >= character.length) {
+                                    continue;
+                                }
+                                int cap = Config.getInstance().getLevelCap(skill);
+                                if (Integer.parseInt(character[index]) > cap) {
+                                    mcMMO.p.getLogger().warning("Truncating " + skill.getName() + " to configured max level for player " + character[USERNAME]);
+                                    character[index] = cap + "";
+                                    updated = true;
+                                }
+                            }
                         }
 
                         boolean corrupted = false;
 
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of date
+                        //TODO: Update this corruption code, its super out of dated
+
                         for (int i = 0; i < character.length; i++) {
                             //Sigh... this code
                             if (character[i].isEmpty() && !(i == 2 || i == 3 || i == 23 || i == 33 || i == 41)) {
@@ -1199,6 +1285,14 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                             line = org.apache.commons.lang.StringUtils.join(character, ":") + ":";
                         }
 
+                        // Prevent the same player from being present multiple times
+                        if (character.length == originalLength //If the length changed then the schema was expanded
+                                && (!character[UUID_INDEX].isEmpty()
+                                && !character[UUID_INDEX].equals("NULL")
+                                && !players.add(character[UUID_INDEX]))) {
+                            continue;
+                        }
+
                         writer.append(line).append("\r\n");
                     }
 
@@ -1314,11 +1408,14 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
         skillsDATS.put(SuperAbilityType.BERSERK, Integer.valueOf(character[COOLDOWN_BERSERK]));
         skillsDATS.put(SuperAbilityType.GREEN_TERRA, Integer.valueOf(character[COOLDOWN_GREEN_TERRA]));
         skillsDATS.put(SuperAbilityType.GIGA_DRILL_BREAKER, Integer.valueOf(character[COOLDOWN_GIGA_DRILL_BREAKER]));
-        // Archery - Unused
         skillsDATS.put(SuperAbilityType.SERRATED_STRIKES, Integer.valueOf(character[COOLDOWN_SERRATED_STRIKES]));
         skillsDATS.put(SuperAbilityType.SKULL_SPLITTER, Integer.valueOf(character[COOLDOWN_SKULL_SPLITTER]));
         // Acrobatics - Unused
         skillsDATS.put(SuperAbilityType.BLAST_MINING, Integer.valueOf(character[COOLDOWN_BLAST_MINING]));
+        skillsDATS.put(SuperAbilityType.ARCHERY_SUPER, Integer.valueOf(character[COOLDOWN_ARCHERY_SUPER_1]));
+        skillsDATS.put(SuperAbilityType.SUPER_SHOTGUN, Integer.valueOf(character[COOLDOWN_CROSSBOWS_SUPER_1]));
+        skillsDATS.put(SuperAbilityType.TRIDENT_SUPER, Integer.valueOf(character[COOLDOWN_TRIDENTS_SUPER_1]));
+
 
         try {
             mobHealthbarType = MobHealthbarType.valueOf(character[HEALTHBAR]);
@@ -1401,9 +1498,6 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
         return DatabaseType.FLATFILE;
     }
 
-    @Override
-    public void onDisable() { }
-
     private int getSkillIndex(PrimarySkillType skill) {
         switch (skill) {
             case ACROBATICS:
@@ -1438,71 +1532,12 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
                 return SKILLS_CROSSBOWS;
             default:
                 throw new RuntimeException("Primary Skills only");
-            
+
         }
     }
-    
-    public static int USERNAME = 0;
-    public static int SKILLS_MINING = 1;
-    public static int EXP_MINING = 4;
-    public static int SKILLS_WOODCUTTING = 5;
-    public static int EXP_WOODCUTTING = 6;
-    public static int SKILLS_REPAIR = 7;
-    public static int SKILLS_UNARMED = 8;
-    public static int SKILLS_HERBALISM = 9;
-    public static int SKILLS_EXCAVATION = 10;
-    public static int SKILLS_ARCHERY = 11;
-    public static int SKILLS_SWORDS = 12;
-    public static int SKILLS_AXES = 13;
-    public static int SKILLS_ACROBATICS = 14;
-    public static int EXP_REPAIR = 15;
-    public static int EXP_UNARMED = 16;
-    public static int EXP_HERBALISM = 17;
-    public static int EXP_EXCAVATION = 18;
-    public static int EXP_ARCHERY = 19;
-    public static int EXP_SWORDS = 20;
-    public static int EXP_AXES = 21;
-    public static int EXP_ACROBATICS = 22;
-    public static int SKILLS_TAMING = 24;
-    public static int EXP_TAMING = 25;
-    public static int COOLDOWN_BERSERK = 26;
-    public static int COOLDOWN_GIGA_DRILL_BREAKER = 27;
-    public static int COOLDOWN_TREE_FELLER = 28;
-    public static int COOLDOWN_GREEN_TERRA = 29;
-    public static int COOLDOWN_SERRATED_STRIKES = 30;
-    public static int COOLDOWN_SKULL_SPLITTER = 31;
-    public static int COOLDOWN_SUPER_BREAKER = 32;
-    public static int SKILLS_FISHING = 34;
-    public static int EXP_FISHING = 35;
-    public static int COOLDOWN_BLAST_MINING = 36;
-    public static int LAST_LOGIN = 37;
-    public static int HEALTHBAR = 38;
-    public static int SKILLS_ALCHEMY = 39;
-    public static int EXP_ALCHEMY = 40;
-    public static int UUID_INDEX = 41;
-    public static int SCOREBOARD_TIPS = 42;
-    public static int COOLDOWN_CHIMAERA_WING = 43;
-    public static int SKILLS_TRIDENTS = 44;
-    public static int EXP_TRIDENTS = 45;
-    public static int SKILLS_CROSSBOWS = 46;
-    public static int EXP_CROSSBOWS = 47;
-    public static int BARSTATE_ACROBATICS = 48;
-    public static int BARSTATE_ALCHEMY = 49;
-    public static int BARSTATE_ARCHERY = 50;
-    public static int BARSTATE_AXES = 51;
-    public static int BARSTATE_EXCAVATION = 52;
-    public static int BARSTATE_FISHING = 53;
-    public static int BARSTATE_HERBALISM = 54;
-    public static int BARSTATE_MINING = 55;
-    public static int BARSTATE_REPAIR = 56;
-    public static int BARSTATE_SALVAGE = 57;
-    public static int BARSTATE_SMELTING = 58;
-    public static int BARSTATE_SWORDS = 59;
-    public static int BARSTATE_TAMING = 60;
-    public static int BARSTATE_UNARMED = 61;
-    public static int BARSTATE_WOODCUTTING = 62;
-    public static int BARSTATE_TRIDENTS = 63;
-    public static int BARSTATE_CROSSBOWS = 64;
+
+    @Override
+    public void onDisable() { }
 
     public void resetMobHealthSettings() {
         BufferedReader in = null;

+ 25 - 0
src/main/java/com/gmail/nossr50/datatypes/skills/SuperAbilityType.java

@@ -77,6 +77,31 @@ public enum SuperAbilityType {
             "Mining.Blast.Refresh",
             null,
             "Mining.SubSkill.BlastMining.Name"),
+
+    ARCHERY_SUPER(
+            "Archery.SuperAbility.SuperAbilityName.On",
+            "Archery.SuperAbility.SuperAbilityName.Off",
+            "Archery.SuperAbility.SuperAbilityName.InformOthers.On",
+            "Archery.SuperAbility.SuperAbilityName.Refresh",
+            "Archery.SuperAbility.SuperAbilityName.InformOthers.Off",
+            "Archery.SuperAbility.SuperAbilityName.Name"
+    ),
+    SUPER_SHOTGUN(
+            "Crossbows.SuperAbility.SuperShotgun.On",
+            "Crossbows.SuperAbility.SuperShotgun.Off",
+            "Crossbows.SuperAbility.SuperShotgun.InformOthers.On",
+            "Crossbows.SuperAbility.SuperShotgun.Refresh",
+            "Crossbows.SuperAbility.SuperShotgun.InformOthers.Off",
+            "Crossbows.SuperAbility.SuperShotgun.Name"
+    ),
+    TRIDENT_SUPER(
+            "Tridents.SuperAbility.SuperAbilityName.On",
+            "Tridents.SuperAbility.SuperAbilityName.Off",
+            "Tridents.SuperAbility.SuperAbilityName.InformOthers.On",
+            "Tridents.SuperAbility.SuperAbilityName.Refresh",
+            "Tridents.SuperAbility.SuperAbilityName.InformOthers.Off",
+            "Tridents.SuperAbility.SuperAbilityName.Name"
+    ),
     ;
 
     /*

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

@@ -16,7 +16,6 @@ import org.bukkit.Bukkit;
 import org.bukkit.Material;
 import org.bukkit.block.Block;
 import org.bukkit.block.BlockState;
-import org.bukkit.entity.Item;
 import org.bukkit.entity.Player;
 import org.bukkit.event.player.PlayerInteractEvent;
 import org.bukkit.inventory.ItemStack;

+ 0 - 12
src/main/java/com/gmail/nossr50/util/input/SuperAbilityManager.java

@@ -7,16 +7,9 @@ import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
 import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
 import com.gmail.nossr50.datatypes.skills.ToolType;
-import com.gmail.nossr50.datatypes.skills.subskills.taming.CallOfTheWildType;
-import com.gmail.nossr50.events.fake.FakePlayerAnimationEvent;
 import com.gmail.nossr50.mcMMO;
 import com.gmail.nossr50.runnables.skills.AbilityDisableTask;
 import com.gmail.nossr50.runnables.skills.ToolLowerTask;
-import com.gmail.nossr50.skills.herbalism.HerbalismManager;
-import com.gmail.nossr50.skills.mining.MiningManager;
-import com.gmail.nossr50.skills.taming.TamingManager;
-import com.gmail.nossr50.util.BlockUtils;
-import com.gmail.nossr50.util.ChimaeraWing;
 import com.gmail.nossr50.util.EventUtils;
 import com.gmail.nossr50.util.Misc;
 import com.gmail.nossr50.util.player.NotificationManager;
@@ -25,12 +18,7 @@ import com.gmail.nossr50.util.skills.RankUtils;
 import com.gmail.nossr50.util.skills.SkillUtils;
 import com.gmail.nossr50.util.sounds.SoundManager;
 import com.gmail.nossr50.util.sounds.SoundType;
-import org.bukkit.Bukkit;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.block.BlockState;
 import org.bukkit.entity.Player;
-import org.bukkit.event.player.PlayerInteractEvent;
 import org.bukkit.inventory.ItemStack;
 
 import java.util.HashMap;

+ 6 - 2
src/main/resources/config.yml

@@ -238,8 +238,6 @@ Items:
         Recipe_Cost: 5
         Item_Name: FEATHER
         Sound_Enabled: true
-    Flux_Pickaxe:
-        Sound_Enabled: true
 
 #
 #  Settings for Parties
@@ -297,6 +295,9 @@ Abilities:
         Skull_Splitter: 240
         Super_Breaker: 240
         Tree_Feller: 240
+        Super_Shotgun: 240
+        Archery_Super: 240
+        Tridents_Super: 240
     Max_Seconds:
         Berserk: 0
         Blast_Mining: 0
@@ -306,6 +307,9 @@ Abilities:
         Skull_Splitter: 0
         Super_Breaker: 0
         Tree_Feller: 0
+        Super_Shotgun: 0
+        Archery_Super: 0
+        Tridents_Super: 0
     Limits:
         Tree_Feller_Threshold: 500
     Tools:

+ 26 - 1
src/main/resources/locale/locale_en_US.properties

@@ -558,6 +558,9 @@ Woodcutting.Skills.TreeFeller.Threshold=That tree is too large!
 Tridents.SubSkill.TridentsLimitBreak.Name=Tridents Limit Break
 Tridents.SubSkill.TridentsLimitBreak.Description=Breaking your limits. Increased damage against tough opponents. Intended for PVP, up to server settings for whether or not it will boost damage in PVE.
 Tridents.SubSkill.TridentsLimitBreak.Stat=Limit Break Max DMG
+Tridents.SubSkill.MultiTasking.Name=Multi Tasking
+Tridents.SubSkill.MultiTasking.Description=Hit additional targets
+Tridents.SubSkill.MultiTasking.Stat=Additional targets
 Tridents.Listener=Tridents:
 Tridents.SkillName=TRIDENTS
 
@@ -1140,4 +1143,26 @@ Commands.Description.mmoxpbar=Player settings for mcMMO XP bars
 Commands.Description.mmocompat=Information about mcMMO and whether or not its in compatibility mode or fully functional.
 Compatibility.Layer.Unsupported=[[GOLD]]Compatibility for [[GREEN]]{0}[[GOLD]] is not supported by this version of Minecraft.
 Compatibility.Layer.PartialSupport=[[GOLD]]Compatibility for [[GREEN]]{0}[[GOLD]] is not fully supported by this version of Minecraft, but mcMMO is running a secondary system to emulate some of the missing features.
-Commands.XPBar.DisableAll=[[GOLD]] All mcMMO XP bars are now disabled, use /mmoxpbar reset to restore default settings.
+Commands.XPBar.DisableAll=[[GOLD]] All mcMMO XP bars are now disabled, use /mmoxpbar reset to restore default settings.
+
+Archery.SuperAbility.SuperAbilityName.On=&a**SUPER ABILITY ACTIVATED**
+Archery.SuperAbility.SuperAbilityName.Off=**Super Ability has worn off**
+Archery.SuperAbility.SuperAbilityName.InformOthers.On=&a{0}[[DARK_GREEN]] has used [[RED]]Super Ability!
+Archery.SuperAbility.SuperAbilityName.InformOthers.Off=Super Ability &ahas worn off for [[YELLOW]]{0}
+Archery.SuperAbility.SuperAbilityName.Refresh=&aYour [[YELLOW]]Super Ability &ais refreshed!
+Archery.SuperAbility.SuperAbilityName.Name=Archery Super
+
+Crossbows.SuperAbility.SuperShotgun.On=&a**SUPER SHOTGUN ACTIVATED**
+Crossbows.SuperAbility.SuperShotgun.Off=**Super Shotgun has worn off**
+Crossbows.SuperAbility.SuperShotgun.InformOthers.On=&a{0}[[DARK_GREEN]] has used [[RED]]SSG!
+Crossbows.SuperAbility.SuperShotgun.InformOthers.Off=Super Ability &ahas worn off for [[YELLOW]]{0}
+Crossbows.SuperAbility.SuperShotgun.Refresh=&aYour [[YELLOW]]Super Shotgun &ais refreshed!
+Crossbows.SuperAbility.SuperShotgun.Name=Super Shotgun
+
+Tridents.SuperAbility.SuperAbilityName.On=&a**SUPER ABILITY ACTIVATED**
+Tridents.SuperAbility.SuperAbilityName.Off=**Super Ability has worn off**
+Tridents.SuperAbility.SuperAbilityName.InformOthers.On=&a{0}[[DARK_GREEN]] has used [[RED]]Super Ability!
+Tridents.SuperAbility.SuperAbilityName.InformOthers.Off=Super Ability &ahas worn off for [[YELLOW]]{0}
+Tridents.SuperAbility.SuperAbilityName.Refresh=&aYour [[YELLOW]]Super Ability &ais refreshed!
+Tridents.SuperAbility.SuperAbilityName.Name=Tridents Super
+