package joshie.harvest.core.commands;
import joshie.harvest.core.lib.HFModInfo;
import joshie.harvest.core.util.annotations.HFEvents;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraftforge.event.CommandEvent;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.server.command.CommandTreeBase;
import javax.annotation.Nonnull;
@HFEvents
public class CommandManager extends CommandTreeBase {
public static final CommandManager INSTANCE = new CommandManager();
@Override
@Nonnull
public String getCommandName() {
return HFModInfo.COMMANDNAME;
}
@SubscribeEvent
public void onCommandSend(CommandEvent event) throws CommandException {
//Update the calendar
if (VanillaCommands.isHandled(event.getCommand().getCommandName())) {
String name = event.getCommand().getCommandName();
try {
if (name.equals("time") && VanillaCommands.executeVanillaTime(FMLCommonHandler.instance().getMinecraftServerInstance(), event.getSender(), event.getParameters())) {
event.setCanceled(true);
} else if (name.equals("weather") && VanillaCommands.executeVanillaWeather(FMLCommonHandler.instance().getMinecraftServerInstance(), event.getSender(), event.getParameters())) {
event.setCanceled(true);
} else if (name.equals("toggledownfall") && VanillaCommands.executeToggleDownfall(FMLCommonHandler.instance().getMinecraftServerInstance(), event.getSender(), event.getParameters())) {
event.setCanceled(true);
}
} catch (Exception ignored) {}
}
}
@Override
@Nonnull
public String getCommandUsage(@Nonnull ICommandSender sender) {
return "/" + getCommandName() + " help";
}
public enum CommandLevel {
ANYONE, OP_BYPASS_PROTECTION, OP_AFFECT_GAMEPLAY, OP_BAN_PLAYERS, OP_STOP_SERVER
}
}