Class BaseBrigadierManager<S extends studio.mevera.imperat.context.Source>

java.lang.Object
studio.mevera.imperat.BaseBrigadierManager<S>
All Implemented Interfaces:
BrigadierManager<S>

public abstract non-sealed class BaseBrigadierManager<S extends studio.mevera.imperat.context.Source> extends Object implements BrigadierManager<S>
  • Field Details

    • dispatcher

      protected final studio.mevera.imperat.Imperat<S extends studio.mevera.imperat.context.Source> dispatcher
    • resolvers

      protected final List<ArgumentTypeResolver> resolvers
  • Constructor Details

    • BaseBrigadierManager

      protected BaseBrigadierManager(studio.mevera.imperat.Imperat<S> dispatcher)
  • Method Details

    • parseCommandIntoNode

      @NotNull public <T> @NotNull com.mojang.brigadier.tree.LiteralCommandNode<T> parseCommandIntoNode(@NotNull @NotNull studio.mevera.imperat.command.Command<S> command)
      Description copied from interface: BrigadierManager
      Parses the registered Command to brigadier node
      Specified by:
      parseCommandIntoNode in interface BrigadierManager<S extends studio.mevera.imperat.context.Source>
      Returns:
      the parsed node
    • registerArgumentResolver

      public <T> void registerArgumentResolver(Class<T> type, ArgumentTypeResolver argumentTypeResolver)
      Description copied from interface: BrigadierManager
      Registers the argument valueType to its class valueType
      Specified by:
      registerArgumentResolver in interface BrigadierManager<S extends studio.mevera.imperat.context.Source>
      Type Parameters:
      T - the valueType parameter for the valueType.
      Parameters:
      type - the valueType to register to the value-valueType obj
      argumentTypeResolver - the value valueType resolver
    • registerArgumentResolver

      public void registerArgumentResolver(ArgumentTypeResolver argumentTypeResolver)
      Description copied from interface: BrigadierManager
      Registers the argument valueType resolver
      Specified by:
      registerArgumentResolver in interface BrigadierManager<S extends studio.mevera.imperat.context.Source>
      Parameters:
      argumentTypeResolver - the value valueType resolver
    • getArgumentType

      @NotNull public @NotNull com.mojang.brigadier.arguments.ArgumentType<?> getArgumentType(studio.mevera.imperat.command.parameters.CommandParameter<S> parameter)
      Description copied from interface: BrigadierManager
      Fetches the argument valueType from the parameter
      Specified by:
      getArgumentType in interface BrigadierManager<S extends studio.mevera.imperat.context.Source>
      Parameters:
      parameter - the parameter
      Returns:
      the ArgumentType for the CommandParameter