dmOr function

Future<String> Function(MessageCreateEvent) dmOr(
  1. FutureOr<String> defaultPrefix(
    1. MessageCreateEvent
    )
)

A wrapper function for prefixes that allows commands to be invoked from messages without a prefix in Direct Messages.

For example:

CommandsPlugin commands = CommandsPlugin(
  prefix: dmOr((_) => '!'),
);

// Add a basic `test` command...

Implementation

Future<String> Function(MessageCreateEvent) dmOr(
    FutureOr<String> Function(MessageCreateEvent) defaultPrefix) {
  return (event) async {
    String found = await defaultPrefix(event);

    if (event.guild != null || StringView(event.message.content).skipString(found)) {
      return found;
    }

    return '';
  };
}