mentionOr function
A wrapper function for prefixes that allows commands to be invoked with a mention prefix.
For example:
CommandsPlugin commands = CommandsPlugin(
prefix: mentionOr((_) => '!'),
);
// Add a basic `test` command...
Implementation
Future<String> Function(MessageCreateEvent) mentionOr(
FutureOr<String> Function(MessageCreateEvent) defaultPrefix,
) {
return (event) async {
RegExpMatch? match = _mentionPattern.firstMatch(event.message.content);
if (match != null) {
if (int.parse(match.group(1)!) ==
(await event.gateway.client.users.fetchCurrentUser()).id.value) {
return match.group(0)!;
}
}
return defaultPrefix(event);
};
}