Skip to content

Commit f405677

Browse files
committed
Add seed and limit arguments to /cbook
1 parent 465c9f2 commit f405677

File tree

3 files changed

+9
-103
lines changed

3 files changed

+9
-103
lines changed

master/src/main/java/net/earthcomputer/clientcommands/command/CommandBook.java

Lines changed: 0 additions & 88 deletions
This file was deleted.

src/main/java/net/earthcomputer/clientcommands/command/CommandBook.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.netty.buffer.Unpooled;
44
import net.minecraft.client.entity.EntityPlayerSP;
5+
import net.minecraft.client.resources.I18n;
56
import net.minecraft.command.CommandException;
67
import net.minecraft.command.ICommandSender;
78
import net.minecraft.command.WrongUsageException;
@@ -15,6 +16,7 @@
1516
import net.minecraft.util.math.BlockPos;
1617
import net.minecraft.util.text.TextComponentString;
1718
import net.minecraft.util.text.TextComponentTranslation;
19+
import net.minecraft.util.text.TextFormatting;
1820

1921
import javax.annotation.Nullable;
2022
import java.util.ArrayList;
@@ -36,14 +38,16 @@ public String getUsage(ICommandSender sender) {
3638
return "commands.cbook.usage";
3739
}
3840

39-
@Override
4041
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
4142
if (args.length == 0)
4243
throw new WrongUsageException(getUsage(sender));
4344

4445
if (!(sender instanceof EntityPlayerSP))
4546
throw new CommandException("commands.cbook.noPlayer");
4647

48+
int limit = args.length > 1 ? parseInt(args[1], 1, 50) : 50;
49+
Random rand = args.length > 2 ? new Random(parseLong(args[2])) : new Random();
50+
4751
EntityPlayerSP player = (EntityPlayerSP) sender;
4852
ItemStack heldItem = player.getHeldItemMainhand();
4953
if (heldItem.getItem() != Items.WRITABLE_BOOK) {
@@ -57,7 +61,7 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
5761
characterGenerator = IntStream.generate(() -> 0x10ffff);
5862
break;
5963
case "random":
60-
characterGenerator = new Random().ints(0x80, 0x10ffff - 0x800).map(i -> i < 0xd800 ? i : i + 0x800);
64+
characterGenerator = rand.ints(0x80, 0x10ffff - 0x800).map(i -> i < 0xd800 ? i : i + 0x800);
6165
break;
6266
default:
6367
throw new CommandException(getUsage(sender));
@@ -66,7 +70,8 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
6670
String joinedPages = characterGenerator.limit(50 * 210).mapToObj(i -> String.valueOf((char) i)).collect(Collectors.joining());
6771

6872
NBTTagList pages = new NBTTagList();
69-
for (int page = 0; page < 50; page++) {
73+
74+
for (int page = 0; page < limit; page++) {
7075
pages.appendTag(new NBTTagString(joinedPages.substring(page * 210, (page + 1) * 210)));
7176
}
7277

@@ -81,15 +86,4 @@ public void execute(MinecraftServer server, ICommandSender sender, String[] args
8186

8287
sender.sendMessage(new TextComponentTranslation("commands.cbook.success"));
8388
}
84-
85-
@Override
86-
public List<String> getTabCompletions(MinecraftServer server, ICommandSender sender, String[] args, @Nullable BlockPos targetPos) {
87-
if (args.length == 0) {
88-
return Collections.emptyList();
89-
}
90-
if (args.length == 1) {
91-
return getListOfStringsMatchingLastWord(args, "fill", "random");
92-
}
93-
return Collections.emptyList();
94-
}
9589
}

src/main/resources/assets/clientcommands/lang/en_us.lang

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ commands.cabort.usage=/cabort
6363
commands.cbook.success=Successfully edited book
6464
commands.cbook.noBook=You are not holding a book
6565
commands.cbook.noPlayer=You are not a player
66-
commands.cbook.usage=/cbook <fill|random> <pages>
66+
commands.cbook.usage=/cbook <fill|random> [pages] [random-seed]
6767

6868
commands.ccalc.mathError=Math error: %s
6969
commands.ccalc.syntaxError=Syntax error

0 commit comments

Comments
 (0)