public static ConfigurationData DefaultConfig() { return(new ConfigurationData { Name = "Default", LogConfiguration = LogConfigurationData.DefaultConfig(), PermissionConfiguration = PermissionConfigurationData.DefaultConfig() }); }
private bool HasPermission(IPlayer parIPlayer, string parCommandName) { string permissionToTest; PermissionConfigurationData permissionConfiguration = GetConfiguration(parIPlayer?.Id).PermissionConfiguration; if (!permissionConfiguration.OverwritedCommandsPermission.TryGetValue(parCommandName, out permissionToTest)) { permissionToTest = AdminPermission; } return(parIPlayer.HasPermission(permissionToTest)); }
private void RegisterPermissionWithOverwriteFromConfiguration(string parPlayerIdString = null) { // check the new permissions Dictionary <string, string> changedPermission = new Dictionary <string, string>(); List <string> permissionToRegister = new List <string>() { AdminPermission }; PermissionConfigurationData permissionConfiguration = GetConfiguration(parPlayerIdString).PermissionConfiguration; foreach (var permKeyAndValue in permissionConfiguration.OverwritedCommandsPermission) { string permissionName = permKeyAndValue.Value; if (!permissionName.StartsWith(PluginNameLowered)) { permissionName = PluginNameLowered + "." + permissionName; changedPermission[permKeyAndValue.Key] = permissionName; } SendMessage(LogLevel.Log, $"Command= '{permKeyAndValue.Key}', overridedPermission= '{permissionName}'", parPlayerIdString); if (!permissionToRegister.Contains(permissionName)) { permissionToRegister.Add(permissionName); } } // Register permissions for commands foreach (string permissionName in permissionToRegister) { permission.RegisterPermission(permissionName, this); } // update the config with the new permission if (changedPermission.Count > 0) { foreach (var newPerm in changedPermission) { permissionConfiguration.OverwritedCommandsPermission[newPerm.Key] = newPerm.Value; } SaveConfig(); } }