diff --git a/src/main/java/net/montoyo/wd/entity/ServerEventHandler.java b/src/main/java/net/montoyo/wd/entity/ServerEventHandler.java index 567b3d6..a9a5dae 100644 --- a/src/main/java/net/montoyo/wd/entity/ServerEventHandler.java +++ b/src/main/java/net/montoyo/wd/entity/ServerEventHandler.java @@ -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)); } } \ No newline at end of file diff --git a/src/main/java/net/montoyo/wd/net/Messages.java b/src/main/java/net/montoyo/wd/net/Messages.java index b2fa6f6..3ec1af6 100644 --- a/src/main/java/net/montoyo/wd/net/Messages.java +++ b/src/main/java/net/montoyo/wd/net/Messages.java @@ -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 diff --git a/src/main/java/net/montoyo/wd/net/client/SyncedUrlPacket.java b/src/main/java/net/montoyo/wd/net/client/SyncedUrlPacket.java index 4103950..86861bd 100644 --- a/src/main/java/net/montoyo/wd/net/client/SyncedUrlPacket.java +++ b/src/main/java/net/montoyo/wd/net/client/SyncedUrlPacket.java @@ -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 contextSupplier) { NetworkEvent.Context context = contextSupplier.get(); - Messages.sendUrlUpdate(this.url); + if (url != null && !url.isEmpty() && !isDefault) { + Messages.sendUrlToPlayer(url); + } context.setPacketHandled(true); } } \ No newline at end of file diff --git a/src/main/java/net/montoyo/wd/utilities/SyncedUrl.java b/src/main/java/net/montoyo/wd/utilities/SyncedUrl.java index 0c1dedf..5b987ac 100644 --- a/src/main/java/net/montoyo/wd/utilities/SyncedUrl.java +++ b/src/main/java/net/montoyo/wd/utilities/SyncedUrl.java @@ -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) {