Fix exp disappearing, fixes #552
This commit is contained in:
		| @@ -24,6 +24,7 @@ class DisguiseRunnable extends BukkitRunnable { | |||||||
|     private int blockX, blockY, blockZ, facing; |     private int blockX, blockY, blockZ, facing; | ||||||
|     private int deadTicks = 0; |     private int deadTicks = 0; | ||||||
|     private int actionBarTicks = -1; |     private int actionBarTicks = -1; | ||||||
|  |     private int refreshRate; | ||||||
|     private long lastRefreshed = System.currentTimeMillis(); |     private long lastRefreshed = System.currentTimeMillis(); | ||||||
|     private Disguise disguise; |     private Disguise disguise; | ||||||
|     final Double vectorY; |     final Double vectorY; | ||||||
| @@ -45,6 +46,20 @@ class DisguiseRunnable extends BukkitRunnable { | |||||||
|                 break; |                 break; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  |         // Where refresh rate is in ticks, exp is in here due to a fire exploit + stop it glitching out so much | ||||||
|  |         switch (disguise.getType()) { | ||||||
|  |             case FIREWORK: | ||||||
|  |             case EXPERIENCE_ORB: | ||||||
|  |                 refreshRate = 40; // 2 seconds | ||||||
|  |                 break; | ||||||
|  |             case EVOKER_FANGS: | ||||||
|  |                 refreshRate = 23; | ||||||
|  |                 break; | ||||||
|  |             default: | ||||||
|  |                 break; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         refreshRate *= 50; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
| @@ -89,13 +104,11 @@ class DisguiseRunnable extends BukkitRunnable { | |||||||
|  |  | ||||||
|         deadTicks = 0; |         deadTicks = 0; | ||||||
|  |  | ||||||
|         // If the disguise type is tnt, we need to resend the entity packet else it will turn invisible |         // If the disguise type is invisibable, we need to resend the entity packet else it will turn invisible | ||||||
|         if (disguise.getType() == DisguiseType.FIREWORK || disguise.getType() == DisguiseType.EVOKER_FANGS) { |         if (refreshRate > 0 && lastRefreshed + refreshRate < System.currentTimeMillis()) { | ||||||
|             if (lastRefreshed + ((disguise.getType() == DisguiseType.FIREWORK ? 40 : 23) * 50) < System.currentTimeMillis()) { |             lastRefreshed = System.currentTimeMillis(); | ||||||
|                 lastRefreshed = System.currentTimeMillis(); |  | ||||||
|  |  | ||||||
|                 DisguiseUtilities.refreshTrackers((TargetedDisguise) disguise); |             DisguiseUtilities.refreshTrackers((TargetedDisguise) disguise); | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         if (disguise.isModifyBoundingBox()) { |         if (disguise.isModifyBoundingBox()) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user