]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/forge/ForgeClientProxy.java
Update for Forge 1.13.2
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / forge / ForgeClientProxy.java
1 package com.irtimaled.bbor.forge;
2
3 import com.irtimaled.bbor.client.ClientProxy;
4 import com.irtimaled.bbor.client.interop.ClientInterop;
5 import com.irtimaled.bbor.client.keyboard.KeyListener;
6 import com.irtimaled.bbor.common.EventBus;
7 import com.irtimaled.bbor.common.messages.*;
8 import net.minecraft.client.Minecraft;
9 import net.minecraft.client.multiplayer.WorldClient;
10 import net.minecraft.network.NetworkManager;
11 import net.minecraftforge.client.event.ClientChatEvent;
12 import net.minecraftforge.client.event.ClientChatReceivedEvent;
13 import net.minecraftforge.client.event.RenderWorldLastEvent;
14 import net.minecraftforge.event.world.WorldEvent;
15 import net.minecraftforge.eventbus.api.SubscribeEvent;
16 import net.minecraftforge.fml.network.NetworkEvent;
17 import org.apache.commons.lang3.ArrayUtils;
18
19 public class ForgeClientProxy extends ForgeCommonProxy {
20     @Override
21     void init() {
22         new ClientProxy().init();
23         Minecraft.getInstance().gameSettings.keyBindings = ArrayUtils.addAll(Minecraft.getInstance().gameSettings.keyBindings, KeyListener.keyBindings());
24         ForgeNetworkHelper.addBusEventConsumer(AddBoundingBox.NAME, AddBoundingBox::getEvent);
25         ForgeNetworkHelper.addBusEventConsumer(RemoveBoundingBox.NAME, RemoveBoundingBox::getEvent);
26         ForgeNetworkHelper.addConsumer(InitializeClient.NAME, this::initializeClient);
27     }
28
29     private <T extends NetworkEvent> void initializeClient(final T packet) {
30         EventBus.publish(InitializeClient.getEvent(new PayloadReader(packet.getPayload())));
31
32         NetworkManager networkManager = Minecraft.getInstance().getConnection().getNetworkManager();
33         networkManager.channel().pipeline().addBefore("packet_handler", "bbor", new ForgeClientChannelHandler());
34
35         networkManager.sendPacket(SubscribeToServer.getPayload().build());
36     }
37
38     @SubscribeEvent
39     public void renderWorldLastEvent(RenderWorldLastEvent event) {
40         ClientInterop.render(event.getPartialTicks(), Minecraft.getInstance().player);
41     }
42
43     @SubscribeEvent
44     public void worldUnloadedEvent(WorldEvent.Unload event) {
45         if (event.getWorld() instanceof WorldClient && !Minecraft.getInstance().getConnection().getNetworkManager().isChannelOpen()) {
46             ClientInterop.disconnectedFromRemoteServer();
47         }
48     }
49
50     @SubscribeEvent
51     public void clientChatEvent(ClientChatEvent event) {
52         if (ClientInterop.interceptChatMessage(event.getMessage()))
53             event.setMessage("");
54     }
55
56     @SubscribeEvent
57     public void clientChatReceivedEvent(ClientChatReceivedEvent event) {
58         ClientInterop.handleSeedMessage(event.getMessage());
59     }
60 }