Interface CommandContext
-
- All Superinterfaces:
Contextual
,Subject
,SubjectProxy
- All Known Subinterfaces:
CommandContext.Builder
public interface CommandContext extends SubjectProxy
TheCommandContext
contains the parsed arguments for a command, and any other information that might be important when executing a command.For information about the cause of the command, the
CommandCause
is available (seecause()
. Some popular tasks that operate on theCommandCause
are also directly available on this context, namely permission checks (viaSubjectProxy
) and sending a message to theCommandCause
'sAudience
(viasendMessage(net.kyori.adventure.identity.Identified, net.kyori.adventure.text.Component)
).
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
CommandContext.Builder
A builder for creating this context.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <T> java.util.Collection<? extends T>
all(Parameter.Key<T> key)
Gets all values for the given argument.<T> java.util.Collection<? extends T>
all(Parameter.Value<T> parameter)
Gets all values for the given argument.CommandCause
cause()
Gets theCommandCause
associated with this context.java.util.Optional<Command.Parameterized>
executedCommand()
Gets theCommand.Parameterized
that is being executed, if it exists.int
flagInvocationCount(java.lang.String flagKey)
Returns how many times a given flag was invoked for this command.int
flagInvocationCount(Flag flag)
Returns how many times a givenFlag
was invoked for this command.boolean
hasAny(Parameter.Key<?> key)
Returns whether this context has any value for the given argument key.boolean
hasAny(Parameter.Value<?> parameter)
Returns whether this context has any value for the given argument key.boolean
hasFlag(java.lang.String flagAlias)
Gets if a flag with given alias was specified at least once.boolean
hasFlag(Flag flag)
Gets if the given flag was specified once.<T> java.util.Optional<T>
one(Parameter.Key<T> key)
Gets the value for the given key if the key has only one value.<T> java.util.Optional<T>
one(Parameter.Value<T> parameter)
Gets the value for the given key if the key has only one value.<T> T
requireOne(Parameter.Key<T> key)
Gets the value for the given key if the key has only one value, otherwise, throws aNoSuchElementException
.<T> T
requireOne(Parameter.Value<T> parameter)
Gets the value for the given key if the key has only one value, otherwise, throws aNoSuchElementException
.void
sendMessage(Identified source, Component message)
Sends a message viaCommandCause.audience()
void
sendMessage(Identity source, Component message)
Sends a message viaCommandCause.audience()
-
Methods inherited from interface org.spongepowered.api.service.permission.SubjectProxy
associatedObject, asSubjectReference, containingCollection, contextCause, friendlyIdentifier, hasPermission, hasPermission, hasPermission, identifier, isChildOf, isChildOf, isChildOf, isSubjectDataPersisted, option, option, option, parents, parents, parents, permissionValue, permissionValue, permissionValue, subject, subjectData, transientSubjectData
-
-
-
-
Method Detail
-
executedCommand
java.util.Optional<Command.Parameterized> executedCommand()
Gets theCommand.Parameterized
that is being executed, if it exists.- Returns:
- The
Command.Parameterized
.
-
cause
CommandCause cause()
Gets theCommandCause
associated with this context.- Returns:
- The
CommandCause
-
hasFlag
boolean hasFlag(java.lang.String flagAlias)
Gets if a flag with given alias was specified at least once.If the flag has multiple aliases, (for example,
-f
and--flag
, passingf
orflag
to this method will return the same result, regardless of the alias specified by the user.- Parameters:
flagAlias
- The flag's alias (without a prefixed dash)- Returns:
- If the flag was specified
-
hasFlag
boolean hasFlag(Flag flag)
Gets if the given flag was specified once.- Parameters:
flag
- TheFlag
- Returns:
- If the flag was specified
-
flagInvocationCount
int flagInvocationCount(java.lang.String flagKey)
Returns how many times a given flag was invoked for this command.If the flag has multiple aliases, (for example,
-f
and--flag
, passingf
orflag
to this method will return the same result, regardless of the alias specified by the user.- Parameters:
flagKey
- The flag's alias (without a prefixed dash)- Returns:
- The number of times the flag was specified
-
flagInvocationCount
int flagInvocationCount(Flag flag)
Returns how many times a givenFlag
was invoked for this command.- Parameters:
flag
- TheFlag
- Returns:
- The number of times the flag was specified
-
hasAny
boolean hasAny(Parameter.Value<?> parameter)
Returns whether this context has any value for the given argument key.- Parameters:
parameter
- theParameter
associated with the argument- Returns:
- whether there are any values present
-
hasAny
boolean hasAny(Parameter.Key<?> key)
Returns whether this context has any value for the given argument key.- Parameters:
key
- The key to look up- Returns:
- whether there are any values present
-
one
<T> java.util.Optional<T> one(Parameter.Value<T> parameter) throws java.lang.IllegalArgumentException
Gets the value for the given key if the key has only one value.- Type Parameters:
T
- the expected type of the argument- Parameters:
parameter
- theParameter
associated with the argument- Returns:
- the argument
- Throws:
java.lang.IllegalArgumentException
- if more than one value for the key was found
-
one
<T> java.util.Optional<T> one(Parameter.Key<T> key) throws java.lang.IllegalArgumentException
Gets the value for the given key if the key has only one value.- Type Parameters:
T
- the expected type of the argument- Parameters:
key
- the key to get- Returns:
- the argument
- Throws:
java.lang.IllegalArgumentException
- if more than one value for the key was found
-
requireOne
<T> T requireOne(Parameter.Value<T> parameter) throws java.util.NoSuchElementException, java.lang.IllegalArgumentException
Gets the value for the given key if the key has only one value, otherwise, throws aNoSuchElementException
.- Type Parameters:
T
- the expected type of the argument- Parameters:
parameter
- theParameter
associated with the argument- Returns:
- the argument
- Throws:
java.util.NoSuchElementException
- if no value for the key was foundjava.lang.IllegalArgumentException
- if more than one value for the key was found
-
requireOne
<T> T requireOne(Parameter.Key<T> key) throws java.util.NoSuchElementException, java.lang.IllegalArgumentException
Gets the value for the given key if the key has only one value, otherwise, throws aNoSuchElementException
.- Type Parameters:
T
- the expected type of the argument- Parameters:
key
- the key to get- Returns:
- the argument
- Throws:
java.util.NoSuchElementException
- if no value for the key was foundjava.lang.IllegalArgumentException
- if more than one value for the key was found
-
all
<T> java.util.Collection<? extends T> all(Parameter.Value<T> parameter)
Gets all values for the given argument. May return an empty list if no values are present.- Type Parameters:
T
- the expected type of the argument- Parameters:
parameter
- theParameter
associated with the argument- Returns:
- the argument
-
all
<T> java.util.Collection<? extends T> all(Parameter.Key<T> key)
Gets all values for the given argument. May return an empty list if no values are present.- Type Parameters:
T
- the type of value to get- Parameters:
key
- The key to get values for- Returns:
- the collection of all values
-
sendMessage
void sendMessage(Identified source, Component message)
Sends a message viaCommandCause.audience()
- Parameters:
source
- TheIdentified
that is the sender of the messagemessage
- The message to send- See Also:
Audience.sendMessage(Identified, Component)
-
sendMessage
void sendMessage(Identity source, Component message)
Sends a message viaCommandCause.audience()
- Parameters:
source
- TheIdentity
of the sender of the messagemessage
- The message to send- See Also:
Audience.sendMessage(Identity, Component)
-
-