package com.rota.ee3help.commands;
import com.rota.ee3help.DataTracker;
import com.rota.ee3help.Helper;
import net.minecraft.command.ICommandSender;
import net.minecraft.util.EnumChatFormatting;
public class CommandData extends CommandModifyBase
{
final static int MODE_WORLD = 0;
final static int MODE_USER = 1;
@Override
public String getCommandName()
{
return "data";
}
@Override
public String getCommandUsage(ICommandSender cs)
{
return "data";
}
public void list(ICommandSender cs, int page)
{
DataTracker.buildList();
DataTracker.listAccurate = true;
int pageLength = 9;
int pages = 0;
pages = (int) Math.ceil(DataTracker.dataList.size()/(double) pageLength);
if(page < 0)
{
Helper.toChat(cs, EnumChatFormatting.BLUE + "Pages: " + pages + ", list <page>");
return;
}
if(pages == 0) { Helper.toChat(cs, EnumChatFormatting.GOLD + "No Entries."); return; }
page = (page < 1) ? 1 : page;
page = (page > pages) ? pages : page;
Helper.toChat(cs, EnumChatFormatting.GRAY + "---- Page "+(page)+"/"+pages+" ----");
int index = (page * pageLength)-pageLength;
for(int i = index; (i < index + pageLength) && (i < DataTracker.dataList.size()); i++)
{
Helper.toChat(cs, EnumChatFormatting.GOLD
+ "(" +String.format("%4s", i)+") "
+ DataTracker.data.get(DataTracker.dataList.get(i)));
}
}
@Override
public void processCommand(ICommandSender cs, String[] args)
{
try
{
switch(args.length)
{
case 0:
Helper.toChatErr(cs, "data list <page>");
Helper.toChatErr(cs, "data import <index>");
Helper.toChatErr(cs, "data export");
break;
case 1:
if(args[0].equalsIgnoreCase("list"))
list(cs,-1);
else if(args[0].equalsIgnoreCase("import"))
{
Helper.toChatErr(cs, "data import <index>");
}
else if(args[0].equalsIgnoreCase("export"))
{
DataTracker.exportData();
Helper.toChat(cs, EnumChatFormatting.GREEN + "(!) Exported Data");
}
break;
case 2:
if(args[0].equalsIgnoreCase("list"))
list(cs, Integer.parseInt(args[1]));
else if(args[0].equalsIgnoreCase("import"))
{
if(DataTracker.listAccurate)
{
DataTracker.importData(Integer.parseInt(args[1]));
Helper.toChat(cs, EnumChatFormatting.GREEN + "(!) Imported Data");
new CommandForceRegen().processCommand(cs, new String[] {});
}
else
Helper.toChatErr(cs, "Indices may be innacurate, run 'data list' first. ");
}
break;
default:
Helper.toChatErr(cs, "Invalid number of arguments for operation.");
Helper.toChatErr(cs, "data list <page>");
Helper.toChatErr(cs, "data import <index>");
Helper.toChatErr(cs, "data export");
}
}
catch (NumberFormatException e)
{
Helper.toChatErr(cs, "Non-number in numeric field.");
}
}
}