mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 11:03:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
package com.gmail.nossr50.runnables.skills;
 | 
						|
 | 
						|
import org.bukkit.entity.LivingEntity;
 | 
						|
import org.bukkit.scheduler.BukkitRunnable;
 | 
						|
 | 
						|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
 | 
						|
import com.gmail.nossr50.datatypes.skills.SkillType;
 | 
						|
 | 
						|
public class AwardCombatXpTask extends BukkitRunnable {
 | 
						|
    private McMMOPlayer mcMMOPlayer;
 | 
						|
    private double baseXp;
 | 
						|
    private SkillType skillType;
 | 
						|
    private LivingEntity target;
 | 
						|
    private int baseHealth;
 | 
						|
 | 
						|
    public AwardCombatXpTask(McMMOPlayer mcMMOPlayer, SkillType skillType, double baseXp, LivingEntity target) {
 | 
						|
        this.mcMMOPlayer = mcMMOPlayer;
 | 
						|
        this.skillType = skillType;
 | 
						|
        this.baseXp = baseXp;
 | 
						|
        this.target = target;
 | 
						|
        baseHealth = target.getHealth();
 | 
						|
    }
 | 
						|
 | 
						|
    @Override
 | 
						|
    public void run() {
 | 
						|
        int health = target.getHealth();
 | 
						|
        int damage = baseHealth - health;
 | 
						|
 | 
						|
        // May avoid negative xp, we don't know what other plugins do with the entity health
 | 
						|
        if (damage <= 0) {
 | 
						|
            return;
 | 
						|
        }
 | 
						|
 | 
						|
        // Don't reward the player for overkills
 | 
						|
        if (health < 0) {
 | 
						|
            damage += health;
 | 
						|
        }
 | 
						|
 | 
						|
        mcMMOPlayer.beginXpGain(skillType, (int) (damage * baseXp));
 | 
						|
    }
 | 
						|
}
 |