Class Invasion

java.lang.Object
org.kingdoms.managers.invasions.Invasion
All Implemented Interfaces:
org.kingdoms.constants.namespace.NamespacedMetadataContainer, org.kingdoms.locale.provider.MessageContextProvider
Direct Known Subclasses:
Plunder

public class Invasion extends Object implements org.kingdoms.constants.namespace.NamespacedMetadataContainer, org.kingdoms.locale.provider.MessageContextProvider
  • Field Details

    • METADATA

      public static final String METADATA
      See Also:
    • ransackMode

      protected final boolean ransackMode
    • affectedLands

      protected final Set<SimpleChunkLocation> affectedLands
    • originLand

      protected final Land originLand
    • defender

      protected final Kingdom defender
    • attacker

      protected final Kingdom attacker
    • startLocation

      protected org.bukkit.Location startLocation
    • champion

      protected org.bukkit.entity.Creature champion
    • start

      protected final long start
    • attackerProgress

      protected org.kingdoms.utils.bossbars.BossBarSession attackerProgress
    • defenderProgress

      protected org.kingdoms.utils.bossbars.BossBarSession defenderProgress
    • timeLimitProgress

      protected org.kingdoms.utils.bossbars.BossBarSession timeLimitProgress
    • invader

      protected final KingdomPlayer invader
    • invaderPlayer

      protected final org.bukkit.entity.Player invaderPlayer
    • showBossBarToAllPlayers

      protected boolean showBossBarToAllPlayers
    • reverseProgress

      protected boolean reverseProgress
    • duration

      protected long duration
    • task

      protected org.bukkit.scheduler.BukkitTask task
    • attackerScore

      protected double attackerScore
    • defenderScore

      protected double defenderScore
    • result

      protected TracedObject<Invasion.Result> result
    • preparationTask

      protected org.bukkit.scheduler.BukkitTask preparationTask
    • invaderDeathLimit

      protected int invaderDeathLimit
    • defenderDeathLimit

      protected int defenderDeathLimit
  • Constructor Details

  • Method Details

    • finalizePreparation

      public void finalizePreparation()
    • setPreparationTask

      public void setPreparationTask(org.bukkit.scheduler.BukkitTask preparationTask)
    • spawnChampion

      public void spawnChampion(org.bukkit.Location spawnLocation)
    • setupBossBars

      public void setupBossBars()
    • isRansackMode

      public boolean isRansackMode()
    • start

      public void start()
    • forAllRelatedRangedBossBarInvasions

      public static void forAllRelatedRangedBossBarInvasions(Kingdom kingdom, Consumer<Invasion> action)
    • performCommands

      protected static void performCommands(org.bukkit.entity.Player player)
    • getCapitalProtection

      public static Cooldown<UUID> getCapitalProtection()
    • getCooldown

      public static Pair<Long,Boolean> getCooldown(Kingdom attacker, Kingdom defender)
    • getInvasion

      public static @Nullable Invasion getInvasion(@NonNull org.bukkit.entity.LivingEntity entity)
    • getInvasionFromChampion

      public static Invasion getInvasionFromChampion(@NonNull org.bukkit.entity.LivingEntity entity)
    • getDuration

      public long getDuration()
    • setDuration

      public void setDuration(long duration)
    • updateTimeLimitBossBar

      public void updateTimeLimitBossBar(long timePassed, Kingdom kingdom, Supplier<Double> progressSupplier, Object[] edits)
    • addMessageContextEdits

      public void addMessageContextEdits(@NotNull @NotNull MessageBuilder builder)
      Specified by:
      addMessageContextEdits in interface org.kingdoms.locale.provider.MessageContextProvider
    • updateProgress

      public void updateProgress(org.kingdoms.utils.bossbars.BossBarSession bossBar, double progress, Object[] edits)
    • addBossBarToAllMembers

      public void addBossBarToAllMembers()
    • updateRangedBossBar

      public void updateRangedBossBar(double range, org.bukkit.Location location)
    • setTask

      public void setTask(org.bukkit.scheduler.BukkitTask task)
    • showBossBarToAllPlayers

      public boolean showBossBarToAllPlayers()
    • removeBossBar

      public void removeBossBar(org.bukkit.entity.Player player)
    • addBossBar

      public void addBossBar(org.bukkit.entity.Player player, boolean attacker)
    • getDefenderProgress

      public org.kingdoms.utils.bossbars.BossBarSession getDefenderProgress()
    • championAbilitiesTick

      public void championAbilitiesTick()
    • useStandardTask

      public org.bukkit.scheduler.BukkitTask useStandardTask()
    • getDefaultDuration

      public long getDefaultDuration()
    • getAttackerProgress

      public org.kingdoms.utils.bossbars.BossBarSession getAttackerProgress()
    • getTimeLimitProgress

      public org.kingdoms.utils.bossbars.BossBarSession getTimeLimitProgress()
    • getResult

      public Invasion.Result getResult()
    • end

      public void end(Invasion.Result result)
    • cleanup

      protected void cleanup()
    • hasEnded

      public boolean hasEnded()
    • getInvader

      public KingdomPlayer getInvader()
    • getOriginLand

      public Land getOriginLand()
      Deprecated.
      Use getStartLocation() instead.
      The land which the invasion originated from. This is simply the location that the player used /k invade from which also has a more precise location that is getStartLocation()
    • getEntitiesInArea

      public List<org.bukkit.entity.LivingEntity> getEntitiesInArea()
    • isAffected

      public boolean isAffected(SimpleChunkLocation chunk)
    • getDefender

      public Kingdom getDefender()
    • getChampion

      public @Nullable org.bukkit.entity.Creature getChampion()
    • getStart

      public long getStart()
    • getTimePassed

      public long getTimePassed()
    • getStartLocation

      public org.bukkit.Location getStartLocation()
    • getDefenderScore

      public double getDefenderScore()
    • getAffectedLands

      public Set<SimpleChunkLocation> getAffectedLands()
    • setDefenderScore

      public void setDefenderScore(double defenderScore)
    • getAttackerScore

      public double getAttackerScore()
    • setAttackerScore

      public void setAttackerScore(double attackerScore)
    • addDefenderScore

      public void addDefenderScore(double amount)
    • addAttackerScore

      public void addAttackerScore(double amount)
    • isPreparing

      public boolean isPreparing()
    • getInvaderPlayer

      public org.bukkit.entity.Player getInvaderPlayer()
    • getAttacker

      public Kingdom getAttacker()
    • getInvaderDeathLimit

      public int getInvaderDeathLimit()
    • setInvaderDeathLimit

      public void setInvaderDeathLimit(int invaderDeathLimit)
    • getDefenderDeathLimit

      public int getDefenderDeathLimit()
    • setDefenderDeathLimit

      public void setDefenderDeathLimit(int defenderDeathLimit)
    • getMetadata

      public Map<org.kingdoms.constants.namespace.Namespace,Object> getMetadata()
      Specified by:
      getMetadata in interface org.kingdoms.constants.namespace.NamespacedMetadataContainer