diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/ExperienceBarHideTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/ExperienceBarHideTask.java index c6169edf7..23e78909c 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/ExperienceBarHideTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/ExperienceBarHideTask.java @@ -1,4 +1,39 @@ package com.gmail.nossr50.runnables.skills; -public class ExperienceBarHideTask { +import com.gmail.nossr50.datatypes.player.McMMOPlayer; +import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import com.gmail.nossr50.util.experience.ExperienceBarManager; +import org.bukkit.scheduler.BukkitRunnable; + +public class ExperienceBarHideTask extends BukkitRunnable { + public final McMMOPlayer mcMMOPlayer; + public final PrimarySkillType primarySkillType; + public final ExperienceBarManager experienceBarManagerRef; + + public ExperienceBarHideTask(ExperienceBarManager experienceBarManagerRef, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType) + { + this.experienceBarManagerRef = experienceBarManagerRef; + this.mcMMOPlayer = mcMMOPlayer; + this.primarySkillType = primarySkillType; + } + + /** + * When an object implementing interface Runnable is used + * to create a thread, starting the thread causes the object's + * run method to be called in that separately executing + * thread. + *

+ * The general contract of the method run is that it may + * take any action whatsoever. + * + * @see Thread#run() + */ + @Override + public void run() { + if(experienceBarManagerRef == null || mcMMOPlayer == null) + return; + + experienceBarManagerRef.hideExperienceBar(primarySkillType); + experienceBarManagerRef.clearTask(primarySkillType); + } }