Library to create Custom settings on Furaffinitiy
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/475041/1617223/Furaffinity-Custom-Settings.js
Helper Script to create Custom settings on Furaffinitiy. Also see docs on Furaffinity-Custom-Settings
@require this scriptCreate Settings Object:
const customSettings = new FACustomSettings(); // Multiple Settings Pages can be created
customSettings.provider = "Midori's Script Settings"; // Change Navigation Settings Name
customSettings.headerName = "My Script Settings"; // Change the Settings Header Name
See Settings for more info
Create a new Setting:
const setting = CustomSettings.newSetting(SettingType, "Setting Name");
setting.description = "Setting Description";
setting.defaultValue = DefaultValue;
setting.inInput = (target) => { doSomething(); }; // For Action Settings when clicked otherwise every time the Setting is changed
setting.addEventListener("input", (target) => { doSomthing(); }); // Alternative to onInput
setting.verifyRegex = /Regex/; // For Text Settings only
See Settings for more info
Trigger when settings should be loaded:
CustomSettings.loadSettingsMenu(); //loads Navigation Menu & Settings if on Settings Page
| Feature | Status |
|---|---|
| Create new Settings and easily access Settings change ⠀⠀⠀⠀ | ✅ Completed |
| Have different Setting Types | ✅ Completed |
| ⠀⠀⠀⠀Number (TextField that only allows Numbers) | ✅ Completed |
| ⠀⠀⠀⠀Boolean (Checkbox with a description) | ✅ Completed |
| ⠀⠀⠀⠀Action (Button with a description) | ✅ Completed |
| ⠀⠀⠀⠀Text (TextField that allow any Characters) | ✅ Completed |
| ⠀⠀⠀⠀Option (Combobox that allows multiple options) | ✅ Completed |
| Change Settings Page Name and Header Name | ✅ Completed |
| Have multiple different Setting Pages | ✅ Completed |
| Import and Export Settings | ✅ Completed |
The Setting class contains following Properties:
id - Can only be set once. Defines the Setting elements html id. Is set to setting Name, if not set manually.name - Name of the Setting.description - Description of the Setting.type - Type of the Setting. (See SettingType for more info)defaultValue - Default value for the Setting. (Is ignored on SettingTypes.Action)action - Action that is executed when the Setting changes. (See Action for more info)value - Current value of the Setting.min - Minimum value for SettingType.Numbermax - Maximum value for SettingType.Numberstep - Step value for SettingType.NumberverifyRegex - Regex for validation of input for SettingType.TextSettingType can have the following values:
SettingType.Number - A TextField that only accepts Numbers. (Enables min, max, step)SettingType.Text - A TextField that allows any Character. (Enables verifyRegex)SettingType.Boolean - A Checkbox with a description.SettingType.Action - A Button with a certain Action. (Value returns the name)SettingType.Option - A Combobox with multiple OptionsThe onInput Property defines a Function that is executed when the Setting changed. It receives the Settings Element as a Parameter. It can also be used with addEventListener. Example:
customSetting.onInput = (target) => {
console.log(target.value); // Target is the HTML Element of the Setting
};
customSetting.addEventListener("input", (target) => {
console.log(target.value);
});
Here every time the Checkbox is clicked the program prints out wether it is checked or not.