use of discord4j.core.object.entity.channel.MessageChannel in project KaellyBot by Kaysoro.
the class AbstractCommand method request.
@Override
public final void request(MessageCreateEvent event, Message message) {
Language lg = Translator.getLanguageFrom(message.getChannel().block());
try {
Matcher m = getMatcher(message);
boolean isFound = m.find();
// Caché si la fonction est désactivée/réservée aux admin et que l'auteur n'est pas super-admin
if ((!isPublic() || isAdmin()) && message.getAuthor().map(user -> user.getId().asLong() != Constants.authorId).orElse(false))
return;
// S'il s'agit d'une demande d'aide...
if (message.getContent().matches(Pattern.quote(getPrefix(message)) + getName() + "\\s+help")) {
message.getChannel().flatMap(chan -> chan.createMessage(helpDetailed(lg, getPrefix(message)))).subscribe();
return;
}
// La commande est trouvée
if (isFound) {
// Mais n'est pas utilisable en MP
MessageChannel channel = message.getChannel().block();
if (!isUsableInMP() && channel instanceof PrivateChannel) {
BasicDiscordException.NOT_USABLE_IN_MP.throwException(message, this, lg);
return;
} else // Mais est désactivée par la guilde
if (!(channel instanceof PrivateChannel) && message.getAuthor().map(user -> user.getId().asLong() != Constants.authorId).orElse(false) && isForbidden(Guild.getGuild(message.getGuild().block()))) {
BasicDiscordException.COMMAND_FORBIDDEN.throwException(message, this, lg);
return;
}
} else // Mais est mal utilisée
if (message.getContent().startsWith(getPrefix(message) + getName())) {
badUse.throwException(message, this, lg);
return;
}
if (isFound)
request(event, message, m, lg);
} catch (Exception e) {
BasicDiscordException.UNKNOWN_ERROR.throwException(message, this, lg);
Reporter.report(e);
LOG.error("request", e);
}
}
Aggregations