diff --git a/Changelog.txt b/Changelog.txt
index 409e18bb1..809115689 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,3 +1,11 @@
+Version 2.2.035
+ Swords subskill Stab is now configurable in advanced.yml
+ Added 'Skills.Swords.Stab.Base_Damage' to advanced.yml
+ Added 'Skills.Swords.Stab.Per_Rank_Multiplier' to advanced.yml
+
+ NOTES:
+ The new config settings will be added automatically to advanced.yml
+
Version 2.2.034
Fixed bug where mcMMO would drop items in such a way that they get stuck in an adjacent block and float to the surface
Fixed a rare edge case where null entities during chunk unload would cause a NullPointerException and potentially lead to server instability
diff --git a/pom.xml b/pom.xml
index 3a5ec0a23..1bb6ebbf1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
com.gmail.nossr50.mcMMO
mcMMO
- 2.2.034
+ 2.2.035-SNAPSHOT
mcMMO
https://github.com/mcMMO-Dev/mcMMO
diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java
index 607e86b2c..414f0331a 100644
--- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java
+++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java
@@ -575,35 +575,6 @@ public class AdvancedConfig extends BukkitConfig {
return ChatColor.WHITE;
}
- /*public boolean isJSONStatHoverElementBold(StatType statType, boolean isPrefix) {
- String keyAddress = isPrefix ? "Prefix" : "Value";
- String keyLocation = "Style.JSON.Hover.Details." + StringUtils.getCapitalized(statType.toString()) +"."+keyAddress+".Bold";
- return config.getBoolean(keyLocation);
- }
-
- public boolean isJSONStatHoverElementItalic(StatType statType, boolean isPrefix) {
- String keyAddress = isPrefix ? "Prefix" : "Value";
- String keyLocation = "Style.JSON.Hover.Details." + StringUtils.getCapitalized(statType.toString()) +"."+keyAddress+".Italics";
- return config.getBoolean(keyLocation);
- }
-
- public boolean isJSONStatHoverElementUnderlined(StatType statType, boolean isPrefix) {
- String keyAddress = isPrefix ? "Prefix" : "Value";
- String keyLocation = "Style.JSON.Hover.Details." + StringUtils.getCapitalized(statType.toString()) +"."+keyAddress+".Underline";
- return config.getBoolean(keyLocation);
- }*/
-
- /**
- * Some SubSkills have the ability to retain classic functionality
- *
- * @param subSkillType SubSkillType with classic functionality
- *
- * @return true if the subskill is in classic mode
- */
- public boolean isSubSkillClassic(SubSkillType subSkillType) {
- return config.getBoolean(subSkillType.getAdvConfigAddress() + ".Classic");
- }
-
/* ACROBATICS */
public double getDodgeDamageModifier() {
return config.getDouble("Skills.Acrobatics.Dodge.DamageModifier", 2.0D);
@@ -851,6 +822,14 @@ public class AdvancedConfig extends BukkitConfig {
}
/* SWORDS */
+ public double getStabBaseDamage() {
+ return config.getDouble("Skills.Swords.Stab.Base_Damage", 1.0D);
+ }
+
+ public double getStabPerRankMultiplier() {
+ return config.getDouble("Skills.Swords.Stab.Per_Rank_Multiplier", 1.5D);
+ }
+
public double getRuptureTickDamage(boolean isTargetPlayer, int rank) {
String root = "Skills.Swords.Rupture.Rupture_Mechanics.Tick_Interval_Damage.Against_";
String targetType = isTargetPlayer ? "Players" : "Mobs";
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 35fea05a2..3fdf83352 100644
--- a/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java
@@ -90,17 +90,13 @@ public class SwordsManager extends SkillManager {
}
}
- RuptureTask ruptureTask = new RuptureTask(mmoPlayer, target,
+ final RuptureTask ruptureTask = new RuptureTask(mmoPlayer, target,
mcMMO.p.getAdvancedConfig().getRuptureTickDamage(target instanceof Player, getRuptureRank()));
- RuptureTaskMeta ruptureTaskMeta = new RuptureTaskMeta(mcMMO.p, ruptureTask);
+ final RuptureTaskMeta ruptureTaskMeta = new RuptureTaskMeta(mcMMO.p, ruptureTask);
mcMMO.p.getFoliaLib().getScheduler().runAtEntityTimer(target, ruptureTask, 1, 1);
target.setMetadata(MetadataConstants.METADATA_KEY_RUPTURE, ruptureTaskMeta);
-
-// if (mmoPlayer.useChatNotifications()) {
-// NotificationManager.sendPlayerInformation(getPlayer(), NotificationType.SUBSKILL_MESSAGE, "Swords.Combat.Bleeding");
-// }
}
}
@@ -112,25 +108,14 @@ public class SwordsManager extends SkillManager {
int rank = RankUtils.getRank(getPlayer(), SubSkillType.SWORDS_STAB);
if (rank > 0) {
- return (1.0D + (rank * 1.5));
+ double baseDamage = mcMMO.p.getAdvancedConfig().getStabBaseDamage();
+ double rankMultiplier = mcMMO.p.getAdvancedConfig().getStabPerRankMultiplier();
+ return (baseDamage + (rank * rankMultiplier));
}
return 0;
}
- public int getToolTier(@NotNull ItemStack itemStack) {
- if (ItemUtils.isNetheriteTool(itemStack))
- return 5;
- if (ItemUtils.isDiamondTool(itemStack))
- return 4;
- else if (ItemUtils.isIronTool(itemStack) || ItemUtils.isGoldTool(itemStack))
- return 3;
- else if (ItemUtils.isStoneTool(itemStack))
- return 2;
- else
- return 1;
- }
-
/**
* Handle the effects of the Counter Attack ability
*
@@ -138,7 +123,6 @@ public class SwordsManager extends SkillManager {
* @param damage The amount of damage initially dealt by the event
*/
public void counterAttackChecks(@NotNull LivingEntity attacker, double damage) {
-
if (ProbabilityUtil.isSkillRNGSuccessful(SubSkillType.SWORDS_COUNTER_ATTACK, mmoPlayer)) {
CombatUtils.dealDamage(attacker, damage / Swords.counterAttackModifier, getPlayer());
diff --git a/src/main/resources/advanced.yml b/src/main/resources/advanced.yml
index 0d34aa670..4e876fa76 100644
--- a/src/main/resources/advanced.yml
+++ b/src/main/resources/advanced.yml
@@ -473,6 +473,9 @@ Skills:
# Settings for Swords
###
Swords:
+ Stab:
+ Base_Damage: 1.0
+ Per_Rank_Multiplier: 1.5
Rupture:
Rupture_Mechanics:
# This is % chance, 15 would mean 15% percent of the time
diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties
index a349a44f0..833fe3c94 100644
--- a/src/main/resources/locale/locale_en_US.properties
+++ b/src/main/resources/locale/locale_en_US.properties
@@ -919,7 +919,7 @@ Commands.XPGain=&8XP GAIN: &f{0}
Commands.xplock.locked=&6Your XP BAR is now locked to {0}!
Commands.xplock.unlocked=&6Your XP BAR is now &aUNLOCKED&6!
Commands.xprate.modified=&cThe XP RATE was modified to {0}
-Commands.xprate.over=&cmcMMO XP Rate Event is OVER!!
+Commands.xprate.over=&cmcMMO XP Rate Event is OVER!!
Commands.xprate.proper.0=&cProper usage to change the XP rate is /xprate
Commands.xprate.proper.1=&cProper usage to restore the XP rate to default is /xprate reset
Commands.xprate.proper.2=&cPlease specify true or false to indicate if this is an xp event or not