diff --git a/imperium-discord/src/main/kotlin/com/xpdustry/imperium/discord/content/MindustryContentListener.kt b/imperium-discord/src/main/kotlin/com/xpdustry/imperium/discord/content/MindustryContentListener.kt index 64fe420e..902696af 100644 --- a/imperium-discord/src/main/kotlin/com/xpdustry/imperium/discord/content/MindustryContentListener.kt +++ b/imperium-discord/src/main/kotlin/com/xpdustry/imperium/discord/content/MindustryContentListener.kt @@ -35,6 +35,8 @@ import java.io.ByteArrayOutputStream import kotlinx.coroutines.future.await import mindustry.Vars import mindustry.game.Schematic +import net.dv8tion.jda.api.JDA +import net.dv8tion.jda.api.entities.Emote import net.dv8tion.jda.api.entities.Member import net.dv8tion.jda.api.entities.Message import net.dv8tion.jda.api.entities.channel.ChannelType @@ -177,6 +179,19 @@ class MindustryContentListener(instances: InstanceManager) : ImperiumApplication return } .getOrThrow() + val cost = StringBuilder() + for (stack in schem.requirements()) { + // Uses bots uploaded emojis in the developer portal otherwise defaults to discord's + // built in :question: emote + // Requires you to upload the emotes. Format "itemname" eg: "blastcompound" vs + // "blast-compound" + val emotes = bot.getEmotesByName(stack.item.name.replace("-", ""), true) + val result = if (emotes.isNotEmpty()) emotes[0] else null + + cost.append(result?.asMention ?: ":question:") + cost.append(stack.amount).append(" ") + } + channel .sendMessage( MessageCreate { @@ -189,6 +204,7 @@ class MindustryContentListener(instances: InstanceManager) : ImperiumApplication author(member) color = MINDUSTRY_ACCENT_COLOR.rgb title = schematic.name().stripMindustryColors() + field("Requirements", cost.toString().trim()) description = schematic.description().stripMindustryColors() image = "attachment://preview.png" }