Skip to content

Commit 0ef61a8

Browse files
committed
🚧 Add Validators for Advanced RP Settings
1 parent b0cec3d commit 0ef61a8

File tree

2 files changed

+66
-1
lines changed

2 files changed

+66
-1
lines changed

src/components/blueprintSettingsDialog.svelte

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -227,6 +227,62 @@
227227
return { type: 'success', message: '' }
228228
}
229229
}
230+
231+
function advancedResourcePackFileChecker(value: string): { type: string; message: string } {
232+
switch (true) {
233+
case value === '':
234+
return {
235+
type: 'error',
236+
message: translate(
237+
'dialog.blueprint_settings.advanced_resource_pack_file.error.no_file_selected',
238+
),
239+
}
240+
case !fs.existsSync(value):
241+
return {
242+
type: 'error',
243+
message: translate(
244+
'dialog.blueprint_settings.advanced_resource_pack_file.error.file_does_not_exist',
245+
),
246+
}
247+
case !fs.statSync(value).isFile():
248+
return {
249+
type: 'error',
250+
message: translate(
251+
'dialog.blueprint_settings.advanced_resource_pack_file.error.not_a_file',
252+
),
253+
}
254+
default:
255+
return { type: 'success', message: '' }
256+
}
257+
}
258+
259+
function advancedResourcePackFolderChecker(value: string): { type: string; message: string } {
260+
switch (true) {
261+
case value === '':
262+
return {
263+
type: 'error',
264+
message: translate(
265+
'dialog.blueprint_settings.advanced_resource_pack_folder.error.no_folder_selected',
266+
),
267+
}
268+
case !fs.existsSync(value):
269+
return {
270+
type: 'error',
271+
message: translate(
272+
'dialog.blueprint_settings.advanced_resource_pack_folder.error.folder_does_not_exist',
273+
),
274+
}
275+
case !fs.statSync(value).isDirectory():
276+
return {
277+
type: 'error',
278+
message: translate(
279+
'dialog.blueprint_settings.advanced_resource_pack_folder.error.not_a_folder',
280+
),
281+
}
282+
default:
283+
return { type: 'success', message: '' }
284+
}
285+
}
230286
</script>
231287

232288
<div>
@@ -341,18 +397,21 @@
341397
label={translate('dialog.blueprint_settings.display_item_path.title')}
342398
tooltip={translate('dialog.blueprint_settings.display_item_path.description')}
343399
bind:value={displayItemPath}
400+
valueChecker={advancedResourcePackFileChecker}
344401
/>
345402

346403
<FolderSelect
347404
label={translate('dialog.blueprint_settings.model_folder.title')}
348405
tooltip={translate('dialog.blueprint_settings.model_folder.description')}
349406
bind:value={modelFolder}
407+
valueChecker={advancedResourcePackFolderChecker}
350408
/>
351409

352410
<FolderSelect
353411
label={translate('dialog.blueprint_settings.texture_folder.title')}
354412
tooltip={translate('dialog.blueprint_settings.texture_folder.description')}
355413
bind:value={textureFolder}
414+
valueChecker={advancedResourcePackFolderChecker}
356415
/>
357416
{:else}
358417
<LineInput

src/lang/en.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,15 @@ animated_java.dialog.blueprint_settings.resource_pack.error.missing_assets_folde
9292

9393
animated_java.dialog.blueprint_settings.display_item_path.title: Display Item Path
9494
animated_java.dialog.blueprint_settings.display_item_path.description: Where to place the Display Item. This should be a path to a .json file in a Resource Pack.
95+
animated_java.dialog.blueprint_settings.advanced_resource_pack_file.error.no_file_selected: No file selected!
96+
animated_java.dialog.blueprint_settings.advanced_resource_pack_file.error.file_does_not_exist: The selected file does not exist!
97+
animated_java.dialog.blueprint_settings.advanced_resource_pack_file.error.not_a_file: The selected path is not a file!
9598

9699
animated_java.dialog.blueprint_settings.model_folder.title: Model Folder
97-
animated_java.dialog.blueprint_settings.model_folder.description: Where to place all of the exported models. This should be a path to a folder in a Resource Pack.
100+
animated_java.dialog.blueprint_settings.advanced_resource_pack_folder.description: Where to place all of the exported models. This should be a path to a folder in a Resource Pack.
101+
animated_java.dialog.blueprint_settings.advanced_resource_pack_folder.error.no_folder_selected: No folder selected!
102+
animated_java.dialog.blueprint_settings.advanced_resource_pack_folder.error.folder_does_not_exist: The selected folder does not exist!
103+
animated_java.dialog.blueprint_settings.advanced_resource_pack_folder.error.not_a_folder: The selected path is not a folder!
98104

99105
animated_java.dialog.blueprint_settings.texture_folder.title: Texture Folder
100106
animated_java.dialog.blueprint_settings.texture_folder.description: Where to place all of the exported textures. This should be a path to a folder in a Resource Pack.

0 commit comments

Comments
 (0)