public override void OnServerDisconnect(NetworkConnection conn) { try { if (ConfigFile.ServerConfig.GetBool("disconnect_drop", true)) { conn.identity.GetComponent <PlayerStats>().HurtPlayer(new PlayerStats.HitInfo(-1, "DISCONNECT", DamageTypes.Wall, 0), conn.identity.gameObject); } base.OnServerDisconnect(conn); MirrorIgnoranceServer.ForceDisconnectClient(conn); conn.Disconnect(); conn.Dispose(); } catch (Exception e) { Base.Info(e.ToString() + "\n" + e.InnerException.ToString()); } }
public static bool Prefix(MirrorIgnoranceServer __instance, NetworkConnection source, DissonanceNetworkMessage msg) { PacketReader newreader = new PacketReader(msg.Data); if (newreader.ReadPacketHeader(out var messageTypes) && (messageTypes == MessageTypes.ServerRelayReliable || messageTypes == MessageTypes.ServerRelayUnreliable)) { if (!EventHandlers.connIdToUserIds.TryGetValue(source.connectionId, out var userid)) { return(true); } if (SanyaPlugin.Instance.Config.DisableChatBypassWhitelist && WhiteList.Users != null && WhiteList.IsOnWhitelist(userid)) { return(true); } if (SanyaPlugin.Instance.Config.DisableAllChat) { return(false); } } return(true); }
public override void OnServerDisconnect(NetworkConnection conn) { base.OnServerDisconnect(conn); MirrorIgnoranceServer.ForceDisconnectClient(conn); }