package commands.classic; import commands.model.AbstractCommand; import data.Constants; import discord4j.core.object.entity.ApplicationInfo; import discord4j.core.object.entity.Message; import discord4j.core.object.entity.User; import discord4j.core.object.util.Image; import enums.Language; import util.Translator; import java.awt.*; import java.util.Optional; import java.util.regex.Matcher; import static data.Constants.authorAvatar; import static data.Constants.authorName; /** * Created by Kaysoro on 20/05/2019. */ public class InviteCommand extends AbstractCommand { public InviteCommand() { super("invite", ""); } @Override public void request(Message message, Matcher m, Language lg) { Optional<ApplicationInfo> appInfo = message.getClient().getApplicationInfo().blockOptional(); if (appInfo.isPresent()) { Optional<User> author = appInfo.get().getOwner().blockOptional(); message.getChannel().flatMap(chan -> chan .createEmbed(spec -> spec.setTitle(Translator.getLabel(lg, "about.title") .replace("{name}", Constants.name) .replace("{version}", Constants.version)) .setColor(Color.GRAY) .setThumbnail(appInfo.get().getIcon(Image.Format.PNG).orElse(null)) .setAuthor(author.map(User::getUsername).orElse(authorName), null, author.map(User::getAvatarUrl).orElse(authorAvatar)) .addField(Translator.getLabel(lg, "about.invite.title"), Translator.getLabel(lg, "about.invite.desc") .replace("{name}", Constants.name) .replace("{invite}", Constants.invite), true) .addField(Translator.getLabel(lg, "about.support.title"), Translator.getLabel(lg, "about.support.desc") .replace("{name}", Constants.name) .replace("{discordInvite}", Constants.discordInvite), true))) .subscribe(); } } @Override public String help(Language lg, String prefixe) { return "**" + prefixe + name + "** " + Translator.getLabel(lg, "invite.help") .replace("{name}", Constants.name); } @Override public String helpDetailed(Language lg, String prefixe) { return help(lg, prefixe); } }