public uint GetUserID(uint localsid) { Octets os = new Octets().Write(localsid); RecvEventArgs arg = new RecvEventArgs(os); OnRequestRoleID(this, arg); Octets res = arg.Res; return(res.ReadUInt()); }
private void OnGsSendUser(object sender, RecvEventArgs e) { Octets os = e.Data; uint role_id = os.ReadUInt(); Octets data = os.ReadOctets(); UserProxy user; lock (Roles) if (!Roles.TryGetValue(role_id, out user)) { return; } user.SendToClient(data); }
private void OnRequestRoleID(object sender, RecvEventArgs e) { Octets os = e.Data; uint localsid = os.ReadUInt(); lock (Roles) foreach (KeyValuePair <uint, UserProxy> kvpuser in Roles) { if (kvpuser.Value.Localsid == localsid) { e.Res = new Octets().Write(kvpuser.Key); return; } } e.Res = new Octets().Write(UInt32.MaxValue); }
private void OnUserLogout(object sender, RecvEventArgs e) { Octets os = e.Data; uint role_id = os.ReadUInt(); UserProxy user; lock (Roles) if (!Roles.TryGetValue(role_id, out user)) { return; } else { Roles.Remove(role_id); } user.SetRoleID(0); }
private void OnUserSetLink(object sender, RecvEventArgs e) { Octets os = e.Data; uint user_id = os.ReadUInt(); uint localsid = os.ReadUInt(); LinkProxy link = (LinkProxy)sender; UserProxy user; lock (Users) if (!Users.TryGetValue(user_id, out user)) { return; } if (user.Link == null) { Console.WriteLine("User {0} logged in from Link {1}, IP {2}", user.ID, link.ID, user); user.SetLink(link); } link.AddUser(user); }