import com.irtimaled.bbor.client.events.DisconnectedFromRemoteServer;
import com.irtimaled.bbor.client.events.Render;
import com.irtimaled.bbor.client.events.SeedCommandTyped;
+import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
import com.irtimaled.bbor.common.EventBus;
import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.util.math.BlockPos;
public class ClientInterop {
public static void disconnectedFromRemoteServer() {
return null;
}
}
+
+ public static void updateWorldSpawnReceived(BlockPos blockPos) {
+ EventBus.publish(new UpdateWorldSpawnReceived(blockPos.getX(), blockPos.getZ()));
+ }
}
@Redirect(method = "processPacket", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/play/INetHandlerPlayClient;handleCustomPayload(Lnet/minecraft/network/play/server/SPacketCustomPayload;)V"))
private void processPacket(INetHandlerPlayClient netHandlerPlayClient, SPacketCustomPayload packet) {
- PacketBuffer data = null;
- try {
- data = packet.getBufferData();
- PayloadReader reader = new PayloadReader(data);
- switch (channel.toString()) {
- case InitializeClient.NAME: {
- EventBus.publish(InitializeClient.getEvent(reader));
- ((NetHandlerPlayClient) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build());
- break;
- }
- case AddBoundingBox.NAME: {
- EventBus.publish(AddBoundingBox.getEvent(reader));
- break;
- }
- case RemoveBoundingBox.NAME: {
- EventBus.publish(RemoveBoundingBox.getEvent(reader));
- break;
- }
- default: {
- netHandlerPlayClient.handleCustomPayload(packet);
- break;
+ String channelName = channel.toString();
+ if (channelName.startsWith("bbor:")) {
+ PacketBuffer data = null;
+ try {
+ data = packet.getBufferData();
+ PayloadReader reader = new PayloadReader(data);
+ switch (channelName) {
+ case InitializeClient.NAME: {
+ EventBus.publish(InitializeClient.getEvent(reader));
+ ((NetHandlerPlayClient) netHandlerPlayClient).sendPacket(SubscribeToServer.getPayload().build());
+ break;
+ }
+ case AddBoundingBox.NAME: {
+ EventBus.publish(AddBoundingBox.getEvent(reader));
+ break;
+ }
+ case RemoveBoundingBox.NAME: {
+ EventBus.publish(RemoveBoundingBox.getEvent(reader));
+ break;
+ }
}
+ } finally {
+ if (data != null)
+ data.release();
}
- } finally {
- if (data != null)
- data.release();
+ } else {
+ netHandlerPlayClient.handleCustomPayload(packet);
}
}
}
package com.irtimaled.bbor.mixin.network.play.server;
-import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
-import com.irtimaled.bbor.common.EventBus;
+import com.irtimaled.bbor.client.interop.ClientInterop;
import net.minecraft.network.play.server.SPacketSpawnPosition;
import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
@Inject(method = "processPacket", at = @At("RETURN"))
private void afterProcessPacket(CallbackInfo ci) {
- EventBus.publish(new UpdateWorldSpawnReceived(spawnBlockPos.getX(), spawnBlockPos.getZ()));
+ ClientInterop.updateWorldSpawnReceived(spawnBlockPos);
}
}