Skip to content
This repository was archived by the owner on Jun 3, 2024. It is now read-only.

Commit f4f8976

Browse files
committed
Don't construct GatherLoginPayloadsEvent when directly dispatching to SimpleChannel
1 parent e1a9100 commit f4f8976

5 files changed

Lines changed: 21 additions & 10 deletions

File tree

patchwork-networking/src/main/java/com/patchworkmc/impl/networking/ListenableChannel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@
1919

2020
package com.patchworkmc.impl.networking;
2121

22+
import java.util.List;
2223
import java.util.function.BiConsumer;
2324
import java.util.function.Consumer;
2425

2526
import net.minecraftforge.fml.network.ICustomPacket;
2627
import net.minecraftforge.fml.network.NetworkEvent;
28+
import net.minecraftforge.fml.network.NetworkRegistry;
2729

2830
public interface ListenableChannel {
2931
void setPacketListener(BiConsumer<ICustomPacket<?>, NetworkEvent.Context> listener);
3032
void setRegistrationChangeListener(Consumer<NetworkEvent.ChannelRegistrationChangeEvent> listener);
31-
void setGatherLoginPayloadsListener(Consumer<NetworkEvent.GatherLoginPayloadsEvent> listener);
33+
void setGatherLoginPayloadsListener(BiConsumer<List<NetworkRegistry.LoginPayload>, Boolean> listener);
3234
}

patchwork-networking/src/main/java/com/patchworkmc/impl/networking/NetworkChannel.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@
1919

2020
package com.patchworkmc.impl.networking;
2121

22+
import java.util.List;
2223
import java.util.function.BiConsumer;
2324
import java.util.function.Consumer;
2425
import java.util.function.Predicate;
2526
import java.util.function.Supplier;
2627

2728
import net.minecraftforge.fml.network.ICustomPacket;
2829
import net.minecraftforge.fml.network.NetworkEvent;
30+
import net.minecraftforge.fml.network.NetworkRegistry;
2931

3032
import net.minecraft.util.Identifier;
3133

@@ -34,7 +36,7 @@ public class NetworkChannel implements NamedChannel, ListenableChannel, Versione
3436

3537
private BiConsumer<ICustomPacket<?>, NetworkEvent.Context> packetListener;
3638
private Consumer<NetworkEvent.ChannelRegistrationChangeEvent> registrationChangeListener;
37-
private Consumer<NetworkEvent.GatherLoginPayloadsEvent> gatherLoginPayloadsListener;
39+
private BiConsumer<List<NetworkRegistry.LoginPayload>, Boolean> gatherLoginPayloadsListener;
3840

3941
private final String networkProtocolVersion;
4042
private final Predicate<String> clientAcceptedVersions;
@@ -63,7 +65,7 @@ public void setRegistrationChangeListener(Consumer<NetworkEvent.ChannelRegistrat
6365
}
6466

6567
@Override
66-
public void setGatherLoginPayloadsListener(Consumer<NetworkEvent.GatherLoginPayloadsEvent> listener) {
68+
public void setGatherLoginPayloadsListener(BiConsumer<List<NetworkRegistry.LoginPayload>, Boolean> listener) {
6769
this.gatherLoginPayloadsListener = listener;
6870
}
6971

@@ -79,9 +81,9 @@ public void onRegistrationChange(NetworkEvent.ChannelRegistrationChangeEvent eve
7981
}
8082
}
8183

82-
public void onGatherLoginPayloads(NetworkEvent.GatherLoginPayloadsEvent event) {
84+
public void onGatherLoginPayloads(List<NetworkRegistry.LoginPayload> payloads, boolean isLocal) {
8385
if (gatherLoginPayloadsListener != null) {
84-
gatherLoginPayloadsListener.accept(event);
86+
gatherLoginPayloadsListener.accept(payloads, isLocal);
8587
}
8688
}
8789

patchwork-networking/src/main/java/net/minecraftforge/fml/network/NetworkRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ static List<LoginPayload> gatherLoginPayloads(final NetworkDirection direction,
158158
List<LoginPayload> gatheredPayloads = new ArrayList<>();
159159

160160
for (NetworkChannel channel: channels.values()) {
161-
channel.onGatherLoginPayloads(new NetworkEvent.GatherLoginPayloadsEvent(gatheredPayloads, isLocal));
161+
channel.onGatherLoginPayloads(gatheredPayloads, isLocal);
162162
}
163163

164164
return gatheredPayloads;

patchwork-networking/src/main/java/net/minecraftforge/fml/network/event/EventNetworkChannel.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package net.minecraftforge.fml.network.event;
2121

22+
import java.util.List;
2223
import java.util.function.Consumer;
2324

2425
import net.minecraftforge.eventbus.api.BusBuilder;
@@ -27,6 +28,7 @@
2728
import net.minecraftforge.eventbus.api.IEventListener;
2829
import net.minecraftforge.fml.network.ICustomPacket;
2930
import net.minecraftforge.fml.network.NetworkEvent;
31+
import net.minecraftforge.fml.network.NetworkRegistry;
3032

3133
import com.patchworkmc.impl.networking.ListenableChannel;
3234

@@ -38,7 +40,7 @@ public EventNetworkChannel(ListenableChannel channel) {
3840

3941
channel.setPacketListener(this::packetListener);
4042
channel.setRegistrationChangeListener(networkEventBus::post);
41-
channel.setGatherLoginPayloadsListener(networkEventBus::post);
43+
channel.setGatherLoginPayloadsListener(this::gatherLoginPayloadsListener);
4244

4345
// TODO: Login packet stuff, registration change listeners
4446
throw new UnsupportedOperationException("Registration change / gather login payload events aren't supported");
@@ -52,6 +54,10 @@ private void packetListener(final ICustomPacket<?> packet, final NetworkEvent.Co
5254
this.networkEventBus.post(packet.getDirection().getEvent(packet, () -> context));
5355
}
5456

57+
private void gatherLoginPayloadsListener(List<NetworkRegistry.LoginPayload> payloads, boolean isLocal) {
58+
this.networkEventBus.post(new NetworkEvent.GatherLoginPayloadsEvent(payloads, isLocal));
59+
}
60+
5561
public <T extends NetworkEvent> void addListener(Consumer<T> eventListener) {
5662
this.networkEventBus.addListener(eventListener);
5763
}

patchwork-networking/src/main/java/net/minecraftforge/fml/network/simple/SimpleChannel.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import net.minecraftforge.fml.network.ICustomPacket;
3232
import net.minecraftforge.fml.network.NetworkDirection;
3333
import net.minecraftforge.fml.network.NetworkEvent;
34+
import net.minecraftforge.fml.network.NetworkRegistry;
3435
import net.minecraftforge.fml.network.PacketDistributor;
3536
import org.apache.commons.lang3.tuple.Pair;
3637

@@ -60,16 +61,16 @@ private void packetListener(ICustomPacket<?> packet, NetworkEvent.Context contex
6061
this.indexedCodec.consume(packet.getInternalData(), packet.getIndex(), context);
6162
}
6263

63-
private void networkLoginGather(final NetworkEvent.GatherLoginPayloadsEvent gatherEvent) {
64+
private void networkLoginGather(List<NetworkRegistry.LoginPayload> payloads, boolean isLocal) {
6465
for (Function<Boolean, List<Pair<String, ?>>> packetGenerator: loginPackets) {
65-
List<Pair<String, ?>> packets = packetGenerator.apply(gatherEvent.isLocal());
66+
List<Pair<String, ?>> packets = packetGenerator.apply(isLocal);
6667

6768
for (Pair<String, ?> pair: packets) {
6869
PacketByteBuf buffer = new PacketByteBuf(Unpooled.buffer());
6970

7071
this.indexedCodec.build(pair.getRight(), buffer);
7172

72-
gatherEvent.add(buffer, this.channelName, pair.getLeft());
73+
payloads.add(new NetworkRegistry.LoginPayload(buffer, this.channelName, pair.getLeft()));
7374
}
7475
}
7576
}

0 commit comments

Comments
 (0)