Done settings get and set
This commit is contained in:
40
scripts/settings/settings_config.dsc
Normal file
40
scripts/settings/settings_config.dsc
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
settings_config:
|
||||||
|
debug: false
|
||||||
|
type: data
|
||||||
|
tabs:
|
||||||
|
- General
|
||||||
|
- Miscellaneous
|
||||||
|
keys:
|
||||||
|
example1.key:
|
||||||
|
tab: General
|
||||||
|
name: example1 setting key
|
||||||
|
description: example1 description, Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
example2.key:
|
||||||
|
tab: General
|
||||||
|
name: example2 setting key
|
||||||
|
description: example2 description, Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...
|
||||||
|
type: number
|
||||||
|
default: 5
|
||||||
|
min: 0
|
||||||
|
max: 10
|
||||||
|
increment: 0.5
|
||||||
|
example3.key:
|
||||||
|
tab: Miscellaneous
|
||||||
|
name: example3 setting key
|
||||||
|
description: example3 description, Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...
|
||||||
|
type: list
|
||||||
|
default: male
|
||||||
|
values:
|
||||||
|
- male
|
||||||
|
- female
|
||||||
|
- prefer not to say
|
||||||
|
example4.key:
|
||||||
|
tab: Miscellaneous
|
||||||
|
name: example4 setting key
|
||||||
|
description: example4 description, Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...
|
||||||
|
type: text
|
||||||
|
default: text
|
||||||
|
max-length: 64
|
||||||
|
regex: [a-z]
|
||||||
49
scripts/settings/settings_tasks.dsc
Normal file
49
scripts/settings/settings_tasks.dsc
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
settings_set:
|
||||||
|
debug: false
|
||||||
|
type: task
|
||||||
|
definitions: player|key|value
|
||||||
|
script:
|
||||||
|
- define keys <script[settings_config].data_key[keys]>
|
||||||
|
- if !<[keys].contains[<[key]>]>:
|
||||||
|
- determine "Key not found: <[key]>"
|
||||||
|
- if <[value]> == null:
|
||||||
|
- determine "Value cannot be null"
|
||||||
|
- define data <[keys].get[<[key]>]>
|
||||||
|
- define type <[data].get[type]>
|
||||||
|
- choose <[type].to_lowercase>:
|
||||||
|
- case boolean:
|
||||||
|
- if <[value]> != true && <[value]> != false:
|
||||||
|
- determine "Value must be true or false"
|
||||||
|
- case number:
|
||||||
|
- define min <[data].get[min]>
|
||||||
|
- define max <[data].get[max]>
|
||||||
|
- if <[value]> < <[min]> || <[value]> > <[max]>:
|
||||||
|
- determine "Value must be between <[min]> and <[max]>"
|
||||||
|
- case list:
|
||||||
|
- define values <[data].get[values]>
|
||||||
|
- if !<[values].contains[<[value]>]>:
|
||||||
|
- determine "Value must be one of the following: <[values].formatted>"
|
||||||
|
- case text:
|
||||||
|
- define max_length <[data].get[max-length]>
|
||||||
|
- define regex <[data].get[regex]>
|
||||||
|
- if <[value].length> > <[max_length]>:
|
||||||
|
- determine "Value must be shorter than <[max_length]> characters"
|
||||||
|
- if !<[value].regex_matches[<[regex]>]>:
|
||||||
|
- determine "Value should match the regex <[regex]>"
|
||||||
|
- default:
|
||||||
|
- determine "Unknown type <[type]>"
|
||||||
|
- define settings <[player].flag[settings].if_null[<map[]>]>
|
||||||
|
- define settings <[settings].with[<[key]>].as[<[value]>]>
|
||||||
|
- flag <[player]> settings:<[settings]>
|
||||||
|
|
||||||
|
settings_get:
|
||||||
|
debug: false
|
||||||
|
type: procedure
|
||||||
|
definitions: player|key
|
||||||
|
script:
|
||||||
|
- define keys <script[settings_config].data_key[keys]>
|
||||||
|
- if !<[keys].contains[<[key]>]>:
|
||||||
|
- determine null
|
||||||
|
- define settings <[player].flag[settings].if_null[<map[]>]>
|
||||||
|
- define value <[settings].get[<[key]>].if_null[<[keys].get[<[key]>].get[default]>]>
|
||||||
|
- determine <[value]>
|
||||||
Reference in New Issue
Block a user