Class Group

Direct Known Subclasses:
Kingdom, Nation

public abstract class Group extends KingdomsObject<UUID>
  • Field Details

    • members

      protected final @NonNull Set<UUID> members
    • relationshipRequests

      protected @NonNull Map<UUID,KingdomRelationshipRequest> relationshipRequests
    • relations

      protected @NonNull Map<UUID,KingdomRelation> relations
    • attributes

      protected @NonNull Map<KingdomRelation,Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes
    • owner

      protected @NonNull UUID owner
    • id

      protected final transient UUID id
    • name

      protected @NonNull String name
    • nexus

      protected @Nullable SimpleLocation nexus
    • home

      protected @Nullable org.kingdoms.server.location.ImmutableLocation home
    • shieldSince

      protected long shieldSince
    • shieldTime

      protected long shieldTime
    • resourcePoints

      protected long resourcePoints
    • since

      protected long since
    • tag

      protected @Nullable String tag
    • bank

      protected double bank
    • publicHomeCost

      protected double publicHomeCost
    • ranks

      protected @NonNull RankMap ranks
    • requiresInvite

      protected boolean requiresInvite
    • publicHome

      protected boolean publicHome
    • permanent

      protected boolean permanent
    • hidden

      protected boolean hidden
    • tax

      protected @Nullable String tax
    • book

      protected @NonNull Map<String,BookChapter> book
  • Constructor Details

  • Method Details

    • sendMail

      public Mail sendMail(org.bukkit.entity.Player sender, DraftMail draft)
    • sendMail

      public Mail sendMail(String subject, org.bukkit.entity.Player sender, Map<Group,MailRecipientType> recipients, List<String> message, UUID replyTo)
    • log

      public void log(AuditLog log)
    • getSentMails

      public List<Mail> getSentMails()
    • getReceivedMails

      public List<Mail> getReceivedMails()
    • getPublicHomeCost

      public double getPublicHomeCost()
    • setPublicHomeCost

      public void setPublicHomeCost(double publicHomeCost)
    • getTaxOrDefault

      public abstract String getTaxOrDefault()
    • getTopComparator

      public static @NonNull Comparator<Group> getTopComparator()
    • getBook

      public @NonNull Map<String,BookChapter> getBook()
    • setBook

      public void setBook(@NonNull Map<String,BookChapter> book)
    • placeOrMoveNexus

      public abstract NexusMoveEvent placeOrMoveNexus(@NonNull org.bukkit.Location loc, @Nullable KingdomPlayer kp)
    • abstractPlaceOrMoveNexus

      public @NonNull NexusMoveEvent abstractPlaceOrMoveNexus(String styleName, @NonNull org.bukkit.Location toLocation, @Nullable KingdomPlayer kp, org.kingdoms.events.KingdomsEventCallerContext<NexusMoveEvent> eventContext)
    • getCompressedData

      public @NonNull String getCompressedData()
      Specified by:
      getCompressedData in class KingdomsObject<UUID>
    • getDataKey

      public @NonNull UUID getDataKey()
      Specified by:
      getDataKey in class KingdomsObject<UUID>
    • isHidden

      public boolean isHidden()
    • setHidden

      public GroupHiddenStateChangeEvent setHidden(boolean hidden, @Nullable KingdomPlayer player)
    • getFlag

      public @Nullable String getFlag()
    • setFlag

      public GroupFlagChangeEvent setFlag(@Nullable String flag, KingdomPlayer player)
    • getColor

      public Color getColor()
    • setColor

      public GroupColorChangeEvent setColor(Color color, KingdomPlayer player)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getBank

      public double getBank()
    • setBank

      public void setBank(double bank)
    • getTax

      public @Nullable String getTax()
    • setTax

      public void setTax(@Nullable String tax)
    • getMight

      public abstract double getMight()
    • hasMoney

      public boolean hasMoney(double amount)
    • hasResourcePoints

      public boolean hasResourcePoints(long amount)
    • getId

      public @NonNull UUID getId()
    • getName

      public @NonNull String getName()
    • setName

      protected void setName(@NonNull String name)
    • getResourcePoints

      public long getResourcePoints()
    • setResourcePoints

      public void setResourcePoints(long resourcePoints)
    • getNexus

      public @Nullable SimpleLocation getNexus()
    • setNexus

      public void setNexus(@Nullable SimpleLocation nexus)
    • getHome

      public @Nullable org.kingdoms.server.location.ImmutableLocation getHome()
      Returns:
      an ImmutableLocation if not null.
    • setHome

      public abstract org.kingdoms.events.general.LocationChangeEvent setHome(@Nullable org.bukkit.Location home, @Nullable KingdomPlayer player)
    • hasAttribute

      public boolean hasAttribute(@Nullable Group other, org.kingdoms.constants.group.model.relationships.RelationAttribute attribute)
    • getRelations

      public @NonNull Map<UUID,KingdomRelation> getRelations()
    • unsafeGetRelations

      @Internal public @NonNull Map<UUID,KingdomRelation> unsafeGetRelations()
    • setRelations

      public void setRelations(@NonNull Map<UUID,KingdomRelation> relations)
    • getRanks

      public @NonNull RankMap getRanks()
    • setRanks

      public void setRanks(@NonNull RankMap ranks)
    • rename

      public abstract @NonNull GroupRenameEvent rename(@NonNull String str, @Nullable KingdomPlayer renamer)
    • getRelationshipRequests

      public @NonNull Map<UUID,KingdomRelationshipRequest> getRelationshipRequests()
    • setRelationshipRequests

      public void setRelationshipRequests(@NonNull Map<UUID,KingdomRelationshipRequest> relationshipRequests)
    • addResourcePoints

      public void addResourcePoints(long amount)
    • activateShield

      public void activateShield(long time)
    • getOwnerId

      public UUID getOwnerId()
    • activateShield

      public void activateShield(long time, boolean reset)
    • deactivateShield

      public void deactivateShield()
    • isMember

      public boolean isMember(@NonNull UUID id)
    • getMembers

      public @NonNull Set<UUID> getMembers()
    • unsafeGetMembers

      @Internal public @NonNull Set<UUID> unsafeGetMembers()
    • addToResourcePoints

      public @NonNull Pair<Long,List<org.bukkit.inventory.ItemStack>> addToResourcePoints(@NonNull Collection<org.bukkit.inventory.ItemStack> donations, @Nullable BiFunction<org.bukkit.inventory.ItemStack,List<org.bukkit.inventory.ItemStack>,Long> function)
    • addBank

      public double addBank(double amount)
    • isFull

      public final boolean isFull()
    • getShieldTimeLeft

      public long getShieldTimeLeft()
    • countRelationships

      public int countRelationships(KingdomRelation relation)
    • setRelationShipWith

      public void setRelationShipWith(Group other, @Nullable KingdomRelation relation)
      Parameters:
      relation - Removes the relationship entirely when null or KingdomRelation.NEUTRAL
    • hasShield

      public boolean hasShield()
    • isPermanent

      public boolean isPermanent()
    • setPermanent

      public void setPermanent(boolean permanent)
    • getShieldTime

      public long getShieldTime()
    • setShieldTime

      public void setShieldTime(long shieldTime)
    • getShieldSince

      public long getShieldSince()
    • setShieldSince

      public void setShieldSince(long shieldSince)
    • requiresInvite

      public boolean requiresInvite()
    • setRequiresInvite

      public void setRequiresInvite(boolean requiresInvite)
    • getSince

      public long getSince()
    • setSince

      public void setSince(long since)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • getAttributes

      public @NonNull Map<KingdomRelation,Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> getAttributes()
    • setAttributes

      public void setAttributes(@NonNull Map<KingdomRelation,Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes)
    • getTag

      public @Nullable String getTag()
    • setTag

      public void setTag(@Nullable String tag)
    • renameTag

      public org.kingdoms.events.general.GroupRenameTagEvent renameTag(@Nullable String tag, @Nullable KingdomPlayer by)
    • disband

      public GroupDisband disband(GroupDisband.Reason reason)
    • disband

      public abstract GroupDisband disband(GroupDisband.Reason reason, Runnable predataRemoval)
    • calculateTax

      public abstract double calculateTax()
    • getMaxMembers

      public abstract int getMaxMembers()
    • isHomePublic

      public boolean isHomePublic()
    • setPublicHome

      public void setPublicHome(boolean publicHome)
    • getPlayerMembers

      public abstract @NonNull List<org.bukkit.OfflinePlayer> getPlayerMembers()
    • getOnlineMembers

      public abstract @NonNull List<org.bukkit.entity.Player> getOnlineMembers()
    • getKingdomPlayers

      public abstract @NonNull List<KingdomPlayer> getKingdomPlayers()
    • updateRankNode

      public abstract void updateRankNode(@NonNull String node, @NonNull String newNode)
    • getMailIds

      public @NonNull Set<UUID> getMailIds()
    • getMails

      public @NonNull Map<UUID,Mail> getMails()
    • getLogs

      public @NonNull LinkedList<AuditLog> getLogs()
    • getNewestLog

      public <C extends AuditLog, T> T getNewestLog(Class<C> base, Function<C,T> transformer)