| 734 | 734 | helpString: 'Unhides a message from the prompt.', |
| 735 | 735 | })); |
| 736 | 736 | SlashCommandParser.addCommandObject(SlashCommand.fromProps({ |
| 737 | + name: 'member-get', |
| 738 | + aliases: ['getmember', 'memberget'], |
| 739 | + callback: (async ({field}, arg) => { |
| 740 | + if (!selected_group) { |
| 741 | + toastr.warning('Cannot run /member-get command outside of a group chat.'); |
| 742 | + return ''; |
| 743 | + } |
| 744 | + if (field === undefined) { |
| 745 | + throw new Error('\'/member-get field=\' argument required!'); |
| 746 | + } |
| 747 | + if (!['name', 'index', 'id', 'avatar'].includes(field)) { |
| 748 | + throw new Error(`Invalid '/member-get field=' argument '${field}' specified!`); |
| 749 | + } |
| 750 | + const isId = !isNaN(parseInt(arg)); |
| 751 | + const groupMember = findGroupMemberId(arg, true); |
| 752 | + if (!groupMember) { |
| 753 | + toastr.warn(`No group member found using ${isId?'id':'string'} ${arg}`); |
| 754 | + return ''; |
| 755 | + } |
| 756 | + return groupMember[field]; |
| 757 | + }), |
| 758 | + namedArgumentList: [ |
| 759 | + SlashCommandNamedArgument.fromProps({ |
| 760 | + name: 'field', |
| 761 | + description: 'Whether to retrieve the name, index, id, or avatar.', |
| 762 | + typeList: [ARGUMENT_TYPE.STRING], |
| 763 | + isRequired: true, |
| 764 | + enumList: ['name', 'index', 'id', 'avatar'], |
| 765 | + }), |
| 766 | + ], |
| 767 | + unnamedArgumentList: [ |
| 768 | + SlashCommandArgument.fromProps({ |
| 769 | + description: 'member index (starts with 0), name, or avatar', |
| 770 | + typeList: [ARGUMENT_TYPE.NUMBER, ARGUMENT_TYPE.STRING], |
| 771 | + isRequired: true, |
| 772 | + enumProvider: commonEnumProviders.groupMembers(), |
| 773 | + }), |
| 774 | + ], |
| 775 | + helpString: 'Retrieves a group member\'s name, index, id, or avatar.', |
| 776 | + })); |
| 777 | + SlashCommandParser.addCommandObject(SlashCommand.fromProps({ |
| 737 | 778 | name: 'member-disable', |
| 738 | 779 | callback: disableGroupMemberCallback, |
| 739 | 780 | aliases: ['disable', 'disablemember', 'memberdisable'], |