Minor improvements for AE2 recipe logging
This commit is contained in:
parent
152fa40b9a
commit
a0a8f2f26e
4 changed files with 87 additions and 48 deletions
|
@ -4,7 +4,7 @@ import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.api.player.IPlayer;
|
import minetweaker.api.player.IPlayer;
|
||||||
import minetweaker.api.server.ICommandFunction;
|
import minetweaker.api.server.ICommandFunction;
|
||||||
import modtweaker2.commands.EntityMappingLogger;
|
import modtweaker2.commands.EntityMappingLogger;
|
||||||
import modtweaker2.mods.appeng.Commands.AppliedEnergisticsLogger;
|
import modtweaker2.mods.appeng.commands.AppliedEnergisticsLogger;
|
||||||
import modtweaker2.mods.auracascade.aura.AuraLogger;
|
import modtweaker2.mods.auracascade.aura.AuraLogger;
|
||||||
import modtweaker2.mods.botania.commands.BotaniaBrewLogger;
|
import modtweaker2.mods.botania.commands.BotaniaBrewLogger;
|
||||||
import modtweaker2.mods.botania.commands.BotaniaOrechidLogger;
|
import modtweaker2.mods.botania.commands.BotaniaOrechidLogger;
|
||||||
|
@ -34,7 +34,7 @@ public class Commands {
|
||||||
MineTweakerAPI.server.addMineTweakerCommand("entities", new String[] { "/minetweaker entities", " Outputs a list of entities class mapping keys and the entity IDs" }, new EntityMappingLogger());
|
MineTweakerAPI.server.addMineTweakerCommand("entities", new String[] { "/minetweaker entities", " Outputs a list of entities class mapping keys and the entity IDs" }, new EntityMappingLogger());
|
||||||
|
|
||||||
if (TweakerPlugin.isLoaded("appliedenergistics2-core")) {
|
if (TweakerPlugin.isLoaded("appliedenergistics2-core")) {
|
||||||
MineTweakerAPI.server.addMineTweakerCommand("ae2", new String[] {"/minetweaker ae2 ([Grinder/Inscriber])", " Outputs a list of all Applied Energistics 2 recipes."}, new AppliedEnergisticsLogger());
|
MineTweakerAPI.server.addMineTweakerCommand("ae2", new String[] {"/minetweaker ae2 [FILTER]", " Outputs a list of all Applied Energistics 2 recipes."}, new AppliedEnergisticsLogger());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TweakerPlugin.isLoaded("Mekanism")) {
|
if (TweakerPlugin.isLoaded("Mekanism")) {
|
||||||
|
|
|
@ -1,8 +1,12 @@
|
||||||
package modtweaker2.helpers;
|
package modtweaker2.helpers;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.ListIterator;
|
||||||
|
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.MineTweakerImplementationAPI;
|
import minetweaker.MineTweakerImplementationAPI;
|
||||||
import minetweaker.api.player.IPlayer;
|
import minetweaker.api.player.IPlayer;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
|
||||||
public class LogHelper {
|
public class LogHelper {
|
||||||
public static void logPrinted(IPlayer player) {
|
public static void logPrinted(IPlayer player) {
|
||||||
|
@ -37,4 +41,44 @@ public class LogHelper {
|
||||||
public static void logInfo(String message) {
|
public static void logInfo(String message) {
|
||||||
MineTweakerAPI.logInfo("[ModTweaker2] " + message);
|
MineTweakerAPI.logInfo("[ModTweaker2] " + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getArrayDescription(List<ItemStack> stacks) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append('[');
|
||||||
|
for(ItemStack stack : stacks) {
|
||||||
|
sb.append(InputHelper.getStackDescription(stack)).append(", ");
|
||||||
|
}
|
||||||
|
sb.setLength(sb.length() - 2);
|
||||||
|
sb.append(']');
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<String> toLowerCase(List<String> stringList) {
|
||||||
|
ListIterator<String> iterator = stringList.listIterator();
|
||||||
|
|
||||||
|
while(iterator.hasNext()) {
|
||||||
|
iterator.set(iterator.next().toLowerCase());
|
||||||
|
}
|
||||||
|
|
||||||
|
return stringList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String join(List<String> list, String conjunction) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
|
if(conjunction == null) {
|
||||||
|
conjunction = ", ";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(list != null && !list.isEmpty()) {
|
||||||
|
for(String string : list) {
|
||||||
|
sb.append(string).append(conjunction);
|
||||||
|
}
|
||||||
|
|
||||||
|
sb.setLength(sb.length() - conjunction.length());
|
||||||
|
}
|
||||||
|
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,28 +1,35 @@
|
||||||
package modtweaker2.mods.appeng.Commands;
|
package modtweaker2.mods.appeng.commands;
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
import minetweaker.MineTweakerImplementationAPI;
|
import minetweaker.MineTweakerImplementationAPI;
|
||||||
import minetweaker.api.player.IPlayer;
|
import minetweaker.api.player.IPlayer;
|
||||||
import minetweaker.api.server.ICommandFunction;
|
import minetweaker.api.server.ICommandFunction;
|
||||||
import modtweaker2.helpers.InputHelper;
|
import modtweaker2.helpers.InputHelper;
|
||||||
import net.minecraft.item.ItemStack;
|
import modtweaker2.helpers.LogHelper;
|
||||||
import appeng.api.AEApi;
|
import appeng.api.AEApi;
|
||||||
import appeng.api.features.IGrinderEntry;
|
import appeng.api.features.IGrinderEntry;
|
||||||
import appeng.api.features.IInscriberRecipe;
|
import appeng.api.features.IInscriberRecipe;
|
||||||
|
|
||||||
public class AppliedEnergisticsLogger implements ICommandFunction {
|
public class AppliedEnergisticsLogger implements ICommandFunction {
|
||||||
|
|
||||||
@Override
|
private static final List<String> validArguments = new LinkedList<String>();
|
||||||
public void execute(String[] arguments, IPlayer player) {
|
|
||||||
List<String> args = new LinkedList<String>();
|
|
||||||
|
|
||||||
for(String arg : arguments) {
|
static {
|
||||||
args.add(arg.toLowerCase());
|
validArguments.add("grinder");
|
||||||
|
validArguments.add("inscriber");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(String[] arguments, IPlayer player) {
|
||||||
|
List<String> args = LogHelper.toLowerCase(Arrays.asList(arguments));
|
||||||
|
|
||||||
|
if(!validArguments.containsAll(args)) {
|
||||||
|
player.sendChat(MineTweakerImplementationAPI.platform.getMessage("Invalid arguments for command. Valid arguments: " + LogHelper.join(validArguments, ", ")));
|
||||||
|
} else {
|
||||||
if(args.isEmpty() || args.contains("grinder")) {
|
if(args.isEmpty() || args.contains("grinder")) {
|
||||||
for(IGrinderEntry recipe : AEApi.instance().registries().grinder().getRecipes()) {
|
for(IGrinderEntry recipe : AEApi.instance().registries().grinder().getRecipes()) {
|
||||||
MineTweakerAPI.logCommand(String.format("mods.appeng.Grinder.addRecipe(%s, %s, %d, %s, %s, %s, %s);",
|
MineTweakerAPI.logCommand(String.format("mods.appeng.Grinder.addRecipe(%s, %s, %d, %s, %s, %s, %s);",
|
||||||
|
@ -39,7 +46,7 @@ public class AppliedEnergisticsLogger implements ICommandFunction {
|
||||||
if(args.isEmpty() || args.contains("inscriber")) {
|
if(args.isEmpty() || args.contains("inscriber")) {
|
||||||
for(IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes()) {
|
for(IInscriberRecipe recipe : AEApi.instance().registries().inscriber().getRecipes()) {
|
||||||
MineTweakerAPI.logCommand(String.format("mods.appeng.Inscriber.addRecipe(%s, %s, %s, %s, \"%s\");",
|
MineTweakerAPI.logCommand(String.format("mods.appeng.Inscriber.addRecipe(%s, %s, %s, %s, \"%s\");",
|
||||||
getArrayDescription(recipe.getInputs()),
|
LogHelper.getArrayDescription(recipe.getInputs()),
|
||||||
InputHelper.getStackDescription(recipe.getTopOptional().orNull()),
|
InputHelper.getStackDescription(recipe.getTopOptional().orNull()),
|
||||||
InputHelper.getStackDescription(recipe.getBottomOptional().orNull()),
|
InputHelper.getStackDescription(recipe.getBottomOptional().orNull()),
|
||||||
InputHelper.getStackDescription(recipe.getOutput()),
|
InputHelper.getStackDescription(recipe.getOutput()),
|
||||||
|
@ -51,16 +58,5 @@ public class AppliedEnergisticsLogger implements ICommandFunction {
|
||||||
player.sendChat(MineTweakerImplementationAPI.platform.getMessage("List generated; see minetweaker.log in your minecraft dir"));
|
player.sendChat(MineTweakerImplementationAPI.platform.getMessage("List generated; see minetweaker.log in your minecraft dir"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getArrayDescription(List<ItemStack> stacks) {
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
sb.append('[');
|
|
||||||
for(ItemStack stack : stacks) {
|
|
||||||
sb.append(InputHelper.getStackDescription(stack)).append(", ");
|
|
||||||
}
|
|
||||||
sb.setLength(sb.length() - 2);
|
|
||||||
sb.append(']');
|
|
||||||
|
|
||||||
return sb.toString();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,6 @@ import static modtweaker2.helpers.InputHelper.toStack;
|
||||||
import static modtweaker2.helpers.InputHelper.toStacks;
|
import static modtweaker2.helpers.InputHelper.toStacks;
|
||||||
import static modtweaker2.helpers.StackHelper.matches;
|
import static modtweaker2.helpers.StackHelper.matches;
|
||||||
|
|
||||||
|
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
|
||||||
import minetweaker.MineTweakerAPI;
|
import minetweaker.MineTweakerAPI;
|
||||||
|
|
Loading…
Reference in a new issue