Interface LoadRequirement
- All Known Implementing Classes:
LoadRequirement.AvailableComplementRequirement
,LoadRequirement.MultiLoadRequirement
,LoadRequirement.NoneLoadRequirement
,LoadRequirement.PlatformRequirement
public sealed interface LoadRequirement
permits LoadRequirement.NoneLoadRequirement, LoadRequirement.AvailableComplementRequirement, LoadRequirement.MultiLoadRequirement, LoadRequirement.PlatformRequirement
This class specifies the conditions that must be met
in order to load an
Expansion
from an ExpansionProvider
.-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final record
AvailableComplementRequirementstatic final record
MultiLoadRequirementstatic enum
NoneLoadRequirementstatic final record
PlatformLoadRequirement -
Method Summary
Static MethodsModifier and TypeMethodDescriptionstatic LoadRequirement
allOf
(LoadRequirement... requirements) Multiple requirement, in case an expansion needs to depend on a platform as well as one or more add-ons that are installed.static LoadRequirement
none()
It means that there is no requirement to load an expansion.static LoadRequirement
Requirement that the current execution be on a specific platform.static LoadRequirement
requiredComplement
(String name, String... aliases) Requirement for a complement, whether a plugin or mod, to be present in order for an expansion to be loaded.
The ability to provide multiple strings is provided because names may vary on some platforms.
-
Method Details
-
none
It means that there is no requirement to load an expansion.- Returns:
- a LoadRequirement that does not perform any validation
-
requiredComplement
Requirement for a complement, whether a plugin or mod, to be present in order for an expansion to be loaded.
The ability to provide multiple strings is provided because names may vary on some platforms. For example, Velocity requires plugin IDs to be lowercase, such asminiplaceholders
, while Paper can contain uppercase letters, such asMiniPlaceholders
.- Parameters:
name
- the principal name of this complementaliases
- the platform aliases of a complement- Returns:
- a load requirement that checks for an available complement
-
allOf
Multiple requirement, in case an expansion needs to depend on a platform as well as one or more add-ons that are installed.- Parameters:
requirements
- the load requirements- Returns:
- a load requirement of many load requirements
-
platform
Requirement that the current execution be on a specific platform.- Parameters:
platforms
- the supported platforms- Returns:
- a load requirement that checks for a supported platform
-