mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-31 01:03:44 +01:00 
			
		
		
		
	Unarmed no longer uses a serverwide cooldown for all players for bonus
damage
This commit is contained in:
		| @@ -1,5 +1,6 @@ | |||||||
| Version 2.1.91 | Version 2.1.91 | ||||||
|     mcMMO is now more compatible with plugins that spawn arrows in unexpected ways, this fixes some NPE in mcMMO when using certain plugins |     mcMMO is now more compatible with plugins that spawn arrows in unexpected ways, this fixes some NPE in mcMMO when using certain plugins | ||||||
|  |     Fixed a bug where Unarmed was using the same CD timer for every player in the server (thanks slop_me) | ||||||
|  |  | ||||||
| Version 2.1.90 | Version 2.1.90 | ||||||
|     Salvaged items now travel much slower towards the player |     Salvaged items now travel much slower towards the player | ||||||
|   | |||||||
							
								
								
									
										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.91-SNAPSHOT</version> |     <version>2.1.91</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> | ||||||
|   | |||||||
| @@ -10,8 +10,6 @@ import org.bukkit.inventory.ItemStack; | |||||||
| public class Unarmed { | public class Unarmed { | ||||||
|     public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked(); |     public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked(); | ||||||
|     public static double berserkDamageModifier = 1.5; |     public static double berserkDamageModifier = 1.5; | ||||||
|     public static long lastAttacked = 0; |  | ||||||
|     public static long attackInterval = 750; |  | ||||||
|  |  | ||||||
|     public static void handleItemPickup(Player player, EntityPickupItemEvent event) { |     public static void handleItemPickup(Player player, EntityPickupItemEvent event) { | ||||||
|         ItemStack[] storageContents = player.getInventory().getStorageContents(); |         ItemStack[] storageContents = player.getInventory().getStorageContents(); | ||||||
|   | |||||||
| @@ -20,17 +20,29 @@ import com.gmail.nossr50.util.skills.RankUtils; | |||||||
| import com.gmail.nossr50.util.skills.SkillActivationType; | import com.gmail.nossr50.util.skills.SkillActivationType; | ||||||
| import org.bukkit.Material; | import org.bukkit.Material; | ||||||
| import org.bukkit.block.BlockState; | import org.bukkit.block.BlockState; | ||||||
| import org.bukkit.block.data.BlockData; |  | ||||||
| import org.bukkit.entity.Item; | import org.bukkit.entity.Item; | ||||||
| import org.bukkit.entity.LivingEntity; | import org.bukkit.entity.LivingEntity; | ||||||
| import org.bukkit.entity.Player; | import org.bukkit.entity.Player; | ||||||
| import org.bukkit.inventory.ItemStack; | import org.bukkit.inventory.ItemStack; | ||||||
|  |  | ||||||
| public class UnarmedManager extends SkillManager { | public class UnarmedManager extends SkillManager { | ||||||
|  |     private long lastAttacked; | ||||||
|  |     private long attackInterval; | ||||||
|  |  | ||||||
|     public UnarmedManager(McMMOPlayer mcMMOPlayer) { |     public UnarmedManager(McMMOPlayer mcMMOPlayer) { | ||||||
|         super(mcMMOPlayer, PrimarySkillType.UNARMED); |         super(mcMMOPlayer, PrimarySkillType.UNARMED); | ||||||
|  |         initUnarmedPerPlayerVars(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * Inits variables used for each player for unarmed | ||||||
|  |      */ | ||||||
|  |     private void initUnarmedPerPlayerVars() { | ||||||
|  |         lastAttacked = 0; | ||||||
|  |         attackInterval = 750; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |  | ||||||
|     public boolean canActivateAbility() { |     public boolean canActivateAbility() { | ||||||
|         return mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && Permissions.berserk(getPlayer()); |         return mcMMOPlayer.getToolPreparationMode(ToolType.FISTS) && Permissions.berserk(getPlayer()); | ||||||
|     } |     } | ||||||
| @@ -74,8 +86,6 @@ public class UnarmedManager extends SkillManager { | |||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         BlockData data = blockState.getBlockData(); |  | ||||||
|  |  | ||||||
|         switch (blockState.getType()) { |         switch (blockState.getType()) { | ||||||
|             case STONE_BRICKS: |             case STONE_BRICKS: | ||||||
|                 if (!Unarmed.blockCrackerSmoothBrick) { |                 if (!Unarmed.blockCrackerSmoothBrick) { | ||||||
| @@ -150,7 +160,7 @@ public class UnarmedManager extends SkillManager { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     public boolean isPunchingCooldownOver() { |     public boolean isPunchingCooldownOver() { | ||||||
|         return (Unarmed.lastAttacked + Unarmed.attackInterval) <= System.currentTimeMillis(); |         return (lastAttacked + attackInterval) <= System.currentTimeMillis(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     public double getIronArmDamage() { |     public double getIronArmDamage() { | ||||||
| @@ -181,4 +191,20 @@ public class UnarmedManager extends SkillManager { | |||||||
|  |  | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public long getLastAttacked() { | ||||||
|  |         return lastAttacked; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setLastAttacked(long lastAttacked) { | ||||||
|  |         this.lastAttacked = lastAttacked; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public long getAttackInterval() { | ||||||
|  |         return attackInterval; | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     public void setAttackInterval(long attackInterval) { | ||||||
|  |         this.attackInterval = attackInterval; | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -166,7 +166,7 @@ public final class CombatUtils { | |||||||
|  |  | ||||||
|         applyScaledModifiers(initialDamage, finalDamage, event); |         applyScaledModifiers(initialDamage, finalDamage, event); | ||||||
|         startGainXp(mcMMOPlayer, target, PrimarySkillType.UNARMED); |         startGainXp(mcMMOPlayer, target, PrimarySkillType.UNARMED); | ||||||
|         Unarmed.lastAttacked = System.currentTimeMillis(); //Track how often the player is punching |         unarmedManager.setLastAttacked(System.currentTimeMillis()); //Track how often the player is punching | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private static void processTamingCombat(LivingEntity target, Player master, Wolf wolf, EntityDamageByEntityEvent event) { |     private static void processTamingCombat(LivingEntity target, Player master, Wolf wolf, EntityDamageByEntityEvent event) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50