Example #1
0
        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);
        }
Example #2
0
        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);
        }