package de.tobiyas.racesandclasses.playermanagement.leveling.manager; import org.bukkit.Bukkit; import com.herocraftonline.heroes.Heroes; import com.herocraftonline.heroes.characters.Hero; import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayer; import de.tobiyas.racesandclasses.saving.PlayerSavingData; public class HeroesLevelManager extends AbstractPlayerLevelingSystem { public HeroesLevelManager(RaCPlayer player, PlayerSavingData data) { super(player, data); } @Override public int getCurrentLevel() { if(!isHerosActive()) return 1; return getHero().getLevel(); } @Override public int getCurrentExpOfLevel() { if(!isHerosActive()) return 0; return 0; } @Override public void setCurrentLevel(int level) { if(!isHerosActive()) return; //Heroes seems to not support this. } @Override public void setCurrentExpOfLevel(int currentExpOfLevel) { if(!isHerosActive()) return; //Heroes seems to not support this. } @Override public boolean addExp(int exp) { if(!isHerosActive()) return false; getHero().addExp(exp, getHero().getHeroClass(), player.getLocation()); return true; } @Override public boolean removeExp(int exp) { if(!isHerosActive()) return false; //Heroes seems to not support this. return false; } @Override public void checkLevelChanged() { //nothing to do. } @Override public boolean canRemove(int toRemove) { if(!isHerosActive()) return false; return false; } private boolean isHerosActive(){ return Bukkit.getPluginManager().getPlugin("Heroes") != null; } private Heroes getHeroes(){ return Heroes.getInstance(); } private Hero getHero(){ return getHeroes().getCharacterManager().getHero(player.getPlayer()); } @Override public void addLevel(int value) { } @Override public void removeLevel(int value) { } @Override public int getMaxEXPToNextLevel() { return 1; } }