[Turn off line numbering]1: arg name, @info; 2: var i; 3: 4: (> .perms(sender()) <); 5: if (info) { 6: info = info[1]; 7: for i in (info) { 8: if (!(> .valid_setting_attr(@i) <)) 9: info = dict_del(info, i[1]); 10: } 11: } else { 12: info = #[]; 13: } 14: if (.all_defined_settings().contains(name)) 15: throw(~setexists, "Setting \"" + name + "\" is already defined."); 16: if (!$code_lib.valid_setting_id(name)) 17: throw(~setbad, "Setting name \"" + name + "\" is unacceptable."); 18: defined_settings = .defined_settings().add(name, info); 19: return defined_settings[name];
// Created as a part of ColdCore, see: @help Credit