Add 'setspriteoverride' optional 'name' argument

0dd32775d60d63880dc6adc63c69921ff9bd207d

Cohee <18619528+Cohee1207@users.noreply.github.com>

1 files changed, +23 -2Showing whitespace changes
public/scripts/extensions/expressions/index.js+23 -2
@@ -667,7 +667,14 @@ export async function sendExpressionCall(spriteFolderName, expression, { force =
667 }667 }
668}668}
669669
670async function setSpriteFolderCommand(_, folder) {670/**
671 * Slash command callback for /setspritefolder
672 * @param {object} param Command parameters
673 * @param {string} param.name Character name override
674 * @param {string} folder Folder path, can be full or partial with leading slash
675 * @returns {Promise<string>} Empty string
676 */
677async function setSpriteFolderCommand({ name }, folder) {
671 if (!folder) {678 if (!folder) {
672 console.log('Clearing sprite set');679 console.log('Clearing sprite set');
673 folder = '';680 folder = '';
@@ -675,8 +682,12 @@ async function setSpriteFolderCommand(_, folder) {
675682
676 if (folder.startsWith('/') || folder.startsWith('\\')) {683 if (folder.startsWith('/') || folder.startsWith('\\')) {
677 const currentLastMessage = getLastCharacterMessage();684 const currentLastMessage = getLastCharacterMessage();
685 if (currentLastMessage.name === null && !name) {
686 toastr.error('At least one character message is required to set a sprites subfolder.', 'Provide the name with "name=" argument.');
687 return '';
688 }
678 folder = folder.slice(1);689 folder = folder.slice(1);
679 folder = `${currentLastMessage.name}/${folder}`;690 folder = `${name || currentLastMessage.name}/${folder}`;
680 }691 }
681692
682 $('#expression_override').val(folder.trim());693 $('#expression_override').val(folder.trim());
@@ -2322,6 +2333,16 @@ function migrateSettings() {
2322 name: 'expression-folder-override',2333 name: 'expression-folder-override',
2323 aliases: ['spriteoverride', 'costume'],2334 aliases: ['spriteoverride', 'costume'],
2324 callback: setSpriteFolderCommand,2335 callback: setSpriteFolderCommand,
2336 namedArgumentList:[
2337 SlashCommandNamedArgument.fromProps({
2338 name: 'name',
2339 description: 'Character name to set a subfolder for. If not provided, the character who last sent a message will be used.',
2340 typeList: [ARGUMENT_TYPE.STRING],
2341 enumProvider: commonEnumProviders.characters('character'),
2342 isRequired: false,
2343 acceptsMultiple: false,
2344 }),
2345 ],
2325 unnamedArgumentList: [2346 unnamedArgumentList: [
2326 new SlashCommandArgument(2347 new SlashCommandArgument(
2327 'optional folder', [ARGUMENT_TYPE.STRING], false,2348 'optional folder', [ARGUMENT_TYPE.STRING], false,