mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-31 17:23:42 +01:00 
			
		
		
		
	2.1.212 - Fixed herbalism exploit and added damage limit for XP
calculations used in combat
This commit is contained in:
		| @@ -1,3 +1,10 @@ | |||||||
|  | Version 2.1.212 | ||||||
|  |     An herbalism exploit has been patched (thanks WhatsTheBadNews) | ||||||
|  |     Added 'ExploitFix.Combat.XPCeiling.Enabled' to experience.yml | ||||||
|  |     Added 'ExploitFix.Combat.XPCeiling.Damage_Limit' to experience.yml | ||||||
|  |     Single instances of combat damage above 100 give are capped to give the same reward as 100 by default (100 is a lot, but you can change this in settings) | ||||||
|  |  | ||||||
|  |     NOTES: The damage ceiling won't affect server that don't have mobs running around with abnormally high health, if your server does you'll want to adjust this limit or disable it. | ||||||
| Version 2.1.211 | Version 2.1.211 | ||||||
|     Added /mmodebug info for players hitting other players |     Added /mmodebug info for players hitting other players | ||||||
|     Fixed Immortal Player bug |     Fixed Immortal Player bug | ||||||
|   | |||||||
							
								
								
									
										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.211</version> |     <version>2.1.212</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> | ||||||
|   | |||||||
| @@ -25,6 +25,12 @@ public class ExperienceConfig extends BukkitConfig { | |||||||
|         validate(); |         validate(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public void initDefaults() { | ||||||
|  |        config.addDefault("ExploitFix.Combat.XPCeiling.Enabled", true); | ||||||
|  |        config.addDefault("ExploitFix.Combat.XPCeiling.Damage_Limit", 100); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public static ExperienceConfig getInstance() { |     public static ExperienceConfig getInstance() { | ||||||
|         if (instance == null) { |         if (instance == null) { | ||||||
|             instance = new ExperienceConfig(); |             instance = new ExperienceConfig(); | ||||||
| @@ -423,6 +429,13 @@ public class ExperienceConfig extends BukkitConfig { | |||||||
|     public boolean getAddExtraDetails() { |     public boolean getAddExtraDetails() { | ||||||
|         return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false); |         return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained.ExtraDetails", false); | ||||||
|     } |     } | ||||||
|  |     public boolean useCombatHPCeiling() { | ||||||
|  |         return config.getBoolean("ExploitFix.Combat.XPCeiling.Enabled", true); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public int getCombatHPCeiling() { | ||||||
|  |         return config.getInt("ExploitFix.Combat.XPCeiling.HP_Modifier_Limit", 100); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public boolean isExperienceBarsEnabled() { |     public boolean isExperienceBarsEnabled() { | ||||||
|         return config.getBoolean("Experience_Bars.Enable", true); |         return config.getBoolean("Experience_Bars.Enable", true); | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| package com.gmail.nossr50.runnables.skills; | package com.gmail.nossr50.runnables.skills; | ||||||
|  |  | ||||||
|  | import com.gmail.nossr50.config.AdvancedConfig; | ||||||
|  | import com.gmail.nossr50.config.experience.ExperienceConfig; | ||||||
| import com.gmail.nossr50.datatypes.experience.XPGainReason; | import com.gmail.nossr50.datatypes.experience.XPGainReason; | ||||||
| import com.gmail.nossr50.datatypes.experience.XPGainSource; | import com.gmail.nossr50.datatypes.experience.XPGainSource; | ||||||
| import com.gmail.nossr50.datatypes.player.McMMOPlayer; | import com.gmail.nossr50.datatypes.player.McMMOPlayer; | ||||||
| @@ -39,6 +41,10 @@ public class AwardCombatXpTask extends BukkitRunnable { | |||||||
|             damage += health; |             damage += health; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         if(ExperienceConfig.getInstance().useCombatHPCeiling()) { | ||||||
|  |             damage = Math.min(damage, ExperienceConfig.getInstance().getCombatHPCeiling()); | ||||||
|  |         } | ||||||
|  |  | ||||||
|         mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason, XPGainSource.SELF); |         mcMMOPlayer.beginXpGain(primarySkillType, (int) (damage * baseXp), xpGainReason, XPGainSource.SELF); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -732,7 +732,10 @@ public final class CombatUtils { | |||||||
|      * @param primarySkillType The skill being used |      * @param primarySkillType The skill being used | ||||||
|      * @param multiplier final XP result will be multiplied by this |      * @param multiplier final XP result will be multiplied by this | ||||||
|      */ |      */ | ||||||
|     public static void processCombatXP(@NotNull McMMOPlayer mcMMOPlayer, @NotNull LivingEntity target, @NotNull PrimarySkillType primarySkillType, double multiplier) { |     public static void processCombatXP(@NotNull McMMOPlayer mcMMOPlayer, | ||||||
|  |                                        @NotNull LivingEntity target, | ||||||
|  |                                        @NotNull PrimarySkillType primarySkillType, | ||||||
|  |                                        double multiplier) { | ||||||
|         double baseXP = 0; |         double baseXP = 0; | ||||||
|         XPGainReason xpGainReason; |         XPGainReason xpGainReason; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -25,6 +25,10 @@ | |||||||
| EarlyGameBoost: | EarlyGameBoost: | ||||||
|     Enabled: true |     Enabled: true | ||||||
| ExploitFix: | ExploitFix: | ||||||
|  |     Combat: | ||||||
|  |         XPCeiling: | ||||||
|  |             Enabled: true | ||||||
|  |             Damage_Limit: 100 | ||||||
|     COTWBreeding: true |     COTWBreeding: true | ||||||
|     UnsafeEnchantments: false |     UnsafeEnchantments: false | ||||||
|     # Prevent many exploits related to fishing |     # Prevent many exploits related to fishing | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50