mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-22 05:53:43 +02:00 
			
		
		
		
	XP Gains now report sources, added some config options regarding XP bars
Fixed some issues with Roll Fixes https://github.com/mcMMO-Dev/mcMMO/issues/3732
This commit is contained in:
		| @@ -7,6 +7,15 @@ Key: | |||||||
|   ! Change |   ! Change | ||||||
|   - Removal |   - 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 | Version 2.1.1 | ||||||
|     = Fixed an issue where excavation wasn't using the correct permission node |     = Fixed an issue where excavation wasn't using the correct permission node | ||||||
|     = Added protection against AFK fishing |     = Added protection against AFK fishing | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							| @@ -2,7 +2,7 @@ | |||||||
|     <modelVersion>4.0.0</modelVersion> |     <modelVersion>4.0.0</modelVersion> | ||||||
|     <groupId>com.gmail.nossr50.mcMMO</groupId> |     <groupId>com.gmail.nossr50.mcMMO</groupId> | ||||||
|     <artifactId>mcMMO</artifactId> |     <artifactId>mcMMO</artifactId> | ||||||
|     <version>2.1.1</version> |     <version>2.1.2-SNAPSHOT</version> | ||||||
|     <name>mcMMO</name> |     <name>mcMMO</name> | ||||||
|     <url>https://github.com/mcMMO-Dev/mcMMO</url> |     <url>https://github.com/mcMMO-Dev/mcMMO</url> | ||||||
|     <scm> |     <scm> | ||||||
|   | |||||||
| @@ -4,10 +4,11 @@ import com.gmail.nossr50.api.exceptions.*; | |||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.datatypes.experience.FormulaType; | 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.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.player.PlayerProfile; | import com.gmail.nossr50.datatypes.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.skills.child.FamilyTree; | import com.gmail.nossr50.skills.child.FamilyTree; | ||||||
| import com.gmail.nossr50.util.player.UserManager; | 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) { |     public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) { | ||||||
|         if (isUnshared) { |         if (isUnshared) { | ||||||
|             getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason)); |             getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); | ||||||
|             return; |             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 |      * @throws InvalidXPGainReasonException if the given xpGainReason is not valid | ||||||
|      */ |      */ | ||||||
|     public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) { |     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); |         PrimarySkillType skill = getSkillType(skillType); | ||||||
|  |  | ||||||
|         if (isUnshared) { |         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; |             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) { |     public static void addXP(Player player, String skillType, int XP, String xpGainReason, boolean isUnshared) { | ||||||
|         if (isUnshared) { |         if (isUnshared) { | ||||||
|             getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason)); |             getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason)); |         getPlayer(player).beginXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| package com.gmail.nossr50.commands.experience; | 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.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.util.EventUtils; | import com.gmail.nossr50.util.EventUtils; | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
|   | |||||||
| @@ -1,8 +1,9 @@ | |||||||
| package com.gmail.nossr50.commands.experience; | 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.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
| import com.gmail.nossr50.util.player.UserManager; | import com.gmail.nossr50.util.player.UserManager; | ||||||
| @@ -23,7 +24,7 @@ public class AddxpCommand extends ExperienceCommand { | |||||||
|     @Override |     @Override | ||||||
|     protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) { |     protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) { | ||||||
|         if (player != null) { |         if (player != null) { | ||||||
|             UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND); |             UserManager.getPlayer(player).applyXpGain(skill, value, XPGainReason.COMMAND, XPGainSource.COMMAND); | ||||||
|         } |         } | ||||||
|         else { |         else { | ||||||
|             profile.addXp(skill, value); |             profile.addXp(skill, value); | ||||||
|   | |||||||
| @@ -1,8 +1,8 @@ | |||||||
| package com.gmail.nossr50.commands.experience; | 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.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.util.EventUtils; | import com.gmail.nossr50.util.EventUtils; | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
|   | |||||||
| @@ -1,9 +1,9 @@ | |||||||
| package com.gmail.nossr50.commands.experience; | 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.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.player.PlayerProfile; | import com.gmail.nossr50.datatypes.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.util.EventUtils; | import com.gmail.nossr50.util.EventUtils; | ||||||
|   | |||||||
| @@ -6,7 +6,6 @@ import com.gmail.nossr50.datatypes.skills.subskills.AbstractSubSkill; | |||||||
| import com.gmail.nossr50.listeners.InteractionManager; | import com.gmail.nossr50.listeners.InteractionManager; | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
| import com.gmail.nossr50.util.StringUtils; |  | ||||||
| import com.gmail.nossr50.util.TextComponentFactory; | import com.gmail.nossr50.util.TextComponentFactory; | ||||||
| import com.google.common.collect.ImmutableList; | import com.google.common.collect.ImmutableList; | ||||||
| import org.bukkit.command.Command; | import org.bukkit.command.Command; | ||||||
|   | |||||||
| @@ -250,9 +250,20 @@ public class ExperienceConfig extends AutoUpdateConfigLoader { | |||||||
|     /* |     /* | ||||||
|      * Experience Bar Stuff |      * 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() |     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);} |     public boolean getAddExtraDetails() { return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false);} | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| package com.gmail.nossr50.datatypes.skills; | package com.gmail.nossr50.datatypes.experience; | ||||||
| 
 | 
 | ||||||
| public enum XPGainReason { | public enum XPGainReason { | ||||||
|     PVP, |     PVP, | ||||||
| @@ -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 | ||||||
|  | } | ||||||
| @@ -5,6 +5,8 @@ import com.gmail.nossr50.config.Config; | |||||||
| import com.gmail.nossr50.config.WorldBlacklist; | import com.gmail.nossr50.config.WorldBlacklist; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.datatypes.chat.ChatMode; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.mods.CustomTool; | import com.gmail.nossr50.datatypes.mods.CustomTool; | ||||||
| import com.gmail.nossr50.datatypes.party.Party; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | ||||||
| import com.gmail.nossr50.datatypes.skills.ToolType; | import com.gmail.nossr50.datatypes.skills.ToolType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.party.PartyManager; | import com.gmail.nossr50.party.PartyManager; | ||||||
| @@ -144,10 +145,17 @@ public class McMMOPlayer { | |||||||
|         experienceBarManager.hideExperienceBar(primarySkillType); |         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) |         //Updates from Party sources | ||||||
|             updateXPBar(primarySkillType, plugin); |         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) |     public void processUnlockNotifications(mcMMO plugin, PrimarySkillType primarySkillType, int skillLevel) | ||||||
| @@ -452,7 +460,7 @@ public class McMMOPlayer { | |||||||
|      * @param skill Skill being used |      * @param skill Skill being used | ||||||
|      * @param xp Experience amount to process |      * @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."); |         Validate.isTrue(xp >= 0.0, "XP gained should be greater than or equal to zero."); | ||||||
|  |  | ||||||
|         if (xp <= 0.0) { |         if (xp <= 0.0) { | ||||||
| @@ -465,7 +473,7 @@ public class McMMOPlayer { | |||||||
|  |  | ||||||
|             for (PrimarySkillType parentSkill : parentSkills) { |             for (PrimarySkillType parentSkill : parentSkills) { | ||||||
|                 if (parentSkill.getPermissions(player)) { |                 if (parentSkill.getPermissions(player)) { | ||||||
|                     beginXpGain(parentSkill, splitXp, xpGainReason); |                     beginXpGain(parentSkill, splitXp, xpGainReason, xpGainSource); | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |  | ||||||
| @@ -477,7 +485,7 @@ public class McMMOPlayer { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         beginUnsharedXpGain(skill, xp, xpGainReason); |         beginUnsharedXpGain(skill, xp, xpGainReason, xpGainSource); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -486,8 +494,8 @@ public class McMMOPlayer { | |||||||
|      * @param skill Skill being used |      * @param skill Skill being used | ||||||
|      * @param xp Experience amount to process |      * @param xp Experience amount to process | ||||||
|      */ |      */ | ||||||
|     public void beginUnsharedXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason) { |     public void beginUnsharedXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) { | ||||||
|         applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason); |         applyXpGain(skill, modifyXpGain(skill, xp), xpGainReason, xpGainSource); | ||||||
|  |  | ||||||
|         if (party == null) { |         if (party == null) { | ||||||
|             return; |             return; | ||||||
| @@ -504,7 +512,7 @@ public class McMMOPlayer { | |||||||
|      * @param primarySkillType Skill being used |      * @param primarySkillType Skill being used | ||||||
|      * @param xp Experience amount to add |      * @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)) { |         if (!primarySkillType.getPermissions(player)) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
| @@ -513,7 +521,7 @@ public class McMMOPlayer { | |||||||
|             Set<PrimarySkillType> parentSkills = FamilyTree.getParents(primarySkillType); |             Set<PrimarySkillType> parentSkills = FamilyTree.getParents(primarySkillType); | ||||||
|  |  | ||||||
|             for (PrimarySkillType parentSkill : parentSkills) { |             for (PrimarySkillType parentSkill : parentSkills) { | ||||||
|                 applyXpGain(parentSkill, xp / parentSkills.size(), xpGainReason); |                 applyXpGain(parentSkill, xp / parentSkills.size(), xpGainReason, xpGainSource); | ||||||
|             } |             } | ||||||
|  |  | ||||||
|             return; |             return; | ||||||
| @@ -524,7 +532,7 @@ public class McMMOPlayer { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         isUsingUnarmed = (primarySkillType == PrimarySkillType.UNARMED); |         isUsingUnarmed = (primarySkillType == PrimarySkillType.UNARMED); | ||||||
|         checkXp(primarySkillType, xpGainReason); |         checkXp(primarySkillType, xpGainReason, xpGainSource); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -532,9 +540,9 @@ public class McMMOPlayer { | |||||||
|      * |      * | ||||||
|      * @param primarySkillType The skill to check |      * @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)) { |         if (getSkillXpLevelRaw(primarySkillType) < getXpToLevel(primarySkillType)) { | ||||||
|             UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p); |             UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p, xpGainSource); | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -552,7 +560,7 @@ public class McMMOPlayer { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (!EventUtils.handleLevelChangeEvent(player, primarySkillType, levelsGained, xpRemoved, true, xpGainReason)) { |         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; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
| @@ -567,7 +575,7 @@ public class McMMOPlayer { | |||||||
|         NotificationManager.sendPlayerLevelUpNotification(UserManager.getPlayer(player), primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType)); |         NotificationManager.sendPlayerLevelUpNotification(UserManager.getPlayer(player), primarySkillType, levelsGained, profile.getSkillLevel(primarySkillType)); | ||||||
|  |  | ||||||
|         //UPDATE XP BARS |         //UPDATE XP BARS | ||||||
|         UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p); |         UserManager.getPlayer(player).processPostXpEvent(xpGainReason, primarySkillType, mcMMO.p, xpGainSource); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /* |     /* | ||||||
|   | |||||||
| @@ -4,15 +4,14 @@ import com.gmail.nossr50.config.AdvancedConfig; | |||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.datatypes.LimitedSizeList; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.player.PlayerProfile; | import com.gmail.nossr50.datatypes.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.util.EventUtils; | import com.gmail.nossr50.util.EventUtils; | ||||||
| import com.gmail.nossr50.util.Misc; |  | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
| import com.gmail.nossr50.util.player.NotificationManager; | import com.gmail.nossr50.util.player.NotificationManager; | ||||||
| import com.gmail.nossr50.util.player.UserManager; | import com.gmail.nossr50.util.player.UserManager; | ||||||
| @@ -282,7 +281,7 @@ public class Roll extends AcrobaticsSubSkill { | |||||||
|         } |         } | ||||||
|  |  | ||||||
|         if(fallLocationMap.get(player) == null) |         if(fallLocationMap.get(player) == null) | ||||||
|             fallLocationMap.put(player, new LimitedSizeList(100)); |             fallLocationMap.put(player, new LimitedSizeList(50)); | ||||||
|  |  | ||||||
|         LimitedSizeList fallLocations = fallLocationMap.get(player); |         LimitedSizeList fallLocations = fallLocationMap.get(player); | ||||||
|          |          | ||||||
| @@ -428,7 +427,7 @@ public class Roll extends AcrobaticsSubSkill { | |||||||
|     public void addFallLocation(Player player) |     public void addFallLocation(Player player) | ||||||
|     { |     { | ||||||
|         if(fallLocationMap.get(player) == null) |         if(fallLocationMap.get(player) == null) | ||||||
|             fallLocationMap.put(player, new LimitedSizeList(20)); |             fallLocationMap.put(player, new LimitedSizeList(50)); | ||||||
|  |  | ||||||
|         LimitedSizeList fallLocations = fallLocationMap.get(player); |         LimitedSizeList fallLocations = fallLocationMap.get(player); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.gmail.nossr50.events.experience; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.util.player.UserManager; | import com.gmail.nossr50.util.player.UserManager; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.event.Cancellable; | import org.bukkit.event.Cancellable; | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.gmail.nossr50.events.experience; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.gmail.nossr50.events.experience; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.event.HandlerList; | import org.bukkit.event.HandlerList; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.gmail.nossr50.events.experience; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.event.HandlerList; | import org.bukkit.event.HandlerList; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,7 +1,7 @@ | |||||||
| package com.gmail.nossr50.events.experience; | 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.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.event.HandlerList; | import org.bukkit.event.HandlerList; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ package com.gmail.nossr50.listeners; | |||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.HiddenConfig; | import com.gmail.nossr50.config.HiddenConfig; | ||||||
| import com.gmail.nossr50.config.WorldBlacklist; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | ||||||
|   | |||||||
| @@ -2,9 +2,9 @@ package com.gmail.nossr50.listeners; | |||||||
|  |  | ||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | 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.McMMOPlayerLevelUpEvent; | ||||||
| import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent; | import com.gmail.nossr50.events.experience.McMMOPlayerXpGainEvent; | ||||||
| import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent; | import com.gmail.nossr50.events.skills.abilities.McMMOPlayerAbilityActivateEvent; | ||||||
|   | |||||||
| @@ -2,12 +2,13 @@ package com.gmail.nossr50.party; | |||||||
|  |  | ||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.party.ItemWeightConfig; | 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.ItemShareType; | ||||||
| import com.gmail.nossr50.datatypes.party.Party; | import com.gmail.nossr50.datatypes.party.Party; | ||||||
| import com.gmail.nossr50.datatypes.party.ShareMode; | import com.gmail.nossr50.datatypes.party.ShareMode; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | 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.Misc; | ||||||
| import com.gmail.nossr50.util.player.UserManager; | import com.gmail.nossr50.util.player.UserManager; | ||||||
| import org.bukkit.entity.Item; | import org.bukkit.entity.Item; | ||||||
| @@ -47,7 +48,7 @@ public final class ShareHandler { | |||||||
|         float splitXp = (float) (xp / partySize * shareBonus); |         float splitXp = (float) (xp / partySize * shareBonus); | ||||||
|  |  | ||||||
|         for (Player member : nearMembers) { |         for (Player member : nearMembers) { | ||||||
|             UserManager.getPlayer(member).beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason); |             UserManager.getPlayer(member).beginUnsharedXpGain(primarySkillType, splitXp, xpGainReason, XPGainSource.PARTY_MEMBERS); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         return true; |         return true; | ||||||
|   | |||||||
| @@ -1,8 +1,9 @@ | |||||||
| package com.gmail.nossr50.runnables.skills; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import org.bukkit.entity.LivingEntity; | import org.bukkit.entity.LivingEntity; | ||||||
| import org.bukkit.scheduler.BukkitRunnable; | import org.bukkit.scheduler.BukkitRunnable; | ||||||
|  |  | ||||||
| @@ -38,6 +39,6 @@ public class AwardCombatXpTask extends BukkitRunnable { | |||||||
|             damage += health; |             damage += health; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason); |         mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason, XPGainSource.SELF); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -1,8 +1,9 @@ | |||||||
| package com.gmail.nossr50.skills; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.util.skills.PerksUtils; | import com.gmail.nossr50.util.skills.PerksUtils; | ||||||
| import org.bukkit.entity.Entity; | import org.bukkit.entity.Entity; | ||||||
| import org.bukkit.entity.LivingEntity; | import org.bukkit.entity.LivingEntity; | ||||||
| @@ -27,8 +28,25 @@ public abstract class SkillManager { | |||||||
|         return mcMMOPlayer.getSkillLevel(skill); |         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) { |     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) { |     public XPGainReason getXPGainReason(LivingEntity target, Entity damager) { | ||||||
|   | |||||||
| @@ -1,10 +1,10 @@ | |||||||
| package com.gmail.nossr50.skills.acrobatics; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
| import com.gmail.nossr50.util.Misc; | import com.gmail.nossr50.util.Misc; | ||||||
| import com.gmail.nossr50.util.Permissions; | import com.gmail.nossr50.util.Permissions; | ||||||
|   | |||||||
| @@ -2,10 +2,11 @@ package com.gmail.nossr50.skills.alchemy; | |||||||
|  |  | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.config.skills.alchemy.PotionConfig; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.datatypes.skills.alchemy.PotionStage; | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
| import com.gmail.nossr50.util.StringUtils; | import com.gmail.nossr50.util.StringUtils; | ||||||
| @@ -52,6 +53,6 @@ public class AlchemyManager extends SkillManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public void handlePotionBrewSuccesses(PotionStage potionStage, int amount) { |     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); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -1,10 +1,10 @@ | |||||||
| package com.gmail.nossr50.skills.excavation; | package com.gmail.nossr50.skills.excavation; | ||||||
|  |  | ||||||
| import com.gmail.nossr50.config.Config; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.datatypes.treasure.ExcavationTreasure; | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
| import com.gmail.nossr50.util.Misc; | 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.util.skills.SkillUtils; | ||||||
| import com.gmail.nossr50.worldguard.WorldGuardManager; | import com.gmail.nossr50.worldguard.WorldGuardManager; | ||||||
| import com.gmail.nossr50.worldguard.WorldGuardUtils; | import com.gmail.nossr50.worldguard.WorldGuardUtils; | ||||||
| import org.apache.commons.lang.math.RandomUtils; |  | ||||||
| import org.bukkit.Location; | import org.bukkit.Location; | ||||||
| import org.bukkit.block.BlockState; | import org.bukkit.block.BlockState; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
|   | |||||||
| @@ -4,11 +4,11 @@ import com.gmail.nossr50.config.AdvancedConfig; | |||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.config.treasure.TreasureConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.EnchantmentTreasure; | ||||||
| import com.gmail.nossr50.datatypes.treasure.FishingTreasure; | import com.gmail.nossr50.datatypes.treasure.FishingTreasure; | ||||||
| import com.gmail.nossr50.datatypes.treasure.Rarity; | import com.gmail.nossr50.datatypes.treasure.Rarity; | ||||||
|   | |||||||
| @@ -3,10 +3,14 @@ package com.gmail.nossr50.skills.herbalism; | |||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.config.treasure.TreasureConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.mods.CustomBlock; | import com.gmail.nossr50.datatypes.mods.CustomBlock; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | 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.datatypes.treasure.HylianTreasure; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask; | import com.gmail.nossr50.runnables.skills.HerbalismBlockUpdaterTask; | ||||||
|   | |||||||
| @@ -2,12 +2,12 @@ package com.gmail.nossr50.skills.mining; | |||||||
|  |  | ||||||
| import com.gmail.nossr50.config.AdvancedConfig; | import com.gmail.nossr50.config.AdvancedConfig; | ||||||
| import com.gmail.nossr50.config.Config; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.runnables.skills.AbilityCooldownTask; | import com.gmail.nossr50.runnables.skills.AbilityCooldownTask; | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
|   | |||||||
| @@ -3,11 +3,11 @@ package com.gmail.nossr50.skills.repair; | |||||||
| import com.gmail.nossr50.config.AdvancedConfig; | import com.gmail.nossr50.config.AdvancedConfig; | ||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
|   | |||||||
| @@ -1,10 +1,11 @@ | |||||||
| package com.gmail.nossr50.skills.smelting; | package com.gmail.nossr50.skills.smelting; | ||||||
|  |  | ||||||
| import com.gmail.nossr50.config.Config; | 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.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.events.skills.secondaryabilities.SubSkillRandomCheckEvent; | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| @@ -39,11 +40,15 @@ public class SmeltingManager extends SkillManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public boolean canUseFluxMining(BlockState blockState) { |     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() { |     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 |             // 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()); |             SkillUtils.handleDurabilityChange(getPlayer().getInventory().getItemInMainHand(), Config.getInstance().getAbilityToolDamage()); | ||||||
|  |  | ||||||
| @@ -133,7 +138,7 @@ public class SmeltingManager extends SkillManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public ItemStack smeltProcessing(ItemStack smelting, ItemStack result) { |     public ItemStack smeltProcessing(ItemStack smelting, ItemStack result) { | ||||||
|         applyXpGain(Smelting.getResourceXp(smelting), XPGainReason.PVE); |         applyXpGain(Smelting.getResourceXp(smelting), XPGainReason.PVE, XPGainSource.PASSIVE); | ||||||
|  |  | ||||||
|         if (isSecondSmeltSuccessful()) { |         if (isSecondSmeltSuccessful()) { | ||||||
|             ItemStack newResult = result.clone(); |             ItemStack newResult = result.clone(); | ||||||
|   | |||||||
| @@ -3,11 +3,11 @@ package com.gmail.nossr50.skills.taming; | |||||||
| import com.gmail.nossr50.config.AdvancedConfig; | import com.gmail.nossr50.config.AdvancedConfig; | ||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.fake.FakeEntityTameEvent; | ||||||
| import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillRandomCheckEvent; | import com.gmail.nossr50.events.skills.secondaryabilities.SubSkillRandomCheckEvent; | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
|   | |||||||
| @@ -1,12 +1,12 @@ | |||||||
| package com.gmail.nossr50.skills.woodcutting; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.mods.CustomBlock; | import com.gmail.nossr50.datatypes.mods.CustomBlock; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.skills.SkillManager; | import com.gmail.nossr50.skills.SkillManager; | ||||||
| import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod; | import com.gmail.nossr50.skills.woodcutting.Woodcutting.ExperienceGainMethod; | ||||||
|   | |||||||
| @@ -1,12 +1,13 @@ | |||||||
| package com.gmail.nossr50.util; | 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.party.Party; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.player.PlayerProfile; | import com.gmail.nossr50.datatypes.player.PlayerProfile; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | 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.datatypes.skills.subskills.AbstractSubSkill; | ||||||
| import com.gmail.nossr50.events.experience.McMMOPlayerLevelChangeEvent; | import com.gmail.nossr50.events.experience.McMMOPlayerLevelChangeEvent; | ||||||
| import com.gmail.nossr50.events.experience.McMMOPlayerLevelDownEvent; | import com.gmail.nossr50.events.experience.McMMOPlayerLevelDownEvent; | ||||||
| @@ -336,7 +337,7 @@ public class EventUtils { | |||||||
|                 int victimSkillLevel = victimProfile.getSkillLevel(primarySkillType); |                 int victimSkillLevel = victimProfile.getSkillLevel(primarySkillType); | ||||||
|  |  | ||||||
|                 killerPlayer.addLevels(primarySkillType, levelChangedKiller.get(skillName)); |                 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.modifySkill(primarySkillType, victimSkillLevel - levelChangedVictim.get(skillName)); | ||||||
|                 victimProfile.removeXp(primarySkillType, experienceChangedVictim.get(skillName)); |                 victimProfile.removeXp(primarySkillType, experienceChangedVictim.get(skillName)); | ||||||
|   | |||||||
| @@ -1,11 +1,11 @@ | |||||||
| package com.gmail.nossr50.util.skills; | package com.gmail.nossr50.util.skills; | ||||||
|  |  | ||||||
| import com.gmail.nossr50.config.experience.ExperienceConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | 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.FakeEntityDamageByEntityEvent; | ||||||
| import com.gmail.nossr50.events.fake.FakeEntityDamageEvent; | import com.gmail.nossr50.events.fake.FakeEntityDamageEvent; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
|   | |||||||
| @@ -3,12 +3,13 @@ package com.gmail.nossr50.util.skills; | |||||||
| import com.gmail.nossr50.config.AdvancedConfig; | import com.gmail.nossr50.config.AdvancedConfig; | ||||||
| import com.gmail.nossr50.config.Config; | import com.gmail.nossr50.config.Config; | ||||||
| import com.gmail.nossr50.config.HiddenConfig; | 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.interactions.NotificationType; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | import com.gmail.nossr50.datatypes.skills.PrimarySkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SubSkillType; | import com.gmail.nossr50.datatypes.skills.SubSkillType; | ||||||
| import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | import com.gmail.nossr50.datatypes.skills.SuperAbilityType; | ||||||
| import com.gmail.nossr50.datatypes.skills.XPGainReason; |  | ||||||
| import com.gmail.nossr50.locale.LocaleLoader; | import com.gmail.nossr50.locale.LocaleLoader; | ||||||
| import com.gmail.nossr50.mcMMO; | import com.gmail.nossr50.mcMMO; | ||||||
| import com.gmail.nossr50.util.ItemUtils; | import com.gmail.nossr50.util.ItemUtils; | ||||||
| @@ -34,7 +35,11 @@ import java.util.List; | |||||||
| public class SkillUtils { | public class SkillUtils { | ||||||
|  |  | ||||||
|     public static void applyXpGain(McMMOPlayer mcMMOPlayer, PrimarySkillType skill, float xp, XPGainReason xpGainReason) { |     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); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /* |     /* | ||||||
|   | |||||||
| @@ -25,6 +25,11 @@ | |||||||
| Experience_Bars: | Experience_Bars: | ||||||
|     # Turn this to false if you wanna disable XP bars |     # Turn this to false if you wanna disable XP bars | ||||||
|     Enable: true |     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! |     # 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! |     # I recommend leaving this off! | ||||||
|     ThisMayCauseLag: |     ThisMayCauseLag: | ||||||
| @@ -242,6 +247,12 @@ Experience: | |||||||
|         Stripped_Jungle_Log: 100 |         Stripped_Jungle_Log: 100 | ||||||
|         Stripped_Acacia_Log: 90 |         Stripped_Acacia_Log: 90 | ||||||
|         Stripped_Dark_Oak_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 |         Mycelium: 70 | ||||||
|         Red_Mushroom_Block: 70 |         Red_Mushroom_Block: 70 | ||||||
|         Brown_Mushroom_Block: 70 |         Brown_Mushroom_Block: 70 | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50