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