Re-implemented the /refinedstorage createdisk command.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
# Refined Storage Changelog
|
# Refined Storage Changelog
|
||||||
|
|
||||||
### 1.9.5
|
### 1.9.5
|
||||||
|
- Re-implemented the /refinedstorage createdisk command (raoulvdberge)
|
||||||
- Added JEI ghost ingredient dragging support (raoulvdberge)
|
- Added JEI ghost ingredient dragging support (raoulvdberge)
|
||||||
|
|
||||||
### 1.9.4
|
### 1.9.4
|
||||||
|
|||||||
@@ -50,10 +50,4 @@ public final class RS {
|
|||||||
|
|
||||||
API.deliver();
|
API.deliver();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO
|
|
||||||
@EventHandler
|
|
||||||
public void onServerStarting(FMLServerStartingEvent e) {
|
|
||||||
e.registerServerCommand(new CommandCreateDisk());
|
|
||||||
}*/
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,11 @@
|
|||||||
package com.refinedmods.refinedstorage.api.storage.disk;
|
package com.refinedmods.refinedstorage.api.storage.disk;
|
||||||
|
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.world.server.ServerWorld;
|
import net.minecraft.world.server.ServerWorld;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a storage disk from NBT or on-demand.
|
* Creates a storage disk from NBT or on-demand.
|
||||||
*
|
*
|
||||||
@@ -18,6 +21,15 @@ public interface IStorageDiskFactory<T> {
|
|||||||
*/
|
*/
|
||||||
IStorageDisk<T> createFromNbt(ServerWorld world, CompoundNBT tag);
|
IStorageDisk<T> createFromNbt(ServerWorld world, CompoundNBT tag);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a storage disk item based on ID.
|
||||||
|
*
|
||||||
|
* @param disk the disk
|
||||||
|
* @param id the disk id
|
||||||
|
* @return the storage disk
|
||||||
|
*/
|
||||||
|
ItemStack createDiskItem(IStorageDisk<T> disk, UUID id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a storage disk on-demand.
|
* Creates a storage disk on-demand.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
package com.refinedmods.refinedstorage.apiimpl.storage.disk.factory;
|
package com.refinedmods.refinedstorage.apiimpl.storage.disk.factory;
|
||||||
|
|
||||||
import com.refinedmods.refinedstorage.RS;
|
import com.refinedmods.refinedstorage.RS;
|
||||||
|
import com.refinedmods.refinedstorage.RSItems;
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory;
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory;
|
||||||
import com.refinedmods.refinedstorage.apiimpl.storage.disk.FluidStorageDisk;
|
import com.refinedmods.refinedstorage.apiimpl.storage.disk.FluidStorageDisk;
|
||||||
|
import com.refinedmods.refinedstorage.item.FluidStorageDiskItem;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.nbt.ListNBT;
|
import net.minecraft.nbt.ListNBT;
|
||||||
import net.minecraft.util.ResourceLocation;
|
import net.minecraft.util.ResourceLocation;
|
||||||
@@ -11,6 +14,8 @@ import net.minecraft.world.server.ServerWorld;
|
|||||||
import net.minecraftforge.common.util.Constants;
|
import net.minecraftforge.common.util.Constants;
|
||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class FluidStorageDiskFactory implements IStorageDiskFactory<FluidStack> {
|
public class FluidStorageDiskFactory implements IStorageDiskFactory<FluidStack> {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "fluid");
|
||||||
|
|
||||||
@@ -31,6 +36,32 @@ public class FluidStorageDiskFactory implements IStorageDiskFactory<FluidStack>
|
|||||||
return disk;
|
return disk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack createDiskItem(IStorageDisk<FluidStack> disk, UUID id) {
|
||||||
|
FluidStorageDiskItem item;
|
||||||
|
switch (disk.getCapacity()) {
|
||||||
|
case 64_000:
|
||||||
|
item = RSItems.SIXTY_FOUR_K_FLUID_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 256_000:
|
||||||
|
item = RSItems.TWO_HUNDRED_FIFTY_SIX_K_FLUID_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 1024_000:
|
||||||
|
item = RSItems.THOUSAND_TWENTY_FOUR_K_FLUID_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 4096_000:
|
||||||
|
item = RSItems.FOUR_THOUSAND_NINETY_SIX_K_FLUID_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
item = RSItems.CREATIVE_FLUID_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack stack = new ItemStack(item);
|
||||||
|
item.setId(stack, id);
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IStorageDisk<FluidStack> create(ServerWorld world, int capacity) {
|
public IStorageDisk<FluidStack> create(ServerWorld world, int capacity) {
|
||||||
return new FluidStorageDisk(world, capacity);
|
return new FluidStorageDisk(world, capacity);
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
package com.refinedmods.refinedstorage.apiimpl.storage.disk.factory;
|
package com.refinedmods.refinedstorage.apiimpl.storage.disk.factory;
|
||||||
|
|
||||||
import com.refinedmods.refinedstorage.RS;
|
import com.refinedmods.refinedstorage.RS;
|
||||||
|
import com.refinedmods.refinedstorage.RSItems;
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory;
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory;
|
||||||
|
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||||
|
import com.refinedmods.refinedstorage.apiimpl.storage.ItemStorageType;
|
||||||
import com.refinedmods.refinedstorage.apiimpl.storage.disk.ItemStorageDisk;
|
import com.refinedmods.refinedstorage.apiimpl.storage.disk.ItemStorageDisk;
|
||||||
|
import com.refinedmods.refinedstorage.item.StorageDiskItem;
|
||||||
import com.refinedmods.refinedstorage.util.StackUtils;
|
import com.refinedmods.refinedstorage.util.StackUtils;
|
||||||
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.nbt.CompoundNBT;
|
import net.minecraft.nbt.CompoundNBT;
|
||||||
import net.minecraft.nbt.ListNBT;
|
import net.minecraft.nbt.ListNBT;
|
||||||
@@ -12,6 +17,8 @@ import net.minecraft.util.ResourceLocation;
|
|||||||
import net.minecraft.world.server.ServerWorld;
|
import net.minecraft.world.server.ServerWorld;
|
||||||
import net.minecraftforge.common.util.Constants;
|
import net.minecraftforge.common.util.Constants;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class ItemStorageDiskFactory implements IStorageDiskFactory<ItemStack> {
|
public class ItemStorageDiskFactory implements IStorageDiskFactory<ItemStack> {
|
||||||
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item");
|
public static final ResourceLocation ID = new ResourceLocation(RS.ID, "item");
|
||||||
|
|
||||||
@@ -32,6 +39,32 @@ public class ItemStorageDiskFactory implements IStorageDiskFactory<ItemStack> {
|
|||||||
return disk;
|
return disk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ItemStack createDiskItem(IStorageDisk<ItemStack> disk, UUID id) {
|
||||||
|
StorageDiskItem item;
|
||||||
|
switch (disk.getCapacity()) {
|
||||||
|
case 1_000:
|
||||||
|
item = RSItems.ONE_K_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 4_000:
|
||||||
|
item = RSItems.FOUR_K_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 16_000:
|
||||||
|
item = RSItems.SIXTEEN_K_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
case 64_000:
|
||||||
|
item = RSItems.SIXTY_FOUR_K_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
item = RSItems.CREATIVE_STORAGE_DISK;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemStack stack = new ItemStack(item);
|
||||||
|
item.setId(stack, id);
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IStorageDisk<ItemStack> create(ServerWorld world, int capacity) {
|
public IStorageDisk<ItemStack> create(ServerWorld world, int capacity) {
|
||||||
return new ItemStorageDisk(world, capacity);
|
return new ItemStorageDisk(world, capacity);
|
||||||
|
|||||||
@@ -1,92 +0,0 @@
|
|||||||
package com.refinedmods.refinedstorage.command;
|
|
||||||
|
|
||||||
/* TODO
|
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
|
||||||
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskProvider;
|
|
||||||
import com.refinedmods.refinedstorage.apiimpl.API;
|
|
||||||
import net.minecraft.command.CommandBase;
|
|
||||||
import net.minecraft.command.CommandException;
|
|
||||||
import net.minecraft.command.ICommandSender;
|
|
||||||
import net.minecraft.command.WrongUsageException;
|
|
||||||
import net.minecraft.entity.player.PlayerEntity;
|
|
||||||
import net.minecraft.init.SoundEvents;
|
|
||||||
import net.minecraft.item.Item;
|
|
||||||
import net.minecraft.item.ItemStack;
|
|
||||||
import net.minecraft.server.MinecraftServer;
|
|
||||||
import net.minecraft.util.SoundCategory;
|
|
||||||
import net.minecraft.util.math.BlockPos;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
public class CommandCreateDisk extends Command {
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "createdisk";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getUsage(ICommandSender sender) {
|
|
||||||
return "commands.refinedstorage.createdisk.usage";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int getRequiredPermissionLevel() {
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
|
|
||||||
if (args.length < 4) {
|
|
||||||
throw new WrongUsageException("commands.refinedstorage.createdisk.usage");
|
|
||||||
} else {
|
|
||||||
PlayerEntity player = getPlayer(server, sender, args[0]);
|
|
||||||
Item item = getItemByText(sender, args[1]);
|
|
||||||
int metadata = parseInt(args[2]);
|
|
||||||
|
|
||||||
UUID id;
|
|
||||||
try {
|
|
||||||
id = UUID.fromString(args[3]);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
throw new CommandException("commands.refinedstorage.createdisk.error.diskNotFound", args[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!(item instanceof IStorageDiskProvider)) {
|
|
||||||
throw new CommandException("commands.refinedstorage.createdisk.error.notADisk");
|
|
||||||
}
|
|
||||||
|
|
||||||
IStorageDisk disk = API.instance().getStorageDiskManager(sender.getEntityWorld()).get(id);
|
|
||||||
if (disk == null) {
|
|
||||||
throw new CommandException("commands.refinedstorage.createdisk.error.diskNotFound", args[3]);
|
|
||||||
}
|
|
||||||
|
|
||||||
ItemStack diskStack = new ItemStack(item, 1, metadata);
|
|
||||||
((IStorageDiskProvider) item).setId(diskStack, id);
|
|
||||||
|
|
||||||
if (player.inventory.addItemStackToInventory(diskStack)) {
|
|
||||||
// From CommandGive
|
|
||||||
player.world.playSound(null, player.posX, player.posY, player.posZ, SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((player.getRNG().nextFloat() - player.getRNG().nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
|
||||||
player.inventoryContainer.detectAndSendChanges();
|
|
||||||
}
|
|
||||||
|
|
||||||
notifyCommandListener(sender, this, "commands.refinedstorage.createdisk.success", args[3], player.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) {
|
|
||||||
if (args.length == 1) {
|
|
||||||
return getListOfStringsMatchingLastWord(args, server.getOnlinePlayerNames());
|
|
||||||
} else if (args.length == 2) {
|
|
||||||
return getListOfStringsMatchingLastWord(args, Item.REGISTRY.getKeys());
|
|
||||||
} else if (args.length == 4) {
|
|
||||||
return getListOfStringsMatchingLastWord(args, API.instance().getStorageDiskManager(sender.getEntityWorld()).getAll().keySet().stream().map(UUID::toString).collect(Collectors.toList()));
|
|
||||||
}
|
|
||||||
|
|
||||||
return Collections.emptyList();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
package com.refinedmods.refinedstorage.command;
|
||||||
|
|
||||||
|
import com.mojang.brigadier.Command;
|
||||||
|
import com.mojang.brigadier.builder.ArgumentBuilder;
|
||||||
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
|
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||||
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDisk;
|
||||||
|
import com.refinedmods.refinedstorage.api.storage.disk.IStorageDiskFactory;
|
||||||
|
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||||
|
import com.refinedmods.refinedstorage.render.Styles;
|
||||||
|
import net.minecraft.command.CommandSource;
|
||||||
|
import net.minecraft.command.Commands;
|
||||||
|
import net.minecraft.command.arguments.EntityArgument;
|
||||||
|
import net.minecraft.command.arguments.UUIDArgument;
|
||||||
|
import net.minecraft.entity.item.ItemEntity;
|
||||||
|
import net.minecraft.entity.player.PlayerEntity;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import net.minecraft.util.SoundCategory;
|
||||||
|
import net.minecraft.util.SoundEvents;
|
||||||
|
import net.minecraft.util.text.StringTextComponent;
|
||||||
|
import net.minecraft.util.text.TranslationTextComponent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CreateDiskCommand implements Command<CommandSource> {
|
||||||
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
|
return Commands.literal("createdisk")
|
||||||
|
.requires(cs -> cs.hasPermissionLevel(2))
|
||||||
|
.then(Commands.argument("player", EntityArgument.player())
|
||||||
|
.then(Commands.argument("id", UUIDArgument.func_239194_a_()).suggests(new StorageDiskIdSuggestionProvider())
|
||||||
|
.executes(new CreateDiskCommand())
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int run(CommandContext<CommandSource> context) throws CommandSyntaxException {
|
||||||
|
PlayerEntity player = EntityArgument.getPlayer(context, "player");
|
||||||
|
UUID id = UUIDArgument.func_239195_a_(context, "id");
|
||||||
|
|
||||||
|
IStorageDisk<?> disk = API.instance().getStorageDiskManager(context.getSource().getWorld()).get(id);
|
||||||
|
if (disk == null) {
|
||||||
|
context.getSource().sendErrorMessage(new TranslationTextComponent("commands.refinedstorage.createdisk.error.diskNotFound", id));
|
||||||
|
} else {
|
||||||
|
IStorageDiskFactory factory = API.instance().getStorageDiskRegistry().get(disk.getFactoryId());
|
||||||
|
|
||||||
|
if (factory != null) {
|
||||||
|
ItemStack stack = factory.createDiskItem(disk, id);
|
||||||
|
|
||||||
|
// @Volatile: From GiveCommand
|
||||||
|
boolean flag = player.inventory.addItemStackToInventory(stack);
|
||||||
|
if (flag && stack.isEmpty()) {
|
||||||
|
stack.setCount(1);
|
||||||
|
|
||||||
|
ItemEntity itemEntity = player.dropItem(stack, false);
|
||||||
|
if (itemEntity != null) {
|
||||||
|
itemEntity.makeFakeItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
player.world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_ITEM_PICKUP, SoundCategory.PLAYERS, 0.2F, ((player.getRNG().nextFloat() - player.getRNG().nextFloat()) * 0.7F + 1.0F) * 2.0F);
|
||||||
|
player.container.detectAndSendChanges();
|
||||||
|
} else {
|
||||||
|
ItemEntity itemEntity = player.dropItem(stack, false);
|
||||||
|
if (itemEntity != null) {
|
||||||
|
itemEntity.setNoPickupDelay();
|
||||||
|
itemEntity.setOwnerId(player.getUniqueID());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
context.getSource().sendFeedback(new TranslationTextComponent(
|
||||||
|
"commands.refinedstorage.createdisk.success",
|
||||||
|
new StringTextComponent(id.toString()).setStyle(Styles.YELLOW),
|
||||||
|
context.getSource().getDisplayName().deepCopy().setStyle(Styles.YELLOW)
|
||||||
|
), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.refinedmods.refinedstorage.command;
|
package com.refinedmods.refinedstorage.command;
|
||||||
|
|
||||||
import com.mojang.brigadier.Command;
|
import com.mojang.brigadier.Command;
|
||||||
import com.mojang.brigadier.CommandDispatcher;
|
|
||||||
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.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||||
@@ -17,7 +16,7 @@ import net.minecraft.util.text.StringTextComponent;
|
|||||||
import net.minecraftforge.fluids.FluidStack;
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
public class PatternDumpCommand implements Command<CommandSource> {
|
public class PatternDumpCommand implements Command<CommandSource> {
|
||||||
public static ArgumentBuilder<CommandSource, ?> register(CommandDispatcher<CommandSource> dispatcher) {
|
public static ArgumentBuilder<CommandSource, ?> register() {
|
||||||
return Commands.literal("patterndump")
|
return Commands.literal("patterndump")
|
||||||
.requires(cs -> cs.hasPermissionLevel(0))
|
.requires(cs -> cs.hasPermissionLevel(0))
|
||||||
.executes(new PatternDumpCommand());
|
.executes(new PatternDumpCommand());
|
||||||
@@ -37,7 +36,7 @@ public class PatternDumpCommand implements Command<CommandSource> {
|
|||||||
context.getSource().sendFeedback(new StringTextComponent("Crafting task factory ID: ").setStyle(Styles.YELLOW).append(new StringTextComponent(pattern.getCraftingTaskFactoryId().toString()).setStyle(Styles.WHITE)), false);
|
context.getSource().sendFeedback(new StringTextComponent("Crafting task factory ID: ").setStyle(Styles.YELLOW).append(new StringTextComponent(pattern.getCraftingTaskFactoryId().toString()).setStyle(Styles.WHITE)), false);
|
||||||
|
|
||||||
if (!pattern.isValid()) {
|
if (!pattern.isValid()) {
|
||||||
context.getSource().sendFeedback(new StringTextComponent("Pattern is invalid! Reason: ").append(pattern.getErrorMessage()).setStyle(Styles.RED), false);
|
context.getSource().sendErrorMessage(new StringTextComponent("Pattern is invalid! Reason: ").append(pattern.getErrorMessage()));
|
||||||
} else {
|
} else {
|
||||||
context.getSource().sendFeedback(new StringTextComponent("Processing: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(processing)).setStyle(Styles.WHITE)), false);
|
context.getSource().sendFeedback(new StringTextComponent("Processing: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(processing)).setStyle(Styles.WHITE)), false);
|
||||||
context.getSource().sendFeedback(new StringTextComponent("Exact: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(exact)).setStyle(Styles.WHITE)), false);
|
context.getSource().sendFeedback(new StringTextComponent("Exact: ").setStyle(Styles.YELLOW).append(new StringTextComponent(String.valueOf(exact)).setStyle(Styles.WHITE)), false);
|
||||||
@@ -117,7 +116,7 @@ public class PatternDumpCommand implements Command<CommandSource> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
context.getSource().sendFeedback(new StringTextComponent("You need to be holding a pattern in your hand.").setStyle(Styles.RED), false);
|
context.getSource().sendErrorMessage(new StringTextComponent("You need to be holding a pattern in your hand."));
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
package com.refinedmods.refinedstorage.command;
|
||||||
|
|
||||||
|
import com.mojang.brigadier.context.CommandContext;
|
||||||
|
import com.mojang.brigadier.suggestion.SuggestionProvider;
|
||||||
|
import com.mojang.brigadier.suggestion.Suggestions;
|
||||||
|
import com.mojang.brigadier.suggestion.SuggestionsBuilder;
|
||||||
|
import com.refinedmods.refinedstorage.apiimpl.API;
|
||||||
|
import net.minecraft.command.CommandSource;
|
||||||
|
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
|
public class StorageDiskIdSuggestionProvider implements SuggestionProvider<CommandSource> {
|
||||||
|
@Override
|
||||||
|
public CompletableFuture<Suggestions> getSuggestions(CommandContext<CommandSource> context, SuggestionsBuilder builder) {
|
||||||
|
API.instance().getStorageDiskManager(context.getSource().getWorld())
|
||||||
|
.getAll()
|
||||||
|
.keySet()
|
||||||
|
.forEach(id -> builder.suggest(id.toString()));
|
||||||
|
|
||||||
|
return builder.buildFuture();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
package com.refinedmods.refinedstorage.setup;
|
package com.refinedmods.refinedstorage.setup;
|
||||||
|
|
||||||
|
import com.refinedmods.refinedstorage.RS;
|
||||||
|
import com.refinedmods.refinedstorage.command.CreateDiskCommand;
|
||||||
import com.refinedmods.refinedstorage.command.PatternDumpCommand;
|
import com.refinedmods.refinedstorage.command.PatternDumpCommand;
|
||||||
import net.minecraft.command.Commands;
|
import net.minecraft.command.Commands;
|
||||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||||
@@ -8,9 +10,7 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|||||||
public class ServerSetup {
|
public class ServerSetup {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public void onRegisterCommands(RegisterCommandsEvent e) {
|
public void onRegisterCommands(RegisterCommandsEvent e) {
|
||||||
e.getDispatcher().register(
|
e.getDispatcher().register(Commands.literal(RS.ID).then(PatternDumpCommand.register()));
|
||||||
Commands.literal("refinedstorage")
|
e.getDispatcher().register(Commands.literal(RS.ID).then(CreateDiskCommand.register()));
|
||||||
.then(PatternDumpCommand.register(e.getDispatcher()))
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -281,8 +281,6 @@
|
|||||||
"item.refinedstorage.security_card.owner": "Besitzer: %s",
|
"item.refinedstorage.security_card.owner": "Besitzer: %s",
|
||||||
"item.refinedstorage.processor_binding": "Prozessor Rohmaterial",
|
"item.refinedstorage.processor_binding": "Prozessor Rohmaterial",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <Spieler> <Item> <Metadaten> <ID>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "Das Item ist keine Speicherzelle.",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "Speicherzelle %s konnte nicht gefunden werden.",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "Speicherzelle %s konnte nicht gefunden werden.",
|
||||||
"commands.refinedstorage.createdisk.success": "Speicherzelle %s erfolgreich an %s gegeben.",
|
"commands.refinedstorage.createdisk.success": "Speicherzelle %s erfolgreich an %s gegeben.",
|
||||||
|
|
||||||
|
|||||||
@@ -307,8 +307,6 @@
|
|||||||
"item.refinedstorage.security_card.owner": "Bound to: %s",
|
"item.refinedstorage.security_card.owner": "Bound to: %s",
|
||||||
"item.refinedstorage.processor_binding": "Processor Binding",
|
"item.refinedstorage.processor_binding": "Processor Binding",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <player> <item> <metadata> <id>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "The given disk item is not a disk.",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "Disk %s was not found.",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "Disk %s was not found.",
|
||||||
"commands.refinedstorage.createdisk.success": "Successfully gave disk %s to %s.",
|
"commands.refinedstorage.createdisk.success": "Successfully gave disk %s to %s.",
|
||||||
|
|
||||||
|
|||||||
@@ -307,8 +307,6 @@
|
|||||||
"item.refinedstorage.security_card.owner": "所有者: %s",
|
"item.refinedstorage.security_card.owner": "所有者: %s",
|
||||||
"item.refinedstorage.processor_binding": "プロセッサ接合材",
|
"item.refinedstorage.processor_binding": "プロセッサ接合材",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <プレイヤー> <アイテム> <メタデータ> <id>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "指定されたアイテムはディスクではありません",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "ディスク%sが見つかりません",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "ディスク%sが見つかりません",
|
||||||
"commands.refinedstorage.createdisk.success": "ディスク%sを%sに割り当てました",
|
"commands.refinedstorage.createdisk.success": "ディスク%sを%sに割り当てました",
|
||||||
|
|
||||||
|
|||||||
@@ -306,8 +306,6 @@
|
|||||||
"item.refinedstorage.security_card.owner": "Привязана к %s",
|
"item.refinedstorage.security_card.owner": "Привязана к %s",
|
||||||
"item.refinedstorage.processor_binding": "Связующий процессорный компонент",
|
"item.refinedstorage.processor_binding": "Связующий процессорный компонент",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <игрок> <предмет> <метаданные> <id>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "Данный предмет не является диском.",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "Диск %s не был найден.",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "Диск %s не был найден.",
|
||||||
"commands.refinedstorage.createdisk.success": "Диск %s успешно выдан %s.",
|
"commands.refinedstorage.createdisk.success": "Диск %s успешно выдан %s.",
|
||||||
|
|
||||||
|
|||||||
@@ -301,8 +301,6 @@
|
|||||||
"item.refinedstorage.hollow_cover": "空心伪装板",
|
"item.refinedstorage.hollow_cover": "空心伪装板",
|
||||||
"item.refinedstorage.processor_binding": "处理器粘合物",
|
"item.refinedstorage.processor_binding": "处理器粘合物",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <玩家> <物品> <metadata> <id>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "该物品不是磁盘.",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "磁盘 %s 未找到.",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "磁盘 %s 未找到.",
|
||||||
"commands.refinedstorage.createdisk.success": "成功把磁盘 %s 给了 %s.",
|
"commands.refinedstorage.createdisk.success": "成功把磁盘 %s 给了 %s.",
|
||||||
|
|
||||||
|
|||||||
@@ -307,8 +307,6 @@
|
|||||||
"item.refinedstorage.security_card.owner": "綁定至: %s",
|
"item.refinedstorage.security_card.owner": "綁定至: %s",
|
||||||
"item.refinedstorage.processor_binding": "處理器黏合物",
|
"item.refinedstorage.processor_binding": "處理器黏合物",
|
||||||
|
|
||||||
"commands.refinedstorage.createdisk.usage": "/createdisk <player> <item> <metadata> <id>",
|
|
||||||
"commands.refinedstorage.createdisk.error.notADisk": "該物品不是磁碟.",
|
|
||||||
"commands.refinedstorage.createdisk.error.diskNotFound": "磁碟 %s 未找到.",
|
"commands.refinedstorage.createdisk.error.diskNotFound": "磁碟 %s 未找到.",
|
||||||
"commands.refinedstorage.createdisk.success": "成功把磁碟 %s 給了 %s.",
|
"commands.refinedstorage.createdisk.success": "成功把磁碟 %s 給了 %s.",
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user