Package org.kingdoms.constants.group
Class Group
java.lang.Object
- All Implemented Interfaces:
org.kingdoms.abstraction.GroupOperator,org.kingdoms.abstraction.Levellable,org.kingdoms.abstraction.NamespacedFlagsContainer,Keyed<UUID>,SmartObject,org.kingdoms.constants.group.model.logs.Loggable,org.kingdoms.constants.themes.ThemeContainer,org.kingdoms.locale.provider.CascadingMessageContextProvider,org.kingdoms.locale.provider.MessageContextProvider
public abstract class Group
extends KeyedKingdomsObject<UUID>
implements org.kingdoms.abstraction.GroupOperator, org.kingdoms.abstraction.Levellable, org.kingdoms.abstraction.NamespacedFlagsContainer, org.kingdoms.constants.themes.ThemeContainer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected @NonNull Map<KingdomRelation, Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> protected @NotNull org.kingdoms.constants.economy.Balanceprotected @NonNull Map<String, BookChapter> protected org.kingdoms.constants.namespace.NamespacedMap<Color> protected org.kingdoms.constants.namespace.NamespacedFlagsprotected @Nullable org.kingdoms.server.location.Locationprotected final UUIDprotected intprotected @NonNull Stringprotected @Nullable SimpleLocationprotected @Nullable UUIDprotected @NonNull RankMapprotected @NonNull Map<UUID, KingdomRelation> protected @NonNull Map<UUID, KingdomRelationshipRequest> protected @NotNull org.kingdoms.constants.economy.Balanceprotected org.kingdoms.constants.group.Shieldprotected longprotected @Nullable Stringprotected org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> Fields inherited from class org.kingdoms.constants.base.KingdomsObject
lastLogsExpirationCheck, logs, metadata, statisticsFields inherited from class org.kingdoms.constants.base.CompressedSmartObject
objectState -
Constructor Summary
ConstructorsConstructorDescriptionGroup(@NonNull UUID id, @Nullable UUID owner, @NonNull String name, @Nullable String tag, int level, @Nullable org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> taxes, @NonNull RankMap ranks, org.kingdoms.constants.economy.Balance resourcePoints, long since, org.kingdoms.constants.economy.Balance bank, org.kingdoms.constants.namespace.NamespacedFlags flags, org.kingdoms.constants.stats.Statistics stats, org.kingdoms.constants.group.Shield shield, @Nullable SimpleLocation nexus, @Nullable org.kingdoms.server.location.Location home, GroupBanner flag, GroupBanner banner, org.kingdoms.constants.namespace.NamespacedMap<Color> colors, @NonNull Set<UUID> members, @NonNull Map<String, BookChapter> book, Map<UUID, KingdomRelation> relations, Map<UUID, KingdomRelationshipRequest> relationshipRequests, Map<KingdomRelation, Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes, @NonNull Set<UUID> mails) -
Method Summary
Modifier and TypeMethodDescription@NonNull NexusMoveEventabstractPlaceOrMoveNexus(String styleName, org.kingdoms.server.location.Location toLocation, @Nullable KingdomPlayer kp, org.kingdoms.events.KingdomsEventCallerContext<NexusMoveEvent> eventContext) voidaddMessageContextEdits(@NotNull MessagePlaceholderProvider context) abstract doublebooleanchangeLevel(int newLvl, org.bukkit.entity.Player player) Changes the level and also upgrades the nexus structure itself.intcountRelationships(KingdomRelation relation) disband(GroupDisband.Reason reason) abstract GroupDisbanddisband(GroupDisband.Reason reason, Runnable predataRemoval) boolean@NonNull Map<KingdomRelation, Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> org.kingdoms.constants.economy.BalancegetBank()double@Nullable GroupBanner@NonNull Map<String, BookChapter> getBook()org.kingdoms.constants.namespace.NamespacedMap<Color> @Nullable GroupBannergetFlag()org.kingdoms.constants.namespace.NamespacedFlagsgetFlags()getGroup()@Nullable org.kingdoms.server.location.LocationgetHome()@NonNull UUIDgetId()@NonNull UUIDgetKey()abstract @NonNull List<KingdomPlayer> intgetLevel()This option is affected by forced levels config option if it's enabled (e.g.getMails()abstract int@NonNull StringgetName()@Nullable SimpleLocationgetNexus()abstract @NonNull List<org.bukkit.entity.Player> @Nullable UUIDabstract @NonNull List<org.bukkit.OfflinePlayer> @NonNull RankMapgetRanks()final intSame asgetLevel()but it's not affected by forced levels (e.g.@NonNull Map<UUID, KingdomRelation> @NonNull Map<UUID, KingdomRelationshipRequest> org.kingdoms.constants.economy.Balanceorg.kingdoms.constants.group.ShieldlonggetSince()@Nullable StringgetTag()@Nullable org.kingdoms.utils.compilers.expressions.MathExpressiongetTax(@NotNull org.kingdoms.constants.namespace.Namespace namespace) @NotNull org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> getTaxes()@NotNull org.kingdoms.constants.namespace.NamespacedMap<Color> UsegetColors()instead.booleanhasAttribute(@Nullable Group other, org.kingdoms.constants.group.model.relationships.RelationAttribute attribute) inthashCode()booleanhasOwner()final booleanisFull()booleanisHidden()booleanbooleanbooleanabstract NexusMoveEventplaceOrMoveNexus(@NonNull org.kingdoms.server.location.Location loc, @Nullable KingdomPlayer kp) abstract @NonNull GroupRenameEventrename(@NonNull String str, @Nullable KingdomPlayer renamer) org.kingdoms.events.general.GroupRenameTagEventrenameTag(@Nullable String tag, @Nullable KingdomPlayer by) booleansendMail(String subject, org.bukkit.entity.Player sender, Map<Group, MailRecipientType> recipients, List<String> message, UUID replyTo) voidsetAttributes(@NonNull Map<KingdomRelation, Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes) setBanner(@Nullable GroupBanner banner, KingdomPlayer player) voidsetBook(@NonNull Map<String, BookChapter> book) setColor(org.kingdoms.constants.namespace.Namespace colorType, Color color, KingdomPlayer player) setFlag(@Nullable GroupBanner flag, KingdomPlayer player) voidsetFlags(org.kingdoms.constants.namespace.NamespacedFlags flags) setHidden(boolean hidden, @Nullable KingdomPlayer player) abstract org.kingdoms.events.general.LocationChangeEventsetHome(@Nullable org.kingdoms.server.location.Location home, @Nullable KingdomPlayer player) voidsetLevel(int level) This is a direct method that simply changes the saved level in kingdoms data.protected voidvoidsetNexus(@Nullable SimpleLocation nexus) voidsetPermanent(boolean permanent) voidsetPublicHome(boolean publicHome) voidvoidsetRelations(@NonNull Map<UUID, KingdomRelation> relations) voidsetRelationshipRequests(@NonNull Map<UUID, KingdomRelationshipRequest> relationshipRequests) voidsetRelationShipWith(Group other, @Nullable KingdomRelation relation) voidsetRequiresInvite(boolean requiresInvite) voidsetSince(long since) voidvoidsetTax(@NotNull org.kingdoms.constants.namespace.Namespace namespace, org.kingdoms.utils.compilers.expressions.MathExpression value) toString()@Bookmark(UNSAFE) @NonNull Map<UUID, KingdomRelation> abstract voidupdateRankNode(@NonNull String node, @NonNull String newNode) Methods inherited from class org.kingdoms.constants.base.KingdomsObject
getLogs, getMetadata, getNewestLog, getNewestLog, getStatistics, log, setLogs, setMetadata, setStatisticsMethods inherited from class org.kingdoms.constants.base.CompressedSmartObject
ensureValidObject, getCompressedData, getDataHandler, hasObjectExpired, invalidateObject, isNewData, isObjectStateSaved, saveObjectState, shouldSaveMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.kingdoms.locale.provider.CascadingMessageContextProvider
getMessageContextMethods inherited from interface org.kingdoms.constants.base.SmartObject
isDataEmpty
-
Field Details
-
members
-
relationshipRequests
-
relations
-
attributes
protected @NonNull Map<KingdomRelation,Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes -
owner
-
id
-
name
-
nexus
-
home
protected @Nullable org.kingdoms.server.location.Location home -
shield
protected org.kingdoms.constants.group.Shield shield -
level
protected int level -
resourcePoints
@NotNull protected @NotNull org.kingdoms.constants.economy.Balance resourcePoints -
bank
@NotNull protected @NotNull org.kingdoms.constants.economy.Balance bank -
since
protected long since -
tag
-
ranks
-
flags
protected org.kingdoms.constants.namespace.NamespacedFlags flags -
taxes
protected org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> taxes -
colors
-
book
-
-
Constructor Details
-
Group
public Group(@NonNull UUID id, @Nullable UUID owner, @NonNull String name, @Nullable String tag, int level, @Nullable org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> taxes, @NonNull RankMap ranks, org.kingdoms.constants.economy.Balance resourcePoints, long since, org.kingdoms.constants.economy.Balance bank, org.kingdoms.constants.namespace.NamespacedFlags flags, org.kingdoms.constants.stats.Statistics stats, org.kingdoms.constants.group.Shield shield, @Nullable SimpleLocation nexus, @Nullable org.kingdoms.server.location.Location home, GroupBanner flag, GroupBanner banner, org.kingdoms.constants.namespace.NamespacedMap<Color> colors, @NonNull Set<UUID> members, @NonNull Map<String, BookChapter> book, Map<UUID, KingdomRelation> relations, Map<UUID, KingdomRelationshipRequest> relationshipRequests, Map<KingdomRelation, Set<org.kingdoms.constants.group.model.relationships.RelationAttribute>> attributes, @NonNull Set<UUID> mails) -
Group
-
-
Method Details
-
sendMail
-
sendMail
-
getGroup
- Specified by:
getGroupin interfaceorg.kingdoms.abstraction.GroupOperator
-
getLevel
public int getLevel()This option is affected by forced levels config option if it's enabled (e.g.KingdomsConfig.GROUP_LEVELS_KINGDOMS_FORCE) The raw level is accessed fromgetRawLevel()but you shouldn't need to use that method in almost all cases.- Specified by:
getLevelin interfaceorg.kingdoms.abstraction.Levellable
-
getRawLevel
@Internal public final int getRawLevel()Same asgetLevel()but it's not affected by forced levels (e.g.KingdomsConfig.GROUP_LEVELS_KINGDOMS_FORCE) -
getShield
public org.kingdoms.constants.group.Shield getShield() -
setLevel
@Internal public void setLevel(int level) This is a direct method that simply changes the saved level in kingdoms data. You should usechangeLevel(int, Player)instead.- Specified by:
setLevelin interfaceorg.kingdoms.abstraction.Levellable
-
changeLevel
public boolean changeLevel(int newLvl, org.bukkit.entity.Player player) Changes the level and also upgrades the nexus structure itself. Note that the nexus must be placed.- Parameters:
newLvl- Can only be positive.player- The player responsible for this change. It simply only sends messages and checks permissions when needed.- Returns:
- true if the upgrade succeeded, otherwise false.
-
getSentMails
-
getReceivedMails
-
getBook
-
setBook
-
placeOrMoveNexus
public abstract NexusMoveEvent placeOrMoveNexus(@NonNull org.kingdoms.server.location.Location loc, @Nullable KingdomPlayer kp) -
abstractPlaceOrMoveNexus
public @NonNull NexusMoveEvent abstractPlaceOrMoveNexus(String styleName, org.kingdoms.server.location.Location toLocation, @Nullable KingdomPlayer kp, org.kingdoms.events.KingdomsEventCallerContext<NexusMoveEvent> eventContext) -
getKey
-
isHidden
public boolean isHidden() -
setHidden
-
getFlag
-
getBanner
-
setBanner
-
getFlags
public org.kingdoms.constants.namespace.NamespacedFlags getFlags()- Specified by:
getFlagsin interfaceorg.kingdoms.abstraction.NamespacedFlagsContainer
-
setFlags
public void setFlags(org.kingdoms.constants.namespace.NamespacedFlags flags) - Specified by:
setFlagsin interfaceorg.kingdoms.abstraction.NamespacedFlagsContainer
-
setFlag
-
getColors
-
getThemes
@NotNull @Experimental public @NotNull org.kingdoms.constants.namespace.NamespacedMap<Color> getThemes()UsegetColors()instead.- Specified by:
getThemesin interfaceorg.kingdoms.constants.themes.ThemeContainer
-
setColor
public GroupColorChangeEvent setColor(org.kingdoms.constants.namespace.Namespace colorType, Color color, KingdomPlayer player) -
toString
- Overrides:
toStringin classCompressedSmartObject
-
getBank
public org.kingdoms.constants.economy.Balance getBank() -
getResourcePoints
public org.kingdoms.constants.economy.Balance getResourcePoints() -
getTaxes
@NotNull public @NotNull org.kingdoms.constants.namespace.NamespacedMap<org.kingdoms.utils.compilers.expressions.MathExpression> getTaxes() -
getTax
@Nullable public @Nullable org.kingdoms.utils.compilers.expressions.MathExpression getTax(@NotNull @NotNull org.kingdoms.constants.namespace.Namespace namespace) -
setTax
public void setTax(@NotNull @NotNull org.kingdoms.constants.namespace.Namespace namespace, org.kingdoms.utils.compilers.expressions.MathExpression value) -
getId
-
getName
-
setName
-
getNexus
-
setNexus
-
getHome
public @Nullable org.kingdoms.server.location.Location getHome()- Returns:
- an
Locationif not null.
-
setHome
public abstract org.kingdoms.events.general.LocationChangeEvent setHome(@Nullable org.kingdoms.server.location.Location home, @Nullable KingdomPlayer player) -
hasAttribute
public boolean hasAttribute(@Nullable Group other, org.kingdoms.constants.group.model.relationships.RelationAttribute attribute) -
getRelations
-
unsafeGetRelations
@Internal @Bookmark(UNSAFE) public @Bookmark(UNSAFE) @NonNull Map<UUID,KingdomRelation> unsafeGetRelations() -
setRelations
-
getRanks
-
setRanks
-
rename
public abstract @NonNull GroupRenameEvent rename(@NonNull String str, @Nullable KingdomPlayer renamer) -
getRelationshipRequests
-
setRelationshipRequests
public void setRelationshipRequests(@NonNull Map<UUID, KingdomRelationshipRequest> relationshipRequests) -
getBankruptcy
public double getBankruptcy() -
getOwnerId
-
hasOwner
public boolean hasOwner() -
isMember
-
getMembers
-
unsafeGetMembers
-
isFull
public final boolean isFull() -
countRelationships
-
setRelationShipWith
- Parameters:
relation- Removes the relationship entirely when null orKingdomRelation.NEUTRAL
-
isPermanent
public boolean isPermanent() -
setPermanent
public void setPermanent(boolean permanent) -
requiresInvite
public boolean requiresInvite() -
setRequiresInvite
public void setRequiresInvite(boolean requiresInvite) -
getSince
public long getSince() -
setSince
public void setSince(long since) -
hashCode
public int hashCode() -
equals
-
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
-
setTag
-
renameTag
public org.kingdoms.events.general.GroupRenameTagEvent renameTag(@Nullable String tag, @Nullable KingdomPlayer by) -
disband
-
disband
-
calculateTax
public abstract double calculateTax() -
getMaxMembers
public abstract int getMaxMembers() -
isHomePublic
public boolean isHomePublic() -
setPublicHome
public void setPublicHome(boolean publicHome) -
getPlayerMembers
-
getOnlineMembers
-
getKingdomPlayers
-
updateRankNode
-
getMailIds
-
getMails
-
addMessageContextEdits
- Specified by:
addMessageContextEditsin interfaceorg.kingdoms.locale.provider.CascadingMessageContextProvider- Overrides:
addMessageContextEditsin classKingdomsObject
-