private void AddInternal(On.RoR2.Networking.GameNetworkManager.orig_OnServerAddPlayerInternal orig, global::RoR2.Networking.GameNetworkManager self, NetworkConnection conn, short playerControllerId, NetworkReader extraMessageReader) { Logger.LogWarning("Add Player Internal"); }
static void DisplayCustomCharacters(On.RoR2.Networking.GameNetworkManager.orig_OnServerAddPlayerInternal orig, GameNetworkManager self, NetworkConnection conn, short playerControllerId, NetworkReader extraMessageReader) { if (NetworkServer.active) { //Ghetto code to prevent duplicates if (self.playerPrefab == null) { return; } if (self.playerPrefab.GetComponent <NetworkIdentity>() == null) { return; } if ((int)playerControllerId < conn.playerControllers.Count && conn.playerControllers[(int)playerControllerId].IsValid && conn.playerControllers[(int)playerControllerId].gameObject != null) { return; } if (NetworkUser.readOnlyInstancesList.Count >= self.maxConnections) { return; } string text = ""; for (int i = 0; i < Settings.PlayableCharactersList.Count; i++) { string slotName = ""; switch (i) { case 0: slotName = "Commando"; break; case 1: slotName = "Huntress"; break; case 2: slotName = "Bandit"; break; case 3: slotName = "MUL-T"; break; case 4: slotName = "Engineer"; break; case 5: slotName = "Artificer"; break; case 6: slotName = "Mercenary"; break; case 7: slotName = "REX"; break; case 8: slotName = "Loader"; break; case 9: slotName = "Acrid"; break; case 10: slotName = "Captain"; break; } text += Util.GenerateColoredString(slotName, new Color32(255, 255, 0, 255)) + " = " + BodyCatalog.GetBodyName(BodyCatalog.FindBodyIndex(Settings.PlayableCharactersList[i])) + " "; if (i + 1 % 3 == 0 || i + 1 == Settings.PlayableCharactersList.Count) { Tools.SendPM(conn, new Chat.SimpleChatMessage { baseToken = text }); text = ""; } } } orig(self, conn, playerControllerId, extraMessageReader); }