package joshie.harvest.calendar.command;
import joshie.harvest.api.calendar.Season;
import joshie.harvest.calendar.CalendarHelper;
import joshie.harvest.calendar.HFCalendar;
import joshie.harvest.calendar.data.CalendarServer;
import joshie.harvest.core.HFTrackers;
import joshie.harvest.core.commands.CommandManager.CommandLevel;
import joshie.harvest.core.commands.HFCommand;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.server.MinecraftServer;
import org.apache.commons.lang3.StringUtils;
import javax.annotation.Nonnull;
@HFCommand
@SuppressWarnings("unused")
public class HFCommandSeason extends CommandBase {
@Override
@Nonnull
public String getCommandName() {
return "season";
}
@Override
@Nonnull
public String getCommandUsage(@Nonnull ICommandSender sender) {
return "/hf season <spring|summer|autumn|winter>";
}
@Override
public int getRequiredPermissionLevel() {
return CommandLevel.OP_AFFECT_GAMEPLAY.ordinal();
}
@Override
public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] parameters) throws CommandException {
if (parameters.length == 1) {
for (Season season : Season.values()) {
if (StringUtils.equalsIgnoreCase(season.name(), parameters[0])) {
CalendarServer calendar = HFTrackers.getCalendar(sender.getEntityWorld());
int day = calendar.getDate().getDay();
int year = calendar.getDate().getYear() + 1;
long leftover = server.worldServers[0].getWorldTime() % HFCalendar.TICKS_PER_DAY;
CalendarHelper.setWorldTime(server, CalendarHelper.getTime(day, season, year) + leftover);
}
}
} else throw new WrongUsageException(getCommandUsage(sender));
}
}