package de.tobiyas.racesandclasses.APIs;
import org.bukkit.entity.Player;
import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayer;
import de.tobiyas.racesandclasses.playermanagement.player.RaCPlayerManager;
import de.tobiyas.racesandclasses.traitcontainer.interfaces.markerinterfaces.MagicSpellTrait;
public class SpellAPI {
/**
* Gets the currently selected spell name of the Player.
* <br>May be empty if no spell selected!
* @param player to use.
* @return the currently selected spell.
*/
public static String getCurrentSelectedSpellName(Player player){
MagicSpellTrait spell = getCurrentSelectedSpell(player);
return spell == null ? "" : spell.getDisplayName();
}
/**
* Gets the currently selected spell name of the Player.
* <br>May be empty if no spell selected!
* @param player to use.
* @return the currently selected spell.
*/
public static MagicSpellTrait getCurrentSelectedSpell(Player player){
RaCPlayer racPlayer = RaCPlayerManager.get().getPlayer(player);
if(racPlayer == null) return null;
return racPlayer.getSpellManager().getCurrentSpell();
}
/**
* Gets the currently selected spell cost of the Player.
* <br>Is 0 if no spell selectable!
* @param player to use.
* @return the cost of the spell.
*/
public static double getCurrentSpellCost(Player player){
RaCPlayer racPlayer = RaCPlayerManager.get().getPlayer(player);
MagicSpellTrait spell = getCurrentSelectedSpell(player);
if(spell == null) return 0;
return spell.getCost(racPlayer);
}
/**
* Gets the currently selected spell cost of the Player.
* <br>Is 0 if no spell selectable!
* @param player to use.
* @return the cost of the spell.
*/
public static String getCurrentSelectedSpellCostName(Player player){
MagicSpellTrait spell = getCurrentSelectedSpell(player);
if(spell == null) return "";
return spell.getCostType().name();
}
}