]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/commands/SeedCommand.java
9937a161a2f069ded5303d74179f6f429d179ca7
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / commands / SeedCommand.java
1 package com.irtimaled.bbor.client.commands;
2
3 import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
4 import com.mojang.brigadier.CommandDispatcher;
5 import com.mojang.brigadier.arguments.StringArgumentType;
6 import com.mojang.brigadier.builder.LiteralArgumentBuilder;
7 import net.minecraft.command.Commands;
8 import net.minecraft.command.ISuggestionProvider;
9
10 public class SeedCommand {
11     private static final String COMMAND = "bbor:seed";
12     private static final String SEED = "seed";
13
14     public static void register(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
15         LiteralArgumentBuilder command = Commands.literal(COMMAND)
16                 .then(Commands.argument(SEED, StringArgumentType.string())
17                         .executes(context -> {
18                             String argument = StringArgumentType.getString(context, SEED);
19                             handleSeedCommand(argument);
20                             return 0;
21                         }));
22         commandDispatcher.register(command);
23     }
24
25     private static void handleSeedCommand(String argument) {
26         Long seed = parseNumericSeed(argument);
27         if (seed == null) {
28             seed = (long) argument.hashCode();
29         }
30         SlimeChunkProvider.setSeed(seed);
31     }
32
33     private static Long parseNumericSeed(String argument) {
34         try {
35             return Long.parseLong(argument);
36         } catch (final NumberFormatException ex) {
37             return null;
38         }
39     }
40 }