package joshie.harvest.plugins.crafttweaker.command;
import joshie.harvest.api.npc.NPC;
import joshie.harvest.core.commands.CommandManager.CommandLevel;
import minetweaker.MineTweakerAPI;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.text.TextComponentString;
import javax.annotation.Nonnull;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class HFCommandNPC extends CommandBase {
@Override
@Nonnull
public String getCommandName() {
return "npcs";
}
@Override
@Nonnull
public String getCommandUsage(@Nonnull ICommandSender sender) {
return "/hf npcs";
}
@Override
public int getRequiredPermissionLevel() {
return CommandLevel.ANYONE.ordinal();
}
@Override
public void execute(@Nonnull MinecraftServer server, @Nonnull ICommandSender sender, @Nonnull String[] parameters) throws CommandException {
MineTweakerAPI.logCommand("NPCs: \n" + this.getShopList().toString().replace("[", "").replace("]", "").replace(", ", "\n"));
sender.addChatMessage(new TextComponentString("List generated; see minetweaker.log in your minecraft dir"));
}
private List<String> getShopList() {
List<String> list = NPC.REGISTRY.values().stream().map(npc -> npc.getLocalizedName() + " = " + npc.getResource()).collect(Collectors.toList());
Collections.sort(list, String::compareTo);
return list;
}
}