Furaffinity-Custom-Settings

Helper Script to create Custom settings on Furaffinitiy

Dieses Skript sollte nicht direkt installiert werden. Es handelt sich hier um eine Bibliothek für andere Skripte, welche über folgenden Befehl in den Metadaten eines Skriptes eingebunden wird // @require https://update.greasyfork.org/scripts/475041/1267274/Furaffinity-Custom-Settings.js

Autor
Midori Tsume
Version
4.0.13
Erstellt am
11.09.2023
Letzte Aktualisierung
19.10.2023
Lizenz
MIT

Furaffinity Custom Settings

Helper Script to create Custom settings on Furaffinitiy

How to use

  • @require this script

  • Optional: Change Extension Settings Header Name at any Point in your Code: CustomSettings.name = "Extension Settings";
    (Defines the Navigation Header Name)

  • Optional: Change Extension Settings Name at any Point in your Code: CustomSettings.provider = "Midori's Script Settings";
    (Defines the actual Navigation Points Name)

  • Optional: Change the Settings Header Name: CustomSettings.headerName = "My Script Settings";

  • Create a new Setting: const setting = CustomSettings.newSetting("Setting Name", "Setting Description", SettingType, "Type Description", DefaultValue, Action);
    See Setting for more info

  • Trigger when settings should be loaded: CustomSettings.loadSettings();

  • Optional: Create a whole new Settings Page: const AnotherCustomSettings = new Settings();
    Next steps are the same as above. (If Name is indentical between multiple Settings it serves as a Header for the multiple subpages)

Features

  • Create new Settings and easily access Settings change
  • Have different Setting Types
    • Number (TextField that only allowes Numbers)
    • Text (TextField that allows any Character)
    • Boolean (Checkbox with a description)
    • Action (Button with a description)
  • Change Settings Page Name and Header Name
  • Have multiple different Setting Pages

Documentation

Setting

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. (Also defines Settings Header name)
  • description - Description of the Setting.
  • type - Type of the Setting. (See SettingTypes for more info)
  • typeDescription - Description of the Setting element itself. (Doesn't apply on SettingTypes.Number)
  • 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.

SettingTypes

SettingTypes can have the following values:

  • SettingTypes.Number - A TextField that only accepts Numbers (Type Description doesn't apply here)
  • SettingsTypes.Text - A TextField that allows any Character (Type Description doesn't apply here)
  • SettingTypes.Boolean - A Checkbox with a description
  • SettingTypes.Action - A Button with a certain Action

Action

The Action Parameter defines a Function that is executed when the Setting changed. It receives the Settings Element as a Parameter. Example:

new Setting("Name", "Description", SettingTypes.Boolean, "Checkbox Description", false, (target) => {
  console.log(target.checked); // In this case target is a Checkbox
});

Here every time the Checkbox is clicked the program prints out wether it is checked or not.