Add 'setspriteoverride' optional 'name' argument

This commit is contained in:
Cohee
2025-12-19 20:38:29 +02:00
parent 83ea6e5cbf
commit 0dd32775d6
+23 -2
View File
@@ -667,7 +667,14 @@ export async function sendExpressionCall(spriteFolderName, expression, { force =
}
}
async function setSpriteFolderCommand(_, folder) {
/**
* Slash command callback for /setspritefolder
* @param {object} param Command parameters
* @param {string} param.name Character name override
* @param {string} folder Folder path, can be full or partial with leading slash
* @returns {Promise<string>} Empty string
*/
async function setSpriteFolderCommand({ name }, folder) {
if (!folder) {
console.log('Clearing sprite set');
folder = '';
@@ -675,8 +682,12 @@ async function setSpriteFolderCommand(_, folder) {
if (folder.startsWith('/') || folder.startsWith('\\')) {
const currentLastMessage = getLastCharacterMessage();
if (currentLastMessage.name === null && !name) {
toastr.error('At least one character message is required to set a sprites subfolder.', 'Provide the name with "name=" argument.');
return '';
}
folder = folder.slice(1);
folder = `${currentLastMessage.name}/${folder}`;
folder = `${name || currentLastMessage.name}/${folder}`;
}
$('#expression_override').val(folder.trim());
@@ -2322,6 +2333,16 @@ function migrateSettings() {
name: 'expression-folder-override',
aliases: ['spriteoverride', 'costume'],
callback: setSpriteFolderCommand,
namedArgumentList:[
SlashCommandNamedArgument.fromProps({
name: 'name',
description: 'Character name to set a subfolder for. If not provided, the character who last sent a message will be used.',
typeList: [ARGUMENT_TYPE.STRING],
enumProvider: commonEnumProviders.characters('character'),
isRequired: false,
acceptsMultiple: false,
}),
],
unnamedArgumentList: [
new SlashCommandArgument(
'optional folder', [ARGUMENT_TYPE.STRING], false,