public static void HandlePermissionsUpdate(ClientObject client, byte[] messageData) { DarkLog.Debug("Recieved Vessel Permissions"); VesselPermissions perm = new VesselPermissions(); using (MessageReader mr = new MessageReader(messageData)) { perm.VesselID = mr.Read <string>(); perm.OwnerName = mr.Read <string>(); var players = mr.Read <string[]>().ToList(); var permissions = mr.Read <int[]>().ToList(); perm.Permissions = Common.ListsToDictionary(players, permissions); } if (PermissionsHandler.vesselperms.ContainsKey(perm.VesselID)) { if (PermissionsHandler.vesselperms[perm.VesselID].OwnerName == perm.OwnerName) { PermissionsHandler.vesselperms[perm.VesselID] = perm; VesselPermissions.SaveVesselPermissions(perm); SendPermissionsUpdate(client, perm); } } else { PermissionsHandler.vesselperms.Add(perm.VesselID, perm); VesselPermissions.SaveVesselPermissions(perm); SendPermissionsUpdate(client, perm); } }
public static void SendPermissionsUpdate(ClientObject client, VesselPermissions perm) { ServerMessage message = new ServerMessage(); message.type = ServerMessageType.PERMISSIONS_UPDATE; using (MessageWriter mw = new MessageWriter()) { mw.Write <string>(perm.VesselID); mw.Write <string>(perm.OwnerName); mw.Write <string[]>(perm.Permissions.Keys.ToArray()); mw.Write <int[]>(perm.Permissions.Values.ToArray()); message.data = mw.GetMessageBytes(); } ClientHandler.SendToAll(null, message, false); }