diff options
| author | 2024-01-15 17:53:04 +0200 | |
|---|---|---|
| committer | 2024-01-15 17:53:04 +0200 | |
| commit | 533a95f2862eea70976e705109253eb2c02809f8 (patch) | |
| tree | 7c460a955f60392f8ef32e3580d8395947a653c6 /src/main/java/lv/enes/mc | |
| parent | Bump version to 0.2.2-SNAPSHOT (diff) | |
| download | mc-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/java/lv/enes/mc')
| -rw-r--r-- | src/main/java/lv/enes/mc/eris_alchemy/Emc.java | 30 | ||||
| -rw-r--r-- | src/main/java/lv/enes/mc/eris_alchemy/utils/BufUtils.java | 2 |
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; | |||
| 22 | import net.minecraft.world.level.block.Block; | 22 | import net.minecraft.world.level.block.Block; |
| 23 | import org.quiltmc.loader.api.minecraft.ClientOnly; | 23 | import org.quiltmc.loader.api.minecraft.ClientOnly; |
| 24 | import org.quiltmc.qsl.networking.api.PacketByteBufs; | 24 | import org.quiltmc.qsl.networking.api.PacketByteBufs; |
| 25 | import org.quiltmc.qsl.networking.api.ServerPlayConnectionEvents; | ||
| 25 | import org.quiltmc.qsl.networking.api.ServerPlayNetworking; | 26 | import org.quiltmc.qsl.networking.api.ServerPlayNetworking; |
| 26 | import org.quiltmc.qsl.networking.api.client.ClientPlayNetworking; | 27 | import 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") |