diff --git a/src/main/java/com/patchworkmc/testmods/networking/ClientPlayerNetworkEventTest.java b/src/main/java/com/patchworkmc/testmods/networking/ClientPlayerNetworkEventTest.java
new file mode 100644
index 0000000..cfb0752
--- /dev/null
+++ b/src/main/java/com/patchworkmc/testmods/networking/ClientPlayerNetworkEventTest.java
@@ -0,0 +1,65 @@
+package com.patchworkmc.testmods.networking;
+
+import net.minecraftforge.client.event.ClientPlayerNetworkEvent;
+import net.minecraftforge.common.MinecraftForge;
+import net.minecraftforge.eventbus.api.SubscribeEvent;
+import net.minecraftforge.fml.common.Mod;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+/**
+ * A test for patchwork's {@link ClientPlayerNetworkEvent}.
+ *
+ *
+ * These situations should be tested:
+ *
+ * - ClientPlayerNetworkEvent.LoggedInEvent is fired when logging on to a singleplayer world.
+ * - ClientPlayerNetworkEvent.LoggedInEvent is fired when logging on to a multiplayer world.
+ * - ClientPlayerNetworkEvent.RespawnEvent is fired when respawning.
+ * - ClientPlayerNetworkEvent.RespawnEvent is fired when changing dimensions.
+ * - ClientPlayerNetworkEvent.LoggedOutEvent is fired when logging out of a singleplayer world.
+ * - ClientPlayerNetworkEvent.LoggedOutEvent is fired when logging out of a multiplayer world.
+ *
+ *
+ */
+@Mod("patchwork-test-clientplayernetworkevent")
+public class ClientPlayerNetworkEventTest {
+ private static Logger logger = LogManager.getLogger("patchwork-test-clientplayernetworkevent");
+ public ClientPlayerNetworkEventTest() {
+ MinecraftForge.EVENT_BUS.register(this);
+ }
+
+ @SubscribeEvent
+ public void onClientPlayerNetworkEvent(ClientPlayerNetworkEvent event) {
+ logger.info("ClientPlayerNetworkEvent fired: Controller: {}, Player: {}, Network Manager: {}",
+ event.getController(),
+ event.getPlayer(),
+ event.getNetworkManager());
+ }
+
+ @SubscribeEvent
+ public void onLoggedInEvent(ClientPlayerNetworkEvent.LoggedInEvent event) {
+ logger.info("ClientPlayerNetworkEvent.LoggedInEvent fired: Controller: {}, Player: {}, Network Manager: {}",
+ event.getController(),
+ event.getPlayer(),
+ event.getNetworkManager());
+ }
+
+ @SubscribeEvent
+ public void onLoggedOutEvent(ClientPlayerNetworkEvent.LoggedOutEvent event) {
+ logger.info("ClientPlayerNetworkEvent.LoggedOutEvent fired: Controller: {}, Player: {}, Network Manager: {}",
+ event.getController(),
+ event.getPlayer(),
+ event.getNetworkManager());
+ }
+
+ @SubscribeEvent
+ public void onRespawnEvent(ClientPlayerNetworkEvent.RespawnEvent event) {
+ logger.info("ClientPlayerNetworkEvent.RespawnEvent fired: Controller: {}, Old Player: {}, New Player: {}, Network Manager: {}",
+ event.getController(),
+ event.getOldPlayer(),
+ event.getNewPlayer(),
+ event.getNetworkManager());
+ }
+
+}
diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml
index ba0d1a6..a6037d2 100644
--- a/src/main/resources/META-INF/mods.toml
+++ b/src/main/resources/META-INF/mods.toml
@@ -64,6 +64,12 @@ issueTrackerURL="http://github.com/patchworkmc/patchwork-api"
version="1.0.0"
displayName="Patchwork Networking Messages Test"
description="Tests if custom messages are being sent and recieved successfully."
+[[mods]]
+ modId="patchwork-test-clientplayernetworkevent"
+ version="1.0.0"
+ displayName="Patchwork ClientPlayerNetworkEvent Test"
+ description="Tests that ClientPlayerNetworkEvent events are being fired."
+
## MISC
[[mods]]
modId="patchwork-test-stringremapping"