1 package com.irtimaled.bbor.forge;
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;
19 public class ForgeClientProxy extends ForgeCommonProxy {
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);
29 private <T extends NetworkEvent> void initializeClient(final T packet) {
30 EventBus.publish(InitializeClient.getEvent(new PayloadReader(packet.getPayload())));
32 NetworkManager networkManager = Minecraft.getInstance().getConnection().getNetworkManager();
33 networkManager.channel().pipeline().addBefore("packet_handler", "bbor", new ForgeClientChannelHandler());
35 networkManager.sendPacket(SubscribeToServer.getPayload().build());
39 public void renderWorldLastEvent(RenderWorldLastEvent event) {
40 ClientInterop.render(event.getPartialTicks(), Minecraft.getInstance().player);
44 public void worldUnloadedEvent(WorldEvent.Unload event) {
45 if (event.getWorld() instanceof WorldClient && !Minecraft.getInstance().getConnection().getNetworkManager().isChannelOpen()) {
46 ClientInterop.disconnectedFromRemoteServer();
51 public void clientChatEvent(ClientChatEvent event) {
52 if (ClientInterop.interceptChatMessage(event.getMessage()))
57 public void clientChatReceivedEvent(ClientChatReceivedEvent event) {
58 ClientInterop.handleSeedMessage(event.getMessage());