Skip to content

Commit

Permalink
Fix double registering border payload in singleplayer
Browse files Browse the repository at this point in the history
  • Loading branch information
pop4959 committed May 23, 2024
1 parent 221c756 commit a8ce521
Showing 1 changed file with 9 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
import net.fabricmc.fabric.api.networking.v1.S2CPlayChannelEvents;
import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents;
import net.fabricmc.fabric.impl.networking.PayloadTypeRegistryImpl;
import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.network.RegistryByteBuf;
import net.minecraft.network.packet.CustomPayload;
import net.minecraft.network.packet.s2c.common.CustomPayloadS2CPacket;
import net.minecraft.particle.DustParticleEffect;
Expand Down Expand Up @@ -39,6 +41,7 @@ public class ChunkyBorderFabric implements ModInitializer {
private ChunkyBorder chunkyBorder;
private boolean registered;

@SuppressWarnings("UnstableApiUsage")
@Override
public void onInitialize() {
final Chunky chunky = ChunkyProvider.get();
Expand All @@ -49,7 +52,12 @@ public void onInitialize() {
Translator.addCustomTranslation("custom_border_message", config.message());
BorderColor.parseColor(config.visualizerColor());
new BorderInitializationTask(chunkyBorder).run();
PayloadTypeRegistry.playS2C().register(BorderPayload.ID, CustomPayload.codecOf(BorderPayload::write, BorderPayload::new));
final PayloadTypeRegistry<RegistryByteBuf> payloadTypeRegistry = PayloadTypeRegistry.playS2C();
if (payloadTypeRegistry instanceof final PayloadTypeRegistryImpl<RegistryByteBuf> payloadTypeRegistryImpl) {
if (payloadTypeRegistryImpl.get(BorderPayload.ID) == null) {
PayloadTypeRegistry.playS2C().register(BorderPayload.ID, CustomPayload.codecOf(BorderPayload::write, BorderPayload::new));
}
}
ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> {
for (final World world : chunkyBorder.getChunky().getServer().getWorlds()) {
final Shape shape = chunkyBorder.getBorder(world.getName()).map(BorderData::getBorder).orElse(null);
Expand Down

0 comments on commit a8ce521

Please sign in to comment.