readLeaderboard(PrimarySkill skill, int pageNumber, int statsPerPage);
/**
- * Retrieve rank info into a HashMap from SkillType to the rank.
+ * Retrieve rank info into a HashMap from PrimarySkill to the rank.
*
* The special value null
is used to represent the Power
* Level rank (the combination of all skill levels).
@@ -61,7 +61,7 @@ public interface DatabaseManager {
* @param playerName The name of the user to retrieve the rankings for
* @return the requested rank information
*/
- public Map readRank(String playerName);
+ public Map readRank(String playerName);
/**
* Add a new user to the database.
diff --git a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java
index 6287a9e72..cd8cfe52b 100644
--- a/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java
+++ b/src/main/java/com/gmail/nossr50/database/FlatfileDatabaseManager.java
@@ -17,6 +17,8 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
import org.bukkit.OfflinePlayer;
import com.gmail.nossr50.mcMMO;
@@ -26,16 +28,12 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.database.UpgradeType;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.runnables.database.UUIDUpdateAsyncTask;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.StringUtils;
-import org.apache.commons.lang.ArrayUtils;
-
public final class FlatfileDatabaseManager implements DatabaseManager {
- private final HashMap> playerStatHash = new HashMap>();
+ private final HashMap> playerStatHash = new HashMap>();
private final List powerLevels = new ArrayList();
private long lastUpdate = 0;
@@ -71,7 +69,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
while ((line = in.readLine()) != null) {
String[] character = line.split(":");
- Map skills = getSkillMapFromLine(character);
+ Map skills = getSkillMapFromLine(character);
boolean powerless = true;
for (int skill : skills.values()) {
@@ -279,47 +277,47 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
else {
// Otherwise write the new player information
writer.append(playerName).append(":");
- writer.append(profile.getSkillLevel(SkillType.MINING)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.MINING)).append(":");
writer.append(":");
writer.append(":");
- writer.append(profile.getSkillXpLevel(SkillType.MINING)).append(":");
- writer.append(profile.getSkillLevel(SkillType.WOODCUTTING)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.WOODCUTTING)).append(":");
- writer.append(profile.getSkillLevel(SkillType.REPAIR)).append(":");
- writer.append(profile.getSkillLevel(SkillType.UNARMED)).append(":");
- writer.append(profile.getSkillLevel(SkillType.HERBALISM)).append(":");
- writer.append(profile.getSkillLevel(SkillType.EXCAVATION)).append(":");
- writer.append(profile.getSkillLevel(SkillType.ARCHERY)).append(":");
- writer.append(profile.getSkillLevel(SkillType.SWORDS)).append(":");
- writer.append(profile.getSkillLevel(SkillType.AXES)).append(":");
- writer.append(profile.getSkillLevel(SkillType.ACROBATICS)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.REPAIR)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.UNARMED)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.HERBALISM)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.EXCAVATION)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.ARCHERY)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.SWORDS)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.AXES)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.ACROBATICS)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.MINING)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.WOODCUTTING)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.WOODCUTTING)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.REPAIR)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.UNARMED)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.HERBALISM)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.EXCAVATION)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.ARCHERY)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.SWORDS)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.AXES)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.ACROBATICS)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.REPAIR)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.UNARMED)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.HERBALISM)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.EXCAVATION)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.ARCHERY)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.SWORDS)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.AXES)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.ACROBATICS)).append(":");
writer.append(":");
- writer.append(profile.getSkillLevel(SkillType.TAMING)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.TAMING)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.BERSERK)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.GIGA_DRILL_BREAKER)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.TREE_FELLER)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.GREEN_TERRA)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.SERRATED_STRIKES)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.SKULL_SPLITTER)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.SUPER_BREAKER)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.TAMING)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.TAMING)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.BERSERK)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.GIGA_DRILL_BREAKER)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.TREE_FELLER)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.GREEN_TERRA)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.SERRATED_STRIKES)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.SKULL_SPLITTER)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.SUPER_BREAKER)).append(":");
writer.append(":");
- writer.append(profile.getSkillLevel(SkillType.FISHING)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.FISHING)).append(":");
- writer.append((int) profile.getAbilityDATS(AbilityType.BLAST_MINING)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.FISHING)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.FISHING)).append(":");
+ writer.append((int) profile.getAbilityDATS(SuperAbility.BLAST_MINING)).append(":");
writer.append(System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR).append(":");
MobHealthbarType mobHealthbarType = profile.getMobHealthbarType();
writer.append(mobHealthbarType == null ? Config.getInstance().getMobHealthbarDefault().toString() : mobHealthbarType.toString()).append(":");
- writer.append(profile.getSkillLevel(SkillType.ALCHEMY)).append(":");
- writer.append(profile.getSkillXpLevel(SkillType.ALCHEMY)).append(":");
+ writer.append(profile.getSkillLevel(PrimarySkill.ALCHEMY)).append(":");
+ writer.append(profile.getSkillXpLevel(PrimarySkill.ALCHEMY)).append(":");
writer.append(uuid != null ? uuid.toString() : "NULL").append(":");
writer.append(profile.getScoreboardTipsShown()).append(":");
writer.append("\r\n");
@@ -356,7 +354,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
}
}
- public List readLeaderboard(SkillType skill, int pageNumber, int statsPerPage) {
+ public List readLeaderboard(PrimarySkill skill, int pageNumber, int statsPerPage) {
updateLeaderboards();
List statsList = skill == null ? powerLevels : playerStatHash.get(skill);
int fromIndex = (Math.max(pageNumber, 1) - 1) * statsPerPage;
@@ -364,12 +362,12 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
return statsList.subList(Math.min(fromIndex, statsList.size()), Math.min(fromIndex + statsPerPage, statsList.size()));
}
- public Map readRank(String playerName) {
+ public Map readRank(String playerName) {
updateLeaderboards();
- Map skills = new HashMap();
+ Map skills = new HashMap();
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
skills.put(skill, getPlayerRank(playerName, playerStatHash.get(skill)));
}
@@ -764,21 +762,21 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
playerName = data[USERNAME];
int powerLevel = 0;
- Map skills = getSkillMapFromLine(data);
+ Map skills = getSkillMapFromLine(data);
- powerLevel += putStat(acrobatics, playerName, skills.get(SkillType.ACROBATICS));
- powerLevel += putStat(alchemy, playerName, skills.get(SkillType.ALCHEMY));
- powerLevel += putStat(archery, playerName, skills.get(SkillType.ARCHERY));
- powerLevel += putStat(axes, playerName, skills.get(SkillType.AXES));
- powerLevel += putStat(excavation, playerName, skills.get(SkillType.EXCAVATION));
- powerLevel += putStat(fishing, playerName, skills.get(SkillType.FISHING));
- powerLevel += putStat(herbalism, playerName, skills.get(SkillType.HERBALISM));
- powerLevel += putStat(mining, playerName, skills.get(SkillType.MINING));
- powerLevel += putStat(repair, playerName, skills.get(SkillType.REPAIR));
- powerLevel += putStat(swords, playerName, skills.get(SkillType.SWORDS));
- powerLevel += putStat(taming, playerName, skills.get(SkillType.TAMING));
- powerLevel += putStat(unarmed, playerName, skills.get(SkillType.UNARMED));
- powerLevel += putStat(woodcutting, playerName, skills.get(SkillType.WOODCUTTING));
+ powerLevel += putStat(acrobatics, playerName, skills.get(PrimarySkill.ACROBATICS));
+ powerLevel += putStat(alchemy, playerName, skills.get(PrimarySkill.ALCHEMY));
+ powerLevel += putStat(archery, playerName, skills.get(PrimarySkill.ARCHERY));
+ powerLevel += putStat(axes, playerName, skills.get(PrimarySkill.AXES));
+ powerLevel += putStat(excavation, playerName, skills.get(PrimarySkill.EXCAVATION));
+ powerLevel += putStat(fishing, playerName, skills.get(PrimarySkill.FISHING));
+ powerLevel += putStat(herbalism, playerName, skills.get(PrimarySkill.HERBALISM));
+ powerLevel += putStat(mining, playerName, skills.get(PrimarySkill.MINING));
+ powerLevel += putStat(repair, playerName, skills.get(PrimarySkill.REPAIR));
+ powerLevel += putStat(swords, playerName, skills.get(PrimarySkill.SWORDS));
+ powerLevel += putStat(taming, playerName, skills.get(PrimarySkill.TAMING));
+ powerLevel += putStat(unarmed, playerName, skills.get(PrimarySkill.UNARMED));
+ powerLevel += putStat(woodcutting, playerName, skills.get(PrimarySkill.WOODCUTTING));
putStat(powerLevels, playerName, powerLevel);
}
@@ -815,19 +813,19 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
Collections.sort(alchemy, c);
Collections.sort(powerLevels, c);
- playerStatHash.put(SkillType.MINING, mining);
- playerStatHash.put(SkillType.WOODCUTTING, woodcutting);
- playerStatHash.put(SkillType.REPAIR, repair);
- playerStatHash.put(SkillType.UNARMED, unarmed);
- playerStatHash.put(SkillType.HERBALISM, herbalism);
- playerStatHash.put(SkillType.EXCAVATION, excavation);
- playerStatHash.put(SkillType.ARCHERY, archery);
- playerStatHash.put(SkillType.SWORDS, swords);
- playerStatHash.put(SkillType.AXES, axes);
- playerStatHash.put(SkillType.ACROBATICS, acrobatics);
- playerStatHash.put(SkillType.TAMING, taming);
- playerStatHash.put(SkillType.FISHING, fishing);
- playerStatHash.put(SkillType.ALCHEMY, alchemy);
+ playerStatHash.put(PrimarySkill.MINING, mining);
+ playerStatHash.put(PrimarySkill.WOODCUTTING, woodcutting);
+ playerStatHash.put(PrimarySkill.REPAIR, repair);
+ playerStatHash.put(PrimarySkill.UNARMED, unarmed);
+ playerStatHash.put(PrimarySkill.HERBALISM, herbalism);
+ playerStatHash.put(PrimarySkill.EXCAVATION, excavation);
+ playerStatHash.put(PrimarySkill.ARCHERY, archery);
+ playerStatHash.put(PrimarySkill.SWORDS, swords);
+ playerStatHash.put(PrimarySkill.AXES, axes);
+ playerStatHash.put(PrimarySkill.ACROBATICS, acrobatics);
+ playerStatHash.put(PrimarySkill.TAMING, taming);
+ playerStatHash.put(PrimarySkill.FISHING, fishing);
+ playerStatHash.put(PrimarySkill.ALCHEMY, alchemy);
}
/**
@@ -894,7 +892,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
}
if (Config.getInstance().getTruncateSkills()) {
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
int index = getSkillIndex(skill);
if (index >= character.length) {
continue;
@@ -1034,8 +1032,8 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
updated |= oldVersion != null;
if (Config.getInstance().getTruncateSkills()) {
- Map skills = getSkillMapFromLine(character);
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ Map skills = getSkillMapFromLine(character);
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
int cap = Config.getInstance().getLevelCap(skill);
if (skills.get(skill) > cap) {
updated = true;
@@ -1129,40 +1127,40 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
}
private PlayerProfile loadFromLine(String[] character) {
- Map skills = getSkillMapFromLine(character); // Skill levels
- Map skillsXp = new EnumMap(SkillType.class); // Skill & XP
- Map skillsDATS = new EnumMap(AbilityType.class); // Ability & Cooldown
+ Map skills = getSkillMapFromLine(character); // Skill levels
+ Map skillsXp = new EnumMap(PrimarySkill.class); // Skill & XP
+ Map skillsDATS = new EnumMap(SuperAbility.class); // Ability & Cooldown
MobHealthbarType mobHealthbarType;
int scoreboardTipsShown;
// TODO on updates, put new values in a try{} ?
- skillsXp.put(SkillType.TAMING, (float) Integer.valueOf(character[EXP_TAMING]));
- skillsXp.put(SkillType.MINING, (float) Integer.valueOf(character[EXP_MINING]));
- skillsXp.put(SkillType.REPAIR, (float) Integer.valueOf(character[EXP_REPAIR]));
- skillsXp.put(SkillType.WOODCUTTING, (float) Integer.valueOf(character[EXP_WOODCUTTING]));
- skillsXp.put(SkillType.UNARMED, (float) Integer.valueOf(character[EXP_UNARMED]));
- skillsXp.put(SkillType.HERBALISM, (float) Integer.valueOf(character[EXP_HERBALISM]));
- skillsXp.put(SkillType.EXCAVATION, (float) Integer.valueOf(character[EXP_EXCAVATION]));
- skillsXp.put(SkillType.ARCHERY, (float) Integer.valueOf(character[EXP_ARCHERY]));
- skillsXp.put(SkillType.SWORDS, (float) Integer.valueOf(character[EXP_SWORDS]));
- skillsXp.put(SkillType.AXES, (float) Integer.valueOf(character[EXP_AXES]));
- skillsXp.put(SkillType.ACROBATICS, (float) Integer.valueOf(character[EXP_ACROBATICS]));
- skillsXp.put(SkillType.FISHING, (float) Integer.valueOf(character[EXP_FISHING]));
- skillsXp.put(SkillType.ALCHEMY, (float) Integer.valueOf(character[EXP_ALCHEMY]));
+ skillsXp.put(PrimarySkill.TAMING, (float) Integer.valueOf(character[EXP_TAMING]));
+ skillsXp.put(PrimarySkill.MINING, (float) Integer.valueOf(character[EXP_MINING]));
+ skillsXp.put(PrimarySkill.REPAIR, (float) Integer.valueOf(character[EXP_REPAIR]));
+ skillsXp.put(PrimarySkill.WOODCUTTING, (float) Integer.valueOf(character[EXP_WOODCUTTING]));
+ skillsXp.put(PrimarySkill.UNARMED, (float) Integer.valueOf(character[EXP_UNARMED]));
+ skillsXp.put(PrimarySkill.HERBALISM, (float) Integer.valueOf(character[EXP_HERBALISM]));
+ skillsXp.put(PrimarySkill.EXCAVATION, (float) Integer.valueOf(character[EXP_EXCAVATION]));
+ skillsXp.put(PrimarySkill.ARCHERY, (float) Integer.valueOf(character[EXP_ARCHERY]));
+ skillsXp.put(PrimarySkill.SWORDS, (float) Integer.valueOf(character[EXP_SWORDS]));
+ skillsXp.put(PrimarySkill.AXES, (float) Integer.valueOf(character[EXP_AXES]));
+ skillsXp.put(PrimarySkill.ACROBATICS, (float) Integer.valueOf(character[EXP_ACROBATICS]));
+ skillsXp.put(PrimarySkill.FISHING, (float) Integer.valueOf(character[EXP_FISHING]));
+ skillsXp.put(PrimarySkill.ALCHEMY, (float) Integer.valueOf(character[EXP_ALCHEMY]));
// Taming - Unused
- skillsDATS.put(AbilityType.SUPER_BREAKER, Integer.valueOf(character[COOLDOWN_SUPER_BREAKER]));
+ skillsDATS.put(SuperAbility.SUPER_BREAKER, Integer.valueOf(character[COOLDOWN_SUPER_BREAKER]));
// Repair - Unused
- skillsDATS.put(AbilityType.TREE_FELLER, Integer.valueOf(character[COOLDOWN_TREE_FELLER]));
- skillsDATS.put(AbilityType.BERSERK, Integer.valueOf(character[COOLDOWN_BERSERK]));
- skillsDATS.put(AbilityType.GREEN_TERRA, Integer.valueOf(character[COOLDOWN_GREEN_TERRA]));
- skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, Integer.valueOf(character[COOLDOWN_GIGA_DRILL_BREAKER]));
+ skillsDATS.put(SuperAbility.TREE_FELLER, Integer.valueOf(character[COOLDOWN_TREE_FELLER]));
+ skillsDATS.put(SuperAbility.BERSERK, Integer.valueOf(character[COOLDOWN_BERSERK]));
+ skillsDATS.put(SuperAbility.GREEN_TERRA, Integer.valueOf(character[COOLDOWN_GREEN_TERRA]));
+ skillsDATS.put(SuperAbility.GIGA_DRILL_BREAKER, Integer.valueOf(character[COOLDOWN_GIGA_DRILL_BREAKER]));
// Archery - Unused
- skillsDATS.put(AbilityType.SERRATED_STRIKES, Integer.valueOf(character[COOLDOWN_SERRATED_STRIKES]));
- skillsDATS.put(AbilityType.SKULL_SPLITTER, Integer.valueOf(character[COOLDOWN_SKULL_SPLITTER]));
+ skillsDATS.put(SuperAbility.SERRATED_STRIKES, Integer.valueOf(character[COOLDOWN_SERRATED_STRIKES]));
+ skillsDATS.put(SuperAbility.SKULL_SPLITTER, Integer.valueOf(character[COOLDOWN_SKULL_SPLITTER]));
// Acrobatics - Unused
- skillsDATS.put(AbilityType.BLAST_MINING, Integer.valueOf(character[COOLDOWN_BLAST_MINING]));
+ skillsDATS.put(SuperAbility.BLAST_MINING, Integer.valueOf(character[COOLDOWN_BLAST_MINING]));
try {
mobHealthbarType = MobHealthbarType.valueOf(character[HEALTHBAR]);
@@ -1189,22 +1187,22 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
return new PlayerProfile(character[USERNAME], uuid, skills, skillsXp, skillsDATS, mobHealthbarType, scoreboardTipsShown);
}
- private Map getSkillMapFromLine(String[] character) {
- Map skills = new EnumMap(SkillType.class); // Skill & Level
+ private Map getSkillMapFromLine(String[] character) {
+ Map skills = new EnumMap(PrimarySkill.class); // Skill & Level
- skills.put(SkillType.TAMING, Integer.valueOf(character[SKILLS_TAMING]));
- skills.put(SkillType.MINING, Integer.valueOf(character[SKILLS_MINING]));
- skills.put(SkillType.REPAIR, Integer.valueOf(character[SKILLS_REPAIR]));
- skills.put(SkillType.WOODCUTTING, Integer.valueOf(character[SKILLS_WOODCUTTING]));
- skills.put(SkillType.UNARMED, Integer.valueOf(character[SKILLS_UNARMED]));
- skills.put(SkillType.HERBALISM, Integer.valueOf(character[SKILLS_HERBALISM]));
- skills.put(SkillType.EXCAVATION, Integer.valueOf(character[SKILLS_EXCAVATION]));
- skills.put(SkillType.ARCHERY, Integer.valueOf(character[SKILLS_ARCHERY]));
- skills.put(SkillType.SWORDS, Integer.valueOf(character[SKILLS_SWORDS]));
- skills.put(SkillType.AXES, Integer.valueOf(character[SKILLS_AXES]));
- skills.put(SkillType.ACROBATICS, Integer.valueOf(character[SKILLS_ACROBATICS]));
- skills.put(SkillType.FISHING, Integer.valueOf(character[SKILLS_FISHING]));
- skills.put(SkillType.ALCHEMY, Integer.valueOf(character[SKILLS_ALCHEMY]));
+ skills.put(PrimarySkill.TAMING, Integer.valueOf(character[SKILLS_TAMING]));
+ skills.put(PrimarySkill.MINING, Integer.valueOf(character[SKILLS_MINING]));
+ skills.put(PrimarySkill.REPAIR, Integer.valueOf(character[SKILLS_REPAIR]));
+ skills.put(PrimarySkill.WOODCUTTING, Integer.valueOf(character[SKILLS_WOODCUTTING]));
+ skills.put(PrimarySkill.UNARMED, Integer.valueOf(character[SKILLS_UNARMED]));
+ skills.put(PrimarySkill.HERBALISM, Integer.valueOf(character[SKILLS_HERBALISM]));
+ skills.put(PrimarySkill.EXCAVATION, Integer.valueOf(character[SKILLS_EXCAVATION]));
+ skills.put(PrimarySkill.ARCHERY, Integer.valueOf(character[SKILLS_ARCHERY]));
+ skills.put(PrimarySkill.SWORDS, Integer.valueOf(character[SKILLS_SWORDS]));
+ skills.put(PrimarySkill.AXES, Integer.valueOf(character[SKILLS_AXES]));
+ skills.put(PrimarySkill.ACROBATICS, Integer.valueOf(character[SKILLS_ACROBATICS]));
+ skills.put(PrimarySkill.FISHING, Integer.valueOf(character[SKILLS_FISHING]));
+ skills.put(PrimarySkill.ALCHEMY, Integer.valueOf(character[SKILLS_ALCHEMY]));
return skills;
}
@@ -1216,7 +1214,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
@Override
public void onDisable() { }
- private int getSkillIndex(SkillType skill) {
+ private int getSkillIndex(PrimarySkill skill) {
switch (skill) {
case ACROBATICS:
return SKILLS_ACROBATICS;
diff --git a/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java b/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java
index cd247470c..aaa08e184 100644
--- a/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java
+++ b/src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java
@@ -6,8 +6,8 @@ import com.gmail.nossr50.datatypes.database.DatabaseType;
import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.database.UpgradeType;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.database.UUIDUpdateAsyncTask;
import com.gmail.nossr50.util.Misc;
@@ -226,22 +226,22 @@ public final class SQLDatabaseManager implements DatabaseManager {
+ ", unarmed = ?, herbalism = ?, excavation = ?"
+ ", archery = ?, swords = ?, axes = ?, acrobatics = ?"
+ ", fishing = ?, alchemy = ?, total = ? WHERE user_id = ?");
- statement.setInt(1, profile.getSkillLevel(SkillType.TAMING));
- statement.setInt(2, profile.getSkillLevel(SkillType.MINING));
- statement.setInt(3, profile.getSkillLevel(SkillType.REPAIR));
- statement.setInt(4, profile.getSkillLevel(SkillType.WOODCUTTING));
- statement.setInt(5, profile.getSkillLevel(SkillType.UNARMED));
- statement.setInt(6, profile.getSkillLevel(SkillType.HERBALISM));
- statement.setInt(7, profile.getSkillLevel(SkillType.EXCAVATION));
- statement.setInt(8, profile.getSkillLevel(SkillType.ARCHERY));
- statement.setInt(9, profile.getSkillLevel(SkillType.SWORDS));
- statement.setInt(10, profile.getSkillLevel(SkillType.AXES));
- statement.setInt(11, profile.getSkillLevel(SkillType.ACROBATICS));
- statement.setInt(12, profile.getSkillLevel(SkillType.FISHING));
- statement.setInt(13, profile.getSkillLevel(SkillType.ALCHEMY));
+ statement.setInt(1, profile.getSkillLevel(PrimarySkill.TAMING));
+ statement.setInt(2, profile.getSkillLevel(PrimarySkill.MINING));
+ statement.setInt(3, profile.getSkillLevel(PrimarySkill.REPAIR));
+ statement.setInt(4, profile.getSkillLevel(PrimarySkill.WOODCUTTING));
+ statement.setInt(5, profile.getSkillLevel(PrimarySkill.UNARMED));
+ statement.setInt(6, profile.getSkillLevel(PrimarySkill.HERBALISM));
+ statement.setInt(7, profile.getSkillLevel(PrimarySkill.EXCAVATION));
+ statement.setInt(8, profile.getSkillLevel(PrimarySkill.ARCHERY));
+ statement.setInt(9, profile.getSkillLevel(PrimarySkill.SWORDS));
+ statement.setInt(10, profile.getSkillLevel(PrimarySkill.AXES));
+ statement.setInt(11, profile.getSkillLevel(PrimarySkill.ACROBATICS));
+ statement.setInt(12, profile.getSkillLevel(PrimarySkill.FISHING));
+ statement.setInt(13, profile.getSkillLevel(PrimarySkill.ALCHEMY));
int total = 0;
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS)
- total += profile.getSkillLevel(skillType);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS)
+ total += profile.getSkillLevel(primarySkill);
statement.setInt(14, total);
statement.setInt(15, id);
success &= (statement.executeUpdate() != 0);
@@ -256,19 +256,19 @@ public final class SQLDatabaseManager implements DatabaseManager {
+ ", unarmed = ?, herbalism = ?, excavation = ?"
+ ", archery = ?, swords = ?, axes = ?, acrobatics = ?"
+ ", fishing = ?, alchemy = ? WHERE user_id = ?");
- statement.setInt(1, profile.getSkillXpLevel(SkillType.TAMING));
- statement.setInt(2, profile.getSkillXpLevel(SkillType.MINING));
- statement.setInt(3, profile.getSkillXpLevel(SkillType.REPAIR));
- statement.setInt(4, profile.getSkillXpLevel(SkillType.WOODCUTTING));
- statement.setInt(5, profile.getSkillXpLevel(SkillType.UNARMED));
- statement.setInt(6, profile.getSkillXpLevel(SkillType.HERBALISM));
- statement.setInt(7, profile.getSkillXpLevel(SkillType.EXCAVATION));
- statement.setInt(8, profile.getSkillXpLevel(SkillType.ARCHERY));
- statement.setInt(9, profile.getSkillXpLevel(SkillType.SWORDS));
- statement.setInt(10, profile.getSkillXpLevel(SkillType.AXES));
- statement.setInt(11, profile.getSkillXpLevel(SkillType.ACROBATICS));
- statement.setInt(12, profile.getSkillXpLevel(SkillType.FISHING));
- statement.setInt(13, profile.getSkillXpLevel(SkillType.ALCHEMY));
+ statement.setInt(1, profile.getSkillXpLevel(PrimarySkill.TAMING));
+ statement.setInt(2, profile.getSkillXpLevel(PrimarySkill.MINING));
+ statement.setInt(3, profile.getSkillXpLevel(PrimarySkill.REPAIR));
+ statement.setInt(4, profile.getSkillXpLevel(PrimarySkill.WOODCUTTING));
+ statement.setInt(5, profile.getSkillXpLevel(PrimarySkill.UNARMED));
+ statement.setInt(6, profile.getSkillXpLevel(PrimarySkill.HERBALISM));
+ statement.setInt(7, profile.getSkillXpLevel(PrimarySkill.EXCAVATION));
+ statement.setInt(8, profile.getSkillXpLevel(PrimarySkill.ARCHERY));
+ statement.setInt(9, profile.getSkillXpLevel(PrimarySkill.SWORDS));
+ statement.setInt(10, profile.getSkillXpLevel(PrimarySkill.AXES));
+ statement.setInt(11, profile.getSkillXpLevel(PrimarySkill.ACROBATICS));
+ statement.setInt(12, profile.getSkillXpLevel(PrimarySkill.FISHING));
+ statement.setInt(13, profile.getSkillXpLevel(PrimarySkill.ALCHEMY));
statement.setInt(14, id);
success &= (statement.executeUpdate() != 0);
statement.close();
@@ -281,14 +281,14 @@ public final class SQLDatabaseManager implements DatabaseManager {
+ " mining = ?, woodcutting = ?, unarmed = ?"
+ ", herbalism = ?, excavation = ?, swords = ?"
+ ", axes = ?, blast_mining = ? WHERE user_id = ?");
- statement.setLong(1, profile.getAbilityDATS(AbilityType.SUPER_BREAKER));
- statement.setLong(2, profile.getAbilityDATS(AbilityType.TREE_FELLER));
- statement.setLong(3, profile.getAbilityDATS(AbilityType.BERSERK));
- statement.setLong(4, profile.getAbilityDATS(AbilityType.GREEN_TERRA));
- statement.setLong(5, profile.getAbilityDATS(AbilityType.GIGA_DRILL_BREAKER));
- statement.setLong(6, profile.getAbilityDATS(AbilityType.SERRATED_STRIKES));
- statement.setLong(7, profile.getAbilityDATS(AbilityType.SKULL_SPLITTER));
- statement.setLong(8, profile.getAbilityDATS(AbilityType.BLAST_MINING));
+ statement.setLong(1, profile.getAbilityDATS(SuperAbility.SUPER_BREAKER));
+ statement.setLong(2, profile.getAbilityDATS(SuperAbility.TREE_FELLER));
+ statement.setLong(3, profile.getAbilityDATS(SuperAbility.BERSERK));
+ statement.setLong(4, profile.getAbilityDATS(SuperAbility.GREEN_TERRA));
+ statement.setLong(5, profile.getAbilityDATS(SuperAbility.GIGA_DRILL_BREAKER));
+ statement.setLong(6, profile.getAbilityDATS(SuperAbility.SERRATED_STRIKES));
+ statement.setLong(7, profile.getAbilityDATS(SuperAbility.SKULL_SPLITTER));
+ statement.setLong(8, profile.getAbilityDATS(SuperAbility.BLAST_MINING));
statement.setInt(9, id);
success = (statement.executeUpdate() != 0);
statement.close();
@@ -319,7 +319,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
return success;
}
- public List readLeaderboard(SkillType skill, int pageNumber, int statsPerPage) {
+ public List readLeaderboard(PrimarySkill skill, int pageNumber, int statsPerPage) {
List stats = new ArrayList();
String query = skill == null ? ALL_QUERY_VERSION : skill.name().toLowerCase();
@@ -356,8 +356,8 @@ public final class SQLDatabaseManager implements DatabaseManager {
return stats;
}
- public Map readRank(String playerName) {
- Map skills = new HashMap();
+ public Map readRank(String playerName) {
+ Map skills = new HashMap();
ResultSet resultSet = null;
PreparedStatement statement = null;
@@ -365,8 +365,8 @@ public final class SQLDatabaseManager implements DatabaseManager {
try {
connection = getConnection(PoolIdentifier.MISC);
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- String skillName = skillType.name().toLowerCase();
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ String skillName = primarySkill.name().toLowerCase();
// Get count of all users with higher skill level than player
String sql = "SELECT COUNT(*) AS rank FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id WHERE " + skillName + " > 0 " +
"AND " + skillName + " > (SELECT " + skillName + " FROM " + tablePrefix + "users JOIN " + tablePrefix + "skills ON user_id = id " +
@@ -393,7 +393,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
while (resultSet.next()) {
if (resultSet.getString("user").equalsIgnoreCase(playerName)) {
- skills.put(skillType, rank + resultSet.getRow());
+ skills.put(primarySkill, rank + resultSet.getRow());
break;
}
}
@@ -880,7 +880,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
}
if (Config.getInstance().getTruncateSkills()) {
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
int cap = Config.getInstance().getLevelCap(skill);
if (cap != Integer.MAX_VALUE) {
statement = connection.prepareStatement("UPDATE `" + tablePrefix + "skills` SET `" + skill.name().toLowerCase() + "` = " + cap + " WHERE `" + skill.name().toLowerCase() + "` > " + cap);
@@ -1039,9 +1039,9 @@ public final class SQLDatabaseManager implements DatabaseManager {
}
private PlayerProfile loadFromResult(String playerName, ResultSet result) throws SQLException {
- Map skills = new EnumMap(SkillType.class); // Skill & Level
- Map skillsXp = new EnumMap(SkillType.class); // Skill & XP
- Map skillsDATS = new EnumMap(AbilityType.class); // Ability & Cooldown
+ Map skills = new EnumMap(PrimarySkill.class); // Skill & Level
+ Map skillsXp = new EnumMap(PrimarySkill.class); // Skill & XP
+ Map skillsDATS = new EnumMap(SuperAbility.class); // Ability & Cooldown
MobHealthbarType mobHealthbarType;
UUID uuid;
int scoreboardTipsShown;
@@ -1052,46 +1052,46 @@ public final class SQLDatabaseManager implements DatabaseManager {
final int OFFSET_DATS = 26;
final int OFFSET_OTHER = 38;
- skills.put(SkillType.TAMING, result.getInt(OFFSET_SKILLS + 1));
- skills.put(SkillType.MINING, result.getInt(OFFSET_SKILLS + 2));
- skills.put(SkillType.REPAIR, result.getInt(OFFSET_SKILLS + 3));
- skills.put(SkillType.WOODCUTTING, result.getInt(OFFSET_SKILLS + 4));
- skills.put(SkillType.UNARMED, result.getInt(OFFSET_SKILLS + 5));
- skills.put(SkillType.HERBALISM, result.getInt(OFFSET_SKILLS + 6));
- skills.put(SkillType.EXCAVATION, result.getInt(OFFSET_SKILLS + 7));
- skills.put(SkillType.ARCHERY, result.getInt(OFFSET_SKILLS + 8));
- skills.put(SkillType.SWORDS, result.getInt(OFFSET_SKILLS + 9));
- skills.put(SkillType.AXES, result.getInt(OFFSET_SKILLS + 10));
- skills.put(SkillType.ACROBATICS, result.getInt(OFFSET_SKILLS + 11));
- skills.put(SkillType.FISHING, result.getInt(OFFSET_SKILLS + 12));
- skills.put(SkillType.ALCHEMY, result.getInt(OFFSET_SKILLS + 13));
+ skills.put(PrimarySkill.TAMING, result.getInt(OFFSET_SKILLS + 1));
+ skills.put(PrimarySkill.MINING, result.getInt(OFFSET_SKILLS + 2));
+ skills.put(PrimarySkill.REPAIR, result.getInt(OFFSET_SKILLS + 3));
+ skills.put(PrimarySkill.WOODCUTTING, result.getInt(OFFSET_SKILLS + 4));
+ skills.put(PrimarySkill.UNARMED, result.getInt(OFFSET_SKILLS + 5));
+ skills.put(PrimarySkill.HERBALISM, result.getInt(OFFSET_SKILLS + 6));
+ skills.put(PrimarySkill.EXCAVATION, result.getInt(OFFSET_SKILLS + 7));
+ skills.put(PrimarySkill.ARCHERY, result.getInt(OFFSET_SKILLS + 8));
+ skills.put(PrimarySkill.SWORDS, result.getInt(OFFSET_SKILLS + 9));
+ skills.put(PrimarySkill.AXES, result.getInt(OFFSET_SKILLS + 10));
+ skills.put(PrimarySkill.ACROBATICS, result.getInt(OFFSET_SKILLS + 11));
+ skills.put(PrimarySkill.FISHING, result.getInt(OFFSET_SKILLS + 12));
+ skills.put(PrimarySkill.ALCHEMY, result.getInt(OFFSET_SKILLS + 13));
- skillsXp.put(SkillType.TAMING, result.getFloat(OFFSET_XP + 1));
- skillsXp.put(SkillType.MINING, result.getFloat(OFFSET_XP + 2));
- skillsXp.put(SkillType.REPAIR, result.getFloat(OFFSET_XP + 3));
- skillsXp.put(SkillType.WOODCUTTING, result.getFloat(OFFSET_XP + 4));
- skillsXp.put(SkillType.UNARMED, result.getFloat(OFFSET_XP + 5));
- skillsXp.put(SkillType.HERBALISM, result.getFloat(OFFSET_XP + 6));
- skillsXp.put(SkillType.EXCAVATION, result.getFloat(OFFSET_XP + 7));
- skillsXp.put(SkillType.ARCHERY, result.getFloat(OFFSET_XP + 8));
- skillsXp.put(SkillType.SWORDS, result.getFloat(OFFSET_XP + 9));
- skillsXp.put(SkillType.AXES, result.getFloat(OFFSET_XP + 10));
- skillsXp.put(SkillType.ACROBATICS, result.getFloat(OFFSET_XP + 11));
- skillsXp.put(SkillType.FISHING, result.getFloat(OFFSET_XP + 12));
- skillsXp.put(SkillType.ALCHEMY, result.getFloat(OFFSET_XP + 13));
+ skillsXp.put(PrimarySkill.TAMING, result.getFloat(OFFSET_XP + 1));
+ skillsXp.put(PrimarySkill.MINING, result.getFloat(OFFSET_XP + 2));
+ skillsXp.put(PrimarySkill.REPAIR, result.getFloat(OFFSET_XP + 3));
+ skillsXp.put(PrimarySkill.WOODCUTTING, result.getFloat(OFFSET_XP + 4));
+ skillsXp.put(PrimarySkill.UNARMED, result.getFloat(OFFSET_XP + 5));
+ skillsXp.put(PrimarySkill.HERBALISM, result.getFloat(OFFSET_XP + 6));
+ skillsXp.put(PrimarySkill.EXCAVATION, result.getFloat(OFFSET_XP + 7));
+ skillsXp.put(PrimarySkill.ARCHERY, result.getFloat(OFFSET_XP + 8));
+ skillsXp.put(PrimarySkill.SWORDS, result.getFloat(OFFSET_XP + 9));
+ skillsXp.put(PrimarySkill.AXES, result.getFloat(OFFSET_XP + 10));
+ skillsXp.put(PrimarySkill.ACROBATICS, result.getFloat(OFFSET_XP + 11));
+ skillsXp.put(PrimarySkill.FISHING, result.getFloat(OFFSET_XP + 12));
+ skillsXp.put(PrimarySkill.ALCHEMY, result.getFloat(OFFSET_XP + 13));
// Taming - Unused - result.getInt(OFFSET_DATS + 1)
- skillsDATS.put(AbilityType.SUPER_BREAKER, result.getInt(OFFSET_DATS + 2));
+ skillsDATS.put(SuperAbility.SUPER_BREAKER, result.getInt(OFFSET_DATS + 2));
// Repair - Unused - result.getInt(OFFSET_DATS + 3)
- skillsDATS.put(AbilityType.TREE_FELLER, result.getInt(OFFSET_DATS + 4));
- skillsDATS.put(AbilityType.BERSERK, result.getInt(OFFSET_DATS + 5));
- skillsDATS.put(AbilityType.GREEN_TERRA, result.getInt(OFFSET_DATS + 6));
- skillsDATS.put(AbilityType.GIGA_DRILL_BREAKER, result.getInt(OFFSET_DATS + 7));
+ skillsDATS.put(SuperAbility.TREE_FELLER, result.getInt(OFFSET_DATS + 4));
+ skillsDATS.put(SuperAbility.BERSERK, result.getInt(OFFSET_DATS + 5));
+ skillsDATS.put(SuperAbility.GREEN_TERRA, result.getInt(OFFSET_DATS + 6));
+ skillsDATS.put(SuperAbility.GIGA_DRILL_BREAKER, result.getInt(OFFSET_DATS + 7));
// Archery - Unused - result.getInt(OFFSET_DATS + 8)
- skillsDATS.put(AbilityType.SERRATED_STRIKES, result.getInt(OFFSET_DATS + 9));
- skillsDATS.put(AbilityType.SKULL_SPLITTER, result.getInt(OFFSET_DATS + 10));
+ skillsDATS.put(SuperAbility.SERRATED_STRIKES, result.getInt(OFFSET_DATS + 9));
+ skillsDATS.put(SuperAbility.SKULL_SPLITTER, result.getInt(OFFSET_DATS + 10));
// Acrobatics - Unused - result.getInt(OFFSET_DATS + 11)
- skillsDATS.put(AbilityType.BLAST_MINING, result.getInt(OFFSET_DATS + 12));
+ skillsDATS.put(SuperAbility.BLAST_MINING, result.getInt(OFFSET_DATS + 12));
try {
mobHealthbarType = MobHealthbarType.valueOf(result.getString(OFFSET_OTHER + 1));
@@ -1209,10 +1209,10 @@ public final class SQLDatabaseManager implements DatabaseManager {
resultSet = statement.executeQuery("SHOW INDEX FROM `" + tablePrefix + "skills` WHERE `Key_name` LIKE 'idx\\_%'");
resultSet.last();
- if (resultSet.getRow() != SkillType.NON_CHILD_SKILLS.size()) {
+ if (resultSet.getRow() != PrimarySkill.NON_CHILD_SKILLS.size()) {
mcMMO.p.getLogger().info("Indexing tables, this may take a while on larger databases");
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
String skill_name = skill.name().toLowerCase();
try {
diff --git a/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java b/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java
index ffa6b1e74..8eb768e8e 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java
@@ -4,20 +4,20 @@ import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
public class SkillXpGain implements Delayed {
private final long expiryTime;
private final float xp;
- private final SkillType type;
+ private final PrimarySkill type;
- public SkillXpGain(SkillType type, float xp) {
+ public SkillXpGain(PrimarySkill type, float xp) {
this.expiryTime = System.currentTimeMillis() + getDuration();
this.xp = xp;
this.type = type;
}
- public SkillType getSkill() {
+ public PrimarySkill getSkill() {
return type;
}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java
index 31b30628d..12c0fd69b 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java
@@ -7,8 +7,8 @@ import com.gmail.nossr50.datatypes.chat.ChatMode;
import com.gmail.nossr50.datatypes.mods.CustomTool;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
@@ -61,7 +61,7 @@ public class McMMOPlayer {
private Player player;
private PlayerProfile profile;
- private final Map skillManagers = new HashMap();
+ private final Map skillManagers = new HashMap();
private Party party;
private Party invite;
@@ -77,8 +77,8 @@ public class McMMOPlayer {
private boolean abilityUse = true;
private boolean godMode;
- private final Map abilityMode = new HashMap();
- private final Map abilityInformed = new HashMap();
+ private final Map abilityMode = new HashMap();
+ private final Map abilityInformed = new HashMap();
private final Map toolMode = new HashMap();
@@ -107,11 +107,11 @@ public class McMMOPlayer {
/*
* I'm using this method because it makes code shorter and safer (we don't have to add all SkillTypes manually),
* but I actually have no idea about the performance impact, if there is any.
- * If in the future someone wants to remove this, don't forget to also remove what is in the SkillType enum. - bm01
+ * If in the future someone wants to remove this, don't forget to also remove what is in the PrimarySkill enum. - bm01
*/
try {
- for (SkillType skillType : SkillType.values()) {
- skillManagers.put(skillType, skillType.getManagerClass().getConstructor(McMMOPlayer.class).newInstance(this));
+ for (PrimarySkill primarySkill : PrimarySkill.values()) {
+ skillManagers.put(primarySkill, primarySkill.getManagerClass().getConstructor(McMMOPlayer.class).newInstance(this));
}
}
catch (Exception e) {
@@ -119,9 +119,9 @@ public class McMMOPlayer {
mcMMO.p.getPluginLoader().disablePlugin(mcMMO.p);
}
- for (AbilityType abilityType : AbilityType.values()) {
- abilityMode.put(abilityType, false);
- abilityInformed.put(abilityType, true); // This is intended
+ for (SuperAbility superAbility : SuperAbility.values()) {
+ abilityMode.put(superAbility, false);
+ abilityInformed.put(superAbility, true); // This is intended
}
for (ToolType toolType : ToolType.values()) {
@@ -130,63 +130,63 @@ public class McMMOPlayer {
}
public AcrobaticsManager getAcrobaticsManager() {
- return (AcrobaticsManager) skillManagers.get(SkillType.ACROBATICS);
+ return (AcrobaticsManager) skillManagers.get(PrimarySkill.ACROBATICS);
}
public AlchemyManager getAlchemyManager() {
- return (AlchemyManager) skillManagers.get(SkillType.ALCHEMY);
+ return (AlchemyManager) skillManagers.get(PrimarySkill.ALCHEMY);
}
public ArcheryManager getArcheryManager() {
- return (ArcheryManager) skillManagers.get(SkillType.ARCHERY);
+ return (ArcheryManager) skillManagers.get(PrimarySkill.ARCHERY);
}
public AxesManager getAxesManager() {
- return (AxesManager) skillManagers.get(SkillType.AXES);
+ return (AxesManager) skillManagers.get(PrimarySkill.AXES);
}
public ExcavationManager getExcavationManager() {
- return (ExcavationManager) skillManagers.get(SkillType.EXCAVATION);
+ return (ExcavationManager) skillManagers.get(PrimarySkill.EXCAVATION);
}
public FishingManager getFishingManager() {
- return (FishingManager) skillManagers.get(SkillType.FISHING);
+ return (FishingManager) skillManagers.get(PrimarySkill.FISHING);
}
public HerbalismManager getHerbalismManager() {
- return (HerbalismManager) skillManagers.get(SkillType.HERBALISM);
+ return (HerbalismManager) skillManagers.get(PrimarySkill.HERBALISM);
}
public MiningManager getMiningManager() {
- return (MiningManager) skillManagers.get(SkillType.MINING);
+ return (MiningManager) skillManagers.get(PrimarySkill.MINING);
}
public RepairManager getRepairManager() {
- return (RepairManager) skillManagers.get(SkillType.REPAIR);
+ return (RepairManager) skillManagers.get(PrimarySkill.REPAIR);
}
public SalvageManager getSalvageManager() {
- return (SalvageManager) skillManagers.get(SkillType.SALVAGE);
+ return (SalvageManager) skillManagers.get(PrimarySkill.SALVAGE);
}
public SmeltingManager getSmeltingManager() {
- return (SmeltingManager) skillManagers.get(SkillType.SMELTING);
+ return (SmeltingManager) skillManagers.get(PrimarySkill.SMELTING);
}
public SwordsManager getSwordsManager() {
- return (SwordsManager) skillManagers.get(SkillType.SWORDS);
+ return (SwordsManager) skillManagers.get(PrimarySkill.SWORDS);
}
public TamingManager getTamingManager() {
- return (TamingManager) skillManagers.get(SkillType.TAMING);
+ return (TamingManager) skillManagers.get(PrimarySkill.TAMING);
}
public UnarmedManager getUnarmedManager() {
- return (UnarmedManager) skillManagers.get(SkillType.UNARMED);
+ return (UnarmedManager) skillManagers.get(PrimarySkill.UNARMED);
}
public WoodcuttingManager getWoodcuttingManager() {
- return (WoodcuttingManager) skillManagers.get(SkillType.WOODCUTTING);
+ return (WoodcuttingManager) skillManagers.get(PrimarySkill.WOODCUTTING);
}
/*
@@ -197,7 +197,7 @@ public class McMMOPlayer {
* Reset the mode of all abilities.
*/
public void resetAbilityMode() {
- for (AbilityType ability : AbilityType.values()) {
+ for (SuperAbility ability : SuperAbility.values()) {
// Correctly disable and handle any special deactivate code
new AbilityDisableTask(this, ability).run();
}
@@ -209,7 +209,7 @@ public class McMMOPlayer {
* @param ability The ability to check
* @return true if the ability is enabled, false otherwise
*/
- public boolean getAbilityMode(AbilityType ability) {
+ public boolean getAbilityMode(SuperAbility ability) {
return abilityMode.get(ability);
}
@@ -219,7 +219,7 @@ public class McMMOPlayer {
* @param ability The ability to check
* @param isActive True if the ability is active, false otherwise
*/
- public void setAbilityMode(AbilityType ability, boolean isActive) {
+ public void setAbilityMode(SuperAbility ability, boolean isActive) {
abilityMode.put(ability, isActive);
}
@@ -229,7 +229,7 @@ public class McMMOPlayer {
* @param ability The ability to check
* @return true if the ability is informed, false otherwise
*/
- public boolean getAbilityInformed(AbilityType ability) {
+ public boolean getAbilityInformed(SuperAbility ability) {
return abilityInformed.get(ability);
}
@@ -239,7 +239,7 @@ public class McMMOPlayer {
* @param ability The ability to check
* @param isInformed True if the ability is informed, false otherwise
*/
- public void setAbilityInformed(AbilityType ability, boolean isInformed) {
+ public void setAbilityInformed(SuperAbility ability, boolean isInformed) {
abilityInformed.put(ability, isInformed);
}
@@ -384,7 +384,7 @@ public class McMMOPlayer {
public int getPowerLevel() {
int powerLevel = 0;
- for (SkillType type : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill type : PrimarySkill.NON_CHILD_SKILLS) {
if (type.getPermissions(player)) {
powerLevel += getSkillLevel(type);
}
@@ -399,7 +399,7 @@ public class McMMOPlayer {
* @param skill Skill being used
* @param xp Experience amount to process
*/
- public void beginXpGain(SkillType skill, float xp, XPGainReason xpGainReason) {
+ public void beginXpGain(PrimarySkill skill, float xp, XPGainReason xpGainReason) {
Validate.isTrue(xp >= 0.0, "XP gained should be greater than or equal to zero.");
if (xp <= 0.0) {
@@ -407,10 +407,10 @@ public class McMMOPlayer {
}
if (skill.isChildSkill()) {
- Set parentSkills = FamilyTree.getParents(skill);
+ Set parentSkills = FamilyTree.getParents(skill);
float splitXp = xp / parentSkills.size();
- for (SkillType parentSkill : parentSkills) {
+ for (PrimarySkill parentSkill : parentSkills) {
if (parentSkill.getPermissions(player)) {
beginXpGain(parentSkill, splitXp, xpGainReason);
}
@@ -433,7 +433,7 @@ public class McMMOPlayer {
* @param skill Skill being used
* @param xp Experience amount to process
*/
- public void beginUnsharedXpGain(SkillType skill, float xp, XPGainReason xpGainReason) {
+ public void beginUnsharedXpGain(PrimarySkill skill, float xp, XPGainReason xpGainReason) {
applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason);
if (party == null) {
@@ -448,56 +448,56 @@ public class McMMOPlayer {
/**
* Applies an experience gain
*
- * @param skillType Skill being used
+ * @param primarySkill Skill being used
* @param xp Experience amount to add
*/
- public void applyXpGain(SkillType skillType, float xp, XPGainReason xpGainReason) {
- if (!skillType.getPermissions(player)) {
+ public void applyXpGain(PrimarySkill primarySkill, float xp, XPGainReason xpGainReason) {
+ if (!primarySkill.getPermissions(player)) {
return;
}
- if (skillType.isChildSkill()) {
- Set parentSkills = FamilyTree.getParents(skillType);
+ if (primarySkill.isChildSkill()) {
+ Set parentSkills = FamilyTree.getParents(primarySkill);
- for (SkillType parentSkill : parentSkills) {
+ for (PrimarySkill parentSkill : parentSkills) {
applyXpGain(parentSkill, xp / parentSkills.size(), xpGainReason);
}
return;
}
- if (!EventUtils.handleXpGainEvent(player, skillType, xp, xpGainReason)) {
+ if (!EventUtils.handleXpGainEvent(player, primarySkill, xp, xpGainReason)) {
return;
}
- isUsingUnarmed = (skillType == SkillType.UNARMED);
- checkXp(skillType, xpGainReason);
+ isUsingUnarmed = (primarySkill == PrimarySkill.UNARMED);
+ checkXp(primarySkill, xpGainReason);
}
/**
* Check the XP of a skill.
*
- * @param skillType The skill to check
+ * @param primarySkill The skill to check
*/
- private void checkXp(SkillType skillType, XPGainReason xpGainReason) {
- if (getSkillXpLevelRaw(skillType) < getXpToLevel(skillType)) {
+ private void checkXp(PrimarySkill primarySkill, XPGainReason xpGainReason) {
+ if (getSkillXpLevelRaw(primarySkill) < getXpToLevel(primarySkill)) {
return;
}
int levelsGained = 0;
float xpRemoved = 0;
- while (getSkillXpLevelRaw(skillType) >= getXpToLevel(skillType)) {
- if (hasReachedLevelCap(skillType)) {
- setSkillXpLevel(skillType, 0);
+ while (getSkillXpLevelRaw(primarySkill) >= getXpToLevel(primarySkill)) {
+ if (hasReachedLevelCap(primarySkill)) {
+ setSkillXpLevel(primarySkill, 0);
break;
}
- xpRemoved += profile.levelUp(skillType);
+ xpRemoved += profile.levelUp(primarySkill);
levelsGained++;
}
- if (!EventUtils.handleLevelChangeEvent(player, skillType, levelsGained, xpRemoved, true, xpGainReason)) {
+ if (!EventUtils.handleLevelChangeEvent(player, primarySkill, levelsGained, xpRemoved, true, xpGainReason)) {
return;
}
@@ -505,7 +505,7 @@ public class McMMOPlayer {
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
}
- player.sendMessage(LocaleLoader.getString(StringUtils.getCapitalized(skillType.toString()) + ".Skillup", levelsGained, getSkillLevel(skillType)));
+ player.sendMessage(LocaleLoader.getString(StringUtils.getCapitalized(primarySkill.toString()) + ".Skillup", levelsGained, getSkillLevel(primarySkill)));
}
/*
@@ -675,16 +675,16 @@ public class McMMOPlayer {
/**
* Modifies an experience gain using skill modifiers, global rate and perks
*
- * @param skillType Skill being used
+ * @param primarySkill Skill being used
* @param xp Experience amount to process
* @return Modified experience
*/
- private float modifyXpGain(SkillType skillType, float xp) {
- if (player.getGameMode() == GameMode.CREATIVE || (skillType.getMaxLevel() <= getSkillLevel(skillType)) || (Config.getInstance().getPowerLevelCap() <= getPowerLevel())) {
+ private float modifyXpGain(PrimarySkill primarySkill, float xp) {
+ if (player.getGameMode() == GameMode.CREATIVE || (primarySkill.getMaxLevel() <= getSkillLevel(primarySkill)) || (Config.getInstance().getPowerLevelCap() <= getPowerLevel())) {
return 0;
}
- xp = (float) (xp / skillType.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
+ xp = (float) (xp / primarySkill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
if (Config.getInstance().getToolModsEnabled()) {
CustomTool tool = mcMMO.getModManager().getTool(player.getInventory().getItemInMainHand());
@@ -694,7 +694,7 @@ public class McMMOPlayer {
}
}
- return PerksUtils.handleXpPerks(player, xp, skillType);
+ return PerksUtils.handleXpPerks(player, xp, primarySkill);
}
public void checkGodMode() {
@@ -716,9 +716,9 @@ public class McMMOPlayer {
*
* @param skill The skill the ability is based on
*/
- public void checkAbilityActivation(SkillType skill) {
+ public void checkAbilityActivation(PrimarySkill skill) {
ToolType tool = skill.getTool();
- AbilityType ability = skill.getAbility();
+ SuperAbility ability = skill.getAbility();
setToolPreparationMode(tool, false);
@@ -746,7 +746,7 @@ public class McMMOPlayer {
* Axes and Woodcutting are odd because they share the same tool.
* We show them the too tired message when they take action.
*/
- if (skill == SkillType.WOODCUTTING || skill == SkillType.AXES) {
+ if (skill == PrimarySkill.WOODCUTTING || skill == PrimarySkill.AXES) {
player.sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining));
}
@@ -772,14 +772,14 @@ public class McMMOPlayer {
profile.setAbilityDATS(ability, System.currentTimeMillis() + (ticks * Misc.TIME_CONVERSION_FACTOR));
setAbilityMode(ability, true);
- if (ability == AbilityType.SUPER_BREAKER || ability == AbilityType.GIGA_DRILL_BREAKER) {
+ if (ability == SuperAbility.SUPER_BREAKER || ability == SuperAbility.GIGA_DRILL_BREAKER) {
SkillUtils.handleAbilitySpeedIncrease(player);
}
new AbilityDisableTask(this, ability).runTaskLater(mcMMO.p, ticks * Misc.TICK_CONVERSION_FACTOR);
}
- public void processAbilityActivation(SkillType skill) {
+ public void processAbilityActivation(PrimarySkill skill) {
if (Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() && !player.isSneaking()) {
return;
}
@@ -794,13 +794,13 @@ public class McMMOPlayer {
return;
}
- for (AbilityType abilityType : AbilityType.values()) {
- if (getAbilityMode(abilityType)) {
+ for (SuperAbility superAbility : SuperAbility.values()) {
+ if (getAbilityMode(superAbility)) {
return;
}
}
- AbilityType ability = skill.getAbility();
+ SuperAbility ability = skill.getAbility();
ToolType tool = skill.getTool();
/*
@@ -808,7 +808,7 @@ public class McMMOPlayer {
* Basically the tool always needs to ready and we check to see if the cooldown is over when the user takes action
*/
if (ability.getPermissions(player) && tool.inHand(inHand) && !getToolPreparationMode(tool)) {
- if (skill != SkillType.WOODCUTTING && skill != SkillType.AXES) {
+ if (skill != PrimarySkill.WOODCUTTING && skill != PrimarySkill.AXES) {
int timeRemaining = calculateTimeRemaining(ability);
if (!getAbilityMode(ability) && timeRemaining > 0) {
@@ -829,59 +829,59 @@ public class McMMOPlayer {
/**
* Calculate the time remaining until the ability's cooldown expires.
*
- * @param ability AbilityType whose cooldown to check
+ * @param ability SuperAbility whose cooldown to check
*
* @return the number of seconds remaining before the cooldown expires
*/
- public int calculateTimeRemaining(AbilityType ability) {
+ public int calculateTimeRemaining(SuperAbility ability) {
long deactivatedTimestamp = profile.getAbilityDATS(ability) * Misc.TIME_CONVERSION_FACTOR;
return (int) (((deactivatedTimestamp + (PerksUtils.handleCooldownPerks(player, ability.getCooldown()) * Misc.TIME_CONVERSION_FACTOR)) - System.currentTimeMillis()) / Misc.TIME_CONVERSION_FACTOR);
}
- private boolean hasReachedLevelCap(SkillType skill) {
+ private boolean hasReachedLevelCap(PrimarySkill skill) {
return (skill.getMaxLevel() < getSkillLevel(skill) + 1) || (Config.getInstance().getPowerLevelCap() < getPowerLevel() + 1);
}
/*
* These functions are wrapped from PlayerProfile so that we don't always have to store it alongside the McMMOPlayer object.
*/
- public int getSkillLevel(SkillType skill) {
+ public int getSkillLevel(PrimarySkill skill) {
return profile.getSkillLevel(skill);
}
- public float getSkillXpLevelRaw(SkillType skill) {
+ public float getSkillXpLevelRaw(PrimarySkill skill) {
return profile.getSkillXpLevelRaw(skill);
}
- public int getSkillXpLevel(SkillType skill) {
+ public int getSkillXpLevel(PrimarySkill skill) {
return profile.getSkillXpLevel(skill);
}
- public void setSkillXpLevel(SkillType skill, float xpLevel) {
+ public void setSkillXpLevel(PrimarySkill skill, float xpLevel) {
profile.setSkillXpLevel(skill, xpLevel);
}
- public int getXpToLevel(SkillType skill) {
+ public int getXpToLevel(PrimarySkill skill) {
return profile.getXpToLevel(skill);
}
- public void removeXp(SkillType skill, int xp) {
+ public void removeXp(PrimarySkill skill, int xp) {
profile.removeXp(skill, xp);
}
- public void modifySkill(SkillType skill, int level) {
+ public void modifySkill(PrimarySkill skill, int level) {
profile.modifySkill(skill, level);
}
- public void addLevels(SkillType skill, int levels) {
+ public void addLevels(PrimarySkill skill, int levels) {
profile.addLevels(skill, levels);
}
- public void addXp(SkillType skill, float xp) {
+ public void addXp(PrimarySkill skill, float xp) {
profile.addXp(skill, xp);
}
- public void setAbilityDATS(AbilityType ability, long DATS) {
+ public void setAbilityDATS(SuperAbility ability, long DATS) {
profile.setAbilityDATS(ability, DATS);
}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
index b55cfd98b..b7948e548 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java
@@ -6,14 +6,14 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.DelayQueue;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.MobHealthbarType;
import com.gmail.nossr50.datatypes.experience.FormulaType;
import com.gmail.nossr50.datatypes.experience.SkillXpGain;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.runnables.player.PlayerProfileSaveTask;
import com.gmail.nossr50.skills.child.FamilyTree;
import com.gmail.nossr50.util.player.UserManager;
@@ -31,13 +31,13 @@ public class PlayerProfile {
private int scoreboardTipsShown;
/* Skill Data */
- private final Map skills = new HashMap(); // Skill & Level
- private final Map skillsXp = new HashMap(); // Skill & XP
- private final Map abilityDATS = new HashMap(); // Ability & Cooldown
+ private final Map skills = new HashMap(); // Skill & Level
+ private final Map skillsXp = new HashMap(); // Skill & XP
+ private final Map abilityDATS = new HashMap(); // Ability & Cooldown
// Store previous XP gains for deminished returns
private DelayQueue gainedSkillsXp = new DelayQueue();
- private HashMap rollingSkillsXp = new HashMap();
+ private HashMap rollingSkillsXp = new HashMap();
@Deprecated
public PlayerProfile(String playerName) {
@@ -51,13 +51,13 @@ public class PlayerProfile {
mobHealthbarType = Config.getInstance().getMobHealthbarDefault();
scoreboardTipsShown = 0;
- for (AbilityType abilityType : AbilityType.values()) {
- abilityDATS.put(abilityType, 0);
+ for (SuperAbility superAbility : SuperAbility.values()) {
+ abilityDATS.put(superAbility, 0);
}
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- skills.put(skillType, 0);
- skillsXp.put(skillType, 0F);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ skills.put(primarySkill, 0);
+ skillsXp.put(primarySkill, 0F);
}
}
@@ -72,7 +72,7 @@ public class PlayerProfile {
this.loaded = isLoaded;
}
- public PlayerProfile(String playerName, UUID uuid, Map levelData, Map xpData, Map cooldownData, MobHealthbarType mobHealthbarType, int scoreboardTipsShown) {
+ public PlayerProfile(String playerName, UUID uuid, Map levelData, Map xpData, Map cooldownData, MobHealthbarType mobHealthbarType, int scoreboardTipsShown) {
this.playerName = playerName;
this.uuid = uuid;
this.mobHealthbarType = mobHealthbarType;
@@ -156,20 +156,20 @@ public class PlayerProfile {
/**
* Get the current deactivation timestamp of an ability.
*
- * @param ability The {@link AbilityType} to get the DATS for
+ * @param ability The {@link SuperAbility} to get the DATS for
* @return the deactivation timestamp for the ability
*/
- public long getAbilityDATS(AbilityType ability) {
+ public long getAbilityDATS(SuperAbility ability) {
return abilityDATS.get(ability);
}
/**
* Set the current deactivation timestamp of an ability.
*
- * @param ability The {@link AbilityType} to set the DATS for
+ * @param ability The {@link SuperAbility} to set the DATS for
* @param DATS the DATS of the ability
*/
- protected void setAbilityDATS(AbilityType ability, long DATS) {
+ protected void setAbilityDATS(SuperAbility ability, long DATS) {
changed = true;
abilityDATS.put(ability, (int) (DATS * .001D));
@@ -181,7 +181,7 @@ public class PlayerProfile {
protected void resetCooldowns() {
changed = true;
- for (AbilityType ability : abilityDATS.keySet()) {
+ for (SuperAbility ability : abilityDATS.keySet()) {
abilityDATS.put(ability, 0);
}
}
@@ -190,19 +190,19 @@ public class PlayerProfile {
* Xp Functions
*/
- public int getSkillLevel(SkillType skill) {
+ public int getSkillLevel(PrimarySkill skill) {
return skill.isChildSkill() ? getChildSkillLevel(skill) : skills.get(skill);
}
- public float getSkillXpLevelRaw(SkillType skill) {
+ public float getSkillXpLevelRaw(PrimarySkill skill) {
return skillsXp.get(skill);
}
- public int getSkillXpLevel(SkillType skill) {
+ public int getSkillXpLevel(PrimarySkill skill) {
return (int) Math.floor(getSkillXpLevelRaw(skill));
}
- public void setSkillXpLevel(SkillType skill, float xpLevel) {
+ public void setSkillXpLevel(PrimarySkill skill, float xpLevel) {
if (skill.isChildSkill()) {
return;
}
@@ -212,7 +212,7 @@ public class PlayerProfile {
skillsXp.put(skill, xpLevel);
}
- protected float levelUp(SkillType skill) {
+ protected float levelUp(PrimarySkill skill) {
float xpRemoved = getXpToLevel(skill);
changed = true;
@@ -229,7 +229,7 @@ public class PlayerProfile {
* @param skill Type of skill to modify
* @param xp Amount of xp to remove
*/
- public void removeXp(SkillType skill, int xp) {
+ public void removeXp(PrimarySkill skill, int xp) {
if (skill.isChildSkill()) {
return;
}
@@ -239,7 +239,7 @@ public class PlayerProfile {
skillsXp.put(skill, skillsXp.get(skill) - xp);
}
- public void removeXp(SkillType skill, float xp) {
+ public void removeXp(PrimarySkill skill, float xp) {
if (skill.isChildSkill()) {
return;
}
@@ -255,7 +255,7 @@ public class PlayerProfile {
* @param skill Type of skill to modify
* @param level New level value for the skill
*/
- public void modifySkill(SkillType skill, int level) {
+ public void modifySkill(PrimarySkill skill, int level) {
if (skill.isChildSkill()) {
return;
}
@@ -272,7 +272,7 @@ public class PlayerProfile {
* @param skill Type of skill to add levels to
* @param levels Number of levels to add
*/
- public void addLevels(SkillType skill, int levels) {
+ public void addLevels(PrimarySkill skill, int levels) {
modifySkill(skill, skills.get(skill) + levels);
}
@@ -282,14 +282,14 @@ public class PlayerProfile {
* @param skill Type of skill to add experience to
* @param xp Number of experience to add
*/
- public void addXp(SkillType skill, float xp) {
+ public void addXp(PrimarySkill skill, float xp) {
changed = true;
if (skill.isChildSkill()) {
- Set parentSkills = FamilyTree.getParents(skill);
+ Set parentSkills = FamilyTree.getParents(skill);
float dividedXP = (xp / parentSkills.size());
- for (SkillType parentSkill : parentSkills) {
+ for (PrimarySkill parentSkill : parentSkills) {
skillsXp.put(parentSkill, skillsXp.get(parentSkill) + dividedXP);
}
}
@@ -304,11 +304,11 @@ public class PlayerProfile {
*
* @return xp Experience amount registered
*/
- public float getRegisteredXpGain(SkillType skillType) {
+ public float getRegisteredXpGain(PrimarySkill primarySkill) {
float xp = 0F;
- if (rollingSkillsXp.get(skillType) != null) {
- xp = rollingSkillsXp.get(skillType);
+ if (rollingSkillsXp.get(primarySkill) != null) {
+ xp = rollingSkillsXp.get(primarySkill);
}
return xp;
@@ -318,12 +318,12 @@ public class PlayerProfile {
* Register an experience gain
* This is used for diminished XP returns
*
- * @param skillType Skill being used
+ * @param primarySkill Skill being used
* @param xp Experience amount to add
*/
- public void registerXpGain(SkillType skillType, float xp) {
- gainedSkillsXp.add(new SkillXpGain(skillType, xp));
- rollingSkillsXp.put(skillType, getRegisteredXpGain(skillType) + xp);
+ public void registerXpGain(PrimarySkill primarySkill, float xp) {
+ gainedSkillsXp.add(new SkillXpGain(primarySkill, xp));
+ rollingSkillsXp.put(primarySkill, getRegisteredXpGain(primarySkill) + xp);
}
/**
@@ -340,21 +340,21 @@ public class PlayerProfile {
/**
* Get the amount of Xp remaining before the next level.
*
- * @param skillType Type of skill to check
+ * @param primarySkill Type of skill to check
* @return the total amount of Xp until next level
*/
- public int getXpToLevel(SkillType skillType) {
- int level = (ExperienceConfig.getInstance().getCumulativeCurveEnabled()) ? UserManager.getPlayer(playerName).getPowerLevel() : skills.get(skillType);
+ public int getXpToLevel(PrimarySkill primarySkill) {
+ int level = (ExperienceConfig.getInstance().getCumulativeCurveEnabled()) ? UserManager.getPlayer(playerName).getPowerLevel() : skills.get(primarySkill);
FormulaType formulaType = ExperienceConfig.getInstance().getFormulaType();
return mcMMO.getFormulaManager().getCachedXpToLevel(level, formulaType);
}
- private int getChildSkillLevel(SkillType skillType) {
- Set parents = FamilyTree.getParents(skillType);
+ private int getChildSkillLevel(PrimarySkill primarySkill) {
+ Set parents = FamilyTree.getParents(primarySkill);
int sum = 0;
- for (SkillType parent : parents) {
+ for (PrimarySkill parent : parents) {
sum += Math.min(getSkillLevel(parent), parent.getMaxLevel());
}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkill.java
similarity index 60%
rename from src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java
rename to src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkill.java
index 8193d7123..8b3ddff0c 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillType.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkill.java
@@ -35,44 +35,44 @@ import com.gmail.nossr50.util.skills.ParticleEffectUtils;
import com.google.common.collect.ImmutableList;
-public enum SkillType {
- ACROBATICS(AcrobaticsManager.class, Color.WHITE, ImmutableList.of(SecondaryAbility.DODGE, SecondaryAbility.GRACEFUL_ROLL, SecondaryAbility.ROLL)),
- ALCHEMY(AlchemyManager.class, Color.FUCHSIA, ImmutableList.of(SecondaryAbility.CATALYSIS, SecondaryAbility.CONCOCTIONS)),
- ARCHERY(ArcheryManager.class, Color.MAROON, ImmutableList.of(SecondaryAbility.DAZE, SecondaryAbility.RETRIEVE, SecondaryAbility.SKILL_SHOT)),
- AXES(AxesManager.class, Color.AQUA, AbilityType.SKULL_SPLITTER, ToolType.AXE, ImmutableList.of(SecondaryAbility.ARMOR_IMPACT, SecondaryAbility.AXE_MASTERY, SecondaryAbility.CRITICAL_HIT, SecondaryAbility.GREATER_IMPACT)),
- EXCAVATION(ExcavationManager.class, Color.fromRGB(139, 69, 19), AbilityType.GIGA_DRILL_BREAKER, ToolType.SHOVEL, ImmutableList.of(SecondaryAbility.EXCAVATION_TREASURE_HUNTER)),
- FISHING(FishingManager.class, Color.NAVY, ImmutableList.of(SecondaryAbility.FISHERMANS_DIET, SecondaryAbility.FISHING_TREASURE_HUNTER, SecondaryAbility.ICE_FISHING, SecondaryAbility.MAGIC_HUNTER, SecondaryAbility.MASTER_ANGLER, SecondaryAbility.SHAKE)),
- HERBALISM(HerbalismManager.class, Color.GREEN, AbilityType.GREEN_TERRA, ToolType.HOE, ImmutableList.of(SecondaryAbility.FARMERS_DIET, SecondaryAbility.GREEN_THUMB_PLANT, SecondaryAbility.GREEN_THUMB_BLOCK, SecondaryAbility.HERBALISM_DOUBLE_DROPS, SecondaryAbility.HYLIAN_LUCK, SecondaryAbility.SHROOM_THUMB)),
- MINING(MiningManager.class, Color.GRAY, AbilityType.SUPER_BREAKER, ToolType.PICKAXE, ImmutableList.of(SecondaryAbility.MINING_DOUBLE_DROPS)),
- REPAIR(RepairManager.class, Color.SILVER, ImmutableList.of(SecondaryAbility.ARCANE_FORGING, SecondaryAbility.REPAIR_MASTERY, SecondaryAbility.SUPER_REPAIR)),
- SALVAGE(SalvageManager.class, Color.ORANGE, ImmutableList.of(SecondaryAbility.ADVANCED_SALVAGE, SecondaryAbility.ARCANE_SALVAGE)),
- SMELTING(SmeltingManager.class, Color.YELLOW, ImmutableList.of(SecondaryAbility.FLUX_MINING, SecondaryAbility.FUEL_EFFICIENCY, SecondaryAbility.SECOND_SMELT)),
- SWORDS(SwordsManager.class, Color.fromRGB(178, 34, 34), AbilityType.SERRATED_STRIKES, ToolType.SWORD, ImmutableList.of(SecondaryAbility.BLEED, SecondaryAbility.COUNTER)),
- TAMING(TamingManager.class, Color.PURPLE, ImmutableList.of(SecondaryAbility.BEAST_LORE, SecondaryAbility.CALL_OF_THE_WILD, SecondaryAbility.ENVIRONMENTALLY_AWARE, SecondaryAbility.FAST_FOOD, SecondaryAbility.GORE, SecondaryAbility.HOLY_HOUND, SecondaryAbility.SHARPENED_CLAWS, SecondaryAbility.SHOCK_PROOF, SecondaryAbility.THICK_FUR, SecondaryAbility.PUMMEL)),
- UNARMED(UnarmedManager.class, Color.BLACK, AbilityType.BERSERK, ToolType.FISTS, ImmutableList.of(SecondaryAbility.BLOCK_CRACKER, SecondaryAbility.DEFLECT, SecondaryAbility.DISARM, SecondaryAbility.IRON_ARM, SecondaryAbility.IRON_GRIP)),
- WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, AbilityType.TREE_FELLER, ToolType.AXE, ImmutableList.of(SecondaryAbility.WOODCUTTING_LEAF_BLOWER, SecondaryAbility.WOODCUTTING_HARVEST));
+public enum PrimarySkill {
+ ACROBATICS(AcrobaticsManager.class, Color.WHITE, ImmutableList.of(SubSkill.ACROBATICS_DODGE, SubSkill.ACROBATICS_GRACEFUL_ROLL, SubSkill.ACROBATICS_ROLL)),
+ ALCHEMY(AlchemyManager.class, Color.FUCHSIA, ImmutableList.of(SubSkill.ALCHEMY_CATALYSIS, SubSkill.ALCHEMY_CONCOCTIONS)),
+ ARCHERY(ArcheryManager.class, Color.MAROON, ImmutableList.of(SubSkill.ARCHERY_DAZE, SubSkill.ARCHERY_RETRIEVE, SubSkill.ARCHERY_SKILL_SHOT)),
+ AXES(AxesManager.class, Color.AQUA, SuperAbility.SKULL_SPLITTER, ToolType.AXE, ImmutableList.of(SubSkill.AXES_ARMOR_IMPACT, SubSkill.AXES_AXE_MASTERY, SubSkill.AXES_CRITICAL_HIT, SubSkill.AXES_GREATER_IMPACT)),
+ EXCAVATION(ExcavationManager.class, Color.fromRGB(139, 69, 19), SuperAbility.GIGA_DRILL_BREAKER, ToolType.SHOVEL, ImmutableList.of(SubSkill.EXCAVATION_TREASURE_HUNTER)),
+ FISHING(FishingManager.class, Color.NAVY, ImmutableList.of(SubSkill.FISHING_FISHERMANS_DIET, SubSkill.FISHING_TREASURE_HUNTER, SubSkill.FISHING_ICE_FISHING, SubSkill.FISHING_MAGIC_HUNTER, SubSkill.FISHING_MASTER_ANGLER, SubSkill.FISHING_SHAKE)),
+ HERBALISM(HerbalismManager.class, Color.GREEN, SuperAbility.GREEN_TERRA, ToolType.HOE, ImmutableList.of(SubSkill.HERBALISM_FARMERS_DIET, SubSkill.HERBALISM_GREEN_THUMB, SubSkill.HERBALISM_DOUBLE_DROPS, SubSkill.HERBALISM_HYLIAN_LUCK, SubSkill.HERBALISM_SHROOM_THUMB)),
+ MINING(MiningManager.class, Color.GRAY, SuperAbility.SUPER_BREAKER, ToolType.PICKAXE, ImmutableList.of(SubSkill.MINING_DOUBLE_DROPS)),
+ REPAIR(RepairManager.class, Color.SILVER, ImmutableList.of(SubSkill.REPAIR_ARCANE_FORGING, SubSkill.REPAIR_REPAIR_MASTERY, SubSkill.REPAIR_SUPER_REPAIR)),
+ SALVAGE(SalvageManager.class, Color.ORANGE, ImmutableList.of(SubSkill.SALVAGE_ADVANCED_SALVAGE, SubSkill.SALVAGE_ARCANE_SALVAGE)),
+ SMELTING(SmeltingManager.class, Color.YELLOW, ImmutableList.of(SubSkill.SMELTING_FLUX_MINING, SubSkill.SMELTING_FUEL_EFFICIENCY, SubSkill.SMELTING_SECOND_SMELT)),
+ SWORDS(SwordsManager.class, Color.fromRGB(178, 34, 34), SuperAbility.SERRATED_STRIKES, ToolType.SWORD, ImmutableList.of(SubSkill.SWORDS_BLEED, SubSkill.SWORDS_COUNTER)),
+ TAMING(TamingManager.class, Color.PURPLE, ImmutableList.of(SubSkill.TAMING_BEAST_LORE, SubSkill.TAMING_CALL_OF_THE_WILD, SubSkill.TAMING_ENVIRONMENTALLY_AWARE, SubSkill.TAMING_FAST_FOOD, SubSkill.TAMING_GORE, SubSkill.TAMING_HOLY_HOUND, SubSkill.TAMING_SHARPENED_CLAWS, SubSkill.TAMING_SHOCK_PROOF, SubSkill.TAMING_THICK_FUR, SubSkill.TAMING_PUMMEL)),
+ UNARMED(UnarmedManager.class, Color.BLACK, SuperAbility.BERSERK, ToolType.FISTS, ImmutableList.of(SubSkill.UNARMED_BLOCK_CRACKER, SubSkill.UNARMED_DEFLECT, SubSkill.UNARMED_DISARM, SubSkill.UNARMED_IRON_ARM, SubSkill.UNARMED_IRON_GRIP)),
+ WOODCUTTING(WoodcuttingManager.class, Color.OLIVE, SuperAbility.TREE_FELLER, ToolType.AXE, ImmutableList.of(SubSkill.WOODCUTTING_LEAF_BLOWER, SubSkill.WOODCUTTING_DOUBLE_DROPS));
private Class extends SkillManager> managerClass;
private Color runescapeColor;
- private AbilityType ability;
+ private SuperAbility ability;
private ToolType tool;
- private List secondaryAbilities;
+ private List subSkills;
public static final List SKILL_NAMES;
- public static final List CHILD_SKILLS;
- public static final List NON_CHILD_SKILLS;
+ public static final List CHILD_SKILLS;
+ public static final List NON_CHILD_SKILLS;
- public static final List COMBAT_SKILLS = ImmutableList.of(ARCHERY, AXES, SWORDS, TAMING, UNARMED);
- public static final List GATHERING_SKILLS = ImmutableList.of(EXCAVATION, FISHING, HERBALISM, MINING, WOODCUTTING);
- public static final List MISC_SKILLS = ImmutableList.of(ACROBATICS, ALCHEMY, REPAIR, SALVAGE, SMELTING);
+ public static final List COMBAT_SKILLS = ImmutableList.of(ARCHERY, AXES, SWORDS, TAMING, UNARMED);
+ public static final List GATHERING_SKILLS = ImmutableList.of(EXCAVATION, FISHING, HERBALISM, MINING, WOODCUTTING);
+ public static final List MISC_SKILLS = ImmutableList.of(ACROBATICS, ALCHEMY, REPAIR, SALVAGE, SMELTING);
static {
- List childSkills = new ArrayList();
- List nonChildSkills = new ArrayList();
+ List childSkills = new ArrayList();
+ List nonChildSkills = new ArrayList();
ArrayList names = new ArrayList();
- for (SkillType skill : values()) {
+ for (PrimarySkill skill : values()) {
if (skill.isChildSkill()) {
childSkills.add(skill);
}
@@ -90,23 +90,23 @@ public enum SkillType {
NON_CHILD_SKILLS = ImmutableList.copyOf(nonChildSkills);
}
- private SkillType(Class extends SkillManager> managerClass, Color runescapeColor, List secondaryAbilities) {
- this(managerClass, runescapeColor, null, null, secondaryAbilities);
+ private PrimarySkill(Class extends SkillManager> managerClass, Color runescapeColor, List subSkills) {
+ this(managerClass, runescapeColor, null, null, subSkills);
}
- private SkillType(Class extends SkillManager> managerClass, Color runescapeColor, AbilityType ability, ToolType tool, List secondaryAbilities) {
+ private PrimarySkill(Class extends SkillManager> managerClass, Color runescapeColor, SuperAbility ability, ToolType tool, List subSkills) {
this.managerClass = managerClass;
this.runescapeColor = runescapeColor;
this.ability = ability;
this.tool = tool;
- this.secondaryAbilities = secondaryAbilities;
+ this.subSkills = subSkills;
}
public Class extends SkillManager> getManagerClass() {
return managerClass;
}
- public AbilityType getAbility() {
+ public SuperAbility getAbility() {
return ability;
}
@@ -153,24 +153,24 @@ public enum SkillType {
return tool;
}
- public List getSkillAbilities() {
- return secondaryAbilities;
+ public List getSkillAbilities() {
+ return subSkills;
}
public double getXpModifier() {
return ExperienceConfig.getInstance().getFormulaSkillModifier(this);
}
- public static SkillType getSkill(String skillName) {
+ public static PrimarySkill getSkill(String skillName) {
if (!Config.getInstance().getLocale().equalsIgnoreCase("en_US")) {
- for (SkillType type : values()) {
+ for (PrimarySkill type : values()) {
if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(type.name()) + ".SkillName"))) {
return type;
}
}
}
- for (SkillType type : values()) {
+ for (PrimarySkill type : values()) {
if (type.name().equalsIgnoreCase(skillName)) {
return type;
}
@@ -195,17 +195,17 @@ public enum SkillType {
}
}
- public static SkillType bySecondaryAbility(SecondaryAbility skillAbility) {
- for (SkillType type : values()) {
- if (type.getSkillAbilities().contains(skillAbility)) {
+ public static PrimarySkill bySecondaryAbility(SubSkill subSkill) {
+ for (PrimarySkill type : values()) {
+ if (type.getSkillAbilities().contains(subSkill)) {
return type;
}
}
return null;
}
- public static SkillType byAbility(AbilityType ability) {
- for (SkillType type : values()) {
+ public static PrimarySkill byAbility(SuperAbility ability) {
+ for (PrimarySkill type : values()) {
if (type.getAbility() == ability) {
return type;
}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SecondaryAbility.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SecondaryAbility.java
deleted file mode 100644
index e974580a8..000000000
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/SecondaryAbility.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package com.gmail.nossr50.datatypes.skills;
-
-import static com.gmail.nossr50.datatypes.skills.SkillType.*;
-public enum SecondaryAbility {
- /* !! Warning -- Do not let subskills share a name with any existing SkillType as it will clash with the static import !! */
-
- /* ACROBATICS */
- DODGE(ACROBATICS),
- GRACEFUL_ROLL(ACROBATICS),
- ROLL(ACROBATICS),
-
- /* ALCHEMY */
- CATALYSIS(ALCHEMY),
- CONCOCTIONS(ALCHEMY),
-
- /* ARCHERY */
- DAZE(ARCHERY),
- RETRIEVE(ARCHERY),
- SKILL_SHOT(ARCHERY),
-
- /* Axes */
- ARMOR_IMPACT(AXES),
- AXE_MASTERY(AXES),
- CRITICAL_HIT(AXES),
- GREATER_IMPACT(AXES),
-
- /* Excavation */
- EXCAVATION_TREASURE_HUNTER(EXCAVATION),
-
- /* Fishing */
- FISHERMANS_DIET(FISHING),
- FISHING_TREASURE_HUNTER(FISHING),
- ICE_FISHING(FISHING),
- MAGIC_HUNTER(FISHING),
- MASTER_ANGLER(FISHING),
- SHAKE(FISHING),
-
- /* Herbalism */
- FARMERS_DIET(HERBALISM),
- GREEN_THUMB_PLANT(HERBALISM),
- GREEN_THUMB_BLOCK(HERBALISM),
- HERBALISM_DOUBLE_DROPS(HERBALISM),
- HYLIAN_LUCK(HERBALISM),
- SHROOM_THUMB(HERBALISM),
-
- /* Mining */
- MINING_DOUBLE_DROPS(MINING),
-
- /* Repair */
- ARCANE_FORGING(REPAIR),
- REPAIR_MASTERY(REPAIR),
- SUPER_REPAIR(REPAIR),
-
- /* Salvage */
- ADVANCED_SALVAGE(SALVAGE),
- ARCANE_SALVAGE(SALVAGE),
-
- /* Smelting */
- FLUX_MINING(SMELTING),
- FUEL_EFFICIENCY(SMELTING),
- SECOND_SMELT(SMELTING),
-
- /* Swords */
- BLEED(SWORDS),
- COUNTER(SWORDS),
-
- /* Taming */
- BEAST_LORE(TAMING),
- CALL_OF_THE_WILD(TAMING),
- ENVIRONMENTALLY_AWARE(TAMING),
- FAST_FOOD(TAMING),
- GORE(TAMING),
- HOLY_HOUND(TAMING),
- SHARPENED_CLAWS(TAMING),
- SHOCK_PROOF(TAMING),
- THICK_FUR(TAMING),
- PUMMEL(TAMING),
-
- /* Unarmed */
- BLOCK_CRACKER(UNARMED),
- DEFLECT(UNARMED),
- DISARM(UNARMED),
- IRON_ARM(UNARMED),
- IRON_GRIP(UNARMED),
-
- /* Woodcutting */
- WOODCUTTING_TREE_FELLER(WOODCUTTING),
- WOODCUTTING_LEAF_BLOWER(WOODCUTTING),
- WOODCUTTING_SURGEON(WOODCUTTING),
- WOODCUTTING_NATURES_BOUNTY(WOODCUTTING),
- WOODCUTTING_SPLINTER(WOODCUTTING),
- WOODCUTTING_HARVEST(WOODCUTTING);
-
- private final SkillType parentSkill;
-
- SecondaryAbility(SkillType parentSkill)
- {
- this.parentSkill = parentSkill;
- }
-
- public SkillType getParentSkill() { return parentSkill; }
-}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillMilestone.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SkillMilestone.java
index ffb5caf79..654423b62 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/SkillMilestone.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SkillMilestone.java
@@ -7,10 +7,10 @@ package com.gmail.nossr50.datatypes.skills;
*/
public class SkillMilestone {
private int unlockLevel; //Level that grants access to this skill
- private SecondaryAbility subskill; //Subskill that this milestone belongs to
+ private SubSkill subskill; //Subskill that this milestone belongs to
private SkillMilestone childMilestone; //Next rank in the milestone
- public SkillMilestone(SecondaryAbility subskill, int unlockLevel, SkillMilestone childMilestone)
+ public SkillMilestone(SubSkill subskill, int unlockLevel, SkillMilestone childMilestone)
{
this.subskill = subskill;
this.unlockLevel = unlockLevel;
@@ -20,7 +20,7 @@ public class SkillMilestone {
this.childMilestone = childMilestone;
}
- public SkillMilestone(SecondaryAbility subskill, int unlockLevel)
+ public SkillMilestone(SubSkill subskill, int unlockLevel)
{
this(subskill, unlockLevel, null);
}
@@ -29,7 +29,7 @@ public class SkillMilestone {
return unlockLevel;
}
- public SecondaryAbility getSubskill() {
+ public SubSkill getSubskill() {
return subskill;
}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkill.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkill.java
new file mode 100644
index 000000000..bc6a588f1
--- /dev/null
+++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkill.java
@@ -0,0 +1,165 @@
+package com.gmail.nossr50.datatypes.skills;
+
+import com.gmail.nossr50.util.StringUtils;
+
+import com.gmail.nossr50.datatypes.skills.PrimarySkill.*;
+public enum SubSkill {
+ /* !! Warning -- Do not let subskills share a name with any existing PrimarySkill as it will clash with the static import !! */
+
+ /* ACROBATICS */
+ ACROBATICS_DODGE,
+ ACROBATICS_GRACEFUL_ROLL,
+ ACROBATICS_ROLL,
+
+ /* ALCHEMY */
+ ALCHEMY_CATALYSIS,
+ ALCHEMY_CONCOCTIONS,
+
+ /* ARCHERY */
+ ARCHERY_DAZE,
+ ARCHERY_RETRIEVE,
+ ARCHERY_SKILL_SHOT,
+
+ /* Axes */
+ AXES_ARMOR_IMPACT,
+ AXES_AXE_MASTERY,
+ AXES_CRITICAL_HIT,
+ AXES_GREATER_IMPACT,
+
+ /* Excavation */
+ EXCAVATION_TREASURE_HUNTER,
+
+ /* Fishing */
+ FISHING_FISHERMANS_DIET,
+ FISHING_TREASURE_HUNTER,
+ FISHING_ICE_FISHING,
+ FISHING_MAGIC_HUNTER,
+ FISHING_MASTER_ANGLER,
+ FISHING_SHAKE,
+
+ /* Herbalism */
+ HERBALISM_FARMERS_DIET,
+ HERBALISM_GREEN_THUMB,
+ HERBALISM_DOUBLE_DROPS,
+ HERBALISM_HYLIAN_LUCK,
+ HERBALISM_SHROOM_THUMB,
+
+ /* Mining */
+ MINING_DOUBLE_DROPS,
+
+ /* Repair */
+ REPAIR_ARCANE_FORGING,
+ REPAIR_REPAIR_MASTERY,
+ REPAIR_SUPER_REPAIR,
+
+ /* Salvage */
+ SALVAGE_ADVANCED_SALVAGE,
+ SALVAGE_ARCANE_SALVAGE,
+
+ /* Smelting */
+ SMELTING_FLUX_MINING,
+ SMELTING_FUEL_EFFICIENCY,
+ SMELTING_SECOND_SMELT,
+
+ /* Swords */
+ SWORDS_BLEED,
+ SWORDS_COUNTER,
+
+ /* Taming */
+ TAMING_BEAST_LORE,
+ TAMING_CALL_OF_THE_WILD,
+ TAMING_ENVIRONMENTALLY_AWARE,
+ TAMING_FAST_FOOD,
+ TAMING_GORE,
+ TAMING_HOLY_HOUND,
+ TAMING_SHARPENED_CLAWS,
+ TAMING_SHOCK_PROOF,
+ TAMING_THICK_FUR,
+ TAMING_PUMMEL,
+
+ /* Unarmed */
+ UNARMED_BLOCK_CRACKER,
+ UNARMED_DEFLECT,
+ UNARMED_DISARM,
+ UNARMED_IRON_ARM,
+ UNARMED_IRON_GRIP,
+
+ /* Woodcutting */
+ WOODCUTTING_TREE_FELLER,
+ WOODCUTTING_LEAF_BLOWER,
+ WOODCUTTING_SURGEON,
+ WOODCUTTING_NATURES_BOUNTY,
+ WOODCUTTING_SPLINTER,
+ WOODCUTTING_DOUBLE_DROPS;
+
+ /**
+ * !!! This relies on the immutable lists in PrimarySkill being populated !!!
+ * If we add skills, those immutable lists need to be updated
+ * @return
+ */
+ public PrimarySkill getParentSkill() { return PrimarySkill.bySecondaryAbility(this); }
+
+ /**
+ * Returns the permission root address for the advanced.yml for this subskill
+ * @return permission root address in advanced.yml for this subskill
+ */
+ public String getAdvConfigAddress() {
+ return "Skills." + StringUtils.getCapitalized(getParentSkill().toString()) + "." + getConfigName(toString());
+ }
+
+ /**
+ * Get the string representation of the permission node for this subskill
+ * @return the permission node for this subskill
+ */
+ public String getPermissionNodeAddress()
+ {
+ //TODO: This could be optimized
+ return "mcmmo.ability." + getParentSkill().toString().toLowerCase() + "." + getConfigName(toString()).toLowerCase();
+ }
+
+ /**
+ * Returns the name of the skill as it is used in advanced.yml and other config files
+ * @return the yaml identifier for this skill
+ */
+ private String getConfigName(String subSkillName) {
+ /*
+ * Our ENUM constants name is something like PREFIX_SUB_SKILL_NAME
+ * We need to remove the prefix and then format the subskill to follow the naming conventions of our yaml configs
+ *
+ * So this method uses this kind of formatting
+ * "PARENTSKILL_COOL_SUBSKILL_ULTRA" -> "Cool Subskill Ultra" - > "CoolSubskillUltra"
+ *
+ */
+
+
+ /*
+ * Find where to begin our substring (after the prefix)
+ */
+ String endResult = "";
+ char[] enumNameCharArray = subSkillName.toString().toCharArray();
+ int subStringIndex = 0;
+
+ //Find where to start our substring for this constants name
+ for (int i = 0; i < enumNameCharArray.length; i++) {
+ if(enumNameCharArray[i] == '_')
+ {
+ subStringIndex = i+1; //Start the substring after this char
+
+ break;
+ }
+ }
+
+ /*
+ * Split the string up so we can capitalize each part
+ */
+ String subskillNameWithoutPrefix = subSkillName.toString().substring(subStringIndex);
+ String splitStrings[] = subskillNameWithoutPrefix.split("_");
+
+ for(String string : splitStrings)
+ {
+ endResult += StringUtils.getCapitalized(string);
+ }
+
+ return endResult;
+ }
+}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/AbilityType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SuperAbility.java
similarity index 97%
rename from src/main/java/com/gmail/nossr50/datatypes/skills/AbilityType.java
rename to src/main/java/com/gmail/nossr50/datatypes/skills/SuperAbility.java
index 8dd8454b5..ead4d5978 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/AbilityType.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SuperAbility.java
@@ -10,7 +10,7 @@ import com.gmail.nossr50.util.BlockUtils;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.StringUtils;
-public enum AbilityType {
+public enum SuperAbility {
BERSERK(
"Unarmed.Skills.Berserk.On",
"Unarmed.Skills.Berserk.Off",
@@ -77,7 +77,7 @@ public enum AbilityType {
private String abilityRefresh;
private String abilityPlayerOff;
- private AbilityType(String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) {
+ private SuperAbility(String abilityOn, String abilityOff, String abilityPlayer, String abilityRefresh, String abilityPlayerOff) {
this.abilityOn = abilityOn;
this.abilityOff = abilityOff;
this.abilityPlayer = abilityPlayer;
diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
index d0aa47979..6ea8c118e 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
@@ -1,11 +1,11 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.player.UserManager;
@@ -14,19 +14,19 @@ import com.gmail.nossr50.util.player.UserManager;
*/
public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements Cancellable {
private boolean cancelled;
- protected SkillType skill;
+ protected PrimarySkill skill;
protected int skillLevel;
protected XPGainReason xpGainReason;
@Deprecated
- protected McMMOPlayerExperienceEvent(Player player, SkillType skill) {
+ protected McMMOPlayerExperienceEvent(Player player, PrimarySkill skill) {
super(player);
this.skill = skill;
this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
this.xpGainReason = XPGainReason.UNKNOWN;
}
- protected McMMOPlayerExperienceEvent(Player player, SkillType skill, XPGainReason xpGainReason) {
+ protected McMMOPlayerExperienceEvent(Player player, PrimarySkill skill, XPGainReason xpGainReason) {
super(player);
this.skill = skill;
this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
@@ -36,7 +36,7 @@ public abstract class McMMOPlayerExperienceEvent extends PlayerEvent implements
/**
* @return The skill involved in this event
*/
- public SkillType getSkill() {
+ public PrimarySkill getSkill() {
return skill;
}
diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java
index e0a064312..25d05c383 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java
@@ -1,8 +1,8 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
/**
@@ -10,11 +10,11 @@ import com.gmail.nossr50.datatypes.skills.XPGainReason;
*/
public abstract class McMMOPlayerLevelChangeEvent extends McMMOPlayerExperienceEvent {
@Deprecated
- public McMMOPlayerLevelChangeEvent(Player player, SkillType skill) {
+ public McMMOPlayerLevelChangeEvent(Player player, PrimarySkill skill) {
super(player, skill, XPGainReason.UNKNOWN);
}
- public McMMOPlayerLevelChangeEvent(Player player, SkillType skill, XPGainReason xpGainReason) {
+ public McMMOPlayerLevelChangeEvent(Player player, PrimarySkill skill, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
}
}
diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java
index 4bdf32844..817c853aa 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java
@@ -1,9 +1,9 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
/**
@@ -13,23 +13,23 @@ public class McMMOPlayerLevelDownEvent extends McMMOPlayerLevelChangeEvent {
private int levelsLost;
@Deprecated
- public McMMOPlayerLevelDownEvent(Player player, SkillType skill) {
+ public McMMOPlayerLevelDownEvent(Player player, PrimarySkill skill) {
super(player, skill, XPGainReason.UNKNOWN);
this.levelsLost = 1;
}
@Deprecated
- public McMMOPlayerLevelDownEvent(Player player, SkillType skill, int levelsLost) {
+ public McMMOPlayerLevelDownEvent(Player player, PrimarySkill skill, int levelsLost) {
super(player, skill, XPGainReason.UNKNOWN);
this.levelsLost = levelsLost;
}
- public McMMOPlayerLevelDownEvent(Player player, SkillType skill, XPGainReason xpGainReason) {
+ public McMMOPlayerLevelDownEvent(Player player, PrimarySkill skill, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
this.levelsLost = 1;
}
- public McMMOPlayerLevelDownEvent(Player player, SkillType skill, int levelsLost, XPGainReason xpGainReason) {
+ public McMMOPlayerLevelDownEvent(Player player, PrimarySkill skill, int levelsLost, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
this.levelsLost = levelsLost;
}
diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
index 7351f6915..c6495cc52 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
@@ -1,9 +1,9 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
/**
@@ -13,23 +13,23 @@ public class McMMOPlayerLevelUpEvent extends McMMOPlayerLevelChangeEvent {
private int levelsGained;
@Deprecated
- public McMMOPlayerLevelUpEvent(Player player, SkillType skill) {
+ public McMMOPlayerLevelUpEvent(Player player, PrimarySkill skill) {
super(player, skill, XPGainReason.UNKNOWN);
this.levelsGained = 1;
}
@Deprecated
- public McMMOPlayerLevelUpEvent(Player player, SkillType skill, int levelsGained) {
+ public McMMOPlayerLevelUpEvent(Player player, PrimarySkill skill, int levelsGained) {
super(player, skill, XPGainReason.UNKNOWN);
this.levelsGained = levelsGained;
}
- public McMMOPlayerLevelUpEvent(Player player, SkillType skill, XPGainReason xpGainReason) {
+ public McMMOPlayerLevelUpEvent(Player player, PrimarySkill skill, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
this.levelsGained = 1;
}
- public McMMOPlayerLevelUpEvent(Player player, SkillType skill, int levelsGained, XPGainReason xpGainReason) {
+ public McMMOPlayerLevelUpEvent(Player player, PrimarySkill skill, int levelsGained, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
this.levelsGained = levelsGained;
}
diff --git a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
index 53e28971f..74295ccb5 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
@@ -1,9 +1,9 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
/**
@@ -13,12 +13,12 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
private float xpGained;
@Deprecated
- public McMMOPlayerXpGainEvent(Player player, SkillType skill, float xpGained) {
+ public McMMOPlayerXpGainEvent(Player player, PrimarySkill skill, float xpGained) {
super(player, skill, XPGainReason.UNKNOWN);
this.xpGained = xpGained;
}
- public McMMOPlayerXpGainEvent(Player player, SkillType skill, float xpGained, XPGainReason xpGainReason) {
+ public McMMOPlayerXpGainEvent(Player player, PrimarySkill skill, float xpGained, XPGainReason xpGainReason) {
super(player, skill, xpGainReason);
this.xpGained = xpGained;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java b/src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java
index 65ca37f15..63ebeedc1 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/McMMOPlayerSkillEvent.java
@@ -1,20 +1,20 @@
package com.gmail.nossr50.events.skills;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
import org.bukkit.event.player.PlayerEvent;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.util.player.UserManager;
/**
* Generic event for mcMMO skill handling.
*/
public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
- protected SkillType skill;
+ protected PrimarySkill skill;
protected int skillLevel;
- protected McMMOPlayerSkillEvent(Player player, SkillType skill) {
+ protected McMMOPlayerSkillEvent(Player player, PrimarySkill skill) {
super(player);
this.skill = skill;
this.skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
@@ -23,7 +23,7 @@ public abstract class McMMOPlayerSkillEvent extends PlayerEvent {
/**
* @return The skill involved in this event
*/
- public SkillType getSkill() {
+ public PrimarySkill getSkill() {
return skill;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java
index f0b371fd3..7e3af4e76 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityActivateEvent.java
@@ -1,14 +1,13 @@
package com.gmail.nossr50.events.skills.abilities;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
-import com.gmail.nossr50.datatypes.skills.SkillType;
-
public class McMMOPlayerAbilityActivateEvent extends McMMOPlayerAbilityEvent implements Cancellable {
private boolean cancelled;
- public McMMOPlayerAbilityActivateEvent(Player player, SkillType skill) {
+ public McMMOPlayerAbilityActivateEvent(Player player, PrimarySkill skill) {
super(player, skill);
cancelled = false;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java
index 6eeb7f479..eeb256e46 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityDeactivateEvent.java
@@ -2,10 +2,10 @@ package com.gmail.nossr50.events.skills.abilities;
import org.bukkit.entity.Player;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
public class McMMOPlayerAbilityDeactivateEvent extends McMMOPlayerAbilityEvent {
- public McMMOPlayerAbilityDeactivateEvent(Player player, SkillType skill) {
+ public McMMOPlayerAbilityDeactivateEvent(Player player, PrimarySkill skill) {
super(player, skill);
}
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java
index a65752c55..6b88fb024 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/abilities/McMMOPlayerAbilityEvent.java
@@ -2,19 +2,19 @@ package com.gmail.nossr50.events.skills.abilities;
import org.bukkit.entity.Player;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
public class McMMOPlayerAbilityEvent extends McMMOPlayerSkillEvent {
- private AbilityType ability;
+ private SuperAbility ability;
- protected McMMOPlayerAbilityEvent(Player player, SkillType skill) {
+ protected McMMOPlayerAbilityEvent(Player player, PrimarySkill skill) {
super(player, skill);
ability = skill.getAbility();
}
- public AbilityType getAbility() {
+ public SuperAbility getAbility() {
return ability;
}
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java
index 0152b30e9..8629454de 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerBrewEvent.java
@@ -1,12 +1,12 @@
package com.gmail.nossr50.events.skills.alchemy;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.BrewingStand;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
public class McMMOPlayerBrewEvent extends McMMOPlayerSkillEvent implements Cancellable {
@@ -15,7 +15,7 @@ public class McMMOPlayerBrewEvent extends McMMOPlayerSkillEvent implements Cance
private boolean cancelled;
public McMMOPlayerBrewEvent(Player player, BlockState brewingStand) {
- super(player, SkillType.ALCHEMY);
+ super(player, PrimarySkill.ALCHEMY);
this.brewingStand = brewingStand;
cancelled = false;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java
index 48c2e27c1..6b00d299f 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/alchemy/McMMOPlayerCatalysisEvent.java
@@ -3,7 +3,7 @@ package com.gmail.nossr50.events.skills.alchemy;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
public class McMMOPlayerCatalysisEvent extends McMMOPlayerSkillEvent implements Cancellable {
@@ -12,7 +12,7 @@ public class McMMOPlayerCatalysisEvent extends McMMOPlayerSkillEvent implements
private boolean cancelled;
public McMMOPlayerCatalysisEvent(Player player, double speed) {
- super(player, SkillType.ALCHEMY);
+ super(player, PrimarySkill.ALCHEMY);
this.speed = speed;
cancelled = false;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java b/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java
index 09d8c0842..d91a74e58 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/fishing/McMMOPlayerFishingEvent.java
@@ -1,16 +1,16 @@
package com.gmail.nossr50.events.skills.fishing;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
public class McMMOPlayerFishingEvent extends McMMOPlayerSkillEvent implements Cancellable {
private boolean cancelled;
protected McMMOPlayerFishingEvent(Player player) {
- super(player, SkillType.FISHING);
+ super(player, PrimarySkill.FISHING);
cancelled = false;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java b/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java
index e2f2eb009..82a2bf6be 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/repair/McMMOPlayerRepairCheckEvent.java
@@ -1,10 +1,10 @@
package com.gmail.nossr50.events.skills.repair;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.inventory.ItemStack;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
/**
@@ -17,7 +17,7 @@ public class McMMOPlayerRepairCheckEvent extends McMMOPlayerSkillEvent implement
private boolean cancelled;
public McMMOPlayerRepairCheckEvent(Player player, short repairAmount, ItemStack repairMaterial, ItemStack repairedObject) {
- super(player, SkillType.REPAIR);
+ super(player, PrimarySkill.REPAIR);
this.repairAmount = repairAmount;
this.repairMaterial = repairMaterial;
this.repairedObject = repairedObject;
diff --git a/src/main/java/com/gmail/nossr50/events/skills/salvage/McMMOPlayerSalvageCheckEvent.java b/src/main/java/com/gmail/nossr50/events/skills/salvage/McMMOPlayerSalvageCheckEvent.java
index 868a7dd6e..960fd4f31 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/salvage/McMMOPlayerSalvageCheckEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/salvage/McMMOPlayerSalvageCheckEvent.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.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
/**
@@ -17,7 +17,7 @@ public class McMMOPlayerSalvageCheckEvent extends McMMOPlayerSkillEvent implemen
private boolean cancelled;
public McMMOPlayerSalvageCheckEvent(Player player, ItemStack salvageItem, ItemStack salvageResults, ItemStack enchantedBook) {
- super(player, SkillType.SALVAGE);
+ super(player, PrimarySkill.SALVAGE);
this.salvageItem = salvageItem;
this.salvageResults = salvageResults;
this.enchantedBook = enchantedBook;
diff --git a/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityEvent.java b/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityEvent.java
deleted file mode 100644
index d867c1f47..000000000
--- a/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityEvent.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.gmail.nossr50.events.skills.secondaryabilities;
-
-import org.bukkit.entity.Player;
-import org.bukkit.event.Cancellable;
-
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
-import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
-
-public class SecondaryAbilityEvent extends McMMOPlayerSkillEvent implements Cancellable {
- private SecondaryAbility secondaryAbility;
- private boolean cancelled;
-
- public SecondaryAbilityEvent(Player player, SecondaryAbility secondaryAbility) {
- super(player, SkillType.bySecondaryAbility(secondaryAbility));
- this.secondaryAbility = secondaryAbility;
- cancelled = false;
- }
-
- /**
- * Gets the SecondaryAbility involved in the event
- * @return the SecondaryAbility
- */
- public SecondaryAbility getSecondaryAbility() {
- return secondaryAbility;
- }
-
- public boolean isCancelled() {
- return cancelled;
- }
-
- public void setCancelled(boolean newValue) {
- this.cancelled = newValue;
- }
-}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillEvent.java b/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillEvent.java
new file mode 100644
index 000000000..1cf5e6adc
--- /dev/null
+++ b/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillEvent.java
@@ -0,0 +1,35 @@
+package com.gmail.nossr50.events.skills.secondaryabilities;
+
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Cancellable;
+
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
+
+public class SubSkillEvent extends McMMOPlayerSkillEvent implements Cancellable {
+ private SubSkill subSkill;
+ private boolean cancelled;
+
+ public SubSkillEvent(Player player, SubSkill subSkill) {
+ super(player, PrimarySkill.bySecondaryAbility(subSkill));
+ this.subSkill = subSkill;
+ cancelled = false;
+ }
+
+ /**
+ * Gets the SubSkill involved in the event
+ * @return the SubSkill
+ */
+ public SubSkill getSubSkill() {
+ return subSkill;
+ }
+
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ public void setCancelled(boolean newValue) {
+ this.cancelled = newValue;
+ }
+}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityWeightedActivationCheckEvent.java b/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillWeightedActivationCheckEvent.java
similarity index 77%
rename from src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityWeightedActivationCheckEvent.java
rename to src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillWeightedActivationCheckEvent.java
index 674df3e17..2d392e715 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SecondaryAbilityWeightedActivationCheckEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/secondaryabilities/SubSkillWeightedActivationCheckEvent.java
@@ -1,13 +1,12 @@
package com.gmail.nossr50.events.skills.secondaryabilities;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import org.bukkit.entity.Player;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-
-public class SecondaryAbilityWeightedActivationCheckEvent extends SecondaryAbilityEvent {
+public class SubSkillWeightedActivationCheckEvent extends SubSkillEvent {
private double chance;
- public SecondaryAbilityWeightedActivationCheckEvent(Player player, SecondaryAbility ability, double chance) {
+ public SubSkillWeightedActivationCheckEvent(Player player, SubSkill ability, double chance) {
super(player, ability);
this.chance = chance;
}
diff --git a/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java b/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java
index defc5edde..9db531d79 100644
--- a/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/skills/unarmed/McMMOPlayerDisarmEvent.java
@@ -3,7 +3,7 @@ package com.gmail.nossr50.events.skills.unarmed;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.events.skills.McMMOPlayerSkillEvent;
public class McMMOPlayerDisarmEvent extends McMMOPlayerSkillEvent implements Cancellable {
@@ -11,7 +11,7 @@ public class McMMOPlayerDisarmEvent extends McMMOPlayerSkillEvent implements Can
private Player defender;
public McMMOPlayerDisarmEvent(Player defender) {
- super(defender, SkillType.UNARMED);
+ super(defender, PrimarySkill.UNARMED);
this.defender = defender;
}
diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
index 7fbb4140b..bed772f2d 100644
--- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
@@ -3,8 +3,8 @@ package com.gmail.nossr50.listeners;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.HiddenConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.events.fake.FakeBlockBreakEvent;
import com.gmail.nossr50.events.fake.FakeBlockDamageEvent;
@@ -136,10 +136,10 @@ public class BlockListener implements Listener {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
- if (blockState.getType() == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player)) {
+ if (blockState.getType() == Repair.anvilMaterial && PrimarySkill.REPAIR.getPermissions(player)) {
mcMMOPlayer.getRepairManager().placedAnvilCheck();
}
- else if (blockState.getType() == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player)) {
+ else if (blockState.getType() == Salvage.anvilMaterial && PrimarySkill.SALVAGE.getPermissions(player)) {
mcMMOPlayer.getSalvageManager().placedAnvilCheck();
}
}
@@ -194,26 +194,26 @@ public class BlockListener implements Listener {
/* Green Terra */
if (herbalismManager.canActivateAbility()) {
- mcMMOPlayer.checkAbilityActivation(SkillType.HERBALISM);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.HERBALISM);
}
/*
* We don't check the block store here because herbalism has too many unusual edge cases.
* Instead, we check it inside the drops handler.
*/
- if (SkillType.HERBALISM.getPermissions(player)) {
+ if (PrimarySkill.HERBALISM.getPermissions(player)) {
herbalismManager.herbalismBlockCheck(blockState);
}
}
/* MINING */
- else if (BlockUtils.affectedBySuperBreaker(blockState) && ItemUtils.isPickaxe(heldItem) && SkillType.MINING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
+ else if (BlockUtils.affectedBySuperBreaker(blockState) && ItemUtils.isPickaxe(heldItem) && PrimarySkill.MINING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
MiningManager miningManager = mcMMOPlayer.getMiningManager();
miningManager.miningBlockCheck(blockState);
}
/* WOOD CUTTING */
- else if (BlockUtils.isLog(blockState) && ItemUtils.isAxe(heldItem) && SkillType.WOODCUTTING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
+ else if (BlockUtils.isLog(blockState) && ItemUtils.isAxe(heldItem) && PrimarySkill.WOODCUTTING.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
WoodcuttingManager woodcuttingManager = mcMMOPlayer.getWoodcuttingManager();
if (woodcuttingManager.canUseTreeFeller(heldItem)) {
woodcuttingManager.processTreeFeller(blockState);
@@ -224,11 +224,11 @@ public class BlockListener implements Listener {
}
/* EXCAVATION */
- else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && SkillType.EXCAVATION.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
+ else if (BlockUtils.affectedByGigaDrillBreaker(blockState) && ItemUtils.isShovel(heldItem) && PrimarySkill.EXCAVATION.getPermissions(player) && !mcMMO.getPlaceStore().isTrue(blockState)) {
ExcavationManager excavationManager = mcMMOPlayer.getExcavationManager();
excavationManager.excavationBlockCheck(blockState);
- if (mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER)) {
+ if (mcMMOPlayer.getAbilityMode(SuperAbility.GIGA_DRILL_BREAKER)) {
excavationManager.gigaDrillBreaker(blockState);
}
}
@@ -318,30 +318,30 @@ public class BlockListener implements Listener {
ItemStack heldItem = player.getInventory().getItemInMainHand();
if (HiddenConfig.getInstance().useEnchantmentBuffs()) {
- if ((ItemUtils.isPickaxe(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER)) || (ItemUtils.isShovel(heldItem) && !mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER))) {
+ if ((ItemUtils.isPickaxe(heldItem) && !mcMMOPlayer.getAbilityMode(SuperAbility.SUPER_BREAKER)) || (ItemUtils.isShovel(heldItem) && !mcMMOPlayer.getAbilityMode(SuperAbility.GIGA_DRILL_BREAKER))) {
SkillUtils.removeAbilityBuff(heldItem);
}
}
else {
- if ((mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) && !BlockUtils.affectedBySuperBreaker(blockState)) || (mcMMOPlayer.getAbilityMode(AbilityType.GIGA_DRILL_BREAKER) && !BlockUtils.affectedByGigaDrillBreaker(blockState))) {
+ if ((mcMMOPlayer.getAbilityMode(SuperAbility.SUPER_BREAKER) && !BlockUtils.affectedBySuperBreaker(blockState)) || (mcMMOPlayer.getAbilityMode(SuperAbility.GIGA_DRILL_BREAKER) && !BlockUtils.affectedByGigaDrillBreaker(blockState))) {
SkillUtils.handleAbilitySpeedDecrease(player);
}
}
if (mcMMOPlayer.getToolPreparationMode(ToolType.HOE) && ItemUtils.isHoe(heldItem) && (BlockUtils.affectedByGreenTerra(blockState) || BlockUtils.canMakeMossy(blockState)) && Permissions.greenTerra(player)) {
- mcMMOPlayer.checkAbilityActivation(SkillType.HERBALISM);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.HERBALISM);
}
else if (mcMMOPlayer.getToolPreparationMode(ToolType.AXE) && ItemUtils.isAxe(heldItem) && BlockUtils.isLog(blockState) && Permissions.treeFeller(player)) {
- mcMMOPlayer.checkAbilityActivation(SkillType.WOODCUTTING);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.WOODCUTTING);
}
else if (mcMMOPlayer.getToolPreparationMode(ToolType.PICKAXE) && ItemUtils.isPickaxe(heldItem) && BlockUtils.affectedBySuperBreaker(blockState) && Permissions.superBreaker(player)) {
- mcMMOPlayer.checkAbilityActivation(SkillType.MINING);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.MINING);
}
else if (mcMMOPlayer.getToolPreparationMode(ToolType.SHOVEL) && ItemUtils.isShovel(heldItem) && BlockUtils.affectedByGigaDrillBreaker(blockState) && Permissions.gigaDrillBreaker(player)) {
- mcMMOPlayer.checkAbilityActivation(SkillType.EXCAVATION);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.EXCAVATION);
}
else if (mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && heldItem.getType() == Material.AIR && (BlockUtils.affectedByGigaDrillBreaker(blockState) || blockState.getType() == Material.SNOW || BlockUtils.affectedByBlockCracker(blockState) && Permissions.berserk(player))) {
- mcMMOPlayer.checkAbilityActivation(SkillType.UNARMED);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.UNARMED);
}
}
@@ -350,7 +350,7 @@ public class BlockListener implements Listener {
*
* We don't need to check permissions here because they've already been checked for the ability to even activate.
*/
- if (mcMMOPlayer.getAbilityMode(AbilityType.TREE_FELLER) && BlockUtils.isLog(blockState) && Config.getInstance().getTreeFellerSoundsEnabled()) {
+ if (mcMMOPlayer.getAbilityMode(SuperAbility.TREE_FELLER) && BlockUtils.isLog(blockState) && Config.getInstance().getTreeFellerSoundsEnabled()) {
player.playSound(blockState.getLocation(), Sound.BLOCK_FIRE_EXTINGUISH, Misc.FIZZ_VOLUME, Misc.getFizzPitch());
}
}
@@ -382,13 +382,13 @@ public class BlockListener implements Listener {
*
* We don't need to check permissions here because they've already been checked for the ability to even activate.
*/
- if (mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState)) {
+ if (mcMMOPlayer.getAbilityMode(SuperAbility.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState)) {
if (mcMMOPlayer.getHerbalismManager().processGreenTerra(blockState)) {
blockState.update(true);
}
}
- else if (mcMMOPlayer.getAbilityMode(AbilityType.BERSERK) && heldItem.getType() == Material.AIR) {
- if (AbilityType.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
+ else if (mcMMOPlayer.getAbilityMode(SuperAbility.BERSERK) && heldItem.getType() == Material.AIR) {
+ if (SuperAbility.BERSERK.blockCheck(block.getState()) && EventUtils.simulateBlockBreak(block, player, true)) {
event.setInstaBreak(true);
player.playSound(block.getLocation(), Sound.ENTITY_ITEM_PICKUP, Misc.POP_VOLUME, Misc.getPopPitch());
}
diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java
index 09e41bc88..91c465dd7 100644
--- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java
@@ -3,7 +3,7 @@ package com.gmail.nossr50.listeners;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
@@ -583,7 +583,7 @@ public class EntityListener implements Listener {
* RESTORES 4 HUNGER - RESTORES 6 1/2 HUNGER @
* 1000
*/
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.HERBALISM_FARMERS_DIET)) {
event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(Herbalism.farmersDietRankLevel1, newFoodLevel));
}
return;
@@ -595,7 +595,7 @@ public class EntityListener implements Listener {
* @ 1000
*/
case POTATO: /* RESTORES 1/2 HUNGER - RESTORES 2 HUNGER @ 1000 */
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FARMERS_DIET)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.HERBALISM_FARMERS_DIET)) {
event.setFoodLevel(UserManager.getPlayer(player).getHerbalismManager().farmersDiet(Herbalism.farmersDietRankLevel2, newFoodLevel));
}
return;
@@ -604,13 +604,13 @@ public class EntityListener implements Listener {
* RESTORES 2 1/2 HUNGER - RESTORES 5 HUNGER @
* 1000
*/
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FISHERMANS_DIET)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.FISHING_FISHERMANS_DIET)) {
event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel1, newFoodLevel));
}
return;
case SALMON: /* RESTORES 1 HUNGER - RESTORES 2 1/2 HUNGER @ 1000 */
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FISHERMANS_DIET)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.FISHING_FISHERMANS_DIET)) {
event.setFoodLevel(UserManager.getPlayer(player).getFishingManager().handleFishermanDiet(Fishing.fishermansDietRankLevel2, newFoodLevel));
}
return;
diff --git a/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java b/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java
index 6c6980215..4c7d79f84 100644
--- a/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/InventoryListener.java
@@ -2,8 +2,9 @@ package com.gmail.nossr50.listeners;
import java.util.List;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.events.fake.FakeBrewEvent;
-import com.gmail.nossr50.skills.alchemy.AlchemyManager;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
@@ -25,8 +26,6 @@ import org.bukkit.metadata.MetadataValue;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.runnables.player.PlayerUpdateInventoryTask;
import com.gmail.nossr50.skills.alchemy.Alchemy;
import com.gmail.nossr50.skills.alchemy.AlchemyPotionBrewer;
@@ -88,7 +87,7 @@ public class InventoryListener implements Listener {
Player player = getPlayerFromFurnace(furnaceBlock);
- if (!UserManager.hasPlayerDataKey(player) || !Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FUEL_EFFICIENCY)) {
+ if (!UserManager.hasPlayerDataKey(player) || !Permissions.isSubSkillEnabled(player, SubSkill.SMELTING_FUEL_EFFICIENCY)) {
return;
}
@@ -106,7 +105,7 @@ public class InventoryListener implements Listener {
Player player = getPlayerFromFurnace(furnaceBlock);
- if (!UserManager.hasPlayerDataKey(player) || !SkillType.SMELTING.getPermissions(player)) {
+ if (!UserManager.hasPlayerDataKey(player) || !PrimarySkill.SMELTING.getPermissions(player)) {
return;
}
@@ -123,7 +122,7 @@ public class InventoryListener implements Listener {
Player player = getPlayerFromFurnace(furnaceBlock);
- if (!UserManager.hasPlayerDataKey(player) || !Permissions.vanillaXpBoost(player, SkillType.SMELTING)) {
+ if (!UserManager.hasPlayerDataKey(player) || !Permissions.vanillaXpBoost(player, PrimarySkill.SMELTING)) {
return;
}
@@ -147,7 +146,7 @@ public class InventoryListener implements Listener {
HumanEntity whoClicked = event.getWhoClicked();
- if (!UserManager.hasPlayerDataKey(event.getWhoClicked()) || !Permissions.secondaryAbilityEnabled(whoClicked, SecondaryAbility.CONCOCTIONS)) {
+ if (!UserManager.hasPlayerDataKey(event.getWhoClicked()) || !Permissions.isSubSkillEnabled(whoClicked, SubSkill.ALCHEMY_CONCOCTIONS)) {
return;
}
@@ -246,7 +245,7 @@ public class InventoryListener implements Listener {
HumanEntity whoClicked = event.getWhoClicked();
- if (!UserManager.hasPlayerDataKey(event.getWhoClicked()) || !Permissions.secondaryAbilityEnabled(whoClicked, SecondaryAbility.CONCOCTIONS)) {
+ if (!UserManager.hasPlayerDataKey(event.getWhoClicked()) || !Permissions.isSubSkillEnabled(whoClicked, SubSkill.ALCHEMY_CONCOCTIONS)) {
return;
}
diff --git a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
index 63ea0a7b5..38943f1c9 100644
--- a/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/PlayerListener.java
@@ -8,8 +8,8 @@ import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.chat.ChatMode;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.ShareHandler;
@@ -186,7 +186,7 @@ public class PlayerListener implements Listener {
public void onPlayerFishHighest(PlayerFishEvent event) {
Player player = event.getPlayer();
- if (!UserManager.hasPlayerDataKey(player) || !SkillType.FISHING.getPermissions(player)) {
+ if (!UserManager.hasPlayerDataKey(player) || !PrimarySkill.FISHING.getPermissions(player)) {
return;
}
@@ -210,7 +210,7 @@ public class PlayerListener implements Listener {
fishingCatch.setItemStack(new ItemStack(Material.SALMON, 1));
}
- if (Permissions.vanillaXpBoost(player, SkillType.FISHING)) {
+ if (Permissions.vanillaXpBoost(player, PrimarySkill.FISHING)) {
event.setExpToDrop(fishingManager.handleVanillaXpBoost(event.getExpToDrop()));
}
return;
@@ -241,7 +241,7 @@ public class PlayerListener implements Listener {
public void onPlayerFishMonitor(PlayerFishEvent event) {
Player player = event.getPlayer();
- if (!UserManager.hasPlayerDataKey(player) || !SkillType.FISHING.getPermissions(player)) {
+ if (!UserManager.hasPlayerDataKey(player) || !PrimarySkill.FISHING.getPermissions(player)) {
return;
}
@@ -308,7 +308,7 @@ public class PlayerListener implements Listener {
}
}
- if ((mcMMOPlayer.isUsingUnarmed() && ItemUtils.isSharable(dropStack) && !Config.getInstance().getUnarmedItemsAsUnarmed()) || mcMMOPlayer.getAbilityMode(AbilityType.BERSERK)) {
+ if ((mcMMOPlayer.isUsingUnarmed() && ItemUtils.isSharable(dropStack) && !Config.getInstance().getUnarmedItemsAsUnarmed()) || mcMMOPlayer.getAbilityMode(SuperAbility.BERSERK)) {
boolean pickupSuccess = Unarmed.handleItemPickup(player.getInventory(), drop);
boolean cancel = Config.getInstance().getUnarmedItemPickupDisabled() || pickupSuccess;
event.setCancelled(cancel);
@@ -414,7 +414,7 @@ public class PlayerListener implements Listener {
if (!Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() || player.isSneaking()) {
/* REPAIR CHECKS */
- if (type == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
+ if (type == Repair.anvilMaterial && PrimarySkill.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
RepairManager repairManager = mcMMOPlayer.getRepairManager();
event.setCancelled(true);
@@ -425,7 +425,7 @@ public class PlayerListener implements Listener {
}
}
/* SALVAGE CHECKS */
- else if (type == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) {
+ else if (type == Salvage.anvilMaterial && PrimarySkill.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) {
SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager();
event.setCancelled(true);
@@ -454,7 +454,7 @@ public class PlayerListener implements Listener {
if (!Config.getInstance().getAbilitiesOnlyActivateWhenSneaking() || player.isSneaking()) {
/* REPAIR CHECKS */
- if (type == Repair.anvilMaterial && SkillType.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
+ if (type == Repair.anvilMaterial && PrimarySkill.REPAIR.getPermissions(player) && mcMMO.getRepairableManager().isRepairable(heldItem)) {
RepairManager repairManager = mcMMOPlayer.getRepairManager();
// Cancel repairing an enchanted item
@@ -464,7 +464,7 @@ public class PlayerListener implements Listener {
}
}
/* SALVAGE CHECKS */
- else if (type == Salvage.anvilMaterial && SkillType.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) {
+ else if (type == Salvage.anvilMaterial && PrimarySkill.SALVAGE.getPermissions(player) && mcMMO.getSalvageableManager().isSalvageable(heldItem)) {
SalvageManager salvageManager = mcMMOPlayer.getSalvageManager();
// Cancel salvaging an enchanted item
@@ -511,15 +511,15 @@ public class PlayerListener implements Listener {
if (BlockUtils.canActivateAbilities(blockState)) {
if (Config.getInstance().getAbilitiesEnabled()) {
if (BlockUtils.canActivateHerbalism(blockState)) {
- mcMMOPlayer.processAbilityActivation(SkillType.HERBALISM);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.HERBALISM);
}
- mcMMOPlayer.processAbilityActivation(SkillType.AXES);
- mcMMOPlayer.processAbilityActivation(SkillType.EXCAVATION);
- mcMMOPlayer.processAbilityActivation(SkillType.MINING);
- mcMMOPlayer.processAbilityActivation(SkillType.SWORDS);
- mcMMOPlayer.processAbilityActivation(SkillType.UNARMED);
- mcMMOPlayer.processAbilityActivation(SkillType.WOODCUTTING);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.AXES);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.EXCAVATION);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.MINING);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.SWORDS);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.UNARMED);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.WOODCUTTING);
}
ChimaeraWing.activationCheck(player);
@@ -564,13 +564,13 @@ public class PlayerListener implements Listener {
/* ACTIVATION CHECKS */
if (Config.getInstance().getAbilitiesEnabled()) {
- mcMMOPlayer.processAbilityActivation(SkillType.AXES);
- mcMMOPlayer.processAbilityActivation(SkillType.EXCAVATION);
- mcMMOPlayer.processAbilityActivation(SkillType.HERBALISM);
- mcMMOPlayer.processAbilityActivation(SkillType.MINING);
- mcMMOPlayer.processAbilityActivation(SkillType.SWORDS);
- mcMMOPlayer.processAbilityActivation(SkillType.UNARMED);
- mcMMOPlayer.processAbilityActivation(SkillType.WOODCUTTING);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.AXES);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.EXCAVATION);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.HERBALISM);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.MINING);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.SWORDS);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.UNARMED);
+ mcMMOPlayer.processAbilityActivation(PrimarySkill.WOODCUTTING);
}
/* ITEM CHECKS */
@@ -670,7 +670,7 @@ public class PlayerListener implements Listener {
String lowerCaseCommand = command.toLowerCase();
// Do these ACTUALLY have to be lower case to work properly?
- for (SkillType skill : SkillType.values()) {
+ for (PrimarySkill skill : PrimarySkill.values()) {
String skillName = skill.toString().toLowerCase();
String localizedName = skill.getName().toLowerCase();
diff --git a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java b/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
index c9ab378e9..54fca0d0e 100644
--- a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
@@ -1,5 +1,6 @@
package com.gmail.nossr50.listeners;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -9,7 +10,6 @@ import org.bukkit.event.Listener;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent;
@@ -20,7 +20,7 @@ public class SelfListener implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerLevelUp(McMMOPlayerLevelUpEvent event) {
Player player = event.getPlayer();
- SkillType skill = event.getSkill();
+ PrimarySkill skill = event.getSkill();
ScoreboardManager.handleLevelUp(player, skill);
@@ -47,8 +47,8 @@ public class SelfListener implements Listener {
public void onPlayerXpGain(McMMOPlayerXpGainEvent event) {
if (event.getXpGainReason() == XPGainReason.COMMAND)
return;
- SkillType skillType = event.getSkill();
- int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold(skillType);
+ PrimarySkill primarySkill = event.getSkill();
+ int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold(primarySkill);
if (threshold <= 0 || !ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
// Diminished returns is turned off
return;
@@ -63,15 +63,15 @@ public class SelfListener implements Listener {
Player player = event.getPlayer();
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
- if (skillType.isChildSkill()) {
+ if (primarySkill.isChildSkill()) {
return;
}
- float modifiedThreshold = (float) (threshold / skillType.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
- float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(skillType) - modifiedThreshold) / modifiedThreshold;
+ float modifiedThreshold = (float) (threshold / primarySkill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier());
+ float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkill) - modifiedThreshold) / modifiedThreshold;
if (difference > 0) {
-// System.out.println("Total XP Earned: " + mcMMOPlayer.getProfile().getRegisteredXpGain(skillType) + " / Threshold value: " + threshold);
+// System.out.println("Total XP Earned: " + mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkill) + " / Threshold value: " + threshold);
// System.out.println(difference * 100 + "% over the threshold!");
// System.out.println("Previous: " + event.getRawXpGained());
// System.out.println("Adjusted XP " + (event.getRawXpGained() - (event.getRawXpGained() * difference)));
diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java
index 9cf3aa224..a6ae67b17 100644
--- a/src/main/java/com/gmail/nossr50/mcMMO.java
+++ b/src/main/java/com/gmail/nossr50/mcMMO.java
@@ -90,6 +90,8 @@ public class mcMMO extends JavaPlugin {
// XP Event Check
private boolean xpEventEnabled;
+ private boolean classicModeEnabled;
+
/* Metadata Values */
public final static String entityMetadataKey = "mcMMO: Spawned Entity";
public final static String blockMetadataKey = "mcMMO: Piston Tracking";
@@ -187,6 +189,9 @@ public class mcMMO extends JavaPlugin {
getServer().getPluginManager().disablePlugin(this);
}
+
+ //Grab the setting for classic mode
+ classicModeEnabled = Config.getInstance().getClassicMode();
}
/**
diff --git a/src/main/java/com/gmail/nossr50/party/ShareHandler.java b/src/main/java/com/gmail/nossr50/party/ShareHandler.java
index a62116824..95a506189 100644
--- a/src/main/java/com/gmail/nossr50/party/ShareHandler.java
+++ b/src/main/java/com/gmail/nossr50/party/ShareHandler.java
@@ -2,6 +2,7 @@ package com.gmail.nossr50.party;
import java.util.List;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@@ -12,7 +13,6 @@ import com.gmail.nossr50.datatypes.party.ItemShareType;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.party.ShareMode;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.player.UserManager;
@@ -25,10 +25,10 @@ public final class ShareHandler {
*
* @param xp Xp without party sharing
* @param mcMMOPlayer Player initiating the Xp gain
- * @param skillType Skill being used
+ * @param primarySkill Skill being used
* @return True is the xp has been shared
*/
- public static boolean handleXpShare(float xp, McMMOPlayer mcMMOPlayer, SkillType skillType, XPGainReason xpGainReason) {
+ public static boolean handleXpShare(float xp, McMMOPlayer mcMMOPlayer, PrimarySkill primarySkill, XPGainReason xpGainReason) {
Party party = mcMMOPlayer.getParty();
if (party.getXpShareMode() != ShareMode.EQUAL) {
@@ -48,7 +48,7 @@ public final class ShareHandler {
float splitXp = (float) (xp / partySize * shareBonus);
for (Player member : nearMembers) {
- UserManager.getPlayer(member).beginUnsharedXpGain(skillType, splitXp, xpGainReason);
+ UserManager.getPlayer(member).beginUnsharedXpGain(primarySkill, splitXp, xpGainReason);
}
return true;
diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java
index 266311e38..0f300270f 100644
--- a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandAsyncTask.java
@@ -7,7 +7,7 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.apache.commons.lang.Validate;
@@ -32,7 +32,7 @@ public class McrankCommandAsyncTask extends BukkitRunnable {
@Override
public void run() {
- Map skills = mcMMO.getDatabaseManager().readRank(playerName);
+ Map skills = mcMMO.getDatabaseManager().readRank(playerName);
new McrankCommandDisplayTask(skills, sender, playerName, useBoard, useChat).runTaskLater(mcMMO.p, 1);
}
diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java
index 0f933fe44..e9378b1a0 100644
--- a/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/commands/McrankCommandDisplayTask.java
@@ -2,12 +2,12 @@ package com.gmail.nossr50.runnables.commands;
import java.util.Map;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
@@ -15,12 +15,12 @@ import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
* Display the results of McrankCommandAsyncTask to the sender.
*/
public class McrankCommandDisplayTask extends BukkitRunnable {
- private final Map skills;
+ private final Map skills;
private final CommandSender sender;
private final String playerName;
private final boolean useBoard, useChat;
- McrankCommandDisplayTask(Map skills, CommandSender sender, String playerName, boolean useBoard, boolean useChat) {
+ McrankCommandDisplayTask(Map skills, CommandSender sender, String playerName, boolean useBoard, boolean useChat) {
this.skills = skills;
this.sender = sender;
this.playerName = playerName;
@@ -47,7 +47,7 @@ public class McrankCommandDisplayTask extends BukkitRunnable {
sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Heading"));
sender.sendMessage(LocaleLoader.getString("Commands.mcrank.Player", playerName));
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
if (!skill.getPermissions(player)) {
continue;
}
diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java
index 245a60a64..21aaac772 100644
--- a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandAsyncTask.java
@@ -8,17 +8,17 @@ import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.database.PlayerStat;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.apache.commons.lang.Validate;
public class MctopCommandAsyncTask extends BukkitRunnable {
private final CommandSender sender;
- private final SkillType skill;
+ private final PrimarySkill skill;
private final int page;
private final boolean useBoard, useChat;
- public MctopCommandAsyncTask(int page, SkillType skill, CommandSender sender, boolean useBoard, boolean useChat) {
+ public MctopCommandAsyncTask(int page, PrimarySkill skill, CommandSender sender, boolean useBoard, boolean useChat) {
Validate.isTrue(useBoard || useChat, "Attempted to start a rank retrieval with both board and chat off");
Validate.notNull(sender, "Attempted to start a rank retrieval with no recipient");
diff --git a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java
index f1c9ffc7a..90e7f3252 100644
--- a/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/commands/MctopCommandDisplayTask.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.runnables.commands;
import com.gmail.nossr50.datatypes.database.PlayerStat;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.scoreboards.ScoreboardManager;
@@ -18,11 +18,11 @@ import java.util.List;
public class MctopCommandDisplayTask extends BukkitRunnable {
private final List userStats;
private final CommandSender sender;
- private final SkillType skill;
+ private final PrimarySkill skill;
private final int page;
private final boolean useBoard, useChat;
- MctopCommandDisplayTask(List userStats, int page, SkillType skill, CommandSender sender, boolean useBoard, boolean useChat) {
+ MctopCommandDisplayTask(List userStats, int page, PrimarySkill skill, CommandSender sender, boolean useBoard, boolean useChat) {
this.userStats = userStats;
this.page = page;
this.skill = skill;
diff --git a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java
index ad00520ad..301494786 100644
--- a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java
@@ -1,5 +1,6 @@
package com.gmail.nossr50.runnables.database;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.command.CommandSender;
import org.bukkit.scheduler.BukkitRunnable;
@@ -9,7 +10,6 @@ import com.gmail.nossr50.database.DatabaseManager;
import com.gmail.nossr50.datatypes.experience.FormulaType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.player.UserManager;
@@ -59,20 +59,20 @@ public class FormulaConversionTask extends BukkitRunnable {
private void editValues(PlayerProfile profile) {
mcMMO.p.debug("========================================================================");
mcMMO.p.debug("Conversion report for " + profile.getPlayerName() + ":");
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- int oldLevel = profile.getSkillLevel(skillType);
- int oldXPLevel = profile.getSkillXpLevel(skillType);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ int oldLevel = profile.getSkillLevel(primarySkill);
+ int oldXPLevel = profile.getSkillXpLevel(primarySkill);
int totalOldXP = mcMMO.getFormulaManager().calculateTotalExperience(oldLevel, oldXPLevel);
if (totalOldXP == 0) {
continue;
}
- int[] newExperienceValues = mcMMO.getFormulaManager().calculateNewLevel(skillType, (int) Math.floor(totalOldXP / ExperienceConfig.getInstance().getExpModifier()), formulaType);
+ int[] newExperienceValues = mcMMO.getFormulaManager().calculateNewLevel(primarySkill, (int) Math.floor(totalOldXP / ExperienceConfig.getInstance().getExpModifier()), formulaType);
int newLevel = newExperienceValues[0];
int newXPlevel = newExperienceValues[1];
- mcMMO.p.debug(" Skill: " + skillType.toString());
+ mcMMO.p.debug(" Skill: " + primarySkill.toString());
mcMMO.p.debug(" OLD:");
mcMMO.p.debug(" Level: " + oldLevel);
@@ -84,8 +84,8 @@ public class FormulaConversionTask extends BukkitRunnable {
mcMMO.p.debug(" XP " + newXPlevel);
mcMMO.p.debug("------------------------------------------------------------------------");
- profile.modifySkill(skillType, newLevel);
- profile.setSkillXpLevel(skillType, newXPlevel);
+ profile.modifySkill(primarySkill, newLevel);
+ profile.setSkillXpLevel(primarySkill, newXPlevel);
}
}
}
diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityCooldownTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityCooldownTask.java
index 4fa1763fc..458f15546 100644
--- a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityCooldownTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityCooldownTask.java
@@ -1,15 +1,15 @@
package com.gmail.nossr50.runnables.skills;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
public class AbilityCooldownTask extends BukkitRunnable {
private McMMOPlayer mcMMOPlayer;
- private AbilityType ability;
+ private SuperAbility ability;
- public AbilityCooldownTask(McMMOPlayer mcMMOPlayer, AbilityType ability) {
+ public AbilityCooldownTask(McMMOPlayer mcMMOPlayer, SuperAbility ability) {
this.mcMMOPlayer = mcMMOPlayer;
this.ability = ability;
}
diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java
index c3eab3bd3..791fc2c41 100644
--- a/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/skills/AbilityDisableTask.java
@@ -1,5 +1,6 @@
package com.gmail.nossr50.runnables.skills;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
import org.bukkit.Chunk;
import org.bukkit.World;
import org.bukkit.entity.Player;
@@ -8,7 +9,6 @@ import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
@@ -17,9 +17,9 @@ import com.gmail.nossr50.util.skills.SkillUtils;
public class AbilityDisableTask extends BukkitRunnable {
private McMMOPlayer mcMMOPlayer;
- private AbilityType ability;
+ private SuperAbility ability;
- public AbilityDisableTask(McMMOPlayer mcMMOPlayer, AbilityType ability) {
+ public AbilityDisableTask(McMMOPlayer mcMMOPlayer, SuperAbility ability) {
this.mcMMOPlayer = mcMMOPlayer;
this.ability = ability;
}
diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java
index 4971496cf..41c7d1cab 100644
--- a/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/skills/AlchemyBrewTask.java
@@ -8,8 +8,8 @@ import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.mcMMO;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.events.skills.alchemy.McMMOPlayerBrewEvent;
import com.gmail.nossr50.events.skills.alchemy.McMMOPlayerCatalysisEvent;
import com.gmail.nossr50.skills.alchemy.Alchemy;
@@ -38,8 +38,8 @@ public class AlchemyBrewTask extends BukkitRunnable {
brewSpeed = DEFAULT_BREW_SPEED;
brewTimer = DEFAULT_BREW_TICKS;
- if (player != null && !Misc.isNPCEntity(player) && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.CATALYSIS)) {
- double catalysis = UserManager.getPlayer(player).getAlchemyManager().calculateBrewSpeed(Permissions.lucky(player, SkillType.ALCHEMY));
+ if (player != null && !Misc.isNPCEntity(player) && Permissions.isSubSkillEnabled(player, SubSkill.ALCHEMY_CATALYSIS)) {
+ double catalysis = UserManager.getPlayer(player).getAlchemyManager().calculateBrewSpeed(Permissions.lucky(player, PrimarySkill.ALCHEMY));
McMMOPlayerCatalysisEvent event = new McMMOPlayerCatalysisEvent(player, catalysis);
mcMMO.p.getServer().getPluginManager().callEvent(event);
diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java
index c6244da72..01c832eff 100644
--- a/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java
@@ -1,23 +1,23 @@
package com.gmail.nossr50.runnables.skills;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
public class AwardCombatXpTask extends BukkitRunnable {
private McMMOPlayer mcMMOPlayer;
private double baseXp;
- private SkillType skillType;
+ private PrimarySkill primarySkill;
private LivingEntity target;
private XPGainReason xpGainReason;
private double baseHealth;
- public AwardCombatXpTask(McMMOPlayer mcMMOPlayer, SkillType skillType, double baseXp, LivingEntity target, XPGainReason xpGainReason) {
+ public AwardCombatXpTask(McMMOPlayer mcMMOPlayer, PrimarySkill primarySkill, double baseXp, LivingEntity target, XPGainReason xpGainReason) {
this.mcMMOPlayer = mcMMOPlayer;
- this.skillType = skillType;
+ this.primarySkill = primarySkill;
this.baseXp = baseXp;
this.target = target;
this.xpGainReason = xpGainReason;
@@ -39,6 +39,6 @@ public class AwardCombatXpTask extends BukkitRunnable {
damage += health;
}
- mcMMOPlayer.beginXpGain(skillType, (int) (damage * baseXp), xpGainReason);
+ mcMMOPlayer.beginXpGain(primarySkill, (int) (damage * baseXp), xpGainReason);
}
}
diff --git a/src/main/java/com/gmail/nossr50/skills/SkillManager.java b/src/main/java/com/gmail/nossr50/skills/SkillManager.java
index da7f63c6f..0d88baf5d 100644
--- a/src/main/java/com/gmail/nossr50/skills/SkillManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/SkillManager.java
@@ -1,21 +1,20 @@
package com.gmail.nossr50.skills;
-import com.gmail.nossr50.config.Config;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.skills.PerksUtils;
public abstract class SkillManager {
protected McMMOPlayer mcMMOPlayer;
protected int activationChance;
- protected SkillType skill;
+ protected PrimarySkill skill;
- public SkillManager(McMMOPlayer mcMMOPlayer, SkillType skill) {
+ public SkillManager(McMMOPlayer mcMMOPlayer, PrimarySkill skill) {
this.mcMMOPlayer = mcMMOPlayer;
this.activationChance = PerksUtils.handleLuckyPerks(mcMMOPlayer.getPlayer(), skill);
this.skill = skill;
diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
index 4c66b899d..f540bb1e8 100644
--- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
@@ -1,6 +1,7 @@
package com.gmail.nossr50.skills.acrobatics;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
@@ -11,8 +12,7 @@ import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.SkillManager;
@@ -26,15 +26,15 @@ public class AcrobaticsManager extends SkillManager {
Location lastFallLocation;
public AcrobaticsManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.ACROBATICS);
+ super(mcMMOPlayer, PrimarySkill.ACROBATICS);
}
public boolean canRoll() {
- return !exploitPrevention() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.ROLL);
+ return !exploitPrevention() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.ACROBATICS_ROLL);
}
public boolean canDodge(Entity damager) {
- if (Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.DODGE)) {
+ if (Permissions.isSubSkillEnabled(getPlayer(), SubSkill.ACROBATICS_DODGE)) {
if (damager instanceof LightningStrike && Acrobatics.dodgeLightningDisabled) {
return false;
}
@@ -55,7 +55,7 @@ public class AcrobaticsManager extends SkillManager {
double modifiedDamage = Acrobatics.calculateModifiedDodgeDamage(damage, Acrobatics.dodgeDamageModifier);
Player player = getPlayer();
- if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.DODGE, player, this.skill, getSkillLevel(), activationChance)) {
+ if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.ACROBATICS_DODGE, player, this.skill, getSkillLevel(), activationChance)) {
ParticleEffectUtils.playDodgeEffect(player);
if (mcMMOPlayer.useChatNotifications()) {
@@ -82,13 +82,13 @@ public class AcrobaticsManager extends SkillManager {
public double rollCheck(double damage) {
Player player = getPlayer();
- if (player.isSneaking() && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.GRACEFUL_ROLL)) {
+ if (player.isSneaking() && Permissions.isSubSkillEnabled(player, SubSkill.ACROBATICS_GRACEFUL_ROLL)) {
return gracefulRollCheck(damage);
}
double modifiedDamage = Acrobatics.calculateModifiedRollDamage(damage, Acrobatics.rollThreshold);
- if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.ROLL, player, this.skill, getSkillLevel(), activationChance)) {
+ if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.ACROBATICS_ROLL, player, this.skill, getSkillLevel(), activationChance)) {
player.sendMessage(LocaleLoader.getString("Acrobatics.Roll.Text"));
applyXpGain(calculateRollXP(damage, true), XPGainReason.PVE);
@@ -112,7 +112,7 @@ public class AcrobaticsManager extends SkillManager {
private double gracefulRollCheck(double damage) {
double modifiedDamage = Acrobatics.calculateModifiedRollDamage(damage, Acrobatics.gracefulRollThreshold);
- if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.GRACEFUL_ROLL, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!isFatal(modifiedDamage) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.ACROBATICS_GRACEFUL_ROLL, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
getPlayer().sendMessage(LocaleLoader.getString("Acrobatics.Ability.Proc"));
applyXpGain(calculateRollXP(damage, true), XPGainReason.PVE);
diff --git a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java
index 2eeb4700c..a6b067f44 100644
--- a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java
@@ -7,7 +7,7 @@ import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.skills.alchemy.PotionStage;
import com.gmail.nossr50.skills.SkillManager;
@@ -17,7 +17,7 @@ public class AlchemyManager extends SkillManager {
private final double LUCKY_MODIFIER = 4.0 / 3.0;
public AlchemyManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.ALCHEMY);
+ super(mcMMOPlayer, PrimarySkill.ALCHEMY);
}
public int getTier() {
diff --git a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java
index 1d48adea8..5f57765ff 100644
--- a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java
+++ b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java
@@ -16,7 +16,7 @@ import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.alchemy.AlchemyPotion;
import com.gmail.nossr50.datatypes.skills.alchemy.PotionStage;
import com.gmail.nossr50.events.fake.FakeBrewEvent;
@@ -94,7 +94,7 @@ public final class AlchemyPotionBrewer {
}
private static List getValidIngredients(Player player) {
- return PotionConfig.getInstance().getIngredients((player == null || !Permissions.secondaryAbilityEnabled(player, SecondaryAbility.CONCOCTIONS)) ? 1 : UserManager.getPlayer(player).getAlchemyManager().getTier());
+ return PotionConfig.getInstance().getIngredients((player == null || !Permissions.isSubSkillEnabled(player, SubSkill.ALCHEMY_CONCOCTIONS)) ? 1 : UserManager.getPlayer(player).getAlchemyManager().getTier());
}
public static void finishBrewing(BlockState brewingStand, Player player, boolean forced) {
diff --git a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java
index f4ccb17be..ea8ffa112 100644
--- a/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java
@@ -1,6 +1,7 @@
package com.gmail.nossr50.skills.archery;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
@@ -10,8 +11,7 @@ import org.bukkit.potion.PotionEffectType;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.Misc;
@@ -21,19 +21,19 @@ import com.gmail.nossr50.util.skills.SkillUtils;
public class ArcheryManager extends SkillManager {
public ArcheryManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.ARCHERY);
+ super(mcMMOPlayer, PrimarySkill.ARCHERY);
}
public boolean canDaze(LivingEntity target) {
- return target instanceof Player && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.DAZE);
+ return target instanceof Player && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.ARCHERY_DAZE);
}
public boolean canSkillShot() {
- return getSkillLevel() >= Archery.skillShotIncreaseLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.SKILL_SHOT);
+ return getSkillLevel() >= Archery.skillShotIncreaseLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.ARCHERY_SKILL_SHOT);
}
public boolean canRetrieveArrows() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.RETRIEVE);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.ARCHERY_RETRIEVE);
}
/**
@@ -59,7 +59,7 @@ public class ArcheryManager extends SkillManager {
* @param target The {@link LivingEntity} damaged by the arrow
*/
public void retrieveArrows(LivingEntity target) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.RETRIEVE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.ARCHERY_RETRIEVE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
Archery.incrementTrackerValue(target);
}
}
@@ -70,7 +70,7 @@ public class ArcheryManager extends SkillManager {
* @param defender The {@link Player} being affected by the ability
*/
public double daze(Player defender) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.DAZE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.ARCHERY_DAZE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return 0;
}
@@ -97,7 +97,7 @@ public class ArcheryManager extends SkillManager {
* @param damage The amount of damage initially dealt by the event
*/
public double skillShot(double damage) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.ALWAYS_FIRES, SecondaryAbility.SKILL_SHOT, getPlayer(), null, 0, 0)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.ALWAYS_FIRES, SubSkill.ARCHERY_SKILL_SHOT, getPlayer(), null, 0, 0)) {
return damage;
}
diff --git a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java
index c8f2750c9..ad2892f07 100644
--- a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java
@@ -2,16 +2,16 @@ package com.gmail.nossr50.skills.axes;
import java.util.Map;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
import org.bukkit.inventory.ItemStack;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.SkillManager;
@@ -24,27 +24,27 @@ import com.gmail.nossr50.util.skills.SkillUtils;
public class AxesManager extends SkillManager {
public AxesManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.AXES);
+ super(mcMMOPlayer, PrimarySkill.AXES);
}
public boolean canUseAxeMastery() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.AXE_MASTERY);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.AXES_AXE_MASTERY);
}
public boolean canCriticalHit(LivingEntity target) {
- return target.isValid() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.CRITICAL_HIT);
+ return target.isValid() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.AXES_CRITICAL_HIT);
}
public boolean canImpact(LivingEntity target) {
- return target.isValid() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.ARMOR_IMPACT) && Axes.hasArmor(target);
+ return target.isValid() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.AXES_ARMOR_IMPACT) && Axes.hasArmor(target);
}
public boolean canGreaterImpact(LivingEntity target) {
- return target.isValid() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.GREATER_IMPACT) && !Axes.hasArmor(target);
+ return target.isValid() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.AXES_GREATER_IMPACT) && !Axes.hasArmor(target);
}
public boolean canUseSkullSplitter(LivingEntity target) {
- return target.isValid() && mcMMOPlayer.getAbilityMode(AbilityType.SKULL_SPLITTER) && Permissions.skullSplitter(getPlayer());
+ return target.isValid() && mcMMOPlayer.getAbilityMode(SuperAbility.SKULL_SPLITTER) && Permissions.skullSplitter(getPlayer());
}
public boolean canActivateAbility() {
@@ -55,7 +55,7 @@ public class AxesManager extends SkillManager {
* Handle the effects of the Axe Mastery ability
*/
public double axeMastery() {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.ALWAYS_FIRES, SecondaryAbility.AXE_MASTERY, getPlayer(), null, 0, 0)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.ALWAYS_FIRES, SubSkill.AXES_AXE_MASTERY, getPlayer(), null, 0, 0)) {
return 0;
}
@@ -69,7 +69,7 @@ public class AxesManager extends SkillManager {
* @param damage The amount of damage initially dealt by the event
*/
public double criticalHit(LivingEntity target, double damage) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.CRITICAL_HIT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.AXES_CRITICAL_HIT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return 0;
}
@@ -105,7 +105,7 @@ public class AxesManager extends SkillManager {
for (ItemStack armor : target.getEquipment().getArmorContents()) {
if (armor != null && ItemUtils.isArmor(armor)) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_STATIC_CHANCE, SecondaryAbility.ARMOR_IMPACT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_STATIC_CHANCE, SubSkill.AXES_ARMOR_IMPACT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
SkillUtils.handleDurabilityChange(armor, durabilityDamage, Axes.impactMaxDurabilityModifier);
}
}
@@ -119,7 +119,7 @@ public class AxesManager extends SkillManager {
*/
public double greaterImpact(LivingEntity target) {
//static chance (3rd param)
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_STATIC_CHANCE, SecondaryAbility.GREATER_IMPACT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_STATIC_CHANCE, SubSkill.AXES_GREATER_IMPACT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return 0;
}
diff --git a/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java b/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java
index b3e0c232f..5ef34e47d 100644
--- a/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java
+++ b/src/main/java/com/gmail/nossr50/skills/child/ChildConfig.java
@@ -2,10 +2,10 @@ package com.gmail.nossr50.skills.child;
import java.util.EnumSet;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.configuration.file.YamlConfiguration;
import com.gmail.nossr50.config.AutoUpdateConfigLoader;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.util.StringUtils;
public class ChildConfig extends AutoUpdateConfigLoader {
@@ -20,15 +20,15 @@ public class ChildConfig extends AutoUpdateConfigLoader {
FamilyTree.clearRegistrations(); // when reloading, need to clear statics
- for (SkillType skill : SkillType.CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.CHILD_SKILLS) {
plugin.debug("Finding parents of " + skill.name());
- EnumSet parentSkills = EnumSet.noneOf(SkillType.class);
+ EnumSet parentSkills = EnumSet.noneOf(PrimarySkill.class);
boolean useDefaults = false; // If we had an error we back out and use defaults
for (String name : config.getStringList(StringUtils.getCapitalized(skill.name()))) {
try {
- SkillType parentSkill = SkillType.valueOf(name.toUpperCase());
+ PrimarySkill parentSkill = PrimarySkill.valueOf(name.toUpperCase());
FamilyTree.enforceNotChildSkill(parentSkill);
parentSkills.add(parentSkill);
}
@@ -46,12 +46,12 @@ public class ChildConfig extends AutoUpdateConfigLoader {
* If they're dedicated enough to have modified it, they can have the errors it may produce.
* Alternatively, this can be used to allow child skills to be parent skills, provided there are no circular dependencies this is an advanced sort of configuration.
*/
- parentSkills.add(SkillType.valueOf(name.toUpperCase()));
+ parentSkills.add(PrimarySkill.valueOf(name.toUpperCase()));
}
}
// Register them
- for (SkillType parentSkill : parentSkills) {
+ for (PrimarySkill parentSkill : parentSkills) {
plugin.debug("Registering " + parentSkill.name() + " as parent of " + skill.name());
FamilyTree.registerParent(skill, parentSkill);
}
diff --git a/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java b/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java
index bb3842b01..fc1b6721f 100644
--- a/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java
+++ b/src/main/java/com/gmail/nossr50/skills/child/FamilyTree.java
@@ -5,32 +5,32 @@ import java.util.EnumSet;
import java.util.HashMap;
import java.util.Set;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
public class FamilyTree {
- private static HashMap> tree = new HashMap>();
+ private static HashMap> tree = new HashMap>();
- public static Set getParents(SkillType childSkill) {
+ public static Set getParents(PrimarySkill childSkill) {
enforceChildSkill(childSkill);
// We do not check if we have the child skill in question, as not having it would mean we did something wrong, and an NPE is desired.
return tree.get(childSkill);
}
- protected static void registerParent(SkillType childSkill, SkillType parentSkill) {
+ protected static void registerParent(PrimarySkill childSkill, PrimarySkill parentSkill) {
enforceChildSkill(childSkill);
enforceNotChildSkill(parentSkill);
if (!tree.containsKey(childSkill)) {
- tree.put(childSkill, EnumSet.noneOf(SkillType.class));
+ tree.put(childSkill, EnumSet.noneOf(PrimarySkill.class));
}
tree.get(childSkill).add(parentSkill);
}
protected static void closeRegistration() {
- for (SkillType childSkill : tree.keySet()) {
- Set immutableSet = Collections.unmodifiableSet(tree.get(childSkill));
+ for (PrimarySkill childSkill : tree.keySet()) {
+ Set immutableSet = Collections.unmodifiableSet(tree.get(childSkill));
tree.put(childSkill, immutableSet);
}
}
@@ -39,13 +39,13 @@ public class FamilyTree {
tree.clear();
}
- protected static void enforceChildSkill(SkillType skill) {
+ protected static void enforceChildSkill(PrimarySkill skill) {
if (!skill.isChildSkill()) {
throw new IllegalArgumentException(skill.name() + " is not a child skill!");
}
}
- protected static void enforceNotChildSkill(SkillType skill) {
+ protected static void enforceNotChildSkill(PrimarySkill skill) {
if (skill.isChildSkill()) {
throw new IllegalArgumentException(skill.name() + " is a child skill!");
}
diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java
index 3c87130be..37800d120 100644
--- a/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java
+++ b/src/main/java/com/gmail/nossr50/skills/excavation/Excavation.java
@@ -2,7 +2,7 @@ package com.gmail.nossr50.skills.excavation;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.config.treasure.TreasureConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.StringUtils;
@@ -26,7 +26,7 @@ public class Excavation {
}
protected static int getBlockXP(BlockState blockState) {
- int xp = ExperienceConfig.getInstance().getXp(SkillType.EXCAVATION, blockState.getType());
+ int xp = ExperienceConfig.getInstance().getXp(PrimarySkill.EXCAVATION, blockState.getType());
if (xp == 0 && mcMMO.getModManager().isCustomExcavationBlock(blockState)) {
xp = mcMMO.getModManager().getBlock(blockState).getXpGain();
diff --git a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java
index 302415188..a58ddcd36 100644
--- a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java
@@ -2,13 +2,13 @@ package com.gmail.nossr50.skills.excavation;
import java.util.List;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.Location;
import org.bukkit.block.BlockState;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
import com.gmail.nossr50.skills.SkillManager;
@@ -18,7 +18,7 @@ import com.gmail.nossr50.util.skills.SkillUtils;
public class ExcavationManager extends SkillManager {
public ExcavationManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.EXCAVATION);
+ super(mcMMOPlayer, PrimarySkill.EXCAVATION);
}
/**
@@ -29,7 +29,7 @@ public class ExcavationManager extends SkillManager {
public void excavationBlockCheck(BlockState blockState) {
int xp = Excavation.getBlockXP(blockState);
- if (Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.EXCAVATION_TREASURE_HUNTER)) {
+ if (Permissions.isSubSkillEnabled(getPlayer(), SubSkill.EXCAVATION_TREASURE_HUNTER)) {
List treasures = Excavation.getTreasures(blockState);
if (!treasures.isEmpty()) {
diff --git a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java
index 40dafc6f2..b45349c12 100644
--- a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java
@@ -5,8 +5,8 @@ import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.config.treasure.TreasureConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
@@ -14,7 +14,7 @@ import com.gmail.nossr50.datatypes.treasure.Rarity;
import com.gmail.nossr50.datatypes.treasure.ShakeTreasure;
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerFishingTreasureEvent;
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerShakeEvent;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillWeightedActivationCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.skills.KrakenAttackTask;
@@ -48,15 +48,15 @@ public class FishingManager extends SkillManager {
private Location hookLocation;
public FishingManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.FISHING);
+ super(mcMMOPlayer, PrimarySkill.FISHING);
}
public boolean canShake(Entity target) {
- return target instanceof LivingEntity && getSkillLevel() >= Tier.ONE.getLevel() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.SHAKE);
+ return target instanceof LivingEntity && getSkillLevel() >= Tier.ONE.getLevel() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.FISHING_SHAKE);
}
public boolean canMasterAngler() {
- return getSkillLevel() >= AdvancedConfig.getInstance().getMasterAnglerUnlockLevel() && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.MASTER_ANGLER);
+ return getSkillLevel() >= AdvancedConfig.getInstance().getMasterAnglerUnlockLevel() && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.FISHING_MASTER_ANGLER);
}
public boolean unleashTheKraken() {
@@ -183,7 +183,7 @@ public class FishingManager extends SkillManager {
Player player = getPlayer();
- if (!Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.ICE_FISHING)) {
+ if (!Permissions.isSubSkillEnabled(getPlayer(), SubSkill.FISHING_ICE_FISHING)) {
return false;
}
@@ -279,12 +279,12 @@ public class FishingManager extends SkillManager {
*/
public void handleFishing(Item fishingCatch) {
this.fishingCatch = fishingCatch;
- int fishXp = ExperienceConfig.getInstance().getXp(SkillType.FISHING, fishingCatch.getItemStack().getType());
+ int fishXp = ExperienceConfig.getInstance().getXp(PrimarySkill.FISHING, fishingCatch.getItemStack().getType());
int treasureXp = 0;
Player player = getPlayer();
FishingTreasure treasure = null;
- if (Config.getInstance().getFishingDropsEnabled() && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.FISHING_TREASURE_HUNTER)) {
+ if (Config.getInstance().getFishingDropsEnabled() && Permissions.isSubSkillEnabled(player, SubSkill.FISHING_TREASURE_HUNTER)) {
treasure = getFishingTreasure();
this.fishingCatch = null;
}
@@ -293,7 +293,7 @@ public class FishingManager extends SkillManager {
ItemStack treasureDrop = treasure.getDrop().clone(); // Not cloning is bad, m'kay?
Map enchants = new HashMap();
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.MAGIC_HUNTER) && ItemUtils.isEnchantable(treasureDrop)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.FISHING_MAGIC_HUNTER) && ItemUtils.isEnchantable(treasureDrop)) {
enchants = handleMagicHunter(treasureDrop);
}
@@ -355,7 +355,7 @@ public class FishingManager extends SkillManager {
public void shakeCheck(LivingEntity target) {
fishingTries--; // Because autoclicking to shake is OK.
- SecondaryAbilityWeightedActivationCheckEvent activationEvent = new SecondaryAbilityWeightedActivationCheckEvent(getPlayer(), SecondaryAbility.SHAKE, getShakeProbability() / activationChance);
+ SubSkillWeightedActivationCheckEvent activationEvent = new SubSkillWeightedActivationCheckEvent(getPlayer(), SubSkill.FISHING_SHAKE, getShakeProbability() / activationChance);
mcMMO.p.getServer().getPluginManager().callEvent(activationEvent);
if ((activationEvent.getChance() * activationChance) > Misc.getRandom().nextInt(activationChance)) {
List possibleDrops = Fishing.findPossibleDrops(target);
diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java
index 23dbf9448..a479475d5 100644
--- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java
@@ -12,7 +12,7 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.*;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Location;
import org.bukkit.Material;
@@ -28,7 +28,7 @@ import java.util.List;
public class HerbalismManager extends SkillManager {
public HerbalismManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.HERBALISM);
+ super(mcMMOPlayer, PrimarySkill.HERBALISM);
}
public boolean canBlockCheck() {
@@ -47,15 +47,15 @@ public class HerbalismManager extends SkillManager {
PlayerInventory inventory = player.getInventory();
Material itemType = inventory.getItemInMainHand().getType();
- return (itemType == Material.BROWN_MUSHROOM || itemType == Material.RED_MUSHROOM) && inventory.contains(Material.BROWN_MUSHROOM, 1) && inventory.contains(Material.RED_MUSHROOM, 1) && BlockUtils.canMakeShroomy(blockState) && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.SHROOM_THUMB);
+ return (itemType == Material.BROWN_MUSHROOM || itemType == Material.RED_MUSHROOM) && inventory.contains(Material.BROWN_MUSHROOM, 1) && inventory.contains(Material.RED_MUSHROOM, 1) && BlockUtils.canMakeShroomy(blockState) && Permissions.isSubSkillEnabled(player, SubSkill.HERBALISM_SHROOM_THUMB);
}
public boolean canUseHylianLuck() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.HYLIAN_LUCK);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.HERBALISM_HYLIAN_LUCK);
}
public boolean canGreenTerraBlock(BlockState blockState) {
- return mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState);
+ return mcMMOPlayer.getAbilityMode(SuperAbility.GREEN_TERRA) && BlockUtils.canMakeMossy(blockState);
}
public boolean canActivateAbility() {
@@ -63,7 +63,7 @@ public class HerbalismManager extends SkillManager {
}
public boolean canGreenTerraPlant() {
- return mcMMOPlayer.getAbilityMode(AbilityType.GREEN_TERRA);
+ return mcMMOPlayer.getAbilityMode(SuperAbility.GREEN_TERRA);
}
/**
@@ -130,14 +130,14 @@ public class HerbalismManager extends SkillManager {
CustomBlock customBlock = mcMMO.getModManager().getBlock(blockState);
xp = customBlock.getXpGain();
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) {
drops = blockState.getBlock().getDrops();
}
}
else {
xp = ExperienceConfig.getInstance().getXp(skill, blockState.getBlockData());
- if (Config.getInstance().getDoubleDropsEnabled(skill, material) && Permissions.secondaryAbilityEnabled(player, SecondaryAbility.HERBALISM_DOUBLE_DROPS)) {
+ if (Config.getInstance().getDoubleDropsEnabled(skill, material) && Permissions.isSubSkillEnabled(player, SubSkill.HERBALISM_DOUBLE_DROPS)) {
drops = blockState.getBlock().getDrops();
}
@@ -158,7 +158,7 @@ public class HerbalismManager extends SkillManager {
}
for (int i = greenTerra ? 2 : 1; i != 0; i--) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.HERBALISM_DOUBLE_DROPS, player, this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.HERBALISM_DOUBLE_DROPS, player, this.skill, getSkillLevel(), activationChance)) {
for (ItemStack item : drops) {
Misc.dropItems(Misc.getBlockCenter(blockState), item, amount);
}
@@ -173,7 +173,7 @@ public class HerbalismManager extends SkillManager {
* @return true if the ability was successful, false otherwise
*/
public boolean processGreenThumbBlocks(BlockState blockState) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.GREEN_THUMB_BLOCK, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.HERBALISM_GREEN_THUMB, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
getPlayer().sendMessage(LocaleLoader.getString("Herbalism.Ability.GTh.Fail"));
return false;
}
@@ -188,7 +188,7 @@ public class HerbalismManager extends SkillManager {
* @return true if the ability was successful, false otherwise
*/
public boolean processHylianLuck(BlockState blockState) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.HYLIAN_LUCK, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.HERBALISM_HYLIAN_LUCK, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return false;
}
@@ -243,7 +243,7 @@ public class HerbalismManager extends SkillManager {
playerInventory.removeItem(new ItemStack(Material.RED_MUSHROOM));
player.updateInventory();
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.SHROOM_THUMB, player, this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.HERBALISM_SHROOM_THUMB, player, this.skill, getSkillLevel(), activationChance)) {
player.sendMessage(LocaleLoader.getString("Herbalism.Ability.ShroomThumb.Fail"));
return false;
}
@@ -300,7 +300,7 @@ public class HerbalismManager extends SkillManager {
return;
}
- if (!greenTerra && !SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.GREEN_THUMB_PLANT, player, this.skill, getSkillLevel(), activationChance)) {
+ if (!greenTerra && !SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.HERBALISM_GREEN_THUMB, player, this.skill, getSkillLevel(), activationChance)) {
return;
}
diff --git a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java
index cfd4bdc39..a180a45c6 100644
--- a/src/main/java/com/gmail/nossr50/skills/mining/Mining.java
+++ b/src/main/java/com/gmail/nossr50/skills/mining/Mining.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.skills.mining;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.Misc;
import org.bukkit.Material;
@@ -16,7 +16,7 @@ public class Mining {
* @param blockState The {@link BlockState} to check ability activation for
*/
public static int getBlockXp(BlockState blockState) {
- int xp = ExperienceConfig.getInstance().getXp(SkillType.MINING, blockState.getType());
+ int xp = ExperienceConfig.getInstance().getXp(PrimarySkill.MINING, blockState.getType());
if (xp == 0 && mcMMO.getModManager().isCustomMiningBlock(blockState)) {
xp = mcMMO.getModManager().getBlock(blockState).getXpGain();
diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
index aa4f3c512..e70c41087 100644
--- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
@@ -2,9 +2,9 @@ package com.gmail.nossr50.skills.mining;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -15,7 +15,7 @@ import com.gmail.nossr50.util.BlockUtils;
import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.inventory.ItemStack;
import org.bukkit.Material;
@@ -30,7 +30,7 @@ import java.util.List;
public class MiningManager extends SkillManager {
public MiningManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.MINING);
+ super(mcMMOPlayer, PrimarySkill.MINING);
}
public boolean canUseDemolitionsExpertise() {
@@ -61,7 +61,7 @@ public class MiningManager extends SkillManager {
applyXpGain(Mining.getBlockXp(blockState), XPGainReason.PVE);
- if (!Permissions.secondaryAbilityEnabled(player, SecondaryAbility.MINING_DOUBLE_DROPS)) {
+ if (!Permissions.isSubSkillEnabled(player, SubSkill.MINING_DOUBLE_DROPS)) {
return;
}
@@ -79,7 +79,7 @@ public class MiningManager extends SkillManager {
//TODO: Make this readable
for (int i = mcMMOPlayer.getAbilityMode(skill.getAbility()) ? 2 : 1; i != 0; i--) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.MINING_DOUBLE_DROPS, player, this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.MINING_DOUBLE_DROPS, player, this.skill, getSkillLevel(), activationChance)) {
if (silkTouch) {
Mining.handleSilkTouchDrops(blockState);
}
@@ -103,16 +103,16 @@ public class MiningManager extends SkillManager {
TNTPrimed tnt = player.getWorld().spawn(targetBlock.getLocation(), TNTPrimed.class);
- SkillUtils.sendSkillMessage(player, AbilityType.BLAST_MINING.getAbilityPlayer(player));
+ SkillUtils.sendSkillMessage(player, SuperAbility.BLAST_MINING.getAbilityPlayer(player));
player.sendMessage(LocaleLoader.getString("Mining.Blast.Boom"));
tnt.setMetadata(mcMMO.tntMetadataKey, mcMMOPlayer.getPlayerMetadata());
tnt.setFuseTicks(0);
targetBlock.setType(Material.AIR);
- mcMMOPlayer.setAbilityDATS(AbilityType.BLAST_MINING, System.currentTimeMillis());
- mcMMOPlayer.setAbilityInformed(AbilityType.BLAST_MINING, false);
- new AbilityCooldownTask(mcMMOPlayer, AbilityType.BLAST_MINING).runTaskLaterAsynchronously(mcMMO.p, AbilityType.BLAST_MINING.getCooldown() * Misc.TICK_CONVERSION_FACTOR);
+ mcMMOPlayer.setAbilityDATS(SuperAbility.BLAST_MINING, System.currentTimeMillis());
+ mcMMOPlayer.setAbilityInformed(SuperAbility.BLAST_MINING, false);
+ new AbilityCooldownTask(mcMMOPlayer, SuperAbility.BLAST_MINING).runTaskLaterAsynchronously(mcMMO.p, SuperAbility.BLAST_MINING.getCooldown() * Misc.TICK_CONVERSION_FACTOR);
}
/**
@@ -287,7 +287,7 @@ public class MiningManager extends SkillManager {
}
private boolean blastMiningCooldownOver() {
- int timeRemaining = mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING);
+ int timeRemaining = mcMMOPlayer.calculateTimeRemaining(SuperAbility.BLAST_MINING);
if (timeRemaining > 0) {
getPlayer().sendMessage(LocaleLoader.getString("Skills.TooTired", timeRemaining));
diff --git a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java
index 04463fbd8..e208e7dfd 100644
--- a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java
@@ -3,8 +3,8 @@ package com.gmail.nossr50.skills.repair;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -15,7 +15,7 @@ import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.StringUtils;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Material;
import org.bukkit.Sound;
@@ -23,7 +23,6 @@ import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
-import org.bukkit.block.data.BlockData;
import java.util.Map;
import java.util.Map.Entry;
@@ -33,7 +32,7 @@ public class RepairManager extends SkillManager {
private int lastClick;
public RepairManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.REPAIR);
+ super(mcMMOPlayer, PrimarySkill.REPAIR);
}
/**
@@ -245,12 +244,12 @@ public class RepairManager extends SkillManager {
private short repairCalculate(short durability, int repairAmount) {
Player player = getPlayer();
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.REPAIR_MASTERY)) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.REPAIR_REPAIR_MASTERY)) {
double bonus = repairAmount * Math.min((((Repair.repairMasteryMaxBonus / Repair.repairMasteryMaxBonusLevel) * getSkillLevel()) / 100.0D), Repair.repairMasteryMaxBonus / 100.0D);
repairAmount += bonus;
}
- if (Permissions.secondaryAbilityEnabled(player, SecondaryAbility.SUPER_REPAIR) && checkPlayerProcRepair()) {
+ if (Permissions.isSubSkillEnabled(player, SubSkill.REPAIR_SUPER_REPAIR) && checkPlayerProcRepair()) {
repairAmount *= 2.0D;
}
@@ -267,7 +266,7 @@ public class RepairManager extends SkillManager {
* @return true if bonus granted, false otherwise
*/
private boolean checkPlayerProcRepair() {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.SUPER_REPAIR, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.REPAIR_SUPER_REPAIR, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
getPlayer().sendMessage(LocaleLoader.getString("Repair.Skills.FeltEasy"));
return true;
}
@@ -294,7 +293,7 @@ public class RepairManager extends SkillManager {
return;
}
- if (getArcaneForgingRank() == 0 || !Permissions.secondaryAbilityEnabled(player, SecondaryAbility.ARCANE_FORGING)) {
+ if (getArcaneForgingRank() == 0 || !Permissions.isSubSkillEnabled(player, SubSkill.REPAIR_ARCANE_FORGING)) {
for (Enchantment enchant : enchants.keySet()) {
item.removeEnchantment(enchant);
}
diff --git a/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java b/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java
index c529638d3..514b2739d 100644
--- a/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/salvage/SalvageManager.java
@@ -2,7 +2,7 @@ package com.gmail.nossr50.skills.salvage;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.SkillManager;
@@ -20,7 +20,6 @@ import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.EnchantmentStorageMeta;
-import org.bukkit.block.data.BlockData;
import java.util.Map;
import java.util.Map.Entry;
@@ -30,7 +29,7 @@ public class SalvageManager extends SkillManager {
private int lastClick;
public SalvageManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.SALVAGE);
+ super(mcMMOPlayer, PrimarySkill.SALVAGE);
}
/**
diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java
index db1f101bc..c2913319b 100644
--- a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java
+++ b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java
@@ -2,7 +2,7 @@ package com.gmail.nossr50.skills.smelting;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import org.bukkit.inventory.ItemStack;
@@ -44,6 +44,6 @@ public class Smelting {
public static double fluxMiningChance = AdvancedConfig.getInstance().getFluxMiningChance();
protected static int getResourceXp(ItemStack smelting) {
- return mcMMO.getModManager().isCustomOre(smelting.getType()) ? mcMMO.getModManager().getBlock(smelting.getType()).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(SkillType.SMELTING, smelting.getType());
+ return mcMMO.getModManager().isCustomOre(smelting.getType()) ? mcMMO.getModManager().getBlock(smelting.getType()).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(PrimarySkill.SMELTING, smelting.getType());
}
}
diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java
index 83426e27b..001f0c610 100644
--- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java
@@ -2,10 +2,10 @@ package com.gmail.nossr50.skills.smelting;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillWeightedActivationCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.SkillManager;
@@ -16,7 +16,7 @@ import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@@ -33,15 +33,15 @@ import java.util.List;
public class SmeltingManager extends SkillManager {
public SmeltingManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.SMELTING);
+ super(mcMMOPlayer, PrimarySkill.SMELTING);
}
public boolean canUseFluxMining(BlockState blockState) {
- return getSkillLevel() >= Smelting.fluxMiningUnlockLevel && BlockUtils.affectedByFluxMining(blockState) && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.FLUX_MINING) && !mcMMO.getPlaceStore().isTrue(blockState);
+ return getSkillLevel() >= Smelting.fluxMiningUnlockLevel && BlockUtils.affectedByFluxMining(blockState) && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.SMELTING_FLUX_MINING) && !mcMMO.getPlaceStore().isTrue(blockState);
}
public boolean isSecondSmeltSuccessful() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.SECOND_SMELT) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.SECOND_SMELT, getPlayer(), this.skill, getSkillLevel(), activationChance);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.SMELTING_SECOND_SMELT) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.SMELTING_SECOND_SMELT, getPlayer(), this.skill, getSkillLevel(), activationChance);
}
/**
@@ -53,7 +53,7 @@ public class SmeltingManager extends SkillManager {
public boolean processFluxMining(BlockState blockState) {
Player player = getPlayer();
- SecondaryAbilityWeightedActivationCheckEvent event = new SecondaryAbilityWeightedActivationCheckEvent(getPlayer(), SecondaryAbility.FLUX_MINING, Smelting.fluxMiningChance / activationChance);
+ SubSkillWeightedActivationCheckEvent event = new SubSkillWeightedActivationCheckEvent(getPlayer(), SubSkill.SMELTING_FLUX_MINING, Smelting.fluxMiningChance / activationChance);
mcMMO.p.getServer().getPluginManager().callEvent(event);
if ((event.getChance() * activationChance) > Misc.getRandom().nextInt(activationChance)) {
ItemStack item = null;
diff --git a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
index c10e9325a..cbb9f016f 100644
--- a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
@@ -2,7 +2,10 @@ package com.gmail.nossr50.skills.swords;
import java.util.Map;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
@@ -10,9 +13,6 @@ import org.bukkit.event.entity.EntityDamageEvent.DamageModifier;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
@@ -24,7 +24,7 @@ import com.gmail.nossr50.util.skills.SkillUtils;
public class SwordsManager extends SkillManager {
public SwordsManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.SWORDS);
+ super(mcMMOPlayer, PrimarySkill.SWORDS);
}
public boolean canActivateAbility() {
@@ -32,15 +32,15 @@ public class SwordsManager extends SkillManager {
}
public boolean canUseBleed() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.BLEED);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.SWORDS_BLEED);
}
public boolean canUseCounterAttack(Entity target) {
- return target instanceof LivingEntity && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.COUNTER);
+ return target instanceof LivingEntity && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.SWORDS_COUNTER);
}
public boolean canUseSerratedStrike() {
- return mcMMOPlayer.getAbilityMode(AbilityType.SERRATED_STRIKES) && Permissions.serratedStrikes(getPlayer());
+ return mcMMOPlayer.getAbilityMode(SuperAbility.SERRATED_STRIKES) && Permissions.serratedStrikes(getPlayer());
}
/**
@@ -49,9 +49,9 @@ public class SwordsManager extends SkillManager {
* @param target The defending entity
*/
public void bleedCheck(LivingEntity target) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.BLEED, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.SWORDS_BLEED, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
- if (getSkillLevel() >= AdvancedConfig.getInstance().getMaxBonusLevel(SecondaryAbility.BLEED)) {
+ if (getSkillLevel() >= AdvancedConfig.getInstance().getMaxBonusLevel(SubSkill.SWORDS_BLEED)) {
BleedTimerTask.add(target, Swords.bleedMaxTicks);
}
else {
@@ -83,7 +83,7 @@ public class SwordsManager extends SkillManager {
return;
}
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.COUNTER, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.SWORDS_COUNTER, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
CombatUtils.dealDamage(attacker, damage / Swords.counterAttackModifier, getPlayer());
getPlayer().sendMessage(LocaleLoader.getString("Swords.Combat.Countered"));
diff --git a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
index ede4c707d..0f9d77a77 100644
--- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
@@ -4,11 +4,11 @@ import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillWeightedActivationCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.skills.BleedTimerTask;
@@ -18,7 +18,7 @@ import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.StringUtils;
import com.gmail.nossr50.util.player.UserManager;
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Location;
import org.bukkit.Sound;
@@ -31,41 +31,41 @@ import java.util.List;
public class TamingManager extends SkillManager {
public TamingManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.TAMING);
+ super(mcMMOPlayer, PrimarySkill.TAMING);
}
private static HashMap> summonedEntities = new HashMap>();
public boolean canUseThickFur() {
- return getSkillLevel() >= Taming.thickFurUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.THICK_FUR);
+ return getSkillLevel() >= Taming.thickFurUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_THICK_FUR);
}
public boolean canUseEnvironmentallyAware() {
- return getSkillLevel() >= Taming.environmentallyAwareUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.ENVIRONMENTALLY_AWARE);
+ return getSkillLevel() >= Taming.environmentallyAwareUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_ENVIRONMENTALLY_AWARE);
}
public boolean canUseShockProof() {
- return getSkillLevel() >= Taming.shockProofUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.SHOCK_PROOF);
+ return getSkillLevel() >= Taming.shockProofUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_SHOCK_PROOF);
}
public boolean canUseHolyHound() {
- return getSkillLevel() >= Taming.holyHoundUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.HOLY_HOUND);
+ return getSkillLevel() >= Taming.holyHoundUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_HOLY_HOUND);
}
public boolean canUseFastFoodService() {
- return getSkillLevel() >= Taming.fastFoodServiceUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.FAST_FOOD);
+ return getSkillLevel() >= Taming.fastFoodServiceUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_FAST_FOOD);
}
public boolean canUseSharpenedClaws() {
- return getSkillLevel() >= Taming.sharpenedClawsUnlockLevel && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.SHARPENED_CLAWS);
+ return getSkillLevel() >= Taming.sharpenedClawsUnlockLevel && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_SHARPENED_CLAWS);
}
public boolean canUseGore() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.GORE);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_GORE);
}
public boolean canUseBeastLore() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.BEAST_LORE);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.TAMING_BEAST_LORE);
}
/**
@@ -85,7 +85,7 @@ public class TamingManager extends SkillManager {
*/
public void fastFoodService(Wolf wolf, double damage) {
//static chance (3rd param)
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_STATIC_CHANCE, SecondaryAbility.FAST_FOOD, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_STATIC_CHANCE, SubSkill.TAMING_FAST_FOOD, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return;
}
@@ -105,7 +105,7 @@ public class TamingManager extends SkillManager {
* @param damage The initial damage
*/
public double gore(LivingEntity target, double damage) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.GORE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.TAMING_GORE, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
return 0;
}
@@ -190,7 +190,7 @@ public class TamingManager extends SkillManager {
public void pummel(LivingEntity target, Wolf wolf) {
double chance = 10 / activationChance;
- SecondaryAbilityWeightedActivationCheckEvent event = new SecondaryAbilityWeightedActivationCheckEvent(getPlayer(), SecondaryAbility.PUMMEL, chance);
+ SubSkillWeightedActivationCheckEvent event = new SubSkillWeightedActivationCheckEvent(getPlayer(), SubSkill.TAMING_PUMMEL, chance);
mcMMO.p.getServer().getPluginManager().callEvent(event);
if ((event.getChance() * activationChance) <= Misc.getRandom().nextInt(activationChance)) {
return;
diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java
index 20db72b46..9670e563c 100644
--- a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java
@@ -2,9 +2,9 @@ package com.gmail.nossr50.skills.unarmed;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -14,7 +14,7 @@ import com.gmail.nossr50.util.ItemUtils;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.player.UserManager;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Material;
import org.bukkit.block.BlockState;
@@ -26,7 +26,7 @@ import org.bukkit.block.data.BlockData;
public class UnarmedManager extends SkillManager {
public UnarmedManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.UNARMED);
+ super(mcMMOPlayer, PrimarySkill.UNARMED);
}
public boolean canActivateAbility() {
@@ -34,29 +34,29 @@ public class UnarmedManager extends SkillManager {
}
public boolean canUseIronArm() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.IRON_ARM);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.UNARMED_IRON_ARM);
}
public boolean canUseBerserk() {
- return mcMMOPlayer.getAbilityMode(AbilityType.BERSERK) && Permissions.berserk(getPlayer());
+ return mcMMOPlayer.getAbilityMode(SuperAbility.BERSERK) && Permissions.berserk(getPlayer());
}
public boolean canDisarm(LivingEntity target) {
- return target instanceof Player && ((Player) target).getInventory().getItemInMainHand().getType() != Material.AIR && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.DISARM);
+ return target instanceof Player && ((Player) target).getInventory().getItemInMainHand().getType() != Material.AIR && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.UNARMED_DISARM);
}
public boolean canDeflect() {
Player player = getPlayer();
- return ItemUtils.isUnarmed(player.getInventory().getItemInMainHand()) && Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.DEFLECT);
+ return ItemUtils.isUnarmed(player.getInventory().getItemInMainHand()) && Permissions.isSubSkillEnabled(getPlayer(), SubSkill.UNARMED_DEFLECT);
}
public boolean canUseBlockCracker() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.BLOCK_CRACKER);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.UNARMED_BLOCK_CRACKER);
}
public boolean blockCrackerCheck(BlockState blockState) {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.ALWAYS_FIRES, SecondaryAbility.BLOCK_CRACKER, getPlayer(), null, 0, 0)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.ALWAYS_FIRES, SubSkill.UNARMED_BLOCK_CRACKER, getPlayer(), null, 0, 0)) {
return false;
}
@@ -82,7 +82,7 @@ public class UnarmedManager extends SkillManager {
* @param defender The defending player
*/
public void disarmCheck(Player defender) {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.DISARM, getPlayer(), this.skill, getSkillLevel(), activationChance) && !hasIronGrip(defender)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.UNARMED_DISARM, getPlayer(), this.skill, getSkillLevel(), activationChance) && !hasIronGrip(defender)) {
if (EventUtils.callDisarmEvent(defender).isCancelled()) {
return;
}
@@ -102,7 +102,7 @@ public class UnarmedManager extends SkillManager {
* Check for arrow deflection.
*/
public boolean deflectCheck() {
- if (SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.DEFLECT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.UNARMED_DEFLECT, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
getPlayer().sendMessage(LocaleLoader.getString("Combat.ArrowDeflect"));
return true;
}
@@ -125,7 +125,7 @@ public class UnarmedManager extends SkillManager {
* Handle the effects of the Iron Arm ability
*/
public double ironArm() {
- if (!SkillUtils.isActivationSuccessful(SecondarySkillActivationType.ALWAYS_FIRES, SecondaryAbility.IRON_ARM, getPlayer(), null, 0, 0)) {
+ if (!SkillUtils.isActivationSuccessful(SubSkillActivationType.ALWAYS_FIRES, SubSkill.UNARMED_IRON_ARM, getPlayer(), null, 0, 0)) {
return 0;
}
@@ -140,7 +140,7 @@ public class UnarmedManager extends SkillManager {
* @return true if the defender was not disarmed, false otherwise
*/
private boolean hasIronGrip(Player defender) {
- if (!Misc.isNPCEntity(defender) && Permissions.secondaryAbilityEnabled(defender, SecondaryAbility.IRON_GRIP) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_NO_CAP, SecondaryAbility.IRON_GRIP, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
+ if (!Misc.isNPCEntity(defender) && Permissions.isSubSkillEnabled(defender, SubSkill.UNARMED_IRON_GRIP) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_NO_CAP, SubSkill.UNARMED_IRON_GRIP, getPlayer(), this.skill, getSkillLevel(), activationChance)) {
defender.sendMessage(LocaleLoader.getString("Unarmed.Ability.IronGrip.Defender"));
getPlayer().sendMessage(LocaleLoader.getString("Unarmed.Ability.IronGrip.Attacker"));
diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java
index 5e4c28306..fce1b2725 100644
--- a/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java
+++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/Woodcutting.java
@@ -3,7 +3,7 @@ package com.gmail.nossr50.skills.woodcutting;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.BlockUtils;
import com.gmail.nossr50.util.Misc;
@@ -43,7 +43,7 @@ public final class Woodcutting {
return mcMMO.getModManager().getBlock(blockState).getXpGain();
}
- return ExperienceConfig.getInstance().getXp(SkillType.WOODCUTTING, blockState.getType());
+ return ExperienceConfig.getInstance().getXp(PrimarySkill.WOODCUTTING, blockState.getType());
}
/**
diff --git a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java
index 87a374a39..1ff34a4f7 100644
--- a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java
@@ -1,11 +1,10 @@
package com.gmail.nossr50.skills.woodcutting;
-import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.mods.CustomBlock;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -13,7 +12,7 @@ import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod;
import com.gmail.nossr50.util.*;
import com.gmail.nossr50.util.skills.CombatUtils;
-import com.gmail.nossr50.util.skills.SecondarySkillActivationType;
+import com.gmail.nossr50.util.skills.SubSkillActivationType;
import com.gmail.nossr50.util.skills.SkillUtils;
import org.bukkit.Material;
import org.bukkit.block.Block;
@@ -27,19 +26,19 @@ import java.util.Set;
public class WoodcuttingManager extends SkillManager {
public WoodcuttingManager(McMMOPlayer mcMMOPlayer) {
- super(mcMMOPlayer, SkillType.WOODCUTTING);
+ super(mcMMOPlayer, PrimarySkill.WOODCUTTING);
}
public boolean canUseLeafBlower(ItemStack heldItem) {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.WOODCUTTING_LEAF_BLOWER) && getSkillLevel() >= Woodcutting.leafBlowerUnlockLevel && ItemUtils.isAxe(heldItem);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.WOODCUTTING_LEAF_BLOWER) && getSkillLevel() >= Woodcutting.leafBlowerUnlockLevel && ItemUtils.isAxe(heldItem);
}
public boolean canUseTreeFeller(ItemStack heldItem) {
- return mcMMOPlayer.getAbilityMode(AbilityType.TREE_FELLER) && Permissions.treeFeller(getPlayer()) && ItemUtils.isAxe(heldItem);
+ return mcMMOPlayer.getAbilityMode(SuperAbility.TREE_FELLER) && Permissions.treeFeller(getPlayer()) && ItemUtils.isAxe(heldItem);
}
protected boolean canGetDoubleDrops() {
- return Permissions.secondaryAbilityEnabled(getPlayer(), SecondaryAbility.WOODCUTTING_HARVEST) && SkillUtils.isActivationSuccessful(SecondarySkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SecondaryAbility.WOODCUTTING_HARVEST, getPlayer(), this.skill, getSkillLevel(), activationChance);
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkill.WOODCUTTING_DOUBLE_DROPS) && SkillUtils.isActivationSuccessful(SubSkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkill.WOODCUTTING_DOUBLE_DROPS, getPlayer(), this.skill, getSkillLevel(), activationChance);
}
/**
diff --git a/src/main/java/com/gmail/nossr50/util/BlockUtils.java b/src/main/java/com/gmail/nossr50/util/BlockUtils.java
index faa682908..35bf24251 100644
--- a/src/main/java/com/gmail/nossr50/util/BlockUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/BlockUtils.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.util;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.repair.Repair;
import com.gmail.nossr50.skills.salvage.Salvage;
@@ -172,7 +172,7 @@ public final class BlockUtils {
* @return true if the block should affected by Green Terra, false otherwise
*/
public static boolean affectedByGreenTerra(BlockState blockState) {
- if (ExperienceConfig.getInstance().isSkillBlock(SkillType.HERBALISM, blockState.getBlockData())) {
+ if (ExperienceConfig.getInstance().isSkillBlock(PrimarySkill.HERBALISM, blockState.getBlockData())) {
return true;
}
@@ -188,7 +188,7 @@ public final class BlockUtils {
* otherwise
*/
public static Boolean affectedBySuperBreaker(BlockState blockState) {
- if (ExperienceConfig.getInstance().isSkillBlock(SkillType.MINING, blockState.getBlockData()))
+ if (ExperienceConfig.getInstance().isSkillBlock(PrimarySkill.MINING, blockState.getBlockData()))
return true;
return isOre(blockState) || mcMMO.getModManager().isCustomMiningBlock(blockState);
@@ -203,7 +203,7 @@ public final class BlockUtils {
* otherwise
*/
public static boolean affectedByGigaDrillBreaker(BlockState blockState) {
- if (ExperienceConfig.getInstance().isSkillBlock(SkillType.EXCAVATION, blockState.getBlockData()))
+ if (ExperienceConfig.getInstance().isSkillBlock(PrimarySkill.EXCAVATION, blockState.getBlockData()))
return true;
return mcMMO.getModManager().isCustomExcavationBlock(blockState);
}
@@ -216,7 +216,7 @@ public final class BlockUtils {
* @return true if the block is a log, false otherwise
*/
public static boolean isLog(BlockState blockState) {
- if (ExperienceConfig.getInstance().isSkillBlock(SkillType.WOODCUTTING, blockState.getBlockData()))
+ if (ExperienceConfig.getInstance().isSkillBlock(PrimarySkill.WOODCUTTING, blockState.getBlockData()))
return true;
return mcMMO.getModManager().isCustomLog(blockState);
}
diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java
index 21ed9929d..936c55bf5 100644
--- a/src/main/java/com/gmail/nossr50/util/EventUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/EventUtils.java
@@ -3,9 +3,9 @@ package com.gmail.nossr50.util;
import com.gmail.nossr50.datatypes.party.Party;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelChangeEvent;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelDownEvent;
@@ -26,7 +26,7 @@ import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityDeactivateEve
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerFishingTreasureEvent;
import com.gmail.nossr50.events.skills.fishing.McMMOPlayerMagicHunterEvent;
import com.gmail.nossr50.events.skills.repair.McMMOPlayerRepairCheckEvent;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillEvent;
import com.gmail.nossr50.events.skills.unarmed.McMMOPlayerDisarmEvent;
import com.gmail.nossr50.events.skills.salvage.McMMOPlayerSalvageCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
@@ -44,15 +44,15 @@ import java.util.HashMap;
import java.util.Map;
public class EventUtils {
- public static McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, SkillType skill) {
+ public static McMMOPlayerAbilityActivateEvent callPlayerAbilityActivateEvent(Player player, PrimarySkill skill) {
McMMOPlayerAbilityActivateEvent event = new McMMOPlayerAbilityActivateEvent(player, skill);
mcMMO.p.getServer().getPluginManager().callEvent(event);
return event;
}
- public static SecondaryAbilityEvent callSecondaryAbilityEvent(Player player, SecondaryAbility secondaryAbility) {
- SecondaryAbilityEvent event = new SecondaryAbilityEvent(player, secondaryAbility);
+ public static SubSkillEvent callSubSkillEvent(Player player, SubSkill subSkill) {
+ SubSkillEvent event = new SubSkillEvent(player, subSkill);
mcMMO.p.getServer().getPluginManager().callEvent(event);
return event;
@@ -65,7 +65,7 @@ public class EventUtils {
return event;
}
- public static boolean handleLevelChangeEvent(Player player, SkillType skill, int levelsChanged, float xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
+ public static boolean handleLevelChangeEvent(Player player, PrimarySkill skill, int levelsChanged, float xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
mcMMO.p.getServer().getPluginManager().callEvent(event);
@@ -152,7 +152,7 @@ public class EventUtils {
return !isCancelled;
}
- public static boolean handleXpGainEvent(Player player, SkillType skill, float xpGained, XPGainReason xpGainReason) {
+ public static boolean handleXpGainEvent(Player player, PrimarySkill skill, float xpGained, XPGainReason xpGainReason) {
McMMOPlayerXpGainEvent event = new McMMOPlayerXpGainEvent(player, skill, xpGained, xpGainReason);
mcMMO.p.getServer().getPluginManager().callEvent(event);
@@ -177,19 +177,19 @@ public class EventUtils {
experienceChanged = event.getExperienceChanged();
PlayerProfile playerProfile = UserManager.getPlayer(player).getProfile();
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- String skillName = skillType.toString();
- int playerSkillLevel = playerProfile.getSkillLevel(skillType);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ String skillName = primarySkill.toString();
+ int playerSkillLevel = playerProfile.getSkillLevel(primarySkill);
- playerProfile.modifySkill(skillType, playerSkillLevel - levelChanged.get(skillName));
- playerProfile.removeXp(skillType, experienceChanged.get(skillName));
+ playerProfile.modifySkill(primarySkill, playerSkillLevel - levelChanged.get(skillName));
+ playerProfile.removeXp(primarySkill, experienceChanged.get(skillName));
- if (playerProfile.getSkillXpLevel(skillType) < 0) {
- playerProfile.setSkillXpLevel(skillType, 0);
+ if (playerProfile.getSkillXpLevel(primarySkill) < 0) {
+ playerProfile.setSkillXpLevel(primarySkill, 0);
}
- if (playerProfile.getSkillLevel(skillType) < 0) {
- playerProfile.modifySkill(skillType, 0);
+ if (playerProfile.getSkillLevel(primarySkill) < 0) {
+ playerProfile.modifySkill(primarySkill, 0);
}
}
}
@@ -215,22 +215,22 @@ public class EventUtils {
McMMOPlayer killerPlayer = UserManager.getPlayer(killer);
PlayerProfile victimProfile = UserManager.getPlayer(victim).getProfile();
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- String skillName = skillType.toString();
- int victimSkillLevel = victimProfile.getSkillLevel(skillType);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ String skillName = primarySkill.toString();
+ int victimSkillLevel = victimProfile.getSkillLevel(primarySkill);
- killerPlayer.addLevels(skillType, levelChangedKiller.get(skillName));
- killerPlayer.beginUnsharedXpGain(skillType, experienceChangedKiller.get(skillName), XPGainReason.VAMPIRISM);
+ killerPlayer.addLevels(primarySkill, levelChangedKiller.get(skillName));
+ killerPlayer.beginUnsharedXpGain(primarySkill, experienceChangedKiller.get(skillName), XPGainReason.VAMPIRISM);
- victimProfile.modifySkill(skillType, victimSkillLevel - levelChangedVictim.get(skillName));
- victimProfile.removeXp(skillType, experienceChangedVictim.get(skillName));
+ victimProfile.modifySkill(primarySkill, victimSkillLevel - levelChangedVictim.get(skillName));
+ victimProfile.removeXp(primarySkill, experienceChangedVictim.get(skillName));
- if (victimProfile.getSkillXpLevel(skillType) < 0) {
- victimProfile.setSkillXpLevel(skillType, 0);
+ if (victimProfile.getSkillXpLevel(primarySkill) < 0) {
+ victimProfile.setSkillXpLevel(primarySkill, 0);
}
- if (victimProfile.getSkillLevel(skillType) < 0) {
- victimProfile.modifySkill(skillType, 0);
+ if (victimProfile.getSkillLevel(primarySkill) < 0) {
+ victimProfile.modifySkill(primarySkill, 0);
}
}
}
@@ -238,8 +238,8 @@ public class EventUtils {
return !isCancelled;
}
- public static McMMOPlayerAbilityDeactivateEvent callAbilityDeactivateEvent(Player player, AbilityType ability) {
- McMMOPlayerAbilityDeactivateEvent event = new McMMOPlayerAbilityDeactivateEvent(player, SkillType.byAbility(ability));
+ public static McMMOPlayerAbilityDeactivateEvent callAbilityDeactivateEvent(Player player, SuperAbility ability) {
+ McMMOPlayerAbilityDeactivateEvent event = new McMMOPlayerAbilityDeactivateEvent(player, PrimarySkill.byAbility(ability));
mcMMO.p.getServer().getPluginManager().callEvent(event);
return event;
diff --git a/src/main/java/com/gmail/nossr50/util/HardcoreManager.java b/src/main/java/com/gmail/nossr50/util/HardcoreManager.java
index b20085a1e..e949d6aa6 100644
--- a/src/main/java/com/gmail/nossr50/util/HardcoreManager.java
+++ b/src/main/java/com/gmail/nossr50/util/HardcoreManager.java
@@ -2,11 +2,11 @@ package com.gmail.nossr50.util;
import java.util.HashMap;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.player.UserManager;
@@ -23,27 +23,27 @@ public final class HardcoreManager {
HashMap levelChanged = new HashMap();
HashMap experienceChanged = new HashMap();
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- if (!skillType.getHardcoreStatLossEnabled()) {
- levelChanged.put(skillType.toString(), 0);
- experienceChanged.put(skillType.toString(), 0F);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ if (!primarySkill.getHardcoreStatLossEnabled()) {
+ levelChanged.put(primarySkill.toString(), 0);
+ experienceChanged.put(primarySkill.toString(), 0F);
continue;
}
- int playerSkillLevel = playerProfile.getSkillLevel(skillType);
- int playerSkillXpLevel = playerProfile.getSkillXpLevel(skillType);
+ int playerSkillLevel = playerProfile.getSkillLevel(primarySkill);
+ int playerSkillXpLevel = playerProfile.getSkillXpLevel(primarySkill);
if (playerSkillLevel <= 0 || playerSkillLevel <= levelThreshold) {
- levelChanged.put(skillType.toString(), 0);
- experienceChanged.put(skillType.toString(), 0F);
+ levelChanged.put(primarySkill.toString(), 0);
+ experienceChanged.put(primarySkill.toString(), 0F);
continue;
}
double statsLost = playerSkillLevel * (statLossPercentage * 0.01D);
int levelsLost = (int) statsLost;
int xpLost = (int) Math.floor(playerSkillXpLevel * (statsLost - levelsLost));
- levelChanged.put(skillType.toString(), levelsLost);
- experienceChanged.put(skillType.toString(), (float) xpLost);
+ levelChanged.put(primarySkill.toString(), levelsLost);
+ experienceChanged.put(primarySkill.toString(), (float) xpLost);
totalLevelsLost += levelsLost;
}
@@ -66,29 +66,29 @@ public final class HardcoreManager {
HashMap levelChanged = new HashMap();
HashMap experienceChanged = new HashMap();
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- if (!skillType.getHardcoreVampirismEnabled()) {
- levelChanged.put(skillType.toString(), 0);
- experienceChanged.put(skillType.toString(), 0F);
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ if (!primarySkill.getHardcoreVampirismEnabled()) {
+ levelChanged.put(primarySkill.toString(), 0);
+ experienceChanged.put(primarySkill.toString(), 0F);
continue;
}
- int killerSkillLevel = killerProfile.getSkillLevel(skillType);
- int victimSkillLevel = victimProfile.getSkillLevel(skillType);
+ int killerSkillLevel = killerProfile.getSkillLevel(primarySkill);
+ int victimSkillLevel = victimProfile.getSkillLevel(primarySkill);
if (victimSkillLevel <= 0 || victimSkillLevel < killerSkillLevel / 2 || victimSkillLevel <= levelThreshold) {
- levelChanged.put(skillType.toString(), 0);
- experienceChanged.put(skillType.toString(), 0F);
+ levelChanged.put(primarySkill.toString(), 0);
+ experienceChanged.put(primarySkill.toString(), 0F);
continue;
}
- int victimSkillXpLevel = victimProfile.getSkillXpLevel(skillType);
+ int victimSkillXpLevel = victimProfile.getSkillXpLevel(primarySkill);
double statsStolen = victimSkillLevel * (vampirismStatLeechPercentage * 0.01D);
int levelsStolen = (int) statsStolen;
int xpStolen = (int) Math.floor(victimSkillXpLevel * (statsStolen - levelsStolen));
- levelChanged.put(skillType.toString(), levelsStolen);
- experienceChanged.put(skillType.toString(), (float) xpStolen);
+ levelChanged.put(primarySkill.toString(), levelsStolen);
+ experienceChanged.put(primarySkill.toString(), (float) xpStolen);
totalLevelsStolen += levelsStolen;
}
@@ -115,8 +115,8 @@ public final class HardcoreManager {
public static boolean isStatLossEnabled() {
boolean enabled = false;
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- if (skillType.getHardcoreStatLossEnabled()) {
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ if (primarySkill.getHardcoreStatLossEnabled()) {
enabled = true;
break;
}
@@ -133,8 +133,8 @@ public final class HardcoreManager {
public static boolean isVampirismEnabled() {
boolean enabled = false;
- for (SkillType skillType : SkillType.NON_CHILD_SKILLS) {
- if (skillType.getHardcoreVampirismEnabled()) {
+ for (PrimarySkill primarySkill : PrimarySkill.NON_CHILD_SKILLS) {
+ if (primarySkill.getHardcoreVampirismEnabled()) {
enabled = true;
break;
}
diff --git a/src/main/java/com/gmail/nossr50/util/HolidayManager.java b/src/main/java/com/gmail/nossr50/util/HolidayManager.java
index 1b40c7f59..5e97fc463 100644
--- a/src/main/java/com/gmail/nossr50/util/HolidayManager.java
+++ b/src/main/java/com/gmail/nossr50/util/HolidayManager.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.util;
import com.gmail.nossr50.commands.skills.AprilCommand;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.player.UserManager;
import com.gmail.nossr50.util.skills.ParticleEffectUtils;
@@ -356,7 +356,7 @@ public final class HolidayManager {
}
public void levelUpApril(Player player, FakeSkillType fakeSkillType) {
- int levelTotal = Misc.getRandom().nextInt(1 + UserManager.getPlayer(player).getSkillLevel(SkillType.MINING)) + 1;
+ int levelTotal = Misc.getRandom().nextInt(1 + UserManager.getPlayer(player).getSkillLevel(PrimarySkill.MINING)) + 1;
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, Misc.LEVELUP_VOLUME, Misc.LEVELUP_PITCH);
player.sendMessage(ChatColor.YELLOW + StringUtils.getCapitalized(fakeSkillType.toString()) + " skill increased by 1. Total (" + levelTotal + ")");
ParticleEffectUtils.fireworkParticleShower(player, ALL_COLORS.get(Misc.getRandom().nextInt(ALL_COLORS.size())));
diff --git a/src/main/java/com/gmail/nossr50/util/Motd.java b/src/main/java/com/gmail/nossr50/util/Motd.java
index 3ede5b77b..7ac850207 100644
--- a/src/main/java/com/gmail/nossr50/util/Motd.java
+++ b/src/main/java/com/gmail/nossr50/util/Motd.java
@@ -2,12 +2,12 @@ package com.gmail.nossr50.util;
import java.text.DecimalFormat;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginDescriptionFile;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.skills.PerksUtils;
@@ -85,7 +85,7 @@ public final class Motd {
* @param player Target player
*/
public static void displayXpPerks(Player player) {
- for (SkillType skill : SkillType.values()) {
+ for (PrimarySkill skill : PrimarySkill.values()) {
if (PerksUtils.handleXpPerks(player, 1, skill) > 1) {
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.XP.Name"), LocaleLoader.getString("Perks.XP.Desc")));
return;
@@ -126,7 +126,7 @@ public final class Motd {
* @param player Target player
*/
public static void displayLuckyPerks(Player player) {
- for (SkillType skill : SkillType.values()) {
+ for (PrimarySkill skill : PrimarySkill.values()) {
if (Permissions.lucky(player, skill)) {
player.sendMessage(PERK_PREFIX + LocaleLoader.getString("Effects.Template", LocaleLoader.getString("Perks.Lucky.Name"), LocaleLoader.getString("Perks.Lucky.Desc.Login")));
return;
diff --git a/src/main/java/com/gmail/nossr50/util/Permissions.java b/src/main/java/com/gmail/nossr50/util/Permissions.java
index 3734a6843..0217a29f0 100644
--- a/src/main/java/com/gmail/nossr50/util/Permissions.java
+++ b/src/main/java/com/gmail/nossr50/util/Permissions.java
@@ -1,5 +1,6 @@
package com.gmail.nossr50.util;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.World;
@@ -13,8 +14,7 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.commands.party.PartySubcommandType;
import com.gmail.nossr50.datatypes.skills.ItemType;
import com.gmail.nossr50.datatypes.skills.MaterialType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
public final class Permissions {
private Permissions() {}
@@ -77,17 +77,17 @@ public final class Permissions {
public static boolean mcrefresh(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.mcrefresh")); }
public static boolean mcrefreshOthers(Permissible permissible) { return (permissible.hasPermission("mcmmo.commands.mcrefresh.others")); }
- public static boolean mctop(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.commands.mctop." + skill.toString().toLowerCase()); }
+ public static boolean mctop(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.commands.mctop." + skill.toString().toLowerCase()); }
public static boolean mmoedit(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.mmoedit"); }
public static boolean mmoeditOthers(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.mmoedit.others"); }
public static boolean skillreset(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.skillreset"); }
- public static boolean skillreset(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.commands.skillreset." + skill.toString().toLowerCase()); }
+ public static boolean skillreset(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.commands.skillreset." + skill.toString().toLowerCase()); }
public static boolean skillresetOthers(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.skillreset.others"); }
- public static boolean skillresetOthers(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.commands.skillreset.others." + skill.toString().toLowerCase()); }
+ public static boolean skillresetOthers(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.commands.skillreset.others." + skill.toString().toLowerCase()); }
- public static boolean xplock(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.commands.xplock." + skill.toString().toLowerCase()); }
+ public static boolean xplock(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.commands.xplock." + skill.toString().toLowerCase()); }
public static boolean xprateSet(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.xprate.set"); }
public static boolean xprateReset(Permissible permissible) { return permissible.hasPermission("mcmmo.commands.xprate.reset"); }
@@ -103,16 +103,16 @@ public final class Permissions {
* PERKS
*/
- public static boolean lucky(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.lucky." + skill.toString().toLowerCase()); }
+ public static boolean lucky(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.lucky." + skill.toString().toLowerCase()); }
/* XP PERKS */
- public static boolean quadrupleXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.quadruple." + skill.toString().toLowerCase()); }
- public static boolean tripleXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.triple." + skill.toString().toLowerCase()); }
- public static boolean doubleAndOneHalfXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.150percentboost." + skill.toString().toLowerCase()); }
- public static boolean doubleXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.double." + skill.toString().toLowerCase()); }
- public static boolean oneAndOneHalfXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.50percentboost." + skill.toString().toLowerCase()); }
- public static boolean oneAndOneTenthXp(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.10percentboost." + skill.toString().toLowerCase()); }
- public static boolean customXpBoost(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.perks.xp.customboost." + skill.toString().toLowerCase()); }
+ public static boolean quadrupleXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.quadruple." + skill.toString().toLowerCase()); }
+ public static boolean tripleXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.triple." + skill.toString().toLowerCase()); }
+ public static boolean doubleAndOneHalfXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.150percentboost." + skill.toString().toLowerCase()); }
+ public static boolean doubleXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.double." + skill.toString().toLowerCase()); }
+ public static boolean oneAndOneHalfXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.50percentboost." + skill.toString().toLowerCase()); }
+ public static boolean oneAndOneTenthXp(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.10percentboost." + skill.toString().toLowerCase()); }
+ public static boolean customXpBoost(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.perks.xp.customboost." + skill.toString().toLowerCase()); }
/* ACTIVATION PERKS */
public static boolean twelveSecondActivationBoost(Permissible permissible) { return permissible.hasPermission("mcmmo.perks.activationtime.twelveseconds"); }
@@ -128,10 +128,10 @@ public final class Permissions {
* SKILLS
*/
- public static boolean skillEnabled(Permissible permissible, SkillType skill) {return permissible.hasPermission("mcmmo.skills." + skill.toString().toLowerCase()); }
- public static boolean vanillaXpBoost(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.ability." + skill.toString().toLowerCase() + ".vanillaxpboost"); }
- public static boolean secondaryAbilityEnabled(Permissible permissible, SecondaryAbility skillAbility) { return permissible.hasPermission("mcmmo.ability." + SkillType.bySecondaryAbility(skillAbility).toString().toLowerCase() + "." + StringUtils.getPrettySecondaryAbilityString(skillAbility).replace(" ", "").toLowerCase()); }
- public static boolean bonusDamage(Permissible permissible, SkillType skill) { return permissible.hasPermission("mcmmo.ability." + skill.toString().toLowerCase() + ".bonusdamage"); }
+ public static boolean skillEnabled(Permissible permissible, PrimarySkill skill) {return permissible.hasPermission("mcmmo.skills." + skill.toString().toLowerCase()); }
+ public static boolean vanillaXpBoost(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.ability." + skill.toString().toLowerCase() + ".vanillaxpboost"); }
+ public static boolean isSubSkillEnabled(Permissible permissible, SubSkill subSkill) { return permissible.hasPermission(subSkill.getPermissionNodeAddress()); }
+ public static boolean bonusDamage(Permissible permissible, PrimarySkill skill) { return permissible.hasPermission("mcmmo.ability." + skill.toString().toLowerCase() + ".bonusdamage"); }
/* ACROBATICS */
public static boolean dodge(Permissible permissible) { return permissible.hasPermission("mcmmo.ability.acrobatics.dodge"); }
diff --git a/src/main/java/com/gmail/nossr50/util/StringUtils.java b/src/main/java/com/gmail/nossr50/util/StringUtils.java
index 08c5face1..7ef59e01b 100644
--- a/src/main/java/com/gmail/nossr50/util/StringUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/StringUtils.java
@@ -1,8 +1,8 @@
package com.gmail.nossr50.util;
import com.gmail.nossr50.datatypes.party.PartyFeature;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
import org.bukkit.Material;
import org.bukkit.TreeSpecies;
import org.bukkit.block.data.Ageable;
@@ -23,19 +23,19 @@ public class StringUtils {
}
public static String getPrettyItemString(Material material) {
- return createPrettyEnumString(material.toString());
+ return createPrettyString(material.toString());
}
public static String getPrettyEntityTypeString(EntityType entity) {
- return createPrettyEnumString(entity.toString());
+ return createPrettyString(entity.toString());
}
- public static String getPrettyAbilityString(AbilityType ability) {
- return createPrettyEnumString(ability.toString());
+ public static String getPrettyAbilityString(SuperAbility ability) {
+ return createPrettyString(ability.toString());
}
public static String getPrettyTreeSpeciesString(TreeSpecies species) {
- return createPrettyEnumString(species.toString());
+ return createPrettyString(species.toString());
}
public static String getWildcardConfigBlockDataString(BlockData data) {
@@ -79,28 +79,11 @@ public class StringUtils {
return StringUtils.getPrettyItemString(data).replace(" ", "_");
}
- public static String getPrettySecondaryAbilityString(SecondaryAbility secondaryAbility) {
- switch (secondaryAbility) {
- case HERBALISM_DOUBLE_DROPS :
- case MINING_DOUBLE_DROPS :
- case WOODCUTTING_HARVEST:
- return "Double Drops";
- case FISHING_TREASURE_HUNTER :
- case EXCAVATION_TREASURE_HUNTER :
- return "Treasure Hunter";
- case GREEN_THUMB_BLOCK :
- case GREEN_THUMB_PLANT :
- return "Green Thumb";
- default :
- return createPrettyEnumString(secondaryAbility.toString());
- }
- }
-
public static String getPrettyPartyFeatureString(PartyFeature partyFeature) {
- return createPrettyEnumString(partyFeature.toString());
+ return createPrettyString(partyFeature.toString());
}
- private static String createPrettyEnumString(String baseString) {
+ private static String createPrettyString(String baseString) {
String[] substrings = baseString.split("_");
String prettyString = "";
int size = 1;
diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java
index 9fe14dd6a..1018357b1 100644
--- a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java
+++ b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java
@@ -52,7 +52,7 @@ 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.config.Config;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.StringUtils;
@@ -62,7 +62,7 @@ public final class CommandRegistrationManager {
private static String permissionsMessage = LocaleLoader.getString("mcMMO.NoPermission");
private static void registerSkillCommands() {
- for (SkillType skill : SkillType.values()) {
+ for (PrimarySkill skill : PrimarySkill.values()) {
String commandName = skill.toString().toLowerCase();
String localizedName = skill.getName().toLowerCase();
diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java
index 41d534ceb..359bcc73a 100644
--- a/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/commands/CommandUtils.java
@@ -3,6 +3,7 @@ package com.gmail.nossr50.util.commands;
import java.util.ArrayList;
import java.util.List;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
@@ -11,7 +12,6 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.StringUtils;
@@ -26,7 +26,7 @@ public final class CommandUtils {
private CommandUtils() {}
- public static boolean isChildSkill(CommandSender sender, SkillType skill) {
+ public static boolean isChildSkill(CommandSender sender, PrimarySkill skill) {
if (skill == null || !skill.isChildSkill()) {
return false;
}
@@ -181,7 +181,7 @@ public final class CommandUtils {
* @param display The sender to display stats to
*/
public static void printGatheringSkills(Player inspect, CommandSender display) {
- printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), SkillType.GATHERING_SKILLS);
+ printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Gathering"), PrimarySkill.GATHERING_SKILLS);
}
public static void printGatheringSkills(Player player) {
@@ -195,7 +195,7 @@ public final class CommandUtils {
* @param display The sender to display stats to
*/
public static void printCombatSkills(Player inspect, CommandSender display) {
- printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), SkillType.COMBAT_SKILLS);
+ printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Combat"), PrimarySkill.COMBAT_SKILLS);
}
public static void printCombatSkills(Player player) {
@@ -209,14 +209,14 @@ public final class CommandUtils {
* @param display The sender to display stats to
*/
public static void printMiscSkills(Player inspect, CommandSender display) {
- printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), SkillType.MISC_SKILLS);
+ printGroupedSkillData(inspect, display, LocaleLoader.getString("Stats.Header.Misc"), PrimarySkill.MISC_SKILLS);
}
public static void printMiscSkills(Player player) {
printMiscSkills(player, player);
}
- public static String displaySkill(PlayerProfile profile, SkillType skill) {
+ public static String displaySkill(PlayerProfile profile, PrimarySkill skill) {
if (skill.isChildSkill()) {
return LocaleLoader.getString("Skills.ChildStats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener") + " ", profile.getSkillLevel(skill));
}
@@ -224,13 +224,13 @@ public final class CommandUtils {
return LocaleLoader.getString("Skills.Stats", LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".Listener") + " ", profile.getSkillLevel(skill), profile.getSkillXpLevel(skill), profile.getXpToLevel(skill));
}
- private static void printGroupedSkillData(Player inspect, CommandSender display, String header, List skillGroup) {
+ private static void printGroupedSkillData(Player inspect, CommandSender display, String header, List skillGroup) {
PlayerProfile profile = UserManager.getPlayer(inspect).getProfile();
List displayData = new ArrayList();
displayData.add(header);
- for (SkillType skill : skillGroup) {
+ for (PrimarySkill skill : skillGroup) {
if (skill.getPermissions(inspect)) {
displayData.add(displaySkill(profile, skill));
}
diff --git a/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java b/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java
index c3e57395d..c28e04941 100644
--- a/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java
+++ b/src/main/java/com/gmail/nossr50/util/experience/FormulaManager.java
@@ -10,7 +10,7 @@ import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.experience.FormulaType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
public class FormulaManager {
private static File formulaFile = new File(mcMMO.getFlatFileDirectory() + "formula.yml");
@@ -68,15 +68,15 @@ public class FormulaManager {
* Calculate how many levels a player should have using
* the new formula type.
*
- * @param skillType skill where new levels and experience are calculated for
+ * @param primarySkill skill where new levels and experience are calculated for
* @param experience total amount of experience
* @param formulaType The new {@link FormulaType}
* @return the amount of levels and experience
*/
- public int[] calculateNewLevel(SkillType skillType, int experience, FormulaType formulaType) {
+ public int[] calculateNewLevel(PrimarySkill primarySkill, int experience, FormulaType formulaType) {
int newLevel = 0;
int remainder = 0;
- int maxLevel = Config.getInstance().getLevelCap(skillType);
+ int maxLevel = Config.getInstance().getLevelCap(primarySkill);
while (experience > 0 && newLevel < maxLevel) {
int experienceToNextLevel = getCachedXpToLevel(newLevel, formulaType);
diff --git a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java
index d2d0b582f..29260f0f3 100644
--- a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java
+++ b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java
@@ -6,6 +6,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.DisplaySlot;
@@ -16,8 +18,6 @@ import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.player.UserManager;
@@ -50,9 +50,9 @@ public class ScoreboardManager {
static final String LABEL_ABILITY_COOLDOWN = LocaleLoader.getString("Scoreboard.Misc.Cooldown");
static final String LABEL_OVERALL = LocaleLoader.getString("Scoreboard.Misc.Overall");
- static final Map skillLabels;
- static final Map abilityLabelsColored;
- static final Map abilityLabelsSkill;
+ static final Map skillLabels;
+ static final Map abilityLabelsColored;
+ static final Map abilityLabelsSkill;
/*
* Initializes the static properties of this class
@@ -61,9 +61,9 @@ public class ScoreboardManager {
/*
* We need immutable objects for our Scoreboard's labels
*/
- ImmutableMap.Builder skillLabelBuilder = ImmutableMap.builder();
- ImmutableMap.Builder abilityLabelBuilder = ImmutableMap.builder();
- ImmutableMap.Builder abilityLabelSkillBuilder = ImmutableMap.builder();
+ ImmutableMap.Builder skillLabelBuilder = ImmutableMap.builder();
+ ImmutableMap.Builder abilityLabelBuilder = ImmutableMap.builder();
+ ImmutableMap.Builder abilityLabelSkillBuilder = ImmutableMap.builder();
/*
* Builds the labels for our ScoreBoards
@@ -90,15 +90,15 @@ public class ScoreboardManager {
Collections.shuffle(colors, Misc.getRandom());
int i = 0;
- for (SkillType type : SkillType.values()) {
+ for (PrimarySkill type : PrimarySkill.values()) {
// Include child skills
skillLabelBuilder.put(type, getShortenedName(colors.get(i) + type.getName(), false));
if (type.getAbility() != null) {
abilityLabelBuilder.put(type.getAbility(), getShortenedName(colors.get(i) + type.getAbility().getName()));
- if (type == SkillType.MINING) {
- abilityLabelBuilder.put(AbilityType.BLAST_MINING, getShortenedName(colors.get(i) + AbilityType.BLAST_MINING.getName()));
+ if (type == PrimarySkill.MINING) {
+ abilityLabelBuilder.put(SuperAbility.BLAST_MINING, getShortenedName(colors.get(i) + SuperAbility.BLAST_MINING.getName()));
}
}
@@ -112,22 +112,22 @@ public class ScoreboardManager {
* Stylizes the scoreboard using our normal color scheme
*/
else {
- for (SkillType type : SkillType.values()) {
+ for (PrimarySkill type : PrimarySkill.values()) {
// Include child skills
skillLabelBuilder.put(type, getShortenedName(ChatColor.GREEN + type.getName()));
if (type.getAbility() != null) {
abilityLabelBuilder.put(type.getAbility(), formatAbility(type.getAbility().getName()));
- if (type == SkillType.MINING) {
- abilityLabelBuilder.put(AbilityType.BLAST_MINING, formatAbility(AbilityType.BLAST_MINING.getName()));
+ if (type == PrimarySkill.MINING) {
+ abilityLabelBuilder.put(SuperAbility.BLAST_MINING, formatAbility(SuperAbility.BLAST_MINING.getName()));
}
}
}
}
- for (AbilityType type : AbilityType.values()) {
- abilityLabelSkillBuilder.put(type, formatAbility((type == AbilityType.BLAST_MINING ? ChatColor.BLUE : ChatColor.AQUA), type.getName()));
+ for (SuperAbility type : SuperAbility.values()) {
+ abilityLabelSkillBuilder.put(type, formatAbility((type == SuperAbility.BLAST_MINING ? ChatColor.BLUE : ChatColor.AQUA), type.getName()));
}
skillLabels = skillLabelBuilder.build();
@@ -207,7 +207,7 @@ public class ScoreboardManager {
}
// Called by internal level-up event listener
- public static void handleLevelUp(Player player, SkillType skill) {
+ public static void handleLevelUp(Player player, PrimarySkill skill) {
// Selfboards
ScoreboardWrapper selfboardWrapper = PLAYER_SCOREBOARDS.get(player.getName());
@@ -234,7 +234,7 @@ public class ScoreboardManager {
}
// Called by internal xp event listener
- public static void handleXp(Player player, SkillType skill) {
+ public static void handleXp(Player player, PrimarySkill skill) {
// Selfboards
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
@@ -244,7 +244,7 @@ public class ScoreboardManager {
}
// Called by internal ability event listeners
- public static void cooldownUpdate(Player player, SkillType skill) {
+ public static void cooldownUpdate(Player player, PrimarySkill skill) {
// Selfboards
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
@@ -255,7 +255,7 @@ public class ScoreboardManager {
// **** Setup methods **** //
- public static void enablePlayerSkillScoreboard(Player player, SkillType skill) {
+ public static void enablePlayerSkillScoreboard(Player player, PrimarySkill skill) {
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
wrapper.setOldScoreboard();
@@ -264,7 +264,7 @@ public class ScoreboardManager {
changeScoreboard(wrapper, Config.getInstance().getSkillScoreboardTime());
}
- public static void enablePlayerSkillLevelUpScoreboard(Player player, SkillType skill) {
+ public static void enablePlayerSkillLevelUpScoreboard(Player player, PrimarySkill skill) {
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
// Do NOT run if already shown
@@ -305,7 +305,7 @@ public class ScoreboardManager {
changeScoreboard(wrapper, Config.getInstance().getCooldownScoreboardTime());
}
- public static void showPlayerRankScoreboard(Player player, Map rank) {
+ public static void showPlayerRankScoreboard(Player player, Map rank) {
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
wrapper.setOldScoreboard();
@@ -315,7 +315,7 @@ public class ScoreboardManager {
changeScoreboard(wrapper, Config.getInstance().getRankScoreboardTime());
}
- public static void showPlayerRankScoreboardOthers(Player player, String targetName, Map rank) {
+ public static void showPlayerRankScoreboardOthers(Player player, String targetName, Map rank) {
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
wrapper.setOldScoreboard();
@@ -325,7 +325,7 @@ public class ScoreboardManager {
changeScoreboard(wrapper, Config.getInstance().getRankScoreboardTime());
}
- public static void showTopScoreboard(Player player, SkillType skill, int pageNumber, List stats) {
+ public static void showTopScoreboard(Player player, PrimarySkill skill, int pageNumber, List stats) {
ScoreboardWrapper wrapper = PLAYER_SCOREBOARDS.get(player.getName());
wrapper.setOldScoreboard();
diff --git a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java
index a5f0b19b5..9348f0f84 100644
--- a/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java
+++ b/src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardWrapper.java
@@ -17,8 +17,8 @@ import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.datatypes.database.PlayerStat;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.skills.child.FamilyTree;
import com.gmail.nossr50.util.Misc;
@@ -42,7 +42,7 @@ public class ScoreboardWrapper {
// Parameter variables (May be null / invalid)
private Scoreboard oldBoard = null;
public String targetPlayer = null;
- public SkillType targetSkill = null;
+ public PrimarySkill targetSkill = null;
private PlayerProfile targetProfile = null;
public int leaderboardPage = -1;
@@ -277,7 +277,7 @@ public class ScoreboardWrapper {
loadObjective("");
}
- public void setTypeSkill(SkillType skill) {
+ public void setTypeSkill(PrimarySkill skill) {
this.sidebarType = SidebarType.SKILL_BOARD;
targetSkill = skill;
@@ -356,7 +356,7 @@ public class ScoreboardWrapper {
loadObjective(String.format("%s (%2d - %2d)", ScoreboardManager.POWER_LEVEL, startPosition, endPosition));
}
- public void setTypeTop(SkillType skill, int page) {
+ public void setTypeTop(PrimarySkill skill, int page) {
this.sidebarType = SidebarType.TOP_BOARD;
leaderboardPage = page;
targetSkill = skill;
@@ -424,7 +424,7 @@ public class ScoreboardWrapper {
sidebarObjective.getScore(ScoreboardManager.LABEL_REMAINING_XP).setScore(mcMMOPlayer.getXpToLevel(targetSkill) - currentXP);
}
else {
- for (SkillType parentSkill : FamilyTree.getParents(targetSkill)) {
+ for (PrimarySkill parentSkill : FamilyTree.getParents(targetSkill)) {
sidebarObjective.getScore(ScoreboardManager.skillLabels.get(parentSkill)).setScore(mcMMOPlayer.getSkillLevel(parentSkill));
}
}
@@ -434,12 +434,12 @@ public class ScoreboardWrapper {
if (targetSkill.getAbility() != null) {
boolean stopUpdating;
- if (targetSkill == SkillType.MINING) {
+ if (targetSkill == PrimarySkill.MINING) {
// Special-Case: Mining has two abilities, both with cooldowns
- Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.SUPER_BREAKER));
- Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(AbilityType.BLAST_MINING));
- int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.SUPER_BREAKER), 0);
- int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(AbilityType.BLAST_MINING), 0);
+ Score cooldownSB = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(SuperAbility.SUPER_BREAKER));
+ Score cooldownBM = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(SuperAbility.BLAST_MINING));
+ int secondsSB = Math.max(mcMMOPlayer.calculateTimeRemaining(SuperAbility.SUPER_BREAKER), 0);
+ int secondsBM = Math.max(mcMMOPlayer.calculateTimeRemaining(SuperAbility.BLAST_MINING), 0);
cooldownSB.setScore(secondsSB);
cooldownBM.setScore(secondsBM);
@@ -447,7 +447,7 @@ public class ScoreboardWrapper {
stopUpdating = (secondsSB == 0 && secondsBM == 0);
}
else {
- AbilityType ability = targetSkill.getAbility();
+ SuperAbility ability = targetSkill.getAbility();
Score cooldown = sidebarObjective.getScore(ScoreboardManager.abilityLabelsSkill.get(ability));
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0);
@@ -468,7 +468,7 @@ public class ScoreboardWrapper {
case COOLDOWNS_BOARD:
boolean anyCooldownsActive = false;
- for (AbilityType ability : AbilityType.values()) {
+ for (SuperAbility ability : SuperAbility.values()) {
int seconds = Math.max(mcMMOPlayer.calculateTimeRemaining(ability), 0);
if (seconds != 0) {
@@ -502,7 +502,7 @@ public class ScoreboardWrapper {
// Calculate power level here
int powerLevel = 0;
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) { // Don't include child skills, makes the list too long
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) { // Don't include child skills, makes the list too long
int level = newProfile.getSkillLevel(skill);
powerLevel += level;
@@ -521,7 +521,7 @@ public class ScoreboardWrapper {
case RANK_BOARD:
case TOP_BOARD:
/*
- * @see #acceptRankData(Map rank)
+ * @see #acceptRankData(Map rank)
* @see #acceptLeaderboardData(List stats)
*/
break;
@@ -531,11 +531,11 @@ public class ScoreboardWrapper {
}
}
- public void acceptRankData(Map rankData) {
+ public void acceptRankData(Map rankData) {
Integer rank;
Player player = mcMMO.p.getServer().getPlayerExact(playerName);
- for (SkillType skill : SkillType.NON_CHILD_SKILLS) {
+ for (PrimarySkill skill : PrimarySkill.NON_CHILD_SKILLS) {
if (!skill.getPermissions(player)) {
continue;
}
diff --git a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
index 230481451..8769ce0d4 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
@@ -4,6 +4,7 @@ import java.util.EnumMap;
import java.util.HashMap;
import java.util.Map;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.AnimalTamer;
@@ -11,12 +12,10 @@ import org.bukkit.entity.Animals;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Entity;
import org.bukkit.entity.EntityType;
-import org.bukkit.entity.Guardian;
import org.bukkit.entity.IronGolem;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Monster;
import org.bukkit.entity.Player;
-import org.bukkit.entity.Skeleton;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.Wolf;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
@@ -29,7 +28,6 @@ import org.bukkit.projectiles.ProjectileSource;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
@@ -66,7 +64,7 @@ public final class CombatUtils {
Map modifiers = getModifiers(event);
if (swordsManager.canActivateAbility()) {
- mcMMOPlayer.checkAbilityActivation(SkillType.SWORDS);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.SWORDS);
}
if (swordsManager.canUseBleed()) {
@@ -77,7 +75,7 @@ public final class CombatUtils {
swordsManager.serratedStrikes(target, initialDamage, modifiers);
}
- startGainXp(mcMMOPlayer, target, SkillType.SWORDS);
+ startGainXp(mcMMOPlayer, target, PrimarySkill.SWORDS);
}
private static void processAxeCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) {
@@ -93,7 +91,7 @@ public final class CombatUtils {
AxesManager axesManager = mcMMOPlayer.getAxesManager();
if (axesManager.canActivateAbility()) {
- mcMMOPlayer.checkAbilityActivation(SkillType.AXES);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.AXES);
}
if (axesManager.canUseAxeMastery()) {
@@ -116,7 +114,7 @@ public final class CombatUtils {
}
applyScaledModifiers(initialDamage, finalDamage, event);
- startGainXp(mcMMOPlayer, target, SkillType.AXES);
+ startGainXp(mcMMOPlayer, target, PrimarySkill.AXES);
}
private static void processUnarmedCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event) {
@@ -131,7 +129,7 @@ public final class CombatUtils {
UnarmedManager unarmedManager = mcMMOPlayer.getUnarmedManager();
if (unarmedManager.canActivateAbility()) {
- mcMMOPlayer.checkAbilityActivation(SkillType.UNARMED);
+ mcMMOPlayer.checkAbilityActivation(PrimarySkill.UNARMED);
}
if (unarmedManager.canUseIronArm()) {
@@ -147,7 +145,7 @@ public final class CombatUtils {
}
applyScaledModifiers(initialDamage, finalDamage, event);
- startGainXp(mcMMOPlayer, target, SkillType.UNARMED);
+ startGainXp(mcMMOPlayer, target, PrimarySkill.UNARMED);
}
private static void processTamingCombat(LivingEntity target, Player master, Wolf wolf, EntityDamageByEntityEvent event) {
@@ -172,7 +170,7 @@ public final class CombatUtils {
}
applyScaledModifiers(initialDamage, finalDamage, event);
- startGainXp(mcMMOPlayer, target, SkillType.TAMING);
+ startGainXp(mcMMOPlayer, target, PrimarySkill.TAMING);
}
private static void processArcheryCombat(LivingEntity target, Player player, EntityDamageByEntityEvent event, Arrow arrow) {
@@ -182,7 +180,7 @@ public final class CombatUtils {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
ArcheryManager archeryManager = mcMMOPlayer.getArcheryManager();
- if (target instanceof Player && SkillType.UNARMED.getPVPEnabled()) {
+ if (target instanceof Player && PrimarySkill.UNARMED.getPVPEnabled()) {
UnarmedManager unarmedManager = UserManager.getPlayer((Player) target).getUnarmedManager();
if (unarmedManager.canDeflect()) {
@@ -209,7 +207,7 @@ public final class CombatUtils {
archeryManager.distanceXpBonus(target, arrow);
applyScaledModifiers(initialDamage, finalDamage, event);
- startGainXp(mcMMOPlayer, target, SkillType.ARCHERY, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble());
+ startGainXp(mcMMOPlayer, target, PrimarySkill.ARCHERY, arrow.getMetadata(mcMMO.bowForceKey).get(0).asDouble());
}
/**
@@ -247,29 +245,29 @@ public final class CombatUtils {
}
if (ItemUtils.isSword(heldItem)) {
- if (!SkillType.SWORDS.shouldProcess(target)) {
+ if (!PrimarySkill.SWORDS.shouldProcess(target)) {
return;
}
- if (SkillType.SWORDS.getPermissions(player)) {
+ if (PrimarySkill.SWORDS.getPermissions(player)) {
processSwordCombat(target, player, event);
}
}
else if (ItemUtils.isAxe(heldItem)) {
- if (!SkillType.AXES.shouldProcess(target)) {
+ if (!PrimarySkill.AXES.shouldProcess(target)) {
return;
}
- if (SkillType.AXES.getPermissions(player)) {
+ if (PrimarySkill.AXES.getPermissions(player)) {
processAxeCombat(target, player, event);
}
}
else if (ItemUtils.isUnarmed(heldItem)) {
- if (!SkillType.UNARMED.shouldProcess(target)) {
+ if (!PrimarySkill.UNARMED.shouldProcess(target)) {
return;
}
- if (SkillType.UNARMED.getPermissions(player)) {
+ if (PrimarySkill.UNARMED.getPermissions(player)) {
processUnarmedCombat(target, player, event);
}
}
@@ -279,10 +277,10 @@ public final class CombatUtils {
Wolf wolf = (Wolf) damager;
AnimalTamer tamer = wolf.getOwner();
- if (tamer != null && tamer instanceof Player && SkillType.TAMING.shouldProcess(target)) {
+ if (tamer != null && tamer instanceof Player && PrimarySkill.TAMING.shouldProcess(target)) {
Player master = (Player) tamer;
- if (!Misc.isNPCEntity(master) && SkillType.TAMING.getPermissions(master)) {
+ if (!Misc.isNPCEntity(master) && PrimarySkill.TAMING.getPermissions(master)) {
processTamingCombat(target, master, wolf, event);
}
}
@@ -291,14 +289,14 @@ public final class CombatUtils {
Arrow arrow = (Arrow) damager;
ProjectileSource projectileSource = arrow.getShooter();
- if (projectileSource != null && projectileSource instanceof Player && SkillType.ARCHERY.shouldProcess(target)) {
+ if (projectileSource != null && projectileSource instanceof Player && PrimarySkill.ARCHERY.shouldProcess(target)) {
Player player = (Player) projectileSource;
- if (!Misc.isNPCEntity(player) && SkillType.ARCHERY.getPermissions(player)) {
+ if (!Misc.isNPCEntity(player) && PrimarySkill.ARCHERY.getPermissions(player)) {
processArcheryCombat(target, player, event, arrow);
}
- if (target.getType() != EntityType.CREEPER && !Misc.isNPCEntity(player) && SkillType.TAMING.getPermissions(player)) {
+ if (target.getType() != EntityType.CREEPER && !Misc.isNPCEntity(player) && PrimarySkill.TAMING.getPermissions(player)) {
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
TamingManager tamingManager = mcMMOPlayer.getTamingManager();
tamingManager.attackTarget(target);
@@ -323,7 +321,7 @@ public final class CombatUtils {
}
if (ItemUtils.isSword(player.getInventory().getItemInMainHand())) {
- if (!SkillType.SWORDS.shouldProcess(target)) {
+ if (!PrimarySkill.SWORDS.shouldProcess(target)) {
return;
}
@@ -399,7 +397,7 @@ public final class CombatUtils {
* @param damage The initial damage amount
* @param type The type of skill being used
*/
- public static void applyAbilityAoE(Player attacker, LivingEntity target, double damage, Map modifiers, SkillType type) {
+ public static void applyAbilityAoE(Player attacker, LivingEntity target, double damage, Map modifiers, PrimarySkill type) {
int numberOfTargets = getTier(attacker.getInventory().getItemInMainHand()); // The higher the weapon tier, the more targets you hit
double damageAmount = Math.max(damage, 1);
@@ -440,8 +438,8 @@ public final class CombatUtils {
}
}
- public static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, SkillType skillType) {
- startGainXp(mcMMOPlayer, target, skillType, 1.0);
+ public static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkill primarySkill) {
+ startGainXp(mcMMOPlayer, target, primarySkill, 1.0);
}
/**
@@ -449,9 +447,9 @@ public final class CombatUtils {
*
* @param mcMMOPlayer The attacking player
* @param target The defending entity
- * @param skillType The skill being used
+ * @param primarySkill The skill being used
*/
- private static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, SkillType skillType, double multiplier) {
+ private static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkill primarySkill, double multiplier) {
double baseXP = 0;
XPGainReason xpGainReason;
@@ -518,7 +516,7 @@ public final class CombatUtils {
baseXP *= multiplier;
if (baseXP != 0) {
- new AwardCombatXpTask(mcMMOPlayer, skillType, baseXP, target, xpGainReason).runTaskLater(mcMMO.p, 0);
+ new AwardCombatXpTask(mcMMOPlayer, primarySkill, baseXP, target, xpGainReason).runTaskLater(mcMMO.p, 0);
}
}
diff --git a/src/main/java/com/gmail/nossr50/util/skills/PerksUtils.java b/src/main/java/com/gmail/nossr50/util/skills/PerksUtils.java
index 03f4ebe8c..585dcde40 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/PerksUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/PerksUtils.java
@@ -1,9 +1,9 @@
package com.gmail.nossr50.util.skills;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import org.bukkit.entity.Player;
import com.gmail.nossr50.config.experience.ExperienceConfig;
-import com.gmail.nossr50.datatypes.skills.SkillType;
import com.gmail.nossr50.util.Permissions;
public final class PerksUtils {
@@ -44,7 +44,7 @@ public final class PerksUtils {
return ticks;
}
- public static float handleXpPerks(Player player, float xp, SkillType skill) {
+ public static float handleXpPerks(Player player, float xp, PrimarySkill skill) {
if (Permissions.customXpBoost(player, skill)) {
xp *= ExperienceConfig.getInstance().getCustomXpPerkBoost();
}
@@ -74,10 +74,10 @@ public final class PerksUtils {
* Calculate activation chance for a skill.
*
* @param player Player to check the activation chance for
- * @param skill SkillType to check the activation chance of
+ * @param skill PrimarySkill to check the activation chance of
* @return the activation chance with "lucky perk" accounted for
*/
- public static int handleLuckyPerks(Player player, SkillType skill) {
+ public static int handleLuckyPerks(Player player, PrimarySkill skill) {
if (Permissions.lucky(player, skill)) {
return LUCKY_SKILL_ACTIVATION_CHANCE;
}
diff --git a/src/main/java/com/gmail/nossr50/util/skills/SkillMilestoneManager.java b/src/main/java/com/gmail/nossr50/util/skills/SkillMilestoneManager.java
index 58bd43585..0b7d8a5e0 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/SkillMilestoneManager.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/SkillMilestoneManager.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.util.skills;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
import java.util.HashMap;
@@ -19,13 +19,13 @@ import java.util.HashMap;
//TODO: Propagate events when milestones are achieved
//TODO: Update existing parts of the codebase to use this where appropriate
public class SkillMilestoneManager {
- public static final HashMap subskillMilestones;
+ public static final HashMap subskillMilestones;
static {
//Init our maps
subskillMilestones = new HashMap<>();
- for(SkillType skillType : SkillType.values())
+ for(PrimarySkill primarySkill : PrimarySkill.values())
{
//TODO: Setup these values
}
diff --git a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
index 200bd5563..40ea41467 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
@@ -4,11 +4,11 @@ import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.HiddenConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.AbilityType;
-import com.gmail.nossr50.datatypes.skills.SecondaryAbility;
-import com.gmail.nossr50.datatypes.skills.SkillType;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityEvent;
-import com.gmail.nossr50.events.skills.secondaryabilities.SecondaryAbilityWeightedActivationCheckEvent;
+import com.gmail.nossr50.datatypes.skills.SuperAbility;
+import com.gmail.nossr50.datatypes.skills.PrimarySkill;
+import com.gmail.nossr50.datatypes.skills.SubSkill;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillEvent;
+import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillWeightedActivationCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.EventUtils;
@@ -32,7 +32,7 @@ import java.util.ArrayList;
import java.util.List;
public class SkillUtils {
- public static int handleFoodSkills(Player player, SkillType skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
+ public static int handleFoodSkills(Player player, PrimarySkill skill, int eventFoodLevel, int baseLevel, int maxLevel, int rankChange) {
int skillLevel = UserManager.getPlayer(player).getSkillLevel(skill);
int currentFoodLevel = player.getFoodLevel();
@@ -80,7 +80,7 @@ public class SkillUtils {
* @return true if this is a valid skill, false otherwise
*/
public static boolean isSkill(String skillName) {
- return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? SkillType.getSkill(skillName) != null : isLocalizedSkill(skillName);
+ return Config.getInstance().getLocale().equalsIgnoreCase("en_US") ? PrimarySkill.getSkill(skillName) != null : isLocalizedSkill(skillName);
}
public static void sendSkillMessage(Player player, String message) {
@@ -130,7 +130,7 @@ public class SkillUtils {
}
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
- SkillType skill = mcMMOPlayer.getAbilityMode(AbilityType.SUPER_BREAKER) ? SkillType.MINING : SkillType.EXCAVATION;
+ PrimarySkill skill = mcMMOPlayer.getAbilityMode(SuperAbility.SUPER_BREAKER) ? PrimarySkill.MINING : PrimarySkill.EXCAVATION;
int ticks = PerksUtils.handleActivationPerks(player, 2 + (mcMMOPlayer.getSkillLevel(skill) / AdvancedConfig.getInstance().getAbilityLength()), skill.getAbility().getMaxLength()) * Misc.TICK_CONVERSION_FACTOR;
PotionEffect abilityBuff = new PotionEffect(PotionEffectType.FAST_DIGGING, duration + ticks, amplifier + 10);
@@ -199,7 +199,7 @@ public class SkillUtils {
/**
* Checks whether or not the given skill succeeds
- * @param skillAbility The ability corresponding to this check
+ * @param subSkill The ability corresponding to this check
* @param player The player whose skill levels we are checking against
* @param skillLevel The skill level of the corresponding skill
* @param activationChance used to determine activation chance
@@ -207,9 +207,9 @@ public class SkillUtils {
* @param maxLevel maximum skill level bonus
* @return true if random chance succeeds and the event isn't cancelled
*/
- private static boolean performRandomSkillCheck(SecondaryAbility skillAbility, Player player, int skillLevel, int activationChance, double maxChance, int maxLevel) {
+ private static boolean performRandomSkillCheck(SubSkill subSkill, Player player, int skillLevel, int activationChance, double maxChance, int maxLevel) {
double chance = (maxChance / maxLevel) * Math.min(skillLevel, maxLevel) / activationChance;
- return performRandomSkillCheckStatic(skillAbility, player, activationChance, chance);
+ return performRandomSkillCheckStatic(subSkill, player, activationChance, chance);
}
/**
@@ -224,34 +224,34 @@ public class SkillUtils {
* Random skills check for success based on numbers and then fire a cancellable event, if that event is not cancelled they succeed
* All other skills just fire the cancellable event and succeed if it is not cancelled
*
- * @param skillAbility The identifier for this specific sub-skill
+ * @param subSkill The identifier for this specific sub-skill
* @param player The owner of this sub-skill
* @param skill The identifier for the parent of our sub-skill
* @param activationChance This is the value that we roll against, 100 is normal, and 75 is for lucky perk
- * @param secondarySkillActivationType this value represents what kind of activation procedures this sub-skill uses
+ * @param subskillActivationType this value represents what kind of activation procedures this sub-skill uses
* @return returns true if all conditions are met and they event is not cancelled
*/
- public static boolean isActivationSuccessful(SecondarySkillActivationType secondarySkillActivationType, SecondaryAbility skillAbility, Player player,
- SkillType skill, int skillLevel, int activationChance)
+ public static boolean isActivationSuccessful(SubSkillActivationType subskillActivationType, SubSkill subSkill, Player player,
+ PrimarySkill skill, int skillLevel, int activationChance)
{
//Maximum chance to succeed
- double maxChance = AdvancedConfig.getInstance().getMaxChance(skillAbility);
+ double maxChance = AdvancedConfig.getInstance().getMaxChance(subSkill);
//Maximum roll we can make
- int maxBonusLevel = AdvancedConfig.getInstance().getMaxBonusLevel(skillAbility);
+ int maxBonusLevel = AdvancedConfig.getInstance().getMaxBonusLevel(subSkill);
- switch(secondarySkillActivationType)
+ switch(subskillActivationType)
{
//100 Skill = Guaranteed
case RANDOM_LINEAR_100_SCALE_NO_CAP:
- return performRandomSkillCheck(skillAbility, player, skillLevel, PerksUtils.handleLuckyPerks(player, skill), 100.0D, 100);
+ return performRandomSkillCheck(subSkill, player, skillLevel, PerksUtils.handleLuckyPerks(player, skill), 100.0D, 100);
case RANDOM_LINEAR_100_SCALE_WITH_CAP:
- return performRandomSkillCheck(skillAbility, player, skillLevel, PerksUtils.handleLuckyPerks(player, skill), AdvancedConfig.getInstance().getMaxChance(skillAbility), AdvancedConfig.getInstance().getMaxBonusLevel(skillAbility));
+ return performRandomSkillCheck(subSkill, player, skillLevel, PerksUtils.handleLuckyPerks(player, skill), AdvancedConfig.getInstance().getMaxChance(subSkill), AdvancedConfig.getInstance().getMaxBonusLevel(subSkill));
case RANDOM_STATIC_CHANCE:
//Grab the static activation chance of this skill
- double staticRoll = getSecondaryAbilityStaticChance(skillAbility) / activationChance;
- return performRandomSkillCheckStatic(skillAbility, player, activationChance, staticRoll);
+ double staticRoll = getSecondaryAbilityStaticChance(subSkill) / activationChance;
+ return performRandomSkillCheckStatic(subSkill, player, activationChance, staticRoll);
case ALWAYS_FIRES:
- SecondaryAbilityEvent event = EventUtils.callSecondaryAbilityEvent(player, skillAbility);
+ SubSkillEvent event = EventUtils.callSubSkillEvent(player, subSkill);
return !event.isCancelled();
default:
return false;
@@ -260,18 +260,18 @@ public class SkillUtils {
/**
* Grabs static activation rolls for Secondary Abilities
- * @param secondaryAbility The secondary ability to grab properties of
+ * @param subSkill The secondary ability to grab properties of
* @return The static activation roll involved in the RNG calculation
*/
- public static double getSecondaryAbilityStaticChance(SecondaryAbility secondaryAbility)
+ public static double getSecondaryAbilityStaticChance(SubSkill subSkill)
{
- switch(secondaryAbility)
+ switch(subSkill)
{
- case ARMOR_IMPACT:
+ case AXES_ARMOR_IMPACT:
return AdvancedConfig.getInstance().getImpactChance();
- case GREATER_IMPACT:
+ case AXES_GREATER_IMPACT:
return AdvancedConfig.getInstance().getGreaterImpactChance();
- case FAST_FOOD:
+ case TAMING_FAST_FOOD:
return AdvancedConfig.getInstance().getFastFoodChance();
default:
return 100.0D;
@@ -280,26 +280,26 @@ public class SkillUtils {
/**
* Used to determine whether or not a sub-skill activates from random chance (using static values)
- * @param skillAbility The identifier for this specific sub-skill
+ * @param subSkill The identifier for this specific sub-skill
* @param player The owner of this sub-skill
* @param activationChance This is the value that we roll against, 100 is normal, and 75 is for lucky perk
* @param chance This is the static modifier for our random calculations
* @return true if random chance was successful and the event wasn't cancelled
*/
- private static boolean performRandomSkillCheckStatic(SecondaryAbility skillAbility, Player player, int activationChance, double chance) {
- SecondaryAbilityWeightedActivationCheckEvent event = new SecondaryAbilityWeightedActivationCheckEvent(player, skillAbility, chance);
+ private static boolean performRandomSkillCheckStatic(SubSkill subSkill, Player player, int activationChance, double chance) {
+ SubSkillWeightedActivationCheckEvent event = new SubSkillWeightedActivationCheckEvent(player, subSkill, chance);
mcMMO.p.getServer().getPluginManager().callEvent(event);
return (event.getChance() * activationChance) > Misc.getRandom().nextInt(activationChance) && !event.isCancelled();
}
public static boolean treasureDropSuccessful(Player player, double dropChance, int activationChance) {
- SecondaryAbilityWeightedActivationCheckEvent event = new SecondaryAbilityWeightedActivationCheckEvent(player, SecondaryAbility.EXCAVATION_TREASURE_HUNTER, dropChance / activationChance);
+ SubSkillWeightedActivationCheckEvent event = new SubSkillWeightedActivationCheckEvent(player, SubSkill.EXCAVATION_TREASURE_HUNTER, dropChance / activationChance);
mcMMO.p.getServer().getPluginManager().callEvent(event);
return (event.getChance() * activationChance) > (Misc.getRandom().nextDouble() * activationChance) && !event.isCancelled();
}
private static boolean isLocalizedSkill(String skillName) {
- for (SkillType skill : SkillType.values()) {
+ for (PrimarySkill skill : PrimarySkill.values()) {
if (skillName.equalsIgnoreCase(LocaleLoader.getString(StringUtils.getCapitalized(skill.toString()) + ".SkillName"))) {
return true;
}
diff --git a/src/main/java/com/gmail/nossr50/util/skills/SecondarySkillActivationType.java b/src/main/java/com/gmail/nossr50/util/skills/SubSkillActivationType.java
similarity index 91%
rename from src/main/java/com/gmail/nossr50/util/skills/SecondarySkillActivationType.java
rename to src/main/java/com/gmail/nossr50/util/skills/SubSkillActivationType.java
index 3f933294e..93b6c5512 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/SecondarySkillActivationType.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/SubSkillActivationType.java
@@ -3,7 +3,7 @@ package com.gmail.nossr50.util.skills;
/**
* Defines the type of random calculations to use with a given skill
*/
-public enum SecondarySkillActivationType {
+public enum SubSkillActivationType {
RANDOM_LINEAR_100_SCALE_NO_CAP, //A skill level of 100 would guarantee the proc with this
RANDOM_LINEAR_100_SCALE_WITH_CAP, //This one is based on a scale of 1-100 but with a specified cap for max bonus
RANDOM_STATIC_CHANCE, //The skill always has a SPECIFIC chance to succeed
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index bf33107bc..b0e4aa1aa 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -8,6 +8,7 @@
# Settings for mcMMO in general
###
General:
+ Classic_Mode: false
Locale: en_US
MOTD_Enabled: true
# Send a message to the player when his profile was successfully loaded
diff --git a/src/main/resources/locale/locale_de.properties b/src/main/resources/locale/locale_de.properties
index 915f809a7..e9c84ec9f 100644
--- a/src/main/resources/locale/locale_de.properties
+++ b/src/main/resources/locale/locale_de.properties
@@ -4,7 +4,7 @@
# SkillName.SubType.LocalEffect.Increment
# Skill name, such as ACROBATICS, MINING.
# Sub-type, such as EFFECT, ABILITY, COMBAT.
-# Local Effect, local text for Skill Name; ROLL, IGNITIONTIME,GRACECHANCE.
+# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE.
# Increment, for multi-line or array-like lists.
# ######
#
diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties
index 785c1df37..e1cdd3846 100644
--- a/src/main/resources/locale/locale_en_US.properties
+++ b/src/main/resources/locale/locale_en_US.properties
@@ -4,7 +4,7 @@
# SkillName.SubType.LocalEffect.Increment
# Skill name, such as ACROBATICS, MINING.
# Sub-type, such as EFFECT, ABILITY, COMBAT.
-# Local Effect, local text for Skill Name; ROLL, IGNITIONTIME,GRACECHANCE.
+# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE.
# Increment, for multi-line or array-like lists.
# ######
#
diff --git a/src/main/resources/locale/locale_ko.properties b/src/main/resources/locale/locale_ko.properties
index 3e50df0c7..52c4b1969 100644
--- a/src/main/resources/locale/locale_ko.properties
+++ b/src/main/resources/locale/locale_ko.properties
@@ -4,7 +4,7 @@
# SkillName.SubType.LocalEffect.Increment
# Skill name, such as ACROBATICS, MINING.
# Sub-type, such as EFFECT, ABILITY, COMBAT.
-# Local Effect, local text for Skill Name; ROLL, IGNITIONTIME,GRACECHANCE.
+# Local Effect, local text for Skill Name; ACROBATICS_ROLL, IGNITIONTIME,GRACECHANCE.
# Increment, for multi-line or array-like lists.
# ######
#