Buggy code:
if ( ( e . getEntity ( ) . getEntityId ( ) ) == ( z . getEntityId ( ) ) ) z . setTarget ( player ) ; } } String t = ToolComparer . getType ( player . getItemInHand ( ) ) ; if ( t == null ) return ; if ( t . equalsIgnoreCase ( "Sword" ) ) { int alevel = SkillManager . getSkillLevel ( SWORDSMANSHIP , player ) ; double perkm = 1 ; if ( perks . get ( player ) . containsKey ( SWORDSMAN ) ) { perkm = 1 + ( 0.2 * ( perks . get ( player ) . get ( SWORDSMAN ) ) ) ; } if ( perks . get ( player ) . containsKey ( BLADESMAN ) ) { int a = new Random ( ) . nextInt ( 100 ) ; if ( a < ( 5 + ( 5 * ( perks . get ( player ) . get ( BLADESMAN ) ) ) ) ) perkm = ( perkm + 0.25 ) + ( ( perks . get ( player ) . get ( BLADESMAN ) ) * 0.83 ) ; } e . setDamage ( ( ( int ) ( ( e . getDamage ( ) ) + ( ( alevel // 10 ) * perkm ) ) ) ) ; if ( sm . processExperience ( player , SWORDSMANSHIP ) ) { sm . incrementLevel ( SWORDSMANSHIP , player ) ; progress . get ( player ) . put ( SWORDSMANSHIP , 0 ) ; SkillManager . calculateLevel ( player ) ; } else progress . get ( player ) . put ( SWORDSMANSHIP , ( ( progress . get ( player ) . get ( SWORDSMANSHIP ) ) + 1 ) ) ; } else if ( t . equalsIgnoreCase ( "Axe" ) ) { int alevel = SkillManager . getSkillLevel ( AXECRAFT , player ) ; int crit = new Random ( ) . nextInt ( 99 ) ; e . setDamage ( ( ( e . getDamage ( ) ) + ( ( alevel // 10 ) * ( crit <= alevel ? 2 : 1 ) ) ) ) ; if ( sm . processExperience ( player , AXECRAFT ) ) { sm . incrementLevel ( AXECRAFT , player ) ; progress . get ( player ) . put ( AXECRAFT , 0 ) ; SkillManager . calculateLevel ( player ) ; } else progress . get ( player ) . put ( AXECRAFT , ( ( progress . get ( player ) . get ( AXECRAFT ) ) + 1 ) ) ; } if ( ( sneak . contains ( player ) ) && ( ( event . getEntity ( ) ) instanceof Player ) ) { if ( ! ( ( ( Player ) ( event . getEntity ( ) ) ) . canSee ( player ) ) ) { event . setDamage ( ( ( event . getDamage ( ) ) * 2 ) ) ; player . sendMessage ( ( ( ChatColor . GREEN ) + "Sneak<seq2seq4repair_space>attack<seq2seq4repair_space>for<seq2seq4repair_space>2x<seq2seq4repair_space>damage!" ) ) ; } } } else if ( ( e . getDamager ( ) ) instanceof SmallFireball ) { SmallFireball sf = ( ( SmallFireball ) ( e . getDamager ( ) ) ) ; if ( ( sf . getShooter ( ) ) instanceof Player ) { if ( flames . contains ( sf ) ) { Player player = ( ( Player ) ( sf . getShooter ( ) ) ) ; int alevel = ( SkillManager . getSkillLevel ( DESTRUCTION , player ) ) // 20 ; int damage = 1 + alevel ; e . setDamage ( damage ) ; SkillManager sm = new SkillManager ( ) ; if ( sm . processExperience ( player , DESTRUCTION ) ) { sm . incrementLevel ( DESTRUCTION , player ) ; progress . get ( player ) . put ( DESTRUCTION , 0 ) ; SkillManager . calculateLevel ( player ) ; } else progress . get ( player ) . put ( DESTRUCTION , ( ( progress . get ( player ) . get ( DESTRUCTION ) ) + 1 ) ) ; } } } if ( ( e . getEntity ( ) ) instanceof Player ) { Player player = ( ( Player ) ( e . getEntity ( ) ) ) ; EntityPlayer ep = ( ( org . bukkit . craftbukkit . entity . CraftPlayer ) ( player ) ) . getHandle ( ) ; boolean ib = ep . L ( ) ; <START_BUG> if ( ib ) { <END_BUG> SkillManager sm = new SkillManager ( ) ; int alevel = SkillManager . getSkillLevel ( BLOCKING , player ) ; e . setDamage ( ( ( e . getDamage ( ) ) - ( alevel // 10 ) ) ) ; if ( sm . processExperience ( player , BLOCKING ) ) { sm . incrementLevel ( BLOCKING , player ) ; progress . get ( player ) . put ( BLOCKING , 0 ) ; SkillManager . calculateLevel ( player ) ; } else progress . get ( player ) . put ( BLOCKING , ( ( progress . get ( player ) . get ( BLOCKING ) ) + 1 ) ) ; } } } } @ EventHandler ( priority = EventPriority . HIGHEST ) public void onExplosionPrime ( ExplosionPrimeEvent event ) { } private class Cooldown implements Runnable { private Skill skill ; private Player p ; private boolean r ; private Cooldown ( Skill s , Player player , boolean remove ) { } public void run ( ) { } } }

Fix:
if ( ib && ( ToolComparer . getType ( player . getItemInHand ( ) ) . equalsIgnoreCase ( "Sword" ) ) ) {