better syncing hopefully

This commit is contained in:
Mysticpasta1 2023-03-08 09:12:24 -06:00
parent 3f22a1a4ab
commit cd31a5efab
4 changed files with 23 additions and 36 deletions

View File

@ -14,11 +14,7 @@ public class ServerEventHandler {
public static void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
// Send current URL to player
String url = SyncedUrl.getUrl();
if(event.getEntity() instanceof ServerPlayer serverPlayer) {
new ScreenRenderer(url);
Messages.sendUrlToPlayer(serverPlayer, url);
}
new ScreenRenderer(Messages.sendUrlToPlayer(url));
}
@SubscribeEvent
@ -32,9 +28,6 @@ public class ServerEventHandler {
public static void onPlayerChangedDimension(PlayerEvent.PlayerChangedDimensionEvent event) {
// Send current URL to player
String url = SyncedUrl.getUrl();
if(event.getEntity() instanceof ServerPlayer serverPlayer) {
new ScreenRenderer(url);
Messages.sendUrlToPlayer(serverPlayer, url);
}
new ScreenRenderer(Messages.sendUrlToPlayer(url));
}
}

View File

@ -4,34 +4,20 @@
package net.montoyo.wd.net;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.util.AttributeKey;
import net.minecraft.client.Minecraft;
import net.minecraft.core.Holder;
import net.minecraft.network.FriendlyByteBuf;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.server.level.ServerPlayer;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.LogicalSide;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.network.NetworkEvent;
import net.minecraftforge.network.NetworkRegistry;
import net.minecraftforge.network.PacketDistributor;
import net.minecraftforge.network.simple.SimpleChannel;
import net.montoyo.wd.net.client.*;
import net.montoyo.wd.net.server.*;
import net.montoyo.wd.utilities.SyncedUrl;
import org.jline.utils.Log;
import java.lang.reflect.InvocationTargetException;
import java.util.function.Supplier;
@Mod.EventBusSubscriber
public class Messages {
@ -67,16 +53,20 @@ public class Messages {
public static void sendUrlUpdate(String newUrl) {
if (newUrl != null && Minecraft.getInstance().getConnection() != null) {
Messages.INSTANCE.sendToServer(new SyncedUrlPacket(newUrl));
if(newUrl.equals("https://www.google.com") || newUrl.equals("https://www.google.com/")) {
Messages.INSTANCE.sendToServer(new SyncedUrlPacket(newUrl, true));
} else {
Messages.INSTANCE.sendToServer(new SyncedUrlPacket(newUrl, false));
}
}
}
public static void sendUrlToPlayer(ServerPlayer player, String url) {
public static String sendUrlToPlayer(String url) {
if(url == null) {
url = "https://www.google.com";
}
SyncedUrl.setUrl(url);
Messages.INSTANCE.send(PacketDistributor.PLAYER.with(() -> player), new SyncedUrlPacket(url));
return SyncedUrl.getUrl();
}
@SubscribeEvent

View File

@ -8,22 +8,29 @@ import java.util.function.Supplier;
public class SyncedUrlPacket {
private String url;
private boolean isDefault;
public SyncedUrlPacket(String url) {
public SyncedUrlPacket(String url, boolean isDefault) {
this.url = url;
this.isDefault = isDefault;
}
public void encode(FriendlyByteBuf buffer) {
buffer.writeUtf(this.url);
buffer.writeUtf(url);
buffer.writeBoolean(isDefault);
}
public static SyncedUrlPacket decode(FriendlyByteBuf buffer) {
return new SyncedUrlPacket(buffer.readUtf());
String url = buffer.readUtf();
boolean isDefault = buffer.readBoolean();
return new SyncedUrlPacket(url, isDefault);
}
public void handle(Supplier<NetworkEvent.Context> contextSupplier) {
NetworkEvent.Context context = contextSupplier.get();
Messages.sendUrlUpdate(this.url);
if (url != null && !url.isEmpty() && !isDefault) {
Messages.sendUrlToPlayer(url);
}
context.setPacketHandled(true);
}
}

View File

@ -1,7 +1,5 @@
package net.montoyo.wd.utilities;
import net.montoyo.wd.net.Messages;
public class SyncedUrl {
private static String url;
@ -11,7 +9,6 @@ public class SyncedUrl {
public static void setUrl(String newUrl) {
url = newUrl;
Messages.sendUrlUpdate(newUrl);
}
public static void updateUrl(String newUrl) {