private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { if (e.Handled) { return; } RunCatchLog(() => { if (Settings.ShowPBUserInterface) { uint?personalBest = HostPlugin.RecordAdapter.GetBestTime(e.Login, HostPlugin.CurrentChallengeID); SendPBManiaLinkPage(e.Login, personalBest); } if (Settings.ShowLocalRecordUserInterface) { SendLocalRecordManiaLinkToLogin(e.Login); } if (Settings.ShowLocalRecordListUserInterface) { string maniaLinkPageContent = GetRecordListManiaLinkPage(LastRankings, PlayersCount < Settings.StaticModeStartLimit ? e.Login : null); string hash = maniaLinkPageContent.ToHash(); SetManiaLinkPageHash(e.Login, _localRecordListManiaLinkPageID, hash); Context.RPCClient.Methods.SendDisplayManialinkPageToLogin(e.Login, maniaLinkPageContent, 0, false); } if (Settings.ShowMessages) { SendServerRankMessageToLogin(e.Login); } }, "Error in Callbacks_PlayerConnect Method.", true); }
private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { if (e.Handled) { return; } RunCatchLog(() => ResetValues(e.Login), "Error in Callbacks_PlayerConnect Method.", true); }
private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { if (e.Handled) { return; } RunCatchLog(() => { if (ClanMembers.Contains(e.Login.ToLower())) { return; } string nickname = GetNickname(e.Login); if (nickname == null) { Logger.Debug(string.Format("Could not determine nickname for login: {0}", e.Login)); return; } if (!Regex.IsMatch(nickname, Pattern, RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.Compiled)) { return; } GenericResponse <bool> kickResponse = Context.RPCClient.Methods.Kick(e.Login, KickReason); if (kickResponse.Erroneous) { Logger.Debug(string.Format("Could not kick login: {0}. Reason: {1}({2})", e.Login, kickResponse.Fault.FaultMessage, kickResponse.Fault.FaultCode)); return; } if (kickResponse.Value) { Logger.InfoToUI(string.Format("Login {0} with player name {1} was kicked due to name abuse!", e.Login, nickname)); SendFormattedMessage(PublicKickReason, "Nickname", StripTMColorsAndFormatting(nickname)); e.Handled = true; } else { Logger.Debug(string.Format("Could not kick login: {0}. Kickresposne returned: false", e.Login)); } }, "Error in Callbacks_PlayerConnect Method.", true); }
private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { RunCatchLog(() => { DetailedPlayerInfo detailedPlayerInfo = GetDetailedPlayerInfo(e.Login); if (detailedPlayerInfo == null) { e.Handled = true; Context.RPCClient.Methods.Kick(e.Login, "TMSPS couldn't determine your player information, try reconnecting!"); return; } NicknameResolverFactory.Instance.Set(e.Login, detailedPlayerInfo.NickName); if (detailedPlayerInfo.NickName.IsNullOrTimmedEmpty()) { Context.RPCClient.Methods.Kick(e.Login, "Please provide a nickname!"); e.Handled = true; return; } if (Settings.EnableJoinMessage) { string nation = "Unknown"; List <string> pathParts = new List <string>(detailedPlayerInfo.Path.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries)); if (pathParts.Count > 1) { nation = string.Join(" > ", pathParts.ToArray(), 1, pathParts.Count - 1); } int ladderRank = -1; PlayerRanking worldRanking = detailedPlayerInfo.LadderStats.PlayerRankings.Find(ranking => ranking.Path == "World"); if (worldRanking != null) { ladderRank = worldRanking.Ranking; } SendFormattedMessage(Settings.JoinMessage, "Nickname", StripTMColorsAndFormatting(detailedPlayerInfo.NickName), "Nation", nation, "Ladder", ladderRank.ToString(Context.Culture)); } }, "Error in Callbacks_PlayerConnect Method.", true); }
public void OnTcpAddPlayer(Packet packet) { int idPlayer = packet.ReadInt(); string name = packet.ReadString(); if (!client.PlayersData.ContainsKey(idPlayer) && idPlayer != client.myId) { PlayerConnectEventArgs e = new PlayerConnectEventArgs() { Message = $"{name} joined the game.", MessageType = MessageType.OnTcpAddPlayer, Packet = packet, Name = name, ID = idPlayer, Protocol = Protocol.TCP, RequestType = RequestType.Receive, }; client.PacketReceived(e); } }
private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { if (e.Handled) { return; } RunCatchLog(() => { string nickname = GetNickname(e.Login); if (nickname == null) { return; } if (!nickname.IsNullOrTimmedEmpty()) { Player player = new Player(e.Login, nickname); PlayerAdapter.CreateOrUpdate(player); OnPlayerCreatedOrUpdated(player, nickname); } }, "Error in Callbacks_PlayerConnect Method.", true); }
private void Callbacks_PlayerConnect(object sender, PlayerConnectEventArgs e) { if (e.Handled) { Logger.Debug(string.Format("Callbacks_PlayerConnect method skipped for login: {0}. Eventargs stated: Already handled", e.Login)); return; } RunCatchLog(() => { PlayerSettings playerSettings = GetPlayerSettings(e.Login); if (playerSettings == null) { Logger.Debug(string.Format("Could not get PlayerSettings for login: {0}", e.Login)); return; } int ladderRanking; if (!playerSettings.DetailMode.HasDetailedPlayerInfo()) { DetailedPlayerInfo detailedPlayerInfo = GetDetailedPlayerInfo(e.Login); if (detailedPlayerInfo == null) { Logger.Debug(string.Format("Could not get DetailedPlayerInfo for login: {0}", e.Login)); return; } PlayerRanking worldRanking = detailedPlayerInfo.LadderStats.PlayerRankings.Find(ranking => ranking.Path == "World"); if (worldRanking == null) { Logger.Debug(string.Format("Could not find World-Ranking for login: {0}", e.Login)); return; } ladderRanking = worldRanking.Ranking; } else { ladderRanking = playerSettings.LadderRanking; } if (ladderRanking != -1) { return; } GenericResponse <bool> kickResponse = Context.RPCClient.Methods.Kick(e.Login, Settings.PersonalKickMessage); if (kickResponse.Erroneous) { Logger.Debug(string.Format("Could not kick login: {0}. Reason: {1}({2})", e.Login, kickResponse.Fault.FaultMessage, kickResponse.Fault.FaultCode)); return; } SendFormattedMessage(Settings.PublicKickMessage, "Nickname", StripTMColorsAndFormatting(playerSettings.NickName)); e.Handled = true; }, "Error in Callbacks_PlayerConnect Method.", true); }
public void OnPlayerConnect(object sender, ref PlayerConnectEventArgs e) { CommandLine.WriteLine(e.tcpClient.Client.RemoteEndPoint.ToString() + "connected", this.ToString(), 0, ConsoleColor.White); }