Added autocrafting cancel commands.
This commit is contained in:
@@ -8,6 +8,8 @@
|
|||||||
- Added the `/refinedstorage network get <dimension> <pos>` command (raoulvdberge)
|
- Added the `/refinedstorage network get <dimension> <pos>` command (raoulvdberge)
|
||||||
- Added the `/refinedstorage network get <dimension> <pos> autocrafting list` command (raoulvdberge)
|
- Added the `/refinedstorage network get <dimension> <pos> autocrafting list` command (raoulvdberge)
|
||||||
- Added the `/refinedstorage network get <dimension> <pos> autocrafting get <id>` command (raoulvdberge)
|
- Added the `/refinedstorage network get <dimension> <pos> autocrafting get <id>` command (raoulvdberge)
|
||||||
|
- Added the `/refinedstorage network get <dimension> <pos> autocrafting cancel` command (raoulvdberge)
|
||||||
|
- Added the `/refinedstorage network get <dimension> <pos> autocrafting cancel <id>` command (raoulvdberge)
|
||||||
- Added JEI ghost ingredient dragging support (raoulvdberge)
|
- Added JEI ghost ingredient dragging support (raoulvdberge)
|
||||||
- Fixed text field not being focused in amount specifying screens (raoulvdberge)
|
- Fixed text field not being focused in amount specifying screens (raoulvdberge)
|
||||||
|
|
||||||
|
@@ -175,17 +175,19 @@ public interface IRSAPI {
|
|||||||
* Creates crafting request info for an item.
|
* Creates crafting request info for an item.
|
||||||
*
|
*
|
||||||
* @param stack the stack
|
* @param stack the stack
|
||||||
|
* @param count the count
|
||||||
* @return the request info
|
* @return the request info
|
||||||
*/
|
*/
|
||||||
ICraftingRequestInfo createCraftingRequestInfo(ItemStack stack);
|
ICraftingRequestInfo createCraftingRequestInfo(ItemStack stack, int count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates crafting request info for a fluid.
|
* Creates crafting request info for a fluid.
|
||||||
*
|
*
|
||||||
* @param stack the stack
|
* @param stack the stack
|
||||||
|
* @param count the count
|
||||||
* @return the request info
|
* @return the request info
|
||||||
*/
|
*/
|
||||||
ICraftingRequestInfo createCraftingRequestInfo(FluidStack stack);
|
ICraftingRequestInfo createCraftingRequestInfo(FluidStack stack, int count);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates crafting request info from NBT.
|
* Creates crafting request info from NBT.
|
||||||
|
@@ -39,6 +39,7 @@ import com.refinedmods.refinedstorage.apiimpl.util.Comparer;
|
|||||||
import com.refinedmods.refinedstorage.apiimpl.util.FluidStackList;
|
import com.refinedmods.refinedstorage.apiimpl.util.FluidStackList;
|
||||||
import com.refinedmods.refinedstorage.apiimpl.util.ItemStackList;
|
import com.refinedmods.refinedstorage.apiimpl.util.ItemStackList;
|
||||||
import com.refinedmods.refinedstorage.apiimpl.util.QuantityFormatter;
|
import com.refinedmods.refinedstorage.apiimpl.util.QuantityFormatter;
|
||||||
|
import com.refinedmods.refinedstorage.util.StackUtils;
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
@@ -48,6 +49,7 @@ import net.minecraft.world.server.ServerWorld;
|
|||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
import net.minecraftforge.fml.ModList;
|
import net.minecraftforge.fml.ModList;
|
||||||
import net.minecraftforge.forgespi.language.ModFileScanData;
|
import net.minecraftforge.forgespi.language.ModFileScanData;
|
||||||
|
import net.minecraftforge.items.ItemHandlerHelper;
|
||||||
import org.apache.logging.log4j.LogManager;
|
import org.apache.logging.log4j.LogManager;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.objectweb.asm.Type;
|
import org.objectweb.asm.Type;
|
||||||
@@ -236,13 +238,13 @@ public class API implements IRSAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICraftingRequestInfo createCraftingRequestInfo(ItemStack stack) {
|
public ICraftingRequestInfo createCraftingRequestInfo(ItemStack stack, int count) {
|
||||||
return new CraftingRequestInfo(stack);
|
return new CraftingRequestInfo(ItemHandlerHelper.copyStackWithSize(stack, count));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ICraftingRequestInfo createCraftingRequestInfo(FluidStack stack) {
|
public ICraftingRequestInfo createCraftingRequestInfo(FluidStack stack, int count) {
|
||||||
return new CraftingRequestInfo(stack);
|
return new CraftingRequestInfo(StackUtils.copy(stack, count));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -101,7 +101,7 @@ public class CraftingManager implements ICraftingManager {
|
|||||||
return new CalculationResult(CalculationResultType.NO_PATTERN);
|
return new CalculationResult(CalculationResultType.NO_PATTERN);
|
||||||
}
|
}
|
||||||
|
|
||||||
return factory.create(network, API.instance().createCraftingRequestInfo(stack), quantity, pattern);
|
return factory.create(network, API.instance().createCraftingRequestInfo(stack, quantity), quantity, pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -116,7 +116,7 @@ public class CraftingManager implements ICraftingManager {
|
|||||||
return new CalculationResult(CalculationResultType.NO_PATTERN);
|
return new CalculationResult(CalculationResultType.NO_PATTERN);
|
||||||
}
|
}
|
||||||
|
|
||||||
return factory.create(network, API.instance().createCraftingRequestInfo(stack), quantity, pattern);
|
return factory.create(network, API.instance().createCraftingRequestInfo(stack, quantity), quantity, pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,7 +3,6 @@ package com.refinedmods.refinedstorage.command.disk;
|
|||||||
import com.mojang.brigadier.Command;
|
import com.mojang.brigadier.Command;
|
||||||
import com.mojang.brigadier.builder.ArgumentBuilder;
|
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||||
import com.mojang.brigadier.context.CommandContext;
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
|
||||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||||
import net.minecraft.command.CommandSource;
|
import net.minecraft.command.CommandSource;
|
||||||
import net.minecraft.command.Commands;
|
import net.minecraft.command.Commands;
|
||||||
@@ -11,7 +10,10 @@ import net.minecraft.util.text.StringTextComponent;
|
|||||||
|
|
||||||
public class ListDiskCommand implements Command<CommandSource> {
|
public class ListDiskCommand implements Command<CommandSource> {
|
||||||
public static ArgumentBuilder<CommandSource, ?> register() {
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
return Commands.literal("list").executes(new ListDiskCommand()).then(ListDiskForPlayerCommand.register());
|
return Commands.literal("list")
|
||||||
|
.requires(cs -> cs.hasPermissionLevel(2))
|
||||||
|
.executes(new ListDiskCommand())
|
||||||
|
.then(ListDiskForPlayerCommand.register());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -3,6 +3,7 @@ package com.refinedmods.refinedstorage.command.network;
|
|||||||
import com.mojang.brigadier.builder.ArgumentBuilder;
|
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||||
import com.mojang.brigadier.context.CommandContext;
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
import com.refinedmods.refinedstorage.api.network.INetwork;
|
import com.refinedmods.refinedstorage.api.network.INetwork;
|
||||||
|
import com.refinedmods.refinedstorage.command.network.autocrafting.CancelAllAutocraftingCommand;
|
||||||
import com.refinedmods.refinedstorage.command.network.autocrafting.GetAutocraftingCommand;
|
import com.refinedmods.refinedstorage.command.network.autocrafting.GetAutocraftingCommand;
|
||||||
import com.refinedmods.refinedstorage.command.network.autocrafting.ListAutocraftingCommand;
|
import com.refinedmods.refinedstorage.command.network.autocrafting.ListAutocraftingCommand;
|
||||||
import net.minecraft.command.CommandSource;
|
import net.minecraft.command.CommandSource;
|
||||||
@@ -13,12 +14,14 @@ import net.minecraft.command.arguments.DimensionArgument;
|
|||||||
public class GetNetworkCommand extends NetworkCommand {
|
public class GetNetworkCommand extends NetworkCommand {
|
||||||
public static ArgumentBuilder<CommandSource, ?> register() {
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
return Commands.literal("get")
|
return Commands.literal("get")
|
||||||
|
.requires(cs -> cs.hasPermissionLevel(2))
|
||||||
.then(Commands.argument("dimension", DimensionArgument.getDimension())
|
.then(Commands.argument("dimension", DimensionArgument.getDimension())
|
||||||
.then(Commands.argument("pos", BlockPosArgument.blockPos()).suggests(new NetworkPositionSuggestionProvider())
|
.then(Commands.argument("pos", BlockPosArgument.blockPos()).suggests(new NetworkPositionSuggestionProvider())
|
||||||
.executes(new GetNetworkCommand())
|
.executes(new GetNetworkCommand())
|
||||||
.then(Commands.literal("autocrafting")
|
.then(Commands.literal("autocrafting")
|
||||||
.then(ListAutocraftingCommand.register())
|
.then(ListAutocraftingCommand.register())
|
||||||
.then(GetAutocraftingCommand.register())
|
.then(GetAutocraftingCommand.register())
|
||||||
|
.then(CancelAllAutocraftingCommand.register())
|
||||||
)));
|
)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -21,6 +21,7 @@ public class ListNetworkCommand implements Command<CommandSource> {
|
|||||||
|
|
||||||
public static ArgumentBuilder<CommandSource, ?> register() {
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
return Commands.literal("list")
|
return Commands.literal("list")
|
||||||
|
.requires(cs -> cs.hasPermissionLevel(2))
|
||||||
.then(Commands.argument("dimension", DimensionArgument.getDimension())
|
.then(Commands.argument("dimension", DimensionArgument.getDimension())
|
||||||
.executes(new ListNetworkCommand()));
|
.executes(new ListNetworkCommand()));
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,39 @@
|
|||||||
|
package com.refinedmods.refinedstorage.command.network.autocrafting;
|
||||||
|
|
||||||
|
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||||
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
|
import com.refinedmods.refinedstorage.api.network.INetwork;
|
||||||
|
import com.refinedmods.refinedstorage.command.network.NetworkCommand;
|
||||||
|
import com.refinedmods.refinedstorage.render.Styles;
|
||||||
|
import net.minecraft.command.CommandSource;
|
||||||
|
import net.minecraft.command.Commands;
|
||||||
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
|
|
||||||
|
public class CancelAllAutocraftingCommand extends NetworkCommand {
|
||||||
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
|
return Commands.literal("cancel")
|
||||||
|
.executes(new CancelAllAutocraftingCommand())
|
||||||
|
.then(CancelSingleAutocraftingCommand.register());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int run(CommandContext<CommandSource> context, INetwork network) {
|
||||||
|
int count = network.getCraftingManager().getTasks().size();
|
||||||
|
|
||||||
|
network.getCraftingManager().getTasks().forEach(task -> network.getCraftingManager().cancel(task.getId()));
|
||||||
|
|
||||||
|
sendCancelMessage(context, count);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendCancelMessage(CommandContext<CommandSource> context, int count) {
|
||||||
|
String translationKey = "commands.refinedstorage.network.autocrafting.cancel.multiple";
|
||||||
|
if (count == 1) {
|
||||||
|
translationKey = "commands.refinedstorage.network.autocrafting.cancel.single";
|
||||||
|
}
|
||||||
|
|
||||||
|
context.getSource().sendFeedback(new TranslationTextComponent(translationKey, new StringTextComponent("" + count).setStyle(Styles.YELLOW)), false);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,36 @@
|
|||||||
|
package com.refinedmods.refinedstorage.command.network.autocrafting;
|
||||||
|
|
||||||
|
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||||
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
|
import com.refinedmods.refinedstorage.api.autocrafting.task.ICraftingTask;
|
||||||
|
import com.refinedmods.refinedstorage.api.network.INetwork;
|
||||||
|
import com.refinedmods.refinedstorage.command.network.NetworkCommand;
|
||||||
|
import net.minecraft.command.CommandSource;
|
||||||
|
import net.minecraft.command.Commands;
|
||||||
|
import net.minecraft.command.arguments.UUIDArgument;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CancelSingleAutocraftingCommand extends NetworkCommand {
|
||||||
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
|
return Commands.argument("id", UUIDArgument.func_239194_a_()).suggests(new AutocraftingIdSuggestionProvider())
|
||||||
|
.executes(new CancelSingleAutocraftingCommand());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int run(CommandContext<CommandSource> context, INetwork network) {
|
||||||
|
UUID id = UUIDArgument.func_239195_a_(context, "id");
|
||||||
|
|
||||||
|
int count = 0;
|
||||||
|
|
||||||
|
ICraftingTask task = network.getCraftingManager().getTask(id);
|
||||||
|
if (task != null) {
|
||||||
|
count = 1;
|
||||||
|
network.getCraftingManager().cancel(task.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
CancelAllAutocraftingCommand.sendCancelMessage(context, count);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
@@ -18,7 +18,6 @@ import net.minecraftforge.fluids.FluidStack;
|
|||||||
public class PatternDumpCommand implements Command<CommandSource> {
|
public class PatternDumpCommand implements Command<CommandSource> {
|
||||||
public static ArgumentBuilder<CommandSource, ?> register() {
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
return Commands.literal("dump")
|
return Commands.literal("dump")
|
||||||
.requires(cs -> cs.hasPermissionLevel(0))
|
|
||||||
.executes(new PatternDumpCommand());
|
.executes(new PatternDumpCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -315,6 +315,8 @@
|
|||||||
"commands.refinedstorage.network.list.energy_usage": "Energy usage: %s",
|
"commands.refinedstorage.network.list.energy_usage": "Energy usage: %s",
|
||||||
"commands.refinedstorage.network.get.error.not_found": "Network not found.",
|
"commands.refinedstorage.network.get.error.not_found": "Network not found.",
|
||||||
"commands.refinedstorage.network.autocrafting.get.error.not_found": "Task not found.",
|
"commands.refinedstorage.network.autocrafting.get.error.not_found": "Task not found.",
|
||||||
|
"commands.refinedstorage.network.autocrafting.cancel.single": "Cancelled %d task.",
|
||||||
|
"commands.refinedstorage.network.autocrafting.cancel.multiple": "Cancelled %d tasks.",
|
||||||
"advancements.refinedstorage.controlling.description": "Craft a Controller",
|
"advancements.refinedstorage.controlling.description": "Craft a Controller",
|
||||||
"advancements.refinedstorage.connecting": "Connecting",
|
"advancements.refinedstorage.connecting": "Connecting",
|
||||||
"advancements.refinedstorage.connecting.description": "You can place all the devices next to each other to connect them up, or, use Cable",
|
"advancements.refinedstorage.connecting.description": "You can place all the devices next to each other to connect them up, or, use Cable",
|
||||||
|
Reference in New Issue
Block a user