summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorGravatar Uko Kokņevičs2024-01-15 17:53:04 +0200
committerGravatar Uko Kokņevičs2024-01-15 17:53:04 +0200
commit533a95f2862eea70976e705109253eb2c02809f8 (patch)
tree7c460a955f60392f8ef32e3580d8395947a653c6 /src/main
parentBump version to 0.2.2-SNAPSHOT (diff)
downloadmc-eris-alchemy-533a95f2862eea70976e705109253eb2c02809f8.tar.gz
mc-eris-alchemy-533a95f2862eea70976e705109253eb2c02809f8.tar.xz
mc-eris-alchemy-533a95f2862eea70976e705109253eb2c02809f8.zip
Actually sync from server to client
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/Emc.java30
-rw-r--r--src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java2
2 files changed, 25 insertions, 7 deletions
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/Emc.java b/src/main/java/lv/enes/mc/eris_alchemy/Emc.java
index d058b94..731ecee 100644
--- a/src/main/java/lv/enes/mc/eris_alchemy/Emc.java
+++ b/src/main/java/lv/enes/mc/eris_alchemy/Emc.java
@@ -22,6 +22,7 @@ import net.minecraft.world.level.Level;
22import net.minecraft.world.level.block.Block; 22import net.minecraft.world.level.block.Block;
23import org.quiltmc.loader.api.minecraft.ClientOnly; 23import org.quiltmc.loader.api.minecraft.ClientOnly;
24import org.quiltmc.qsl.networking.api.PacketByteBufs; 24import org.quiltmc.qsl.networking.api.PacketByteBufs;
25import org.quiltmc.qsl.networking.api.ServerPlayConnectionEvents;
25import org.quiltmc.qsl.networking.api.ServerPlayNetworking; 26import org.quiltmc.qsl.networking.api.ServerPlayNetworking;
26import org.quiltmc.qsl.networking.api.client.ClientPlayNetworking; 27import org.quiltmc.qsl.networking.api.client.ClientPlayNetworking;
27 28
@@ -86,10 +87,8 @@ public final class Emc {
86 public static void initClient(Minecraft ignoredClient) { 87 public static void initClient(Minecraft ignoredClient) {
87 ClientPlayNetworking.registerGlobalReceiver( 88 ClientPlayNetworking.registerGlobalReceiver(
88 NetworkingConstants.UPDATE_EMCS, 89 NetworkingConstants.UPDATE_EMCS,
89 (client1, handler, buf, responseSender) -> { 90 (client, handler, buf, responseSender) -> {
90 var map = buf.readMap(FriendlyByteBuf::readResourceLocation, BufUtils::readOptionalDouble); 91 syncFrom(buf);
91 VALUES.clear();
92 VALUES.putAll(map);
93 } 92 }
94 ); 93 );
95 } 94 }
@@ -98,6 +97,10 @@ public final class Emc {
98 overworld = server.overworld(); 97 overworld = server.overworld();
99 reinit(); 98 reinit();
100 warnOfMissingValues(); 99 warnOfMissingValues();
100
101 ServerPlayConnectionEvents.JOIN.register((handler, sender, server1) -> {
102 syncTo(handler.getPlayer());
103 });
101 } 104 }
102 105
103 public static void reloadData( 106 public static void reloadData(
@@ -264,9 +267,24 @@ public final class Emc {
264 syncTo(PlayerUtils.all()); 267 syncTo(PlayerUtils.all());
265 } 268 }
266 269
267 private static void syncTo(Collection<ServerPlayer> player) { 270 private static void syncFrom(FriendlyByteBuf buf) {
268 var buf = PacketByteBufs.create(); 271 var map = buf.readMap(FriendlyByteBuf::readResourceLocation, BufUtils::readOptionalDouble);
272 VALUES.clear();
273 VALUES.putAll(map);
274 }
275
276 private static FriendlyByteBuf syncTo(FriendlyByteBuf buf) {
269 buf.writeMap(VALUES, FriendlyByteBuf::writeResourceLocation, BufUtils::writeOptionalDouble); 277 buf.writeMap(VALUES, FriendlyByteBuf::writeResourceLocation, BufUtils::writeOptionalDouble);
278 return buf;
279 }
280
281 private static void syncTo(Collection<ServerPlayer> players) {
282 var buf = syncTo(PacketByteBufs.create());
283 ServerPlayNetworking.send(players, NetworkingConstants.UPDATE_EMCS, buf);
284 }
285
286 private static void syncTo(ServerPlayer player) {
287 var buf = syncTo(PacketByteBufs.create());
270 ServerPlayNetworking.send(player, NetworkingConstants.UPDATE_EMCS, buf); 288 ServerPlayNetworking.send(player, NetworkingConstants.UPDATE_EMCS, buf);
271 } 289 }
272 290
diff --git a/src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java b/src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java
index 9d8fe82..8055505 100644
--- a/src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java
+++ b/src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java
@@ -9,7 +9,7 @@ public final class BufUtils {
9 private BufUtils() {} 9 private BufUtils() {}
10 10
11 public static OptionalDouble readOptionalDouble(FriendlyByteBuf buf) { 11 public static OptionalDouble readOptionalDouble(FriendlyByteBuf buf) {
12 return buf.readOptional(ByteBuf::readDouble).stream().mapToDouble(x -> x).findFirst(); 12 return buf.readOptional(ByteBuf::readDoubleLE).stream().mapToDouble(x -> x).findFirst();
13 } 13 }
14 14
15 @SuppressWarnings("OptionalUsedAsFieldOrParameterType") 15 @SuppressWarnings("OptionalUsedAsFieldOrParameterType")