import com.irtimaled.bbor.client.events.UpdateWorldSpawnReceived;
import com.irtimaled.bbor.client.providers.SlimeChunkProvider;
import com.irtimaled.bbor.common.EventBus;
+import com.irtimaled.bbor.common.TypeHelper;
import net.minecraft.client.Minecraft;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.text.ITextComponent;
+import net.minecraft.util.text.TextComponentTranslation;
public class ClientInterop {
public static void disconnectedFromRemoteServer() {
public static int getRenderDistanceChunks() {
return Minecraft.getInstance().gameSettings.renderDistanceChunks;
}
+
+ public static void handleSeedMessage(ITextComponent chatComponent) {
+ TypeHelper.doIfType(chatComponent, TextComponentTranslation.class, message -> {
+ if (!message.getKey().equals("commands.seed.success")) return;
+
+ try {
+ long seed = Long.parseLong(message.getFormatArgs()[0].toString());
+ SlimeChunkProvider.setSeed(seed);
+ } catch (Exception ignored) {
+ }
+ });
+ }
}
--- /dev/null
+package com.irtimaled.bbor.mixin.network.play.server;
+
+import com.irtimaled.bbor.client.interop.ClientInterop;
+import net.minecraft.network.play.server.SPacketChat;
+import net.minecraft.util.text.ITextComponent;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.Shadow;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Inject;
+import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
+
+@Mixin(SPacketChat.class)
+public class MixinSPacketChat {
+ @Shadow private ITextComponent chatComponent;
+
+ @Inject(method = "processPacket", at = @At("RETURN"))
+ private void processPacket(CallbackInfo ci) {
+ ClientInterop.handleSeedMessage(this.chatComponent);
+ }
+}
"client.renderer.MixinEntityRenderer",
"client.settings.MixinGameSettings",
"client.settings.MixinKeyBinding",
+ "network.play.server.MixinSPacketChat",
"network.play.server.MixinSPacketCustomPayload",
"network.play.server.MixinSPacketSpawnPosition"
],