public override async Task DoAsync() { RocketPermissions rocket = await LoadRocketPermissionsAsync(); if (rocket == null) { Console.WriteLine("[~] Could not load Rocket permissions!"); return; } Console.WriteLine("[~] Preparing OpenMod permissions"); PermissionRolesData openMod = new PermissionRolesData { Roles = new List <PermissionRoleData>() }; foreach (RocketPermissionsGroup group in rocket.Groups) { openMod.Roles.Add(await GetRoleFromRocketGroup(group)); } Console.WriteLine("[~] Saving OpenMod permissions"); await SaveAsync(openMod); }
protected async Task <PermissionRolesData> LoadOpenPermissionsAsync() { await LogInfo("Loading OpenMod permissions"); IDeserializer serializer = new DeserializerBuilder() .WithNamingConvention(new CamelCaseNamingConvention()) .Build(); FileStream file = File.Open("permissions.yml", FileMode.Open); PermissionRolesData result = serializer.Deserialize <PermissionRolesData>(new StreamReader(file)); file.Close(); Cache.OpenModPermissions = result; return(result); }
public override async Task DoAsync() { PermissionRolesData openMod = await LoadOpenPermissionsAsync(); if (openMod == null) { await LogInfo("Could not load OpenMod permissions!"); return; } await LogInfo("Preparing OpenMod permissions"); foreach (PermissionRoleData role in openMod.Roles) { foreach (string perm in role.Permissions.ToList().Where(p => p.Contains("unturned."))) { role.Permissions.Remove(perm); role.Permissions.Add(perm.Replace("unturned.", "OpenMod.commands.unturned")); } foreach (string perm in role.Permissions.ToList().Where(p => Conversions.ContainsKey(p))) { role.Permissions.Remove(perm); role.Permissions.Add(Conversions[perm]); } foreach (string perm in role.Permissions.ToList().Where(p => !Conversions.ContainsKey(p) && !p.Contains("unturned."))) { role.Permissions.Remove(perm); role.Permissions.Add("Rocket.PermissionLink:" + perm); } } await LogInfo("Saving OpenMod permissions"); await SaveAsync(openMod); }