use of com.github.sirblobman.combatlogx.api.manager.ICombatManager in project CombatLogX by SirBlobman.
the class BossBarUpdater method replacePlaceholders.
private String replacePlaceholders(Player player, String message) {
ICombatLogX combatLogX = getCombatLogX();
ICombatManager combatManager = combatLogX.getCombatManager();
LivingEntity enemy = combatManager.getEnemy(player);
return combatManager.replaceVariables(player, enemy, message);
}
use of com.github.sirblobman.combatlogx.api.manager.ICombatManager in project CombatLogX by SirBlobman.
the class BossBarUpdater method getProgress.
private double getProgress(Player player, double timeLeftMillis) {
ICombatManager combatManager = getCombatManager();
long timerMaxSeconds = combatManager.getMaxTimerSeconds(player);
double timerMaxMillis = TimeUnit.SECONDS.toMillis(timerMaxSeconds);
double barPercentage = (timeLeftMillis / timerMaxMillis);
if (barPercentage <= 0.0D) {
return 0.0D;
}
return Math.min(barPercentage, 1.0D);
}
use of com.github.sirblobman.combatlogx.api.manager.ICombatManager in project CombatLogX by SirBlobman.
the class CombatNpcManager method createNPC.
public void createNPC(Player player) {
if (player == null || player.hasMetadata("NPC")) {
printDebug("player was null or an NPC, not spawning.");
return;
}
UUID uuid = player.getUniqueId();
String playerName = player.getName();
printDebug("Spawning NPC for player '" + playerName + "'.");
EntityType entityType = getEntityType();
NPCRegistry npcRegistry = CitizensAPI.getNPCRegistry();
NPC npc = npcRegistry.createNPC(entityType, playerName);
printDebug("Created NPC with entity type " + entityType + ".");
Location location = player.getLocation();
boolean spawn = npc.spawn(location);
if (!spawn) {
printDebug("Failed to spawn an NPC. (npc.spawn() returned false)");
return;
}
Entity entity = npc.getEntity();
if (!(entity instanceof LivingEntity)) {
printDebug("NPC for player '" + playerName + "' is not a LivingEntity, removing...");
npc.destroy();
return;
}
LivingEntity livingEntity = (LivingEntity) entity;
npc.setProtected(false);
if (npc.hasTrait(Owner.class)) {
npc.removeTrait(Owner.class);
}
ICombatLogX plugin = this.expansion.getPlugin();
MultiVersionHandler multiVersionHandler = plugin.getMultiVersionHandler();
EntityHandler entityHandler = multiVersionHandler.getEntityHandler();
double health = player.getHealth();
double maxHealth = entityHandler.getMaxHealth(livingEntity);
if (maxHealth < health)
entityHandler.setMaxHealth(livingEntity, health);
livingEntity.setHealth(health);
YamlConfiguration configuration = getConfiguration();
if (configuration.getBoolean("mob-target")) {
double radius = configuration.getDouble("mob-target-radius");
List<Entity> nearbyEntityList = livingEntity.getNearbyEntities(radius, radius, radius);
for (Entity nearby : nearbyEntityList) {
if (!(nearby instanceof Monster)) {
continue;
}
Monster monster = (Monster) nearby;
monster.setTarget(livingEntity);
}
}
CombatNPC combatNPC = new CombatNPC(this.expansion, npc, player);
this.playerNpcMap.put(uuid, combatNPC);
this.npcCombatMap.put(npc.getUniqueId(), combatNPC);
ICombatManager combatManager = plugin.getCombatManager();
LivingEntity enemyEntity = combatManager.getEnemy(player);
if (enemyEntity instanceof Player)
combatNPC.setEnemy((Player) enemyEntity);
saveLocation(player, npc);
saveInventory(player);
equipNPC(player, npc);
CitizensExpansion citizensExpansion = getExpansion();
if (citizensExpansion.isSentinelEnabled()) {
if (enemyEntity != null && configuration.getBoolean("attack-first")) {
SentinelTrait sentinelTrait = npc.getOrAddTrait(SentinelTrait.class);
sentinelTrait.setInvincible(false);
sentinelTrait.respawnTime = -1;
UUID enemyId = enemyEntity.getUniqueId();
String enemyIdString = enemyId.toString();
SentinelTargetLabel targetLabel = new SentinelTargetLabel("uuid:" + enemyIdString);
targetLabel.addToList(sentinelTrait.allTargets);
}
}
combatNPC.start();
}
use of com.github.sirblobman.combatlogx.api.manager.ICombatManager in project CombatLogX by SirBlobman.
the class CombatNPC method run.
@Override
public void run() {
this.survivalTicks--;
if (this.survivalTicks > 0)
return;
YamlConfiguration configuration = this.expansion.getConfigurationManager().get("citizens.yml");
if (configuration.getBoolean("stay-until-enemy-escape") && this.enemyId != null) {
Player player = Bukkit.getPlayer(this.enemyId);
ICombatManager combatManager = this.expansion.getPlugin().getCombatManager();
if (player != null && combatManager.isInCombat(player)) {
long timerLeftMillis = combatManager.getTimerLeftMillis(player);
this.survivalTicks = (timerLeftMillis / 50L) + 1;
return;
}
}
CombatNpcManager combatNpcManager = this.expansion.getCombatNpcManager();
combatNpcManager.remove(this);
}
use of com.github.sirblobman.combatlogx.api.manager.ICombatManager in project CombatLogX by SirBlobman.
the class PlaceholderHelper method getEnemyType.
public static String getEnemyType(ICombatLogX plugin, Player player) {
ICombatManager combatManager = plugin.getCombatManager();
LivingEntity enemy = combatManager.getEnemy(player);
if (enemy == null)
return getUnknownEnemy(plugin, player);
EntityType entityType = enemy.getType();
return entityType.name();
}
Aggregations