Package cloud.commandframework.context
Class CommandContext<C>
- java.lang.Object
-
- cloud.commandframework.context.CommandContext<C>
-
- Type Parameters:
C- Command sender type
public final class CommandContext<C> extends java.lang.ObjectCommand context used to assist in the parsing of commands
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classCommandContext.ArgumentTimingUsed to track performance metrics related to command parsing.
-
Constructor Summary
Constructors Constructor Description CommandContext(boolean suggestions, @NonNull C commandSender, @NonNull CaptionRegistry<C> captionRegistry)Create a new command context instanceCommandContext(@NonNull C commandSender, @NonNull CaptionRegistry<C> captionRegistry)Create a new command context instance
-
Method Summary
Modifier and Type Method Description @NonNull CommandContext.ArgumentTimingcreateTiming(@NonNull CommandArgument<C,?> argument)Create an argument timing for a specific argument@NonNull FlagContextflags()Get the associatedFlagContextinstance@NonNull java.lang.StringformatMessage(@NonNull Caption caption, @NonNull CaptionVariable... variables)Format a caption<T> @NonNull Tget(@NonNull CommandArgument<C,T> argument)Get a required argument from the context.<T> @NonNull Tget(@NonNull java.lang.String key)Get a required argument from the context.@NonNull java.util.Map<CommandArgument<@NonNull C,?>,CommandContext.ArgumentTiming>getArgumentTimings()Get an immutable view of the argument timings map<T> @NonNull java.util.Optional<T>getOptional(@NonNull CommandArgument<C,T> argument)Get a value from its key.<T> @NonNull java.util.Optional<T>getOptional(@NonNull java.lang.String key)Get a value from its key.<T> @Nullable TgetOrDefault(@NonNull CommandArgument<C,T> argument, @Nullable T defaultValue)Get a value if it exists, else return the provided default value<T> @Nullable TgetOrDefault(@NonNull java.lang.String key, @Nullable T defaultValue)Get a value if it exists, else return the provided default value@NonNull java.util.LinkedList<@NonNull java.lang.String>getRawInput()Get the raw input.@NonNull java.lang.StringgetRawInputJoined()Get the raw input as a joined string@NonNull CgetSender()Get the sender that executed the commandbooleanisSuggestions()Check if this context was created for tab completion purposesvoidremove(@NonNull java.lang.String key)Remove a stored value from the context<T> voidstore(@NonNull java.lang.String key, @NonNull T value)Store a value in the context map.
-
-
-
Constructor Detail
-
CommandContext
public CommandContext(@NonNull C commandSender, @NonNull CaptionRegistry<C> captionRegistry)
Create a new command context instance- Parameters:
commandSender- Sender of the commandcaptionRegistry- Caption registry
-
CommandContext
public CommandContext(boolean suggestions, @NonNull C commandSender, @NonNull CaptionRegistry<C> captionRegistry)Create a new command context instance- Parameters:
suggestions- Whether or not the context is created for command suggestionscommandSender- Sender of the commandcaptionRegistry- Caption registry
-
-
Method Detail
-
formatMessage
public @NonNull java.lang.String formatMessage(@NonNull Caption caption, @NonNull CaptionVariable... variables)
Format a caption- Parameters:
caption- Caption keyvariables- Replacements- Returns:
- Formatted message
-
getSender
public @NonNull C getSender()
Get the sender that executed the command- Returns:
- Command sender
-
isSuggestions
public boolean isSuggestions()
Check if this context was created for tab completion purposes- Returns:
trueif this context is requesting suggestions, elsefalse
-
store
public <T> void store(@NonNull java.lang.String key, @NonNull T value)Store a value in the context map. This will overwrite any existing value stored with the same key- Type Parameters:
T- Value type- Parameters:
key- Keyvalue- Value
-
getOptional
public <T> @NonNull java.util.Optional<T> getOptional(@NonNull java.lang.String key)
Get a value from its key. Will returnOptional.empty()if no value is stored with the given key- Type Parameters:
T- Value type- Parameters:
key- Key- Returns:
- Value
-
getOptional
public <T> @NonNull java.util.Optional<T> getOptional(@NonNull CommandArgument<C,T> argument)
Get a value from its key. Will returnOptional.empty()if no value is stored with the given key- Type Parameters:
T- Value type- Parameters:
argument- Argument- Returns:
- Value
-
remove
public void remove(@NonNull java.lang.String key)
Remove a stored value from the context- Parameters:
key- Key to remove
-
get
public <T> @NonNull T get(@NonNull java.lang.String key)
Get a required argument from the context. This will thrown an exception if there's no value associated with the given key- Type Parameters:
T- Argument type- Parameters:
key- Argument key- Returns:
- Argument
- Throws:
java.lang.NullPointerException- If no such argument is stored
-
get
public <T> @NonNull T get(@NonNull CommandArgument<C,T> argument)
Get a required argument from the context. This will thrown an exception if there's no value associated with the given argument- Type Parameters:
T- Argument type- Parameters:
argument- The argument- Returns:
- Stored value
- Throws:
java.lang.NullPointerException- If no such value is stored
-
getOrDefault
public <T> @Nullable T getOrDefault(@NonNull CommandArgument<C,T> argument, @Nullable T defaultValue)
Get a value if it exists, else return the provided default value- Type Parameters:
T- Argument type- Parameters:
argument- ArgumentdefaultValue- Default value- Returns:
- Stored value, or supplied default value
-
getOrDefault
public <T> @Nullable T getOrDefault(@NonNull java.lang.String key, @Nullable T defaultValue)Get a value if it exists, else return the provided default value- Type Parameters:
T- Argument type- Parameters:
key- Argument keydefaultValue- Default value- Returns:
- Argument, or supplied default value
-
getRawInput
public @NonNull java.util.LinkedList<@NonNull java.lang.String> getRawInput()
Get the raw input. This should only be used whenisSuggestions()istrue- Returns:
- Raw input in token form
-
getRawInputJoined
public @NonNull java.lang.String getRawInputJoined()
Get the raw input as a joined string- Returns:
getRawInput()joined with" "as the delimiter- Since:
- 1.1.0
-
createTiming
public @NonNull CommandContext.ArgumentTiming createTiming(@NonNull CommandArgument<C,?> argument)
Create an argument timing for a specific argument- Parameters:
argument- Argument- Returns:
- Created timing instance
-
getArgumentTimings
public @NonNull java.util.Map<CommandArgument<@NonNull C,?>,CommandContext.ArgumentTiming> getArgumentTimings()
Get an immutable view of the argument timings map- Returns:
- Argument timings
-
flags
public @NonNull FlagContext flags()
Get the associatedFlagContextinstance- Returns:
- Flag context
-
-