finish assigning and removing behaviors

This commit is contained in:
Jill 2023-11-22 14:52:15 +03:00
parent ddb85d1d2f
commit 7a4b9e1726
1 changed files with 35 additions and 1 deletions

View File

@ -254,7 +254,26 @@ export default {
return await interaction.followUp(`${formatItem(item)} now has **${formatBehavior(behavior, value || undefined)}**`);
} else if (subcommand === 'remove') {
/////////////////// asngheasgyjdreajdneyonv
const behaviorName = interaction.options.getString('removebehavior', true);
const behavior = getBehavior(behaviorName);
if (!behavior) return await interaction.followUp(`No such behavior ${behaviorName}!`);
const existingBehavior = await db<ItemBehavior>('itemBehaviors')
.where('item', item.id)
.where('behavior', behavior.name)
.first();
if (!existingBehavior) {
return await interaction.followUp(`${formatItem(item)} does not have behavior \`${behaviorName}\`!`);
}
await db<ItemBehavior>('itemBehaviors')
.where('item', item.id)
.where('behavior', behavior.name)
.delete();
return await interaction.followUp(`Deleted behavior ${formatBehavior(behavior, existingBehavior.value)} from ${formatItem(item)}.`);
}
} else {
if (subcommand === 'give') {
@ -320,6 +339,21 @@ export default {
}
await interaction.respond(foundBehaviors.map(b => ({name: `${b.itemType}:${b.name} - ${b.description}`, value: b.name})));
} else if (focused.name === 'removebehavior') {
const itemID = interaction.options.getString('customitem');
if (!itemID) return await interaction.respond([]);
const behaviors = await db<ItemBehavior>('itemBehaviors')
.where('item', itemID);
const foundBehaviors = behaviors
.map(b => ({ behavior: getBehavior(b.behavior)!, value: b.value }))
.filter(b => b.behavior)
.filter(b => b.behavior.name.toLowerCase().includes(focused.value.toLowerCase()));
await interaction.respond(foundBehaviors.map(b => ({
name: `${b.behavior.itemType}:${formatBehavior(b.behavior, b.value)} - ${b.behavior.description}`,
value: b.behavior.name
})));
}
}
} satisfies Command;