|
227 | 227 | return { type: 'success', message: '' }
|
228 | 228 | }
|
229 | 229 | }
|
| 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 | + } |
230 | 286 | </script>
|
231 | 287 |
|
232 | 288 | <div>
|
|
341 | 397 | label={translate('dialog.blueprint_settings.display_item_path.title')}
|
342 | 398 | tooltip={translate('dialog.blueprint_settings.display_item_path.description')}
|
343 | 399 | bind:value={displayItemPath}
|
| 400 | + valueChecker={advancedResourcePackFileChecker} |
344 | 401 | />
|
345 | 402 |
|
346 | 403 | <FolderSelect
|
347 | 404 | label={translate('dialog.blueprint_settings.model_folder.title')}
|
348 | 405 | tooltip={translate('dialog.blueprint_settings.model_folder.description')}
|
349 | 406 | bind:value={modelFolder}
|
| 407 | + valueChecker={advancedResourcePackFolderChecker} |
350 | 408 | />
|
351 | 409 |
|
352 | 410 | <FolderSelect
|
353 | 411 | label={translate('dialog.blueprint_settings.texture_folder.title')}
|
354 | 412 | tooltip={translate('dialog.blueprint_settings.texture_folder.description')}
|
355 | 413 | bind:value={textureFolder}
|
| 414 | + valueChecker={advancedResourcePackFolderChecker} |
356 | 415 | />
|
357 | 416 | {:else}
|
358 | 417 | <LineInput
|
|
0 commit comments