Class KingdomBuilding<S extends KingdomBuildingStyle<?,?,?>>
java.lang.Object
org.kingdoms.constants.base.CompressedSmartObject
org.kingdoms.constants.base.KingdomsObject
org.kingdoms.constants.base.KeyedKingdomsObject<SimpleLocation>
org.kingdoms.constants.land.KingdomBlock
org.kingdoms.constants.land.abstraction.KingdomBuilding<S>
- Type Parameters:
S- The custom style of the building which can be configured.
- All Implemented Interfaces:
org.kingdoms.abstraction.Levellable,Keyed<SimpleLocation>,SmartObject,org.kingdoms.constants.group.model.logs.Loggable,org.kingdoms.data.Deserializable,org.kingdoms.data.Serializable,org.kingdoms.locale.provider.CascadingMessageContextProvider,org.kingdoms.locale.provider.MessageContextProvider
public abstract class KingdomBuilding<S extends KingdomBuildingStyle<?,?,?>>
extends KingdomBlock
implements org.kingdoms.abstraction.Levellable, org.kingdoms.data.Serializable, org.kingdoms.data.Deserializable
A building represents a set of blocks defined by
getBuilding() which can perform a set
of functions and can potentially be upgraded which might change its functionality and appearance.-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.kingdoms.constants.land.building.Buildingprotected doubleprotected @org.checkerframework.common.value.qual.IntRange(from=1L) intprotected final @NonNull SFields inherited from class org.kingdoms.constants.land.KingdomBlock
originFields inherited from class org.kingdoms.constants.base.KingdomsObject
lastLogsExpirationCheck, logs, metadata, statisticsFields inherited from class org.kingdoms.constants.base.CompressedSmartObject
objectState -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal voidaddMessageContextEdits(@NotNull MessagePlaceholderProvider context) addMessageContextEdits(MessagePlaceholderProvider context, Kingdom kingdom) booleanvoiddecreaseDurability(double amount) voiddeserialize(DeserializationContext<org.kingdoms.data.database.dataprovider.SectionableDataGetter> context) voiddisplayParticle(String particle) voiddisplayParticle(org.bukkit.Location location, String particle) voiddropItem(org.bukkit.Location location, org.kingdoms.constants.item.KingdomItemCreateSettings settings) booleandoubledoubleeval(@NonNull KeyedConfigAccessor option, @Nullable Kingdom kingdom, int lvl) @NonNull org.bukkit.block.BlockgetBlock()org.kingdoms.constants.land.building.Building@NotNull org.kingdoms.constants.land.building.info.BuildingSettingsgetBuildingSettings(int level) protected Map<org.kingdoms.server.location.BlockVector3, KingdomBlock> getDataMap(Land land) doubleorg.kingdoms.constants.item.KingdomItemgetItem(@NotNull org.kingdoms.constants.item.KingdomItemCreateSettings settings) final @NonNull SimpleLocationgetKey()intgetLevel()intgetMaxLevel(@Nullable Kingdom kingdom) com.cryptomorin.xseries.particles.ParticleDisplaygetParticleDisplay(ConfigPath path) getPlaceholderContext(Kingdom kingdom, int lvl) @NonNull SgetStyle()intgetUpgradeCost(@Nullable Kingdom kingdom) org.kingdoms.managers.land.distance.KingdomBuildingVisualizerinthashCode()booleanAlso used forTurretLandCacheOptimizationWatchervoidmodifyData(Land land, boolean adding) voidplace(org.kingdoms.events.items.KingdomItemPlaceContext context) voidvoidvoidplaySound(org.bukkit.Location location, ConfigPath sound) org.kingdoms.constants.land.building.BuildingConstructionprepareBuilding(org.kingdoms.constants.land.building.info.BuildingSchematic info) final KingdomItemBreakEvent<?> remove()@NonNull KingdomItemBreakEvent<?> remove(org.kingdoms.events.items.KingdomItemRemoveContext context) voidrepair()voidvoidserialize(SerializationContext<org.kingdoms.data.database.dataprovider.SectionableDataSetter> context) voidsetBuilding(org.kingdoms.constants.land.building.Building building) voidsetDurability(double durability) voidsetLevel(int level) toString()voidupdate()Updates the settings.org.kingdoms.events.items.KingdomBuildingUpgradeEventupgrade(int newLevel, long paidResourcePoints, KingdomPlayer by) Methods inherited from class org.kingdoms.constants.land.KingdomBlock
getKingdomBlockHandler, getLand, getOriginMethods 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
-
style
-
level
protected @org.checkerframework.common.value.qual.IntRange(from=1L) int level -
building
protected org.kingdoms.constants.land.building.Building building -
durability
protected double durability
-
-
Constructor Details
-
KingdomBuilding
-
-
Method Details
-
getKey
- Specified by:
getKeyin interfaceKeyed<S extends KingdomBuildingStyle<?,?, ?>>
-
hashCode
public int hashCode() -
equals
-
getStyle
-
getBlock
public @NonNull org.bukkit.block.Block getBlock() -
modifyData
- Specified by:
modifyDatain classKingdomBlock
-
getDataMap
-
remove
-
getContext
-
onBuildFinish
@OverridingMethodsMustInvokeSuper public void onBuildFinish() -
prepareBuilding
public org.kingdoms.constants.land.building.BuildingConstruction prepareBuilding(org.kingdoms.constants.land.building.info.BuildingSchematic info) -
place
@MustBeInvokedByOverriders public KingdomItemPlaceEvent<?> place(org.kingdoms.events.items.KingdomItemPlaceContext context) -
getVisualsManager
public org.kingdoms.managers.land.distance.KingdomBuildingVisualizer getVisualsManager() -
remove
@MustBeInvokedByOverriders public @NonNull KingdomItemBreakEvent<?> remove(org.kingdoms.events.items.KingdomItemRemoveContext context) -
update
public void update()Updates the settings. -
dropItem
public void dropItem(org.bukkit.Location location, org.kingdoms.constants.item.KingdomItemCreateSettings settings) -
serialize
@MustBeInvokedByOverriders public void serialize(SerializationContext<org.kingdoms.data.database.dataprovider.SectionableDataSetter> context) - Specified by:
serializein interfaceorg.kingdoms.data.Serializable- Parameters:
context- can be also aItemSerializationContextwhich implies that this building is being serialized into an in-game item.
-
deserialize
@MustBeInvokedByOverriders public void deserialize(DeserializationContext<org.kingdoms.data.database.dataprovider.SectionableDataGetter> context) - Specified by:
deserializein interfaceorg.kingdoms.data.Deserializable
-
isEnabled
public boolean isEnabled()Also used forTurretLandCacheOptimizationWatcher- Returns:
- true if this item is enabled in the config, otherwise false.
-
getDurability
public double getDurability() -
setDurability
public void setDurability(double durability) -
playSound
-
playSound
-
playSound
-
getBuildingSettings
@NotNull public @NotNull org.kingdoms.constants.land.building.info.BuildingSettings getBuildingSettings(int level) -
displayParticle
-
displayParticle
-
getParticleDisplay
-
getItem
public org.kingdoms.constants.item.KingdomItem getItem(@NotNull @NotNull org.kingdoms.constants.item.KingdomItemCreateSettings settings) -
addMessageContextEdits
@MustBeInvokedByOverriders public MessagePlaceholderProvider addMessageContextEdits(MessagePlaceholderProvider context, Kingdom kingdom) -
addMessageContextEdits
- Specified by:
addMessageContextEditsin interfaceorg.kingdoms.locale.provider.CascadingMessageContextProvider- Overrides:
addMessageContextEditsin classKingdomsObject
-
getLevel
public int getLevel()- Specified by:
getLevelin interfaceorg.kingdoms.abstraction.Levellable
-
setLevel
public void setLevel(int level) - Specified by:
setLevelin interfaceorg.kingdoms.abstraction.Levellable
-
upgrade
public org.kingdoms.events.items.KingdomBuildingUpgradeEvent upgrade(int newLevel, long paidResourcePoints, KingdomPlayer by) -
repair
public void repair() -
getMaxLevel
-
getPlaceholderContext
-
getUpgradeCost
-
eval
-
eval
-
ofSection
-
ofSection
-
ofSection
-
getBuilding
public org.kingdoms.constants.land.building.Building getBuilding() -
setBuilding
@Internal public void setBuilding(org.kingdoms.constants.land.building.Building building) -
canFunction
public boolean canFunction() -
requireRepair
public void requireRepair() -
decreaseDurability
public void decreaseDurability(double amount) -
toString
- Overrides:
toStringin classCompressedSmartObject
-