// need to change the VM names lists, maybe change it to a dictionary public string Rename(string newName) { string oldName = UserInfo.Name; UserInfo.Name = newName; SausageServer.Vm.ConnectedUsers.First(x => x == this).UserInfo.Name = newName; SausageServer.Vm.ConnectedUsers = SausageServer.SortUsersList(); return(oldName); }
private void Parse(string msg) { byte[] m = Encoding.ASCII.GetBytes(msg); SausageHelper.StripData(ref m); msg = Encoding.ASCII.GetString(m); PacketFormat Message = JsonConvert.DeserializeObject <PacketFormat>(msg); SausageConnection Reciever; switch (Message.Option) { case PacketOption.ClientMessage: if (!SausageServer.UsersDictionary[Message.Guid].IsMuted) { SausageServer.Log(Message); } break; case PacketOption.NameChange: SausageServer.Log(Message); SausageServer.UsersDictionary[Message.Guid].Name = Message.NewName; break; // don't need to check for user connected as that is dealt with in OnUserConnect case PacketOption.UserDisconnected: SausageServer.Log(Message); Disconnect(); SausageServer.UsersDictionary.Remove(Message.Guid); break; case PacketOption.UserBanned: if (UserInfo.IsAdmin) { SausageServer.Ban(SausageServer.ConnectedUsers.First(x => x.UserInfo.Guid == Message.Guid)); } break; case PacketOption.UserKicked: if (UserInfo.IsAdmin) { SausageServer.Kick(SausageServer.ConnectedUsers.First(x => x.UserInfo.Guid == Message.Guid)); } break; case PacketOption.UserMuted: if (UserInfo.IsAdmin) { SausageServer.Mute(SausageServer.ConnectedUsers.First(x => x.UserInfo.Guid == Message.Guid)); } break; case PacketOption.UserUnmuted: if (UserInfo.IsAdmin) { SausageServer.Unmute(SausageServer.ConnectedUsers.First(x => x.UserInfo.Guid == Message.Guid)); } break; case PacketOption.FriendRequest: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); if (Reciever == null) { SendAsync(new PacketFormat(PacketOption.IsServer) { Content = "User not found" }); } else { Reciever.SendAsync(Message); SausageServer.UiCtx.Send(x => SausageServer.Vm.Messages.Add(new ServerMessage($"{UserInfo} requested {Reciever} for a friend request."))); } break; case PacketOption.FriendRequestAccepted: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; case PacketOption.FriendRequestDenied: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; case PacketOption.DmMessage: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; case PacketOption.DmAccepted: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; case PacketOption.DmDenied: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; case PacketOption.DmStartRequest: Reciever = SausageServer.ConnectedUsers.FirstOrDefault(x => x.UserInfo.Guid == Message.Guid); Reciever.SendAsync(Message); break; } }
public void Disconnect() { SausageServer.Vm.ConnectedUsers = SausageServer.SortUsersList(); Socket.Close(); }