diff --git a/Changelog.txt b/Changelog.txt
index defd5527f..70a2c7fb9 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -7,6 +7,15 @@ Key:
! Change
- Removal
+Version 2.1.2
+ (Experience) Wood blocks now give XP and are affected by Tree Feller (6 sided bark blocks)
+ (API) Moved XPGainReason from skills to experience package
+ (API) Added XpGainSource for tracking sources of XP
+ (API) You can now specify XpGainSource when adding xp to players
+ (Config) The Extra Stats option for XP bars now overrides the setting for updating XP bars every time XP is gained
+ (Config) Added an option for Party XP gains to not update XP bars
+ (Config) Added an option for Passive XP gains to not update XP bars (smelting/brewing)
+
Version 2.1.1
= Fixed an issue where excavation wasn't using the correct permission node
= Added protection against AFK fishing
diff --git a/pom.xml b/pom.xml
index a65814ea2..5ce362bca 100755
--- a/pom.xml
+++ b/pom.xml
@@ -2,7 +2,7 @@
4.0.0
com.gmail.nossr50.mcMMO
mcMMO
- 2.1.1
+ 2.1.2-SNAPSHOT
mcMMO
https://github.com/mcMMO-Dev/mcMMO
diff --git a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
index e4c72911e..7eca726c1 100644
--- a/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
+++ b/src/main/java/com/gmail/nossr50/api/ExperienceAPI.java
@@ -4,10 +4,11 @@ import com.gmail.nossr50.api.exceptions.*;
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.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.child.FamilyTree;
import com.gmail.nossr50.util.player.UserManager;
@@ -102,11 +103,11 @@ public final class ExperienceAPI {
*/
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) {
if (isUnshared) {
- getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
+ getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
return;
}
- getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
+ getPlayer(player).applyXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
}
/**
@@ -188,7 +189,7 @@ public final class ExperienceAPI {
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
*/
public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
- getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
+ getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
}
/**
@@ -259,11 +260,11 @@ public final class ExperienceAPI {
PrimarySkillType skill = getSkillType(skillType);
if (isUnshared) {
- getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
+ getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
return;
}
- getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason));
+ getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * ExperienceConfig.getInstance().getExperienceGainsGlobalMultiplier()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
}
/**
@@ -337,11 +338,11 @@ public final class ExperienceAPI {
*/
public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) {
if (isUnshared) {
- getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
+ getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
return;
}
- getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason));
+ getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
}
/**
diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java
index a8f8a940d..22cc3e6f3 100644
--- a/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java
+++ b/src/main/java/com/gmail/nossr50/commands/experience/AddlevelsCommand.java
@@ -1,8 +1,8 @@
package com.gmail.nossr50.commands.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Permissions;
diff --git a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java
index df1659da3..f79c8b9ca 100644
--- a/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java
+++ b/src/main/java/com/gmail/nossr50/commands/experience/AddxpCommand.java
@@ -1,8 +1,9 @@
package com.gmail.nossr50.commands.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.player.UserManager;
@@ -23,7 +24,7 @@ public class AddxpCommand extends ExperienceCommand {
@Override
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
if (player != null) {
- UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND);
+ UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND, XPGainSource.COMMAND);
}
else {
profile.addXp(skill, value);
diff --git a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java
index 0b18ad2dc..d5d6de39a 100644
--- a/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java
+++ b/src/main/java/com/gmail/nossr50/commands/experience/MmoeditCommand.java
@@ -1,8 +1,8 @@
package com.gmail.nossr50.commands.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.EventUtils;
import com.gmail.nossr50.util.Permissions;
diff --git a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java
index d82e8b96d..16a28d720 100644
--- a/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java
+++ b/src/main/java/com/gmail/nossr50/commands/experience/SkillresetCommand.java
@@ -1,9 +1,9 @@
package com.gmail.nossr50.commands.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.EventUtils;
diff --git a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java
index 06c2647ea..95dc29458 100644
--- a/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java
+++ b/src/main/java/com/gmail/nossr50/commands/skills/MmoInfoCommand.java
@@ -6,7 +6,6 @@ import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
import com.gmail.nossr50.listeners.InteractionManager;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.Permissions;
-import com.gmail.nossr50.util.StringUtils;
import com.gmail.nossr50.util.TextComponentFactory;
import com.google.common.collect.ImmutableList;
import org.bukkit.command.Command;
diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java
index 82fb79458..d6811cfac 100644
--- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java
+++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java
@@ -250,9 +250,20 @@ public class ExperienceConfig extends AutoUpdateConfigLoader {
/*
* Experience Bar Stuff
*/
+
+ public boolean isPartyExperienceBarsEnabled()
+ {
+ return config.getBoolean("Experience_Bars.Update.Party", true);
+ }
+
+ public boolean isPassiveGainsExperienceBarsEnabled()
+ {
+ return config.getBoolean("Experience_Bars.Update.Passive", true);
+ }
+
public boolean getDoExperienceBarsAlwaysUpdateTitle()
{
- return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.Enable", false);
+ return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.Enable", false) || getAddExtraDetails();
}
public boolean getAddExtraDetails() { return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false);}
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/XPGainReason.java b/src/main/java/com/gmail/nossr50/datatypes/experience/XPGainReason.java
similarity index 88%
rename from src/main/java/com/gmail/nossr50/datatypes/skills/XPGainReason.java
rename to src/main/java/com/gmail/nossr50/datatypes/experience/XPGainReason.java
index 61d72d876..12557bf21 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/XPGainReason.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/experience/XPGainReason.java
@@ -1,4 +1,4 @@
-package com.gmail.nossr50.datatypes.skills;
+package com.gmail.nossr50.datatypes.experience;
public enum XPGainReason {
PVP,
diff --git a/src/main/java/com/gmail/nossr50/datatypes/experience/XPGainSource.java b/src/main/java/com/gmail/nossr50/datatypes/experience/XPGainSource.java
new file mode 100644
index 000000000..20a801a15
--- /dev/null
+++ b/src/main/java/com/gmail/nossr50/datatypes/experience/XPGainSource.java
@@ -0,0 +1,10 @@
+package com.gmail.nossr50.datatypes.experience;
+
+public enum XPGainSource {
+ SELF,
+ VAMPIRISM, //From Vampirism kills
+ PASSIVE, //Smelting, Brewing, etc...
+ PARTY_MEMBERS, //From other members of a party
+ COMMAND,
+ CUSTOM, //Outside Sources
+}
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 c5adea085..81626a715 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java
@@ -5,6 +5,8 @@ import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.WorldBlacklist;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.chat.ChatMode;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.mods.CustomTool;
import com.gmail.nossr50.datatypes.party.Party;
@@ -12,7 +14,6 @@ import com.gmail.nossr50.datatypes.party.PartyTeleportRecord;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
import com.gmail.nossr50.datatypes.skills.ToolType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.party.PartyManager;
@@ -144,10 +145,17 @@ public class McMMOPlayer {
experienceBarManager.hideExperienceBar(primarySkillType);
}*/
- public void processPostXpEvent(XPGainReason xpGainReason, PrimarySkillType primarySkillType, Plugin plugin)
+ public void processPostXpEvent(XPGainReason xpGainReason, PrimarySkillType primarySkillType, Plugin plugin, XPGainSource xpGainSource)
{
- if(xpGainReason != XPGainReason.SHARED_PVP && xpGainReason != XPGainReason.SHARED_PVE && xpGainReason != XPGainReason.VAMPIRISM)
- updateXPBar(primarySkillType, plugin);
+ //Updates from Party sources
+ if(xpGainSource == XPGainSource.PARTY_MEMBERS && !ExperienceConfig.getInstance().isPartyExperienceBarsEnabled())
+ return;
+
+ //Updates from passive sources (Alchemy, Smelting, etc...)
+ if(xpGainSource == XPGainSource.PASSIVE && !ExperienceConfig.getInstance().isPassiveGainsExperienceBarsEnabled())
+ return;
+
+ updateXPBar(primarySkillType, plugin);
}
public void processUnlockNotifications(mcMMO plugin, PrimarySkillType primarySkillType, int skillLevel)
@@ -452,7 +460,7 @@ public class McMMOPlayer {
* @param skill Skill being used
* @param xp Experience amount to process
*/
- public void beginXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason) {
+ public void beginXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
Validate.isTrue(xp >= 0.0, "XP gained should be greater than or equal to zero.");
if (xp <= 0.0) {
@@ -465,7 +473,7 @@ public class McMMOPlayer {
for (PrimarySkillType parentSkill : parentSkills) {
if (parentSkill.getPermissions(player)) {
- beginXpGain(parentSkill, splitXp, xpGainReason);
+ beginXpGain(parentSkill, splitXp, xpGainReason, xpGainSource);
}
}
@@ -477,7 +485,7 @@ public class McMMOPlayer {
return;
}
- beginUnsharedXpGain(skill, xp, xpGainReason);
+ beginUnsharedXpGain(skill, xp, xpGainReason, xpGainSource);
}
/**
@@ -486,8 +494,8 @@ public class McMMOPlayer {
* @param skill Skill being used
* @param xp Experience amount to process
*/
- public void beginUnsharedXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason) {
- applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason);
+ public void beginUnsharedXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
+ applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason, xpGainSource);
if (party == null) {
return;
@@ -504,7 +512,7 @@ public class McMMOPlayer {
* @param primarySkillType Skill being used
* @param xp Experience amount to add
*/
- public void applyXpGain(PrimarySkillType primarySkillType, float xp, XPGainReason xpGainReason) {
+ public void applyXpGain(PrimarySkillType primarySkillType, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
if (!primarySkillType.getPermissions(player)) {
return;
}
@@ -513,7 +521,7 @@ public class McMMOPlayer {
Set parentSkills = FamilyTree.getParents(primarySkillType);
for (PrimarySkillType parentSkill : parentSkills) {
- applyXpGain(parentSkill, xp / parentSkills.size(), xpGainReason);
+ applyXpGain(parentSkill, xp / parentSkills.size(), xpGainReason, xpGainSource);
}
return;
@@ -524,7 +532,7 @@ public class McMMOPlayer {
}
isUsingUnarmed = (primarySkillType == PrimarySkillType.UNARMED);
- checkXp(primarySkillType, xpGainReason);
+ checkXp(primarySkillType, xpGainReason, xpGainSource);
}
/**
@@ -532,9 +540,9 @@ public class McMMOPlayer {
*
* @param primarySkillType The skill to check
*/
- private void checkXp(PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
+ private void checkXp(PrimarySkillType primarySkillType, XPGainReason xpGainReason, XPGainSource xpGainSource) {
if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) {
- UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p);
+ UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p, xpGainSource);
return;
}
@@ -552,7 +560,7 @@ public class McMMOPlayer {
}
if (!EventUtils.handleLevelChangeEvent(player, primarySkillType, levelsGained, xpRemoved, true, xpGainReason)) {
- UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p);
+ UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p, xpGainSource);
return;
}
@@ -567,7 +575,7 @@ public class McMMOPlayer {
NotificationManager.sendPlayerLevelUpNotification(UserManager.getPlayer(player), primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType));
//UPDATE XP BARS
- UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p);
+ UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p, xpGainSource);
}
/*
diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java b/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java
index a9fdded8a..0355c8821 100644
--- a/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java
+++ b/src/main/java/com/gmail/nossr50/datatypes/skills/subskills/acrobatics/Roll.java
@@ -4,15 +4,14 @@ import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.LimitedSizeList;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.player.PlayerProfile;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.EventUtils;
-import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
import com.gmail.nossr50.util.player.NotificationManager;
import com.gmail.nossr50.util.player.UserManager;
@@ -282,7 +281,7 @@ public class Roll extends AcrobaticsSubSkill {
}
if(fallLocationMap.get(player) == null)
- fallLocationMap.put(player, new LimitedSizeList(100));
+ fallLocationMap.put(player, new LimitedSizeList(50));
LimitedSizeList fallLocations = fallLocationMap.get(player);
@@ -428,7 +427,7 @@ public class Roll extends AcrobaticsSubSkill {
public void addFallLocation(Player player)
{
if(fallLocationMap.get(player) == null)
- fallLocationMap.put(player, new LimitedSizeList(20));
+ fallLocationMap.put(player, new LimitedSizeList(50));
LimitedSizeList fallLocations = fallLocationMap.get(player);
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 de37a6778..78592b03b 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerExperienceEvent.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.player.UserManager;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
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 058225782..bf23d4443 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelChangeEvent.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.Player;
/**
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 cb0f28911..3834726f8 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelDownEvent.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
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 aaa2d7fed..062dd4a2a 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerLevelUpEvent.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
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 3127821d9..d789fde70 100644
--- a/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
+++ b/src/main/java/com/gmail/nossr50/events/experience/McMMOPlayerXpGainEvent.java
@@ -1,7 +1,7 @@
package com.gmail.nossr50.events.experience;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.Player;
import org.bukkit.event.HandlerList;
diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
index 3ea0fdf98..aeb3fa28a 100644
--- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java
@@ -3,7 +3,6 @@ package com.gmail.nossr50.listeners;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.HiddenConfig;
import com.gmail.nossr50.config.WorldBlacklist;
-import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
diff --git a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java b/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
index 3c3268d07..433263300 100644
--- a/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
+++ b/src/main/java/com/gmail/nossr50/listeners/SelfListener.java
@@ -2,9 +2,9 @@ package com.gmail.nossr50.listeners;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelUpEvent;
import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent;
import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent;
diff --git a/src/main/java/com/gmail/nossr50/party/ShareHandler.java b/src/main/java/com/gmail/nossr50/party/ShareHandler.java
index 8416c3129..0cdafff8f 100644
--- a/src/main/java/com/gmail/nossr50/party/ShareHandler.java
+++ b/src/main/java/com/gmail/nossr50/party/ShareHandler.java
@@ -2,12 +2,13 @@ package com.gmail.nossr50.party;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.party.ItemWeightConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
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.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.player.UserManager;
import org.bukkit.entity.Item;
@@ -47,7 +48,7 @@ public final class ShareHandler {
float splitXp = (float) (xp / partySize * shareBonus);
for (Player member : nearMembers) {
- UserManager.getPlayer(member).beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason);
+ UserManager.getPlayer(member).beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason, XPGainSource.PARTY_MEMBERS);
}
return true;
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 0dfafc593..d7aee1718 100644
--- a/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java
+++ b/src/main/java/com/gmail/nossr50/runnables/skills/AwardCombatXpTask.java
@@ -1,8 +1,9 @@
package com.gmail.nossr50.runnables.skills;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import org.bukkit.entity.LivingEntity;
import org.bukkit.scheduler.BukkitRunnable;
@@ -38,6 +39,6 @@ public class AwardCombatXpTask extends BukkitRunnable {
damage += health;
}
- mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason);
+ mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason, XPGainSource.SELF);
}
}
diff --git a/src/main/java/com/gmail/nossr50/skills/SkillManager.java b/src/main/java/com/gmail/nossr50/skills/SkillManager.java
index 0201c9ad8..28d307230 100644
--- a/src/main/java/com/gmail/nossr50/skills/SkillManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/SkillManager.java
@@ -1,8 +1,9 @@
package com.gmail.nossr50.skills;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.util.skills.PerksUtils;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
@@ -27,8 +28,25 @@ public abstract class SkillManager {
return mcMMOPlayer.getSkillLevel(skill);
}
+ /**
+ * Applies XP to a player, provides SELF as an XpGainSource source
+ * @param xp amount of XP to apply
+ * @param xpGainReason the reason for the XP gain
+ * @deprecated use applyXpGain(float, XPGainReason, XPGainSource)
+ */
+ @Deprecated
public void applyXpGain(float xp, XPGainReason xpGainReason) {
- mcMMOPlayer.beginXpGain(skill, xp, xpGainReason);
+ mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, XPGainSource.SELF);
+ }
+
+ /**
+ * Applies XP to a player
+ * @param xp amount of XP to apply
+ * @param xpGainReason the reason for the XP gain
+ * @param xpGainSource the source of the XP
+ */
+ public void applyXpGain(float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
+ mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, xpGainSource);
}
public XPGainReason getXPGainReason(LivingEntity target, Entity damager) {
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 3f3299fa4..49bf29a09 100644
--- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java
@@ -1,10 +1,10 @@
package com.gmail.nossr50.skills.acrobatics;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.Misc;
import com.gmail.nossr50.util.Permissions;
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 49ea47db2..01c8e7665 100644
--- a/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java
@@ -2,10 +2,11 @@ package com.gmail.nossr50.skills.alchemy;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.config.skills.alchemy.PotionConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.skills.alchemy.PotionStage;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.StringUtils;
@@ -52,6 +53,6 @@ public class AlchemyManager extends SkillManager {
}
public void handlePotionBrewSuccesses(PotionStage potionStage, int amount) {
- applyXpGain((float) (ExperienceConfig.getInstance().getPotionXP(potionStage) * amount), XPGainReason.PVE);
+ applyXpGain((float) (ExperienceConfig.getInstance().getPotionXP(potionStage) * amount), XPGainReason.PVE, XPGainSource.PASSIVE);
}
}
\ No newline at end of file
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 77cfca207..40f3bfebc 100644
--- a/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java
@@ -1,10 +1,10 @@
package com.gmail.nossr50.skills.excavation;
import com.gmail.nossr50.config.Config;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.util.Misc;
@@ -13,7 +13,6 @@ import com.gmail.nossr50.util.random.RandomChanceUtil;
import com.gmail.nossr50.util.skills.SkillUtils;
import com.gmail.nossr50.worldguard.WorldGuardManager;
import com.gmail.nossr50.worldguard.WorldGuardUtils;
-import org.apache.commons.lang.math.RandomUtils;
import org.bukkit.Location;
import org.bukkit.block.BlockState;
import org.bukkit.entity.Player;
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 d252d8a6c..4b1790d8b 100644
--- a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.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.config.treasure.TreasureConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.treasure.EnchantmentTreasure;
import com.gmail.nossr50.datatypes.treasure.FishingTreasure;
import com.gmail.nossr50.datatypes.treasure.Rarity;
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 4bdb9f4c1..3e60581d5 100644
--- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java
@@ -3,10 +3,14 @@ package com.gmail.nossr50.skills.herbalism;
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.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.mods.CustomBlock;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
-import com.gmail.nossr50.datatypes.skills.*;
+import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
+import com.gmail.nossr50.datatypes.skills.SubSkillType;
+import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
+import com.gmail.nossr50.datatypes.skills.ToolType;
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask;
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 288923412..69ceac9a9 100644
--- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java
@@ -2,12 +2,12 @@ package com.gmail.nossr50.skills.mining;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.runnables.skills.AbilityCooldownTask;
import com.gmail.nossr50.skills.SkillManager;
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 b09b7442e..eebe0cd9c 100644
--- a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java
@@ -3,11 +3,11 @@ package com.gmail.nossr50.skills.repair;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.SkillManager;
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 a1743f6d1..146b67e9f 100644
--- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java
@@ -1,10 +1,11 @@
package com.gmail.nossr50.skills.smelting;
import com.gmail.nossr50.config.Config;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillRandomCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
@@ -39,11 +40,15 @@ public class SmeltingManager extends SkillManager {
}
public boolean canUseFluxMining(BlockState blockState) {
- return getSkillLevel() >= Smelting.fluxMiningUnlockLevel && BlockUtils.affectedByFluxMining(blockState) && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SMELTING_FLUX_MINING) && !mcMMO.getPlaceStore().isTrue(blockState);
+ return getSkillLevel() >= Smelting.fluxMiningUnlockLevel
+ && BlockUtils.affectedByFluxMining(blockState)
+ && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SMELTING_FLUX_MINING)
+ && !mcMMO.getPlaceStore().isTrue(blockState);
}
public boolean isSecondSmeltSuccessful() {
- return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SMELTING_SECOND_SMELT) && RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.SMELTING_SECOND_SMELT, getPlayer());
+ return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.SMELTING_SECOND_SMELT)
+ && RandomChanceUtil.isActivationSuccessful(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, SubSkillType.SMELTING_SECOND_SMELT, getPlayer());
}
/**
@@ -82,7 +87,7 @@ public class SmeltingManager extends SkillManager {
}
// We need to distribute Mining XP here, because the block break event gets cancelled
- applyXpGain(Mining.getBlockXp(blockState), XPGainReason.PVE);
+ applyXpGain(Mining.getBlockXp(blockState), XPGainReason.PVE, XPGainSource.PASSIVE);
SkillUtils.handleDurabilityChange(getPlayer().getInventory().getItemInMainHand(), Config.getInstance().getAbilityToolDamage());
@@ -133,7 +138,7 @@ public class SmeltingManager extends SkillManager {
}
public ItemStack smeltProcessing(ItemStack smelting, ItemStack result) {
- applyXpGain(Smelting.getResourceXp(smelting), XPGainReason.PVE);
+ applyXpGain(Smelting.getResourceXp(smelting), XPGainReason.PVE, XPGainSource.PASSIVE);
if (isSecondSmeltSuccessful()) {
ItemStack newResult = result.clone();
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 a70fa223a..ba93fe39c 100644
--- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java
@@ -3,11 +3,11 @@ package com.gmail.nossr50.skills.taming;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.experience.ExperienceConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.fake.FakeEntityTameEvent;
import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillRandomCheckEvent;
import com.gmail.nossr50.locale.LocaleLoader;
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 5393b3df5..886f62cfc 100644
--- a/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java
+++ b/src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java
@@ -1,12 +1,12 @@
package com.gmail.nossr50.skills.woodcutting;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.mods.CustomBlock;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.skills.SkillManager;
import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod;
diff --git a/src/main/java/com/gmail/nossr50/util/EventUtils.java b/src/main/java/com/gmail/nossr50/util/EventUtils.java
index 512cecd55..e807e01c2 100644
--- a/src/main/java/com/gmail/nossr50/util/EventUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/EventUtils.java
@@ -1,12 +1,13 @@
package com.gmail.nossr50.util;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
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.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelChangeEvent;
import com.gmail.nossr50.events.experience.McMMOPlayerLevelDownEvent;
@@ -336,7 +337,7 @@ public class EventUtils {
int victimSkillLevel = victimProfile.getSkillLevel(primarySkillType);
killerPlayer.addLevels(primarySkillType, levelChangedKiller.get(skillName));
- killerPlayer.beginUnsharedXpGain(primarySkillType, experienceChangedKiller.get(skillName), XPGainReason.VAMPIRISM);
+ killerPlayer.beginUnsharedXpGain(primarySkillType, experienceChangedKiller.get(skillName), XPGainReason.VAMPIRISM, XPGainSource.VAMPIRISM);
victimProfile.modifySkill(primarySkillType, victimSkillLevel - levelChangedVictim.get(skillName));
victimProfile.removeXp(primarySkillType, experienceChangedVictim.get(skillName));
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 7241e8d99..471045496 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java
@@ -1,11 +1,11 @@
package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.config.experience.ExperienceConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.events.fake.FakeEntityDamageByEntityEvent;
import com.gmail.nossr50.events.fake.FakeEntityDamageEvent;
import com.gmail.nossr50.mcMMO;
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 b4144b792..ae1d75474 100644
--- a/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
+++ b/src/main/java/com/gmail/nossr50/util/skills/SkillUtils.java
@@ -3,12 +3,13 @@ package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.config.AdvancedConfig;
import com.gmail.nossr50.config.Config;
import com.gmail.nossr50.config.HiddenConfig;
+import com.gmail.nossr50.datatypes.experience.XPGainReason;
+import com.gmail.nossr50.datatypes.experience.XPGainSource;
import com.gmail.nossr50.datatypes.interactions.NotificationType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.datatypes.skills.SubSkillType;
import com.gmail.nossr50.datatypes.skills.SuperAbilityType;
-import com.gmail.nossr50.datatypes.skills.XPGainReason;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.ItemUtils;
@@ -34,7 +35,11 @@ import java.util.List;
public class SkillUtils {
public static void applyXpGain(McMMOPlayer mcMMOPlayer, PrimarySkillType skill, float xp, XPGainReason xpGainReason) {
- mcMMOPlayer.beginXpGain(skill, xp, xpGainReason);
+ mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, XPGainSource.SELF);
+ }
+
+ public static void applyXpGain(McMMOPlayer mcMMOPlayer, PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
+ mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, xpGainSource);
}
/*
diff --git a/src/main/resources/experience.yml b/src/main/resources/experience.yml
index ff8336463..c197f40e6 100644
--- a/src/main/resources/experience.yml
+++ b/src/main/resources/experience.yml
@@ -25,6 +25,11 @@
Experience_Bars:
# Turn this to false if you wanna disable XP bars
Enable: true
+ Update:
+ # XP that you gained from your party but not yourself
+ Party: true
+ # Passive is stuff like smelting, brewing
+ Passive: true
# If you want to use a fancy edited title from the locale, then you'll probably want to turn this on, but it will make your server do a lot more work!
# I recommend leaving this off!
ThisMayCauseLag:
@@ -242,6 +247,12 @@ Experience:
Stripped_Jungle_Log: 100
Stripped_Acacia_Log: 90
Stripped_Dark_Oak_Log: 90
+ Oak_Wood: 70
+ Spruce_Wood: 70
+ Birch_Wood: 70
+ Jungle_Wood: 70
+ Acacia_Wood: 70
+ Dark_Oak_Wood: 70
Mycelium: 70
Red_Mushroom_Block: 70
Brown_Mushroom_Block: 70
diff --git a/src/main/resources/locale/locale_ja_JP.properties b/src/main/resources/locale/locale_ja_JP.properties
index c01d981a9..aeb9a4c41 100644
Binary files a/src/main/resources/locale/locale_ja_JP.properties and b/src/main/resources/locale/locale_ja_JP.properties differ