]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/client/interop/ClientInterop.java
Add spawning spheres and spawnable spaces
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / client / interop / ClientInterop.java
1 package com.irtimaled.bbor.client.interop;
2
3 import com.irtimaled.bbor.client.PlayerCoords;
4 import com.irtimaled.bbor.client.commands.SeedCommand;
5 import com.irtimaled.bbor.client.commands.SpawningSphereCommand;
6 import com.irtimaled.bbor.client.events.DisconnectedFromRemoteServer;
7 import com.irtimaled.bbor.client.events.Render;
8 import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
9 import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
10 import com.irtimaled.bbor.common.EventBus;
11 import com.irtimaled.bbor.common.TypeHelper;
12 import com.mojang.brigadier.CommandDispatcher;
13 import com.mojang.brigadier.exceptions.CommandSyntaxException;
14 import net.minecraft.client.Minecraft;
15 import net.minecraft.client.entity.EntityPlayerSP;
16 import net.minecraft.client.network.NetHandlerPlayClient;
17 import net.minecraft.command.ISuggestionProvider;
18 import net.minecraft.util.math.BlockPos;
19 import net.minecraft.util.text.ITextComponent;
20 import net.minecraft.util.text.TextComponentTranslation;
21
22 public class ClientInterop {
23     public static void disconnectedFromRemoteServer() {
24         EventBus.publish(new DisconnectedFromRemoteServer());
25     }
26
27     public static void render(float partialTicks, EntityPlayerSP player) {
28         PlayerCoords.setPlayerPosition(partialTicks, player);
29         EventBus.publish(new Render(player.dimension));
30     }
31
32     public static boolean interceptChatMessage(String message) {
33         if (message.startsWith("/bbor:")) {
34             NetHandlerPlayClient connection = Minecraft.getInstance().getConnection();
35             if (connection != null) {
36                 CommandDispatcher<ISuggestionProvider> commandDispatcher = connection.func_195515_i();
37                 try {
38                     commandDispatcher.execute(message.substring(1), Minecraft.getInstance().player.getCommandSource());
39                 } catch (CommandSyntaxException ignored) {
40                 }
41             }
42             return true;
43
44         }
45         return false;
46     }
47
48     public static void updateWorldSpawnReceived(BlockPos blockPos) {
49         EventBus.publish(new UpdateWorldSpawnReceived(blockPos.getX(), blockPos.getZ()));
50     }
51
52     public static int getRenderDistanceChunks() {
53         return Minecraft.getInstance().gameSettings.renderDistanceChunks;
54     }
55
56     public static void handleSeedMessage(ITextComponent chatComponent) {
57         TypeHelper.doIfType(chatComponent, TextComponentTranslation.class, message -> {
58             if (!message.getKey().equals("commands.seed.success")) return;
59
60             try {
61                 long seed = Long.parseLong(message.getFormatArgs()[0].toString());
62                 SlimeChunkProvider.setSeed(seed);
63             } catch (Exception ignored) {
64             }
65         });
66     }
67
68     public static void registerClientCommands(CommandDispatcher<ISuggestionProvider> commandDispatcher) {
69         SeedCommand.register(commandDispatcher);
70         SpawningSphereCommand.register(commandDispatcher);
71     }
72 }