internal void ChangeName(string oldname, string newname) { newname = newname.FormatUsername(); if (string.IsNullOrWhiteSpace(newname)) { newname = ExternalIp.AnonUsername(); } if (oldname != newname) { name = newname; RaisePropertyChanged(nameof(Name)); server.SendPacket((s) => s != this && s.Vroom == Vroom && s.CanSee(this), new Parted() { Username = oldname }); PerformQuickLogin(); } }
internal void HandleJoin(PacketEventArgs e) { Login login = (Login)e.Packet; Guid = login.Guid; Encryption = login.Encryption == 250; ListenPort = login.ListenPort; NodeIp = login.NodeIp; NodePort = login.NodePort; name = login.Username.FormatUsername(); if (string.IsNullOrWhiteSpace(name)) { name = ExternalIp.AnonUsername(); } orgname = name; Version = login.Version; LocalIp = login.LocalIp; Browsable = (login.SupportFlag & 2) == 2; Compression = (login.SupportFlag & 4) == 4; Age = login.Age; Gender = login.Gender; Country = login.Country; Region = login.Region; Features = login.Features; if ((Features & ClientFeatures.OPUS_VOICE) == ClientFeatures.OPUS_VOICE) { Features |= ClientFeatures.VOICE; } if ((Features & ClientFeatures.PRIVATE_OPUS_VOICE) == ClientFeatures.PRIVATE_OPUS_VOICE) { Features |= ClientFeatures.PRIVATE_VOICE; } var record = server.History.Add(this); var autologin = server.History.Admin.Passwords.Find((s) => s.ClientId.Equals(record)); admin = (autologin != null) ? autologin.Level : admin; admin = (LocalHost) ? AdminLevel.Host : admin; if (admin != AdminLevel.User) { RaisePropertyChanged("Admin"); } if (!LocalHost) { DnsHelper.Resolve(record, FinishResolve); } else if (AllowedJoin(record)) { FinishJoin(); } }
internal void HandleJoin(PacketEventArgs e) { Login login = (Login)e.Packet; Guid = login.Guid; ClientId = new ClientId(Guid, ExternalIp); Encryption = login.Encryption == 250; ListenPort = login.ListenPort; NodeIp = login.NodeIp; NodePort = login.NodePort; name = login.Username.FormatUsername(); if (string.IsNullOrWhiteSpace(name)) { name = ExternalIp.AnonUsername(); } OrgName = name; Version = login.Version; LocalIp = login.LocalIp; Age = login.Age; Gender = login.Gender; Country = login.Country; Region = login.Region; HandleFeatures(login); var record = server.History.Add(this); var autologin = server.History.Admin.Passwords.Find((s) => s.ClientId.Equals(record.ClientId)); admin = (autologin != null) ? autologin.Level : admin; admin = (LocalHost) ? AdminLevel.Host : admin; if (AllowedJoin(record)) { if (server.Config.BotProtection) { if (!record.Trusted) { IsCaptcha = true; return; } } FinishJoin(); } else { server.Stats.Rejected++; } }