|
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