package com.supaham.commons.bukkit.commands;
import com.google.common.base.Preconditions;
import com.sk89q.intake.parametric.ParametricException;
import com.supaham.commons.bukkit.CommonPlugin;
import com.supaham.commons.bukkit.commands.utils.CommandUtils;
import com.supaham.commons.bukkit.commands.utils.CommonCommandData;
import javax.annotation.Nonnull;
import ninja.miserable.exhaust.bukkit.command.CommandManager;
/**
* Handles the registration and invocation of commands.
*
* @since 0.1
*/
public class CommonCommandsManager extends CommandManager {
private final CommonPlugin plugin;
public CommonCommandsManager(@Nonnull CommonPlugin plugin) {
super(plugin);
this.plugin = plugin;
this.builder.addExceptionConverter(new CommonExceptionConverter(plugin));
this.injector.install(new CommonProviders());
Preconditions.checkNotNull(this.dispatcher, "dispatcher cannot be null.");
}
public CommonPlugin getPlugin() {
return plugin;
}
public void registerMethod(CommonCommandData.Builder dataBuilder) throws ParametricException {
dataBuilder.manager(this);
CommandUtils.registerMethod(dataBuilder.build());
}
}