// Path: src/main/java/eureka/api/EurekaAPI.java
// public class EurekaAPI {
// 
// 	public static IEurekAPI API;
// }
// 
// Path: src/main/java/eureka/api/IEurekaInfo.java
// public interface IEurekaInfo {
// 
// 	String getCategory();
// 
// 	int getMaxProgress();
// 
// 	ItemStack getDisplayStack();
// 
// 	String getName();
// 
// 	List<String> getRequiredResearch();
// }


import java.util.ArrayList;
import java.util.List;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import eureka.api.EurekaAPI;
import eureka.api.IEurekaInfo;
package eureka.core;



/**
 * Copyright (c) 2014-2015, AEnterprise
 * http://buildcraftadditions.wordpress.com/
 * Eureka is distributed under the terms of GNU GPL v3.0
 * Please check the contents of the license located in
 * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
 */
public class EurekaCommand extends CommandBase {

	@Override
	public String getCommandName() {
		return "eureka";
	}

	@Override
	public String getCommandUsage(ICommandSender sender) {
		return "type '/eureka help' for possible commands and syntax";
	}

	@Override
	public void processCommand(ICommandSender sender, String[] args) {
		if (args == null || args.length == 0) {
			sender.addChatMessage(new ChatComponentText(getCommandUsage(sender)));
			return;
		}
		if (args[0].equalsIgnoreCase("help")) {
			sender.addChatMessage(new ChatComponentText("Eureka Command help:"));
			sender.addChatMessage(new ChatComponentText("/eureka lock <playername> <key>  : locks the research identified by the key for the specified player"));
			sender.addChatMessage(new ChatComponentText("/eureka unlock <playername> <key>  : unlocks the research identified by the key for the specified player"));
			sender.addChatMessage(new ChatComponentText("/eureka keylist  : lists all registered keys and there localized titles"));
			return;
		}

		if (args[0].equalsIgnoreCase("keylist")) {
// Path: src/main/java/eureka/api/EurekaAPI.java
// public class EurekaAPI {
// 
// 	public static IEurekAPI API;
// }
// 
// Path: src/main/java/eureka/api/IEurekaInfo.java
// public interface IEurekaInfo {
// 
// 	String getCategory();
// 
// 	int getMaxProgress();
// 
// 	ItemStack getDisplayStack();
// 
// 	String getName();
// 
// 	List<String> getRequiredResearch();
// }


// Path: src/main/java/eureka/core/EurekaCommand.java
import java.util.ArrayList;
import java.util.List;
import net.minecraft.command.CommandBase;
import net.minecraft.command.ICommandSender;
import net.minecraft.command.WrongUsageException;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import eureka.api.EurekaAPI;
import eureka.api.IEurekaInfo;

package eureka.core;



/**
 * Copyright (c) 2014-2015, AEnterprise
 * http://buildcraftadditions.wordpress.com/
 * Eureka is distributed under the terms of GNU GPL v3.0
 * Please check the contents of the license located in
 * http://buildcraftadditions.wordpress.com/wiki/licensing-stuff/
 */
public class EurekaCommand extends CommandBase {

	@Override
	public String getCommandName() {
		return "eureka";
	}

	@Override
	public String getCommandUsage(ICommandSender sender) {
		return "type '/eureka help' for possible commands and syntax";
	}

	@Override
	public void processCommand(ICommandSender sender, String[] args) {
		if (args == null || args.length == 0) {
			sender.addChatMessage(new ChatComponentText(getCommandUsage(sender)));
			return;
		}
		if (args[0].equalsIgnoreCase("help")) {
			sender.addChatMessage(new ChatComponentText("Eureka Command help:"));
			sender.addChatMessage(new ChatComponentText("/eureka lock <playername> <key>  : locks the research identified by the key for the specified player"));
			sender.addChatMessage(new ChatComponentText("/eureka unlock <playername> <key>  : unlocks the research identified by the key for the specified player"));
			sender.addChatMessage(new ChatComponentText("/eureka keylist  : lists all registered keys and there localized titles"));
			return;
		}

		if (args[0].equalsIgnoreCase("keylist")) {
			for (IEurekaInfo info : EurekaAPI.API.getAllKeys()) {