Search in sources :

Example 1 with MessageCommandEvent

use of com.demod.dcba.MessageCommandEvent in project Factorio-FBSR by demodude4u.

the class BlueprintBotDiscordService method handleBlueprintMessageCommand.

private void handleBlueprintMessageCommand(MessageCommandEvent event) throws IOException {
    String content = event.getMessage().getContentDisplay();
    for (Attachment attachment : event.getMessage().getAttachments()) {
        content += " " + attachment.getUrl();
    }
    JSONObject options = new JSONObject();
    findDebugOptions(event.getReporting(), content, options);
    List<BlueprintStringData> blueprintStringDatas = BlueprintFinder.search(content, event.getReporting());
    List<EmbedBuilder> embedBuilders = processBlueprints(blueprintStringDatas, event.getReporting(), options);
    embedBuilders.get(0).setAuthor(event.getMessage().getAuthor().getName(), event.getMessage().getJumpUrl(), event.getMessage().getAuthor().getEffectiveAvatarUrl());
    if (blueprintStringDatas.stream().anyMatch(d -> d.getBlueprints().stream().anyMatch(b -> b.isModsDetected()))) {
        embedBuilders.get(embedBuilders.size() - 1).setFooter("(Modded features are shown as question marks)");
    }
    List<MessageEmbed> embeds = embedBuilders.stream().map(EmbedBuilder::build).collect(Collectors.toList());
    for (MessageEmbed embed : embeds) {
        event.replyEmbed(embed);
    }
}
Also used : OptionType(net.dv8tion.jda.api.interactions.commands.OptionType) Arrays(java.util.Arrays) EventReply(com.demod.dcba.EventReply) URL(java.net.URL) FBSR(com.demod.fbsr.FBSR) Permission(net.dv8tion.jda.api.Permission) SlashCommandHandler(com.demod.dcba.SlashCommandHandler) Field(net.dv8tion.jda.api.entities.MessageEmbed.Field) TextChannel(net.dv8tion.jda.api.entities.TextChannel) DataTable(com.demod.factorio.DataTable) RenderUtils(com.demod.fbsr.RenderUtils) JSONException(org.json.JSONException) Matcher(java.util.regex.Matcher) JSONObject(org.json.JSONObject) Map(java.util.Map) ZipEntry(java.util.zip.ZipEntry) WebUtils(com.demod.fbsr.WebUtils) Message(net.dv8tion.jda.api.entities.Message) BufferedImage(java.awt.image.BufferedImage) DataPrototype(com.demod.factorio.prototype.DataPrototype) LevenshteinDistance(org.apache.commons.text.similarity.LevenshteinDistance) Collectors(java.util.stream.Collectors) Config(com.demod.factorio.Config) BlueprintEntity(com.demod.fbsr.BlueprintEntity) List(java.util.List) FactorioData(com.demod.factorio.FactorioData) MessageCommandEvent(com.demod.dcba.MessageCommandEvent) Entry(java.util.Map.Entry) Optional(java.util.Optional) Pattern(java.util.regex.Pattern) BlueprintStringData(com.demod.fbsr.BlueprintStringData) ZipOutputStream(java.util.zip.ZipOutputStream) Blueprint(com.demod.fbsr.Blueprint) ByteArrayOutputStream(java.io.ByteArrayOutputStream) HashMap(java.util.HashMap) Function(java.util.function.Function) ArrayList(java.util.ArrayList) LinkedHashMap(java.util.LinkedHashMap) WatchdogReporter(com.demod.fbsr.app.WatchdogService.WatchdogReporter) ImmutableList(com.google.common.collect.ImmutableList) AbstractIdleService(com.google.common.util.concurrent.AbstractIdleService) SlashCommandEvent(com.demod.dcba.SlashCommandEvent) SimpleEntry(java.util.AbstractMap.SimpleEntry) Attachment(net.dv8tion.jda.api.entities.Message.Attachment) MapVersion(com.demod.fbsr.MapVersion) OptionData(net.dv8tion.jda.api.interactions.commands.build.OptionData) CommandReporting(com.demod.dcba.CommandReporting) DCBA(com.demod.dcba.DCBA) IOException(java.io.IOException) EmbedBuilder(net.dv8tion.jda.api.EmbedBuilder) Utils(com.demod.factorio.Utils) DiscordBot(com.demod.dcba.DiscordBot) LuaValue(org.luaj.vm2.LuaValue) AutoCompleteHandler(com.demod.dcba.AutoCompleteHandler) MessageEmbed(net.dv8tion.jda.api.entities.MessageEmbed) ArrayDeque(java.util.ArrayDeque) BlueprintFinder(com.demod.fbsr.BlueprintFinder) ChunkingFilter(net.dv8tion.jda.api.utils.ChunkingFilter) JSONArray(org.json.JSONArray) EmbedBuilder(net.dv8tion.jda.api.EmbedBuilder) MessageEmbed(net.dv8tion.jda.api.entities.MessageEmbed) JSONObject(org.json.JSONObject) Attachment(net.dv8tion.jda.api.entities.Message.Attachment) BlueprintStringData(com.demod.fbsr.BlueprintStringData)

Aggregations

AutoCompleteHandler (com.demod.dcba.AutoCompleteHandler)1 CommandReporting (com.demod.dcba.CommandReporting)1 DCBA (com.demod.dcba.DCBA)1 DiscordBot (com.demod.dcba.DiscordBot)1 EventReply (com.demod.dcba.EventReply)1 MessageCommandEvent (com.demod.dcba.MessageCommandEvent)1 SlashCommandEvent (com.demod.dcba.SlashCommandEvent)1 SlashCommandHandler (com.demod.dcba.SlashCommandHandler)1 Config (com.demod.factorio.Config)1 DataTable (com.demod.factorio.DataTable)1 FactorioData (com.demod.factorio.FactorioData)1 Utils (com.demod.factorio.Utils)1 DataPrototype (com.demod.factorio.prototype.DataPrototype)1 Blueprint (com.demod.fbsr.Blueprint)1 BlueprintEntity (com.demod.fbsr.BlueprintEntity)1 BlueprintFinder (com.demod.fbsr.BlueprintFinder)1 BlueprintStringData (com.demod.fbsr.BlueprintStringData)1 FBSR (com.demod.fbsr.FBSR)1 MapVersion (com.demod.fbsr.MapVersion)1 RenderUtils (com.demod.fbsr.RenderUtils)1