Skip to content

Commit 680fc56

Browse files
committed
Connection events
1 parent d3d5bfb commit 680fc56

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

common/src/main/java/com/lambda/mixin/ClientConnectionMixin.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.lambda.mixin;
22

33
import com.lambda.event.EventFlow;
4+
import com.lambda.event.events.ConnectionEvent;
45
import com.lambda.event.events.PacketEvent;
56
import io.netty.channel.ChannelHandlerContext;
67
import net.minecraft.network.ClientConnection;
78
import net.minecraft.network.NetworkSide;
9+
import net.minecraft.network.listener.PacketListener;
810
import net.minecraft.network.packet.Packet;
11+
import net.minecraft.network.packet.c2s.handshake.ConnectionIntent;
12+
import net.minecraft.text.Text;
913
import org.spongepowered.asm.mixin.Final;
1014
import org.spongepowered.asm.mixin.Mixin;
1115
import org.spongepowered.asm.mixin.Shadow;
@@ -53,4 +57,20 @@ private void receivingPacketPost(
5357

5458
EventFlow.post(new PacketEvent.Receive.Post(packet));
5559
}
60+
61+
@Inject(method = "connect(Ljava/lang/String;ILnet/minecraft/network/listener/PacketListener;Lnet/minecraft/network/packet/c2s/handshake/ConnectionIntent;)V", at = @At("HEAD"))
62+
private void onConnect(
63+
String address,
64+
int port,
65+
PacketListener listener,
66+
ConnectionIntent intent,
67+
CallbackInfo ci
68+
) {
69+
EventFlow.post(new ConnectionEvent.Connect(address, port, listener, intent));
70+
}
71+
72+
@Inject(method = "disconnect(Lnet/minecraft/text/Text;)V", at = @At("HEAD"))
73+
private void onDisconnect(Text reason, CallbackInfo ci) {
74+
EventFlow.post(new ConnectionEvent.Disconnect(reason));
75+
}
5676
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.lambda.event.events
2+
3+
import com.lambda.event.Event
4+
import net.minecraft.network.listener.PacketListener
5+
import net.minecraft.network.packet.c2s.handshake.ConnectionIntent
6+
import net.minecraft.text.Text
7+
8+
abstract class ConnectionEvent : Event {
9+
class Connect(
10+
val host: String,
11+
port: Int,
12+
listener: PacketListener,
13+
intent: ConnectionIntent
14+
) : ConnectionEvent()
15+
class Disconnect(val reason: Text) : ConnectionEvent()
16+
}

0 commit comments

Comments
 (0)