From 8c189f16a73ab08dfde49e5e17e10eb3ddafa847 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 4 Sep 2026 03:40:06 -0400 Subject: [PATCH 01/12] Add proof-of-concept event posting Uses owo lib --- build.gradle.kts | 20 +- .../java/cc/aabss/eventutils/ModMenuImpl.java | 4 +- .../eventutils/commands/CommandRegister.java | 4 + .../cc/aabss/eventutils/commands/LinkCmd.java | 36 +++ .../cc/aabss/eventutils/commands/PostCmd.java | 37 +++ .../manager/DiscordLinkManager.java | 2 +- .../aabss/eventutils/screen/EventBuilder.java | 228 ++++++++++++++++++ .../aabss/eventutils/screen/MenuScreen.java | 65 +++++ .../eventutils/screen/ScreenWithParent.java | 21 ++ .../screen/config/ConfigScreen.java | 213 ++++++++-------- .../java/cc/aabss/eventutils/stats/Stats.java | 3 + .../assets/eventutils/lang/en_us.json | 88 +++++++ src/main/resources/fabric.mod.json | 3 +- stonecutter.properties.toml | 9 + 14 files changed, 615 insertions(+), 118 deletions(-) create mode 100644 src/main/java/cc/aabss/eventutils/commands/LinkCmd.java create mode 100644 src/main/java/cc/aabss/eventutils/commands/PostCmd.java create mode 100644 src/main/java/cc/aabss/eventutils/screen/EventBuilder.java create mode 100644 src/main/java/cc/aabss/eventutils/screen/MenuScreen.java create mode 100644 src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java diff --git a/build.gradle.kts b/build.gradle.kts index b3ae178..58762f6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -33,6 +33,7 @@ val sdkVersion = property("library.sdk").toString() val okaeriConfigsVersion = property("library.okaeri_configs").toString() val fabricApiVersion = property("deps.fabric_api").toString() val yaclVersion = property("deps.yacl").toString() +val owoLibVersion = property("deps.owo_lib").toString() val modMenuVersion = property("deps.modmenu").toString() val placeholderApiVersion = if (hasProperty("deps.placeholder_api")) property("deps.placeholder_api").toString() else null @@ -63,6 +64,7 @@ galaxy { add( "https://pkgs.dev.azure.com/djtheredstoner/DevAuth/_packaging/public/maven/v1", + "https://maven.wispforest.io/releases/", GNOMECRAFT_RELEASES, NUCLEOID, OKAERI_RELEASES, OKAERI_SNAPSHOTS, SRNYX_RELEASES, SRNYX_SNAPSHOTS, @@ -82,6 +84,7 @@ galaxy { "deps_loader" to loaderVersion, "deps_fabric_api" to fabricApiVersion, "deps_yacl" to yaclVersion, + "deps_owo_lib" to owoLibVersion, "deps_modmenu" to modMenuVersion)) platformPublishing { @@ -178,6 +181,8 @@ dependencies { modImplementation("dev.isxander:yet-another-config-lib:$yaclVersion") modImplementation("com.terraformersmc:modmenu:$modMenuVersion") placeholderApiVersion?.let { modImplementation("eu.pb4:placeholder-api:$it") } + modImplementation("io.wispforest:owo-lib:$owoLibVersion") + include("io.wispforest:owo-sentinel:$owoLibVersion") // Dev modRuntimeOnly("me.djtheredstoner:DevAuth-fabric:1.2.2") @@ -200,6 +205,12 @@ stonecutter { replace("GuiGraphics", "GuiGraphicsExtractor") replace("net.minecraft.client.renderer.state.CameraRenderState", "net.minecraft.client.renderer.state.level.CameraRenderState") } + replacements.string(current.parsed >= "1.21.11") { + replace("Components", "UIComponents") + replace("Containers", "UIContainers") + replace("ParentComponent", "ParentUIComponent") + replace("io.wispforest.owo.ui.core.Component", "UIComponent") + } replacements.string(current.parsed < "1.21") { replace("GenericMessageScreen", "GenericDirtMessageScreen") } @@ -274,6 +285,13 @@ tasks { } } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(javaVersionProject.majorVersion) + vendor = JvmVendorSpec.JETBRAINS + } +} + loom { fabricModJsonPath = rootProject.file("src/main/resources/fabric.mod.json") // Useful for interface injection @@ -283,7 +301,7 @@ loom { runConfigs.all { preferGradleTask = true - jvmArguments.add("-Dmixin.debug.export=true") // Exports transformed classes for debugging + jvmArguments.add("-Dmixin.debug.export=true -XX:+AllowEnhancedClassRedefinition") // Exports transformed classes for debugging runDirectory = file("../../run") // Shares the run directory between versions } diff --git a/src/main/java/cc/aabss/eventutils/ModMenuImpl.java b/src/main/java/cc/aabss/eventutils/ModMenuImpl.java index f455719..c144968 100644 --- a/src/main/java/cc/aabss/eventutils/ModMenuImpl.java +++ b/src/main/java/cc/aabss/eventutils/ModMenuImpl.java @@ -1,6 +1,6 @@ package cc.aabss.eventutils; -import cc.aabss.eventutils.screen.config.ConfigScreen; +import cc.aabss.eventutils.screen.MenuScreen; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; import dev.kikugie.fletching_table.fabric.Entrypoint; @@ -11,6 +11,6 @@ public class ModMenuImpl implements ModMenuApi { @Override @NotNull public ConfigScreenFactory getModConfigScreenFactory() { - return ConfigScreen::getConfigScreen; + return MenuScreen::new; } } diff --git a/src/main/java/cc/aabss/eventutils/commands/CommandRegister.java b/src/main/java/cc/aabss/eventutils/commands/CommandRegister.java index 21255f0..283c519 100644 --- a/src/main/java/cc/aabss/eventutils/commands/CommandRegister.java +++ b/src/main/java/cc/aabss/eventutils/commands/CommandRegister.java @@ -15,6 +15,8 @@ public class CommandRegister { public static void register(@NotNull EventUtils mod, @NotNull CommandDispatcher dispatcher) { // Commands final LiteralCommandNode config = new ConfigCmd(mod).build(); + final LiteralCommandNode link = new LinkCmd(mod).build(); + final LiteralCommandNode post = new PostCmd(mod).build(); final LiteralCommandNode teleport = new TeleportCmd(mod).build(); final LiteralCommandNode priority = new PriorityCmd(mod).build(); final LiteralCommandNode priorityTop = new PriorityTopCmd(mod).build(); @@ -32,6 +34,8 @@ public static void register(@NotNull EventUtils mod, @NotNull CommandDispatcher< // Build command tree dispatcher.getRoot().addChild(main); main.addChild(config); + main.addChild(link); + main.addChild(post); main.addChild(teleport); main.addChild(priority); main.addChild(priorityTop); diff --git a/src/main/java/cc/aabss/eventutils/commands/LinkCmd.java b/src/main/java/cc/aabss/eventutils/commands/LinkCmd.java new file mode 100644 index 0000000..eb2f92a --- /dev/null +++ b/src/main/java/cc/aabss/eventutils/commands/LinkCmd.java @@ -0,0 +1,36 @@ +package cc.aabss.eventutils.commands; + +import cc.aabss.eventutils.EventUtils; +import cc.aabss.eventutils.versioning.VersionedClient; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.tree.LiteralCommandNode; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.client.Minecraft; +import org.jetbrains.annotations.NotNull; + + +public class LinkCmd extends EUCommand { + public LinkCmd(@NotNull EventUtils mod) { + super(mod); + } + + @Override @NotNull + public LiteralCommandNode build() { + return ClientCommandManager + .literal("link") + .executes(context -> { + execute(context); + return 0; + }) + .build(); + } + + private void execute(@NotNull CommandContext context) { + final Minecraft client = context.getSource().getClient(); + client.execute(() -> { + final VersionedClient vClient = new VersionedClient(client); + mod.discordLinkManager.startLink(vClient.screen(), () -> vClient.setScreen(null)); + }); + } +} diff --git a/src/main/java/cc/aabss/eventutils/commands/PostCmd.java b/src/main/java/cc/aabss/eventutils/commands/PostCmd.java new file mode 100644 index 0000000..b84d9f7 --- /dev/null +++ b/src/main/java/cc/aabss/eventutils/commands/PostCmd.java @@ -0,0 +1,37 @@ +package cc.aabss.eventutils.commands; + +import cc.aabss.eventutils.EventUtils; +import cc.aabss.eventutils.screen.EventBuilder; +import cc.aabss.eventutils.versioning.VersionedClient; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.tree.LiteralCommandNode; +import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; +import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; +import net.minecraft.client.Minecraft; +import org.jetbrains.annotations.NotNull; + + +public class PostCmd extends EUCommand { + public PostCmd(@NotNull EventUtils mod) { + super(mod); + } + + @Override @NotNull + public LiteralCommandNode build() { + return ClientCommandManager + .literal("post") + .executes(context -> { + execute(context); + return 0; + }) + .build(); + } + + private static void execute(@NotNull CommandContext context) { + final Minecraft client = context.getSource().getClient(); + client.execute(() -> { + final VersionedClient vClient = new VersionedClient(client); + vClient.setScreen(new EventBuilder(vClient.screen())); + }); + } +} diff --git a/src/main/java/cc/aabss/eventutils/manager/DiscordLinkManager.java b/src/main/java/cc/aabss/eventutils/manager/DiscordLinkManager.java index 9c24f45..6f92f1e 100644 --- a/src/main/java/cc/aabss/eventutils/manager/DiscordLinkManager.java +++ b/src/main/java/cc/aabss/eventutils/manager/DiscordLinkManager.java @@ -87,6 +87,7 @@ public synchronized void startLink(@Nullable Screen browserParent, @Nullable Run fail("eventutils.config.discord_link.toast.start"); return; } + // It's okay for browserParent to be null Minecraft.getInstance().execute(() -> ConfirmLinkScreen.confirmLinkNow(browserParent, url)); }, t -> { @@ -185,7 +186,6 @@ private synchronized void timedOut() { if (server == null) return; EventUtils.LOGGER.warn("[DISCORD_LINK] Linking timed out"); cancel(); - fail("eventutils.config.discord_link.toast.timeout"); } private void fail(@NotNull String descriptionKey) { diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java new file mode 100644 index 0000000..3fccdea --- /dev/null +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -0,0 +1,228 @@ +package cc.aabss.eventutils.screen; + +import cc.aabss.eventutils.EventUtils; +import cc.aabss.eventutils.NotificationToast; +import gg.eventalerts.sdk.object.EAEvent; +import io.wispforest.owo.ui.component.LabelComponent; +import io.wispforest.owo.ui.component.TextAreaComponent; +import io.wispforest.owo.ui.component.TextBoxComponent; +import io.wispforest.owo.ui.component.Components; +import io.wispforest.owo.ui.container.FlowLayout; +import io.wispforest.owo.ui.container.Containers; +import io.wispforest.owo.ui.core.*; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import net.minecraft.client.multiplayer.ServerData; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.MutableComponent; +import net.minecraft.network.protocol.status.ServerStatus; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import xyz.srnyx.javautilities.manipulation.DurationParser; +import xyz.srnyx.javautilities.manipulation.Mapper; + +import java.time.Duration; +import java.util.Date; +import java.util.HashSet; +import java.util.Objects; +import java.util.Set; +import java.util.function.Consumer; + +import static net.minecraft.network.chat.Component.literal; +import static net.minecraft.network.chat.Component.translatable; + + +public class EventBuilder extends ScreenWithParent { + @NotNull private String title = Defaults.TITLE; + @NotNull private String time = Defaults.TIME; + @NotNull private String ip = Defaults.ip(); + @NotNull private final Set platforms = Defaults.platforms(); + @NotNull private String version = Defaults.version(); + @Nullable private String description = Defaults.DESCRIPTION; + @Nullable private String prize = Defaults.PRIZE; + @Nullable private Integer maxPlayers = Defaults.maxPlayers(); + + public EventBuilder(@Nullable Screen parent) { + super(parent); + } + + public static class Defaults { + @NotNull public static final String TITLE = Minecraft.getInstance().getUser().getName() + "'s Event"; + @NotNull public static final String TIME = "15m"; + @Nullable private static final String IP = "play.eventalerts.gg"; + @Nullable public static final String DESCRIPTION = null; + @NotNull private static final Set PLATFORMS = Set.of(EAEvent.Platform.JAVA); + @Nullable public static final String PRIZE = null; + @Nullable public static final Integer MAX_PLAYERS = null; + + @NotNull + public static String ip() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + return server != null ? server.ip : IP; + } + + @NotNull + public static Set platforms() { + return new HashSet<>(PLATFORMS); + } + + @NotNull + public static String version() { + return Objects.requireNonNullElse(EventUtils.MC_VERSION, "26.2"); + } + + @Nullable + public static String description() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + return server != null ? server.motd.getString() : DESCRIPTION; + } + + @Nullable + public static Integer maxPlayers() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + if (server == null) return Defaults.MAX_PLAYERS; + final ServerStatus.Players players = server.players; + return players != null ? Integer.valueOf(players.max()) : Defaults.MAX_PLAYERS; + } + } + + private void post() { + // Get Date time + final Duration duration = DurationParser.parse(time).orElse(null); + if (duration == null) { + NotificationToast.show(translatable("eventutils.event_builder.error.invalid_time.title"), translatable("eventutils.event_builder.error.invalid_time.description", time)); + return; + } + final Date dateTime = new Date(System.currentTimeMillis() + duration.toMillis()); + + //TODO Local checks + + // Build + final EAEvent event = new EAEvent(); + // Constants + event.type = EAEvent.Type.COMMUNITY; + event.custom = false; + // Values + event.title = this.title; + event.description = this.description; + event.time = dateTime; + event.ip = this.ip; + event.platforms = this.platforms; + event.version = this.version; + event.prize = this.prize; + event.maxPlayers = this.maxPlayers; + + // Post + NotificationToast.show(translatable("eventutils.event_builder.actions.post.toast.title"), translatable("eventutils.event_builder.actions.post.toast.description")); + EventUtils.MOD.http.events.postOne(event).queue( + success -> { + // Screen + Minecraft.getInstance().execute(this::onClose); + // Toast + NotificationToast.show(translatable("eventutils.event_builder.success.title"), translatable("eventutils.event_builder.success.description")); + // Stat + EventUtils.MOD.stats.eventsPosted.incrementAndGet(); + }, + failure -> { + // Log + EventUtils.LOGGER.error("Failed to post event", failure); + // Toast + NotificationToast.show(translatable("eventutils.event_builder.error.post.title"), Component.literal(failure.getMessage())); + }); + } + + @Override @NotNull + protected OwoUIAdapter createAdapter() { + return OwoUIAdapter.create(this, Containers::verticalFlow); + } + + @Override + protected void build(@NotNull FlowLayout root) { + root.gap(4); + root + .surface(Surface.VANILLA_TRANSLUCENT) + .padding(Insets.of(20)) + .horizontalAlignment(HorizontalAlignment.CENTER) + .verticalAlignment(VerticalAlignment.CENTER); + + root.child(Components.label(translatable("eventutils.event_builder.title").withStyle(ChatFormatting.GOLD, ChatFormatting.BOLD)) + .shadow(true) + .margins(Insets.bottom(8))); + + root.child(stringRow("title", true, title, value -> title = value)); + root.child(stringRow("time", true, time, value -> time = value)); + root.child(stringRow("ip", true, ip, value -> ip = value)); + root.child(stringRow("version", true, version, value -> version = value)); + root.child(textAreaRow("description", false, description, value -> description = value)); + root.child(stringRow("prize", false, prize, value -> prize = value)); + root.child(platformsRow()); + root.child(integerRow("max_players", false, maxPlayers, value -> maxPlayers = value)); + + final FlowLayout actions = Containers.horizontalFlow(Sizing.content(), Sizing.content()); + actions.gap(6); + actions.margins(Insets.top(12)); + actions.child(Components.button(translatable("eventutils.event_builder.actions.post.button").withStyle(ChatFormatting.GREEN), button -> post()) + .horizontalSizing(Sizing.fixed(160))); + actions.child(Components.button(translatable("gui.cancel"), button -> onClose()) + .horizontalSizing(Sizing.fixed(90))); + root.child(actions); + } + + @NotNull + private FlowLayout stringRow(@NotNull String key, boolean required, @Nullable String value, @NotNull Consumer setter) { + final TextBoxComponent box = Components.textBox(Sizing.expand(), value == null ? "" : value); + box.onChanged().subscribe(setter::accept); + return row(key, required, box); + } + + @NotNull + private FlowLayout integerRow(@NotNull String key, boolean required, @Nullable Number value, @NotNull Consumer setter) { + final TextBoxComponent box = Components.textBox(Sizing.expand(), value == null ? "" : value.toString()); + box.setFilter(text -> text.isEmpty() || (text.length() <= 9 && text.chars().allMatch(Character::isDigit))); + box.onChanged().subscribe(newValue -> setter.accept(Mapper.toInt(newValue).orElse(null))); + return row(key, required, box); + } + + @NotNull + private FlowLayout textAreaRow(@NotNull String key, boolean required, @Nullable String value, @NotNull Consumer setter) { + final TextAreaComponent area = Components.textArea(Sizing.expand(), Sizing.fixed(60), value == null ? "" : value); + area.onChanged().subscribe(setter::accept); + return row(key, required, area); + } + + @NotNull + private FlowLayout platformsRow() { + final FlowLayout checkboxes = Containers.horizontalFlow(Sizing.expand(), Sizing.content()); + checkboxes.gap(12); + checkboxes.verticalAlignment(VerticalAlignment.CENTER); + for (final EAEvent.Platform platform : EAEvent.Platform.values()) checkboxes.child(Components.checkbox(literal(platform.displayName)) + .checked(platforms.contains(platform)) + .onChanged(checked -> { + if (checked) { + platforms.add(platform); + } else { + platforms.remove(platform); + } + })); + return row("platforms", false, checkboxes); + } + + @NotNull + private FlowLayout row(@NotNull String key, boolean required, @NotNull io.wispforest.owo.ui.core.Component input) { + final FlowLayout row = Containers.horizontalFlow(Sizing.fixed(420), Sizing.content()); + row.gap(8); + row.verticalAlignment(VerticalAlignment.CENTER); + + final MutableComponent labelText = translatable("eventutils.event_builder.values." + key + ".label"); + if (required) labelText.withStyle(ChatFormatting.BOLD); + + final LabelComponent label = Components.label(labelText); + label.horizontalTextAlignment(HorizontalAlignment.RIGHT); + label.horizontalSizing(Sizing.fixed(75)); + + row.child(label); + row.child(input); + return row; + } +} diff --git a/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java new file mode 100644 index 0000000..00050bb --- /dev/null +++ b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java @@ -0,0 +1,65 @@ +package cc.aabss.eventutils.screen; + +import cc.aabss.eventutils.EventUtils; +import cc.aabss.eventutils.screen.config.ConfigScreen; +import cc.aabss.eventutils.sdk.EnrichedPlayer; +import cc.aabss.eventutils.versioning.VersionedClient; +import io.wispforest.owo.ui.component.Components; +import io.wispforest.owo.ui.container.FlowLayout; +import io.wispforest.owo.ui.container.Containers; +import io.wispforest.owo.ui.core.*; +import net.minecraft.ChatFormatting; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.Screen; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import static net.minecraft.network.chat.Component.translatable; + + +public class MenuScreen extends ScreenWithParent { + public MenuScreen(@Nullable Screen parent) { + super(parent); + } + + @Override @NotNull + protected OwoUIAdapter createAdapter() { + return OwoUIAdapter.create(this, Containers::verticalFlow); + } + + @Override + protected void build(@NotNull FlowLayout rootComponent) { + final EnrichedPlayer player = EventUtils.MOD.authManager.player; + + rootComponent + .surface(Surface.VANILLA_TRANSLUCENT) + .horizontalAlignment(HorizontalAlignment.CENTER) + .verticalAlignment(VerticalAlignment.CENTER); + + final FlowLayout buttons = Containers.verticalFlow(Sizing.expand(), Sizing.content()); + buttons.horizontalSizing(Sizing.fixed(150)); + buttons.gap(10); + + buttons.child(Components + .button(translatable("eventutils.menu.config").withStyle(ChatFormatting.GOLD), button -> { + new VersionedClient(Minecraft.getInstance()).setScreen(ConfigScreen.getConfigScreen(this)); + }) + .horizontalSizing(Sizing.expand())); + + if (player != null) { + if (!player.isDiscordLinked()) buttons.child(Components + .button(translatable("eventutils.menu.discord_link").withStyle(ChatFormatting.AQUA), button -> { + EventUtils.MOD.discordLinkManager.startLink(this, null); + }) + .horizontalSizing(Sizing.expand())); + + if (player.isDiscordLinked()) buttons.child(Components + .button(translatable("eventutils.menu.event_builder").withStyle(ChatFormatting.GREEN), button -> { + new VersionedClient(Minecraft.getInstance()).setScreen(new EventBuilder(this)); + }) + .horizontalSizing(Sizing.expand())); + } + + rootComponent.child(buttons); + } +} diff --git a/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java b/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java new file mode 100644 index 0000000..8af166e --- /dev/null +++ b/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java @@ -0,0 +1,21 @@ +package cc.aabss.eventutils.screen; + +import cc.aabss.eventutils.versioning.VersionedClient; +import io.wispforest.owo.ui.base.BaseOwoScreen; +import io.wispforest.owo.ui.core.ParentComponent; +import net.minecraft.client.gui.screens.Screen; +import org.jetbrains.annotations.Nullable; + + +public abstract class ScreenWithParent extends BaseOwoScreen { + @Nullable private final Screen parent; + + public ScreenWithParent(@Nullable Screen parent) { + this.parent = parent; + } + + @Override + public void onClose() { + if (minecraft != null) new VersionedClient(minecraft).setScreen(parent); + } +} diff --git a/src/main/java/cc/aabss/eventutils/screen/config/ConfigScreen.java b/src/main/java/cc/aabss/eventutils/screen/config/ConfigScreen.java index 80a38e2..757002e 100644 --- a/src/main/java/cc/aabss/eventutils/screen/config/ConfigScreen.java +++ b/src/main/java/cc/aabss/eventutils/screen/config/ConfigScreen.java @@ -25,124 +25,111 @@ public class ConfigScreen { public static Screen getConfigScreen(@Nullable Screen parent) { final EUConfig config = EventUtils.MOD.config; final YetAnotherConfigLib.Builder builder = YetAnotherConfigLib.createBuilder() - .title(translatable("eventutils.config.title")); - - // General - final ConfigCategory.Builder generalCategory = ConfigCategory.createBuilder().name(translatable("eventutils.config.general")) - .option(Option.createBuilder() - .name(translatable("eventutils.config.discord.label")) - .description(OptionDescription.createBuilder() - .text(translatable("eventutils.config.discord.description")) - .image(VersionedIdentifier.of("textures/config/discord_rpc.png"), 351, 165) + .title(translatable("eventutils.config.title")) + // General + .category(ConfigCategory.createBuilder().name(translatable("eventutils.config.general")) + .option(Option.createBuilder() + .name(translatable("eventutils.config.discord.label")) + .description(OptionDescription.createBuilder() + .text(translatable("eventutils.config.discord.description")) + .image(VersionedIdentifier.of("textures/config/discord_rpc.png"), 351, 165) + .build()) + .binding(EUConfig.Defaults.DISCORD_RPC, () -> config.discord_rpc, newValue -> { + config.discord_rpc = newValue; + config.save(); + EventUtils.MOD.discordRPC.refreshConnection(); + }) + .controller(ConfigScreen::getBooleanBuilder) .build()) - .binding(EUConfig.Defaults.DISCORD_RPC, () -> config.discord_rpc, newValue -> { - config.discord_rpc = newValue; - config.save(); - EventUtils.MOD.discordRPC.refreshConnection(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.queue.label")) - .description(OptionDescription.of(translatable("eventutils.config.queue.description"))) - .binding(EUConfig.Defaults.SIMPLE_QUEUE_MESSAGE, () -> config.simple_queue_message, newValue -> { - config.simple_queue_message = newValue; - config.save(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.update.label")) - .description(OptionDescription.of(translatable("eventutils.config.update.description"))) - .binding(EUConfig.Defaults.UPDATE_CHECKER, () -> config.update_checker, newValue -> { - config.update_checker = newValue; - config.save(); - EventUtils.MOD.updateChecker.notifyUpdate(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.window.label")) - .description(OptionDescription.createBuilder() - .text(translatable("eventutils.config.window.description")) - .image(VersionedIdentifier.of("textures/config/confirm_exit.png"), 950, 272) + .option(Option.createBuilder() + .name(translatable("eventutils.config.queue.label")) + .description(OptionDescription.of(translatable("eventutils.config.queue.description"))) + .binding(EUConfig.Defaults.SIMPLE_QUEUE_MESSAGE, () -> config.simple_queue_message, newValue -> { + config.simple_queue_message = newValue; + config.save(); + }) + .controller(ConfigScreen::getBooleanBuilder) .build()) - .binding(EUConfig.Defaults.CONFIRM_WINDOW_CLOSE, () -> config.confirm_window_close, newValue -> { - config.confirm_window_close = newValue; - config.save(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.disconnect.label")) - .description(OptionDescription.createBuilder() - .text(translatable("eventutils.config.disconnect.description")) - .image(VersionedIdentifier.of("textures/config/confirm_disconnect.png"), 972, 295) + .option(Option.createBuilder() + .name(translatable("eventutils.config.update.label")) + .description(OptionDescription.of(translatable("eventutils.config.update.description"))) + .binding(EUConfig.Defaults.UPDATE_CHECKER, () -> config.update_checker, newValue -> { + config.update_checker = newValue; + config.save(); + EventUtils.MOD.updateChecker.notifyUpdate(); + }) + .controller(ConfigScreen::getBooleanBuilder) .build()) - .binding(EUConfig.Defaults.CONFIRM_DISCONNECT, () -> config.confirm_disconnect, newValue -> { - config.confirm_disconnect = newValue; - config.save(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.bee_icons.label")) - .description(OptionDescription.createBuilder() - .text(translatable("eventutils.config.bee_icons.description")) - .image(VersionedIdentifier.of("textures/config/bee_icons.png"), 404, 88) + .option(Option.createBuilder() + .name(translatable("eventutils.config.window.label")) + .description(OptionDescription.createBuilder() + .text(translatable("eventutils.config.window.description")) + .image(VersionedIdentifier.of("textures/config/confirm_exit.png"), 950, 272) + .build()) + .binding(EUConfig.Defaults.CONFIRM_WINDOW_CLOSE, () -> config.confirm_window_close, newValue -> { + config.confirm_window_close = newValue; + config.save(); + }) + .controller(ConfigScreen::getBooleanBuilder) + .build()) + .option(Option.createBuilder() + .name(translatable("eventutils.config.disconnect.label")) + .description(OptionDescription.createBuilder() + .text(translatable("eventutils.config.disconnect.description")) + .image(VersionedIdentifier.of("textures/config/confirm_disconnect.png"), 972, 295) + .build()) + .binding(EUConfig.Defaults.CONFIRM_DISCONNECT, () -> config.confirm_disconnect, newValue -> { + config.confirm_disconnect = newValue; + config.save(); + }) + .controller(ConfigScreen::getBooleanBuilder) + .build()) + .option(Option.createBuilder() + .name(translatable("eventutils.config.bee_icons.label")) + .description(OptionDescription.createBuilder() + .text(translatable("eventutils.config.bee_icons.description")) + .image(VersionedIdentifier.of("textures/config/bee_icons.png"), 404, 88) + .build()) + .binding(EUConfig.Defaults.BEE_ICONS, () -> config.bee_icons, newValue -> { + config.bee_icons = newValue; + config.save(); + }) + .controller(ConfigScreen::getBooleanBuilder) + .build()) + .option(ButtonOption.createBuilder() + .name(translatable("eventutils.config.groups.manage.label")) + .description(OptionDescription.of(translatable("eventutils.config.groups.manage.description"))) + .text(translatable("eventutils.config.groups.manage.button")) + .action((yaclScreen, option) -> new VersionedClient(Minecraft.getInstance()).setScreen(new GroupManagerScreen(EventUtils.MOD, yaclScreen))) + .build()) + .group(OptionGroup.createBuilder() + .name(translatable("eventutils.config.advanced.category")) + .collapsed(true) + .option(Option.createBuilder() + .name(translatable("eventutils.config.advanced.developer_mode.label")) + .description(OptionDescription.of(translatable("eventutils.config.advanced.developer_mode.description"))) + .binding(EUConfig.Defaults.DEVELOPER_MODE, () -> config.developer_mode, newValue -> { + config.developer_mode = newValue; + config.save(); + EventUtils.MOD.updateLogLevel(); + EventUtils.MOD.setupSdk("Developer Mode enabled/disabled"); + EventUtils.MOD.cacheManager.clearAll(); + EventUtils.MOD.authManager.authenticate().queue(); + }) + .controller(ConfigScreen::getBooleanBuilder) + .build()) + .option(Option.createBuilder() + .name(translatable("eventutils.config.advanced.log_level.label")) + .description(OptionDescription.of(translatable("eventutils.config.advanced.log_level.description"))) + .binding(EUConfig.Defaults.LOG_LEVEL, () -> config.log_level, newValue -> { + config.log_level = newValue; + config.save(); + EventUtils.MOD.updateLogLevel(); + }) + .controller(EnumDropdownControllerBuilder::create) + .build()) .build()) - .binding(EUConfig.Defaults.BEE_ICONS, () -> config.bee_icons, newValue -> { - config.bee_icons = newValue; - config.save(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(ButtonOption.createBuilder() - .name(translatable("eventutils.config.groups.manage.label")) - .description(OptionDescription.of(translatable("eventutils.config.groups.manage.description"))) - .text(translatable("eventutils.config.groups.manage.button")) - .action((yaclScreen, option) -> new VersionedClient(Minecraft.getInstance()).setScreen(new GroupManagerScreen(EventUtils.MOD, yaclScreen))) .build()); - // Discord link - if (EventUtils.MOD.authManager.player != null) generalCategory.option(ButtonOption.createBuilder() - .name(translatable("eventutils.config.discord_link.label")) - .description(OptionDescription.of(translatable("eventutils.config.discord_link.description"))) - .text(EventUtils.MOD.authManager.player.player.discord != null - ? translatable("eventutils.config.discord_link.button.linked", EventUtils.MOD.authManager.player.player.discord.username) - : translatable("eventutils.config.discord_link.button.unlinked")) - .action((yaclScreen, option) -> EventUtils.MOD.discordLinkManager.startLink( - yaclScreen, - () -> new VersionedClient(Minecraft.getInstance()).setScreen(getConfigScreen(parent)))) - .build()); - // Advanced - generalCategory.group(OptionGroup.createBuilder() - .name(translatable("eventutils.config.advanced.category")) - .collapsed(true) - .option(Option.createBuilder() - .name(translatable("eventutils.config.advanced.developer_mode.label")) - .description(OptionDescription.of(translatable("eventutils.config.advanced.developer_mode.description"))) - .binding(EUConfig.Defaults.DEVELOPER_MODE, () -> config.developer_mode, newValue -> { - config.developer_mode = newValue; - config.save(); - EventUtils.MOD.updateLogLevel(); - EventUtils.MOD.setupSdk("Developer Mode enabled/disabled"); - EventUtils.MOD.cacheManager.clearAll(); - EventUtils.MOD.authManager.authenticate().queue(); - }) - .controller(ConfigScreen::getBooleanBuilder) - .build()) - .option(Option.createBuilder() - .name(translatable("eventutils.config.advanced.log_level.label")) - .description(OptionDescription.of(translatable("eventutils.config.advanced.log_level.description"))) - .binding(EUConfig.Defaults.LOG_LEVEL, () -> config.log_level, newValue -> { - config.log_level = newValue; - config.save(); - EventUtils.MOD.updateLogLevel(); - }) - .controller(EnumDropdownControllerBuilder::create) - .build()) - .build()); - builder.category(generalCategory.build()); // Events final ConfigCategory.Builder alertsCategory = ConfigCategory.createBuilder() diff --git a/src/main/java/cc/aabss/eventutils/stats/Stats.java b/src/main/java/cc/aabss/eventutils/stats/Stats.java index 7f3c0f4..30defa0 100644 --- a/src/main/java/cc/aabss/eventutils/stats/Stats.java +++ b/src/main/java/cc/aabss/eventutils/stats/Stats.java @@ -24,6 +24,7 @@ public class Stats { @NotNull private final AtomicLong socketMessagesSentPrevious = new AtomicLong(); @NotNull public final AtomicInteger eventToastsReceived = new AtomicInteger(); @NotNull public final AtomicInteger eventsJoined = new AtomicInteger(); + @NotNull public final AtomicInteger eventsPosted = new AtomicInteger(); public Stats(@NotNull EventUtils mod) { new FabricContext.Factory(BuildProperties.MOD_ID, "5de470ff674a5d47edfd04ad3f99e230") @@ -35,6 +36,7 @@ public Stats(@NotNull EventUtils mod) { socketMessagesSentPrevious.set(mod.webSocket.messagesSent); eventToastsReceived.set(0); eventsJoined.set(0); + eventsPosted.set(0); }); // Config @@ -51,6 +53,7 @@ public Stats(@NotNull EventUtils mod) { // Misc factory.addMetric(Metric.number("event_toasts_received", eventToastsReceived::get)); factory.addMetric(Metric.number("events_joined", eventsJoined::get)); + factory.addMetric(Metric.number("events_posted", eventsPosted::get)); return factory.create(); }) diff --git a/src/main/resources/assets/eventutils/lang/en_us.json b/src/main/resources/assets/eventutils/lang/en_us.json index f6dbfa0..048151e 100644 --- a/src/main/resources/assets/eventutils/lang/en_us.json +++ b/src/main/resources/assets/eventutils/lang/en_us.json @@ -145,6 +145,89 @@ } }, + "menu": { + "config": "Config", + "discord_link": "Link Discord account", + "event_builder": "Post an event" + }, + + "event_builder": { + "title": "Event Builder", + "category": { + "main": "Main" + }, + + "success": { + "title": "Event posted!", + "description": "The event has been created and posted to Event Alerts" + }, + + "error": { + "invalid_time": { + "title": "Invalid time", + "description": "The specified time is invalid: %s" + }, + + "post": { + "title": "Failed to post event" + } + }, + + "actions": { + "label": "Actions", + "description": "Post the event, load a preset, etc.", + + "post": { + "label": "Post Event", + "description": "Post the event to Event Alerts", + "button": "Post Event", + + "toast": { + "title": "Posting event...", + "description": "This may take a few seconds" + } + } + }, + + "values": { + "label": "Event Values", + "description": "The actual values of the event", + + "title": { + "label": "*Title", + "description": "REQUIRED: The title of the event" + }, + "time": { + "label": "*Time", + "description": "REQUIRED: How long from now until the event starts (e.g. 2h 30m)" + }, + "ip": { + "label": "*IP", + "description": "REQUIRED: The IP address players should connect to" + }, + "version": { + "label": "*Version", + "description": "REQUIRED: The Minecraft version required to join the event" + }, + "description": { + "label": "Description", + "description": "A description of the event" + }, + "prize": { + "label": "Prize", + "description": "The prize players can win from the event" + }, + "platforms": { + "label": "Platforms", + "description": "The platform(s) supported by the event" + }, + "max_players": { + "label": "Max Players", + "description": "The maximum number of players that can participate in the event" + } + } + }, + "config": { "title": "EventUtils Mod Config", "general": "General", @@ -209,6 +292,11 @@ "merge_failed": "Failed to merge existing accounts" } }, + "event_builder": { + "label": "Event Builder", + "description": "Build and post a new Event Alerts event straight from Minecraft", + "button": "Open a new builder" + }, "groups": { "category": "Groups", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 7c48b40..6f2b55e 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -18,7 +18,8 @@ "minecraft": ">=${deps_minecraft}", "fabricloader": ">=${deps_loader}", "${fabric_api_id}": ">=${deps_fabric_api}", - "yet_another_config_lib_v3": ">=${deps_yacl}" + "yet_another_config_lib_v3": ">=${deps_yacl}", + "owo": ">=${deps_owo_lib}" }, "suggests": { "modmenu": ">=${deps_modmenu}" diff --git a/stonecutter.properties.toml b/stonecutter.properties.toml index bb14e41..b40179d 100644 --- a/stonecutter.properties.toml +++ b/stonecutter.properties.toml @@ -23,45 +23,54 @@ library.faststats = "0.30.0" ["26.2"] deps.fabric_api="0.152.1+26.2" deps.yacl="3.9.4+26.2-fabric" +deps.owo_lib = "0.13.1+26.2" deps.modmenu="20.0.0" ["26.1.2"] deps.fabric_api="0.145.4+26.1.2" deps.yacl="3.9.2+26.1-fabric" +deps.owo_lib = "0.13.1+26.1" deps.modmenu="18.0.0" ["1.21.11"] deps.fabric_api="0.141.0+1.21.11" deps.yacl="3.8.1+1.21.11-fabric" +deps.owo_lib = "0.13.0+1.21.11" deps.modmenu="17.0.0" ["1.21.6"] deps.fabric_api="0.128.2+1.21.6" deps.yacl="3.7.1+1.21.6-fabric" +deps.owo_lib = "0.12.23+1.21.8" deps.modmenu="15.0.0" ["1.21.5"] deps.fabric_api="0.128.2+1.21.5" deps.yacl="3.7.1+1.21.5-fabric" +deps.owo_lib = "0.12.21+1.21.5" deps.modmenu="14.0.0" ["1.21.4"] deps.fabric_api="0.114.0+1.21.4" deps.yacl="3.6.2+1.21.4-fabric" deps.modmenu="13.0.0" +deps.owo_lib = "0.12.20+1.21.4" ["1.21.1"] deps.fabric_api="0.102.0+1.21.1" deps.yacl="3.6.0+1.21-fabric" +deps.owo_lib = "0.12.15.4+1.21" deps.modmenu="11.0.3" ["1.21"] deps.fabric_api="0.102.0+1.21" deps.yacl="3.6.0+1.21-fabric" +deps.owo_lib = "0.12.15.4+1.21" deps.modmenu="11.0.3" ["1.20.4"] deps.fabric_api="0.97.1+1.20.4" deps.yacl="3.6.0+1.20.4-fabric" +deps.owo_lib = "0.12.6+1.20.3" deps.modmenu="9.2.0" deps.placeholder_api="2.4.0-pre.1+1.20.4" From 23a57c3bd63774b254b20e9f31acc8f882d96410 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Sat, 5 Sep 2026 03:30:06 -0400 Subject: [PATCH 02/12] Improve event builder GUI design --- .../cc/aabss/eventutils/commands/PostCmd.java | 7 +- .../eventutils/discordrpc/DiscordRPC.java | 6 +- .../aabss/eventutils/screen/EventBuilder.java | 420 ++++++++++++++---- .../aabss/eventutils/screen/MenuScreen.java | 9 +- .../eventutils/screen/ScreenWithParent.java | 35 +- .../cc/aabss/eventutils/sdk/EventWrapper.java | 8 +- .../assets/eventutils/lang/en_us.json | 47 +- .../event_builder/platform/bedrock.png | Bin 0 -> 9347 bytes .../textures/event_builder/platform/java.png | Bin 0 -> 206416 bytes .../textures/event_builder/role/big_money.png | Bin 0 -> 17694 bytes .../event_builder/role/civilization.png | Bin 0 -> 24363 bytes .../textures/event_builder/role/fun.png | Bin 0 -> 37929 bytes .../textures/event_builder/role/housing.png | Bin 0 -> 7579 bytes .../textures/event_builder/role/money.png | Bin 0 -> 14248 bytes stonecutter.properties.toml | 4 +- 15 files changed, 423 insertions(+), 113 deletions(-) create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/platform/bedrock.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/platform/java.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/role/big_money.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/role/civilization.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/role/fun.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/role/housing.png create mode 100644 src/main/resources/assets/eventutils/textures/event_builder/role/money.png diff --git a/src/main/java/cc/aabss/eventutils/commands/PostCmd.java b/src/main/java/cc/aabss/eventutils/commands/PostCmd.java index b84d9f7..c6fd004 100644 --- a/src/main/java/cc/aabss/eventutils/commands/PostCmd.java +++ b/src/main/java/cc/aabss/eventutils/commands/PostCmd.java @@ -7,7 +7,6 @@ import com.mojang.brigadier.tree.LiteralCommandNode; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; -import net.minecraft.client.Minecraft; import org.jetbrains.annotations.NotNull; @@ -28,10 +27,6 @@ public LiteralCommandNode build() { } private static void execute(@NotNull CommandContext context) { - final Minecraft client = context.getSource().getClient(); - client.execute(() -> { - final VersionedClient vClient = new VersionedClient(client); - vClient.setScreen(new EventBuilder(vClient.screen())); - }); + new EventBuilder(new VersionedClient(context.getSource().getClient()).screen()).open(); } } diff --git a/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java b/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java index 96981de..acdd5e8 100644 --- a/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java +++ b/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java @@ -77,7 +77,11 @@ public void refreshConnection() { } public void close() { - client.close(); + try { + client.close(); + } catch (final IllegalStateException ignored) { + // Not connected, ignore + } } public void refresh() { diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 3fccdea..5f11704 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -2,7 +2,12 @@ import cc.aabss.eventutils.EventUtils; import cc.aabss.eventutils.NotificationToast; +import cc.aabss.eventutils.versioning.VersionedClient; +import cc.aabss.eventutils.versioning.VersionedIdentifier; import gg.eventalerts.sdk.object.EAEvent; +import gg.eventalerts.sdk.object.EAPartnerServer; +import io.wispforest.owo.ui.component.ButtonComponent; +import io.wispforest.owo.ui.component.DropdownComponent; import io.wispforest.owo.ui.component.LabelComponent; import io.wispforest.owo.ui.component.TextAreaComponent; import io.wispforest.owo.ui.component.TextBoxComponent; @@ -12,32 +17,44 @@ import io.wispforest.owo.ui.core.*; import net.minecraft.ChatFormatting; import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.ConfirmScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.multiplayer.ServerData; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.protocol.status.ServerStatus; +import org.bson.types.ObjectId; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import xyz.srnyx.javautilities.MapGenerator; import xyz.srnyx.javautilities.manipulation.DurationParser; import xyz.srnyx.javautilities.manipulation.Mapper; import java.time.Duration; -import java.util.Date; -import java.util.HashSet; -import java.util.Objects; -import java.util.Set; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; +import java.util.function.Function; import static net.minecraft.network.chat.Component.literal; import static net.minecraft.network.chat.Component.translatable; public class EventBuilder extends ScreenWithParent { + @NotNull private static final List TOGGLEABLE_ROLES = Arrays.stream(EAEvent.PingRole.values()) + .filter(role -> role.partnerToggleable) + .toList(); + + @NotNull private Map partnerServers = new LinkedHashMap<>(); + + // Values + private boolean custom = Defaults.CUSTOM; + @Nullable private ObjectId partnerServer; + @NotNull private Set roles = Defaults.pingRoles(); @NotNull private String title = Defaults.TITLE; @NotNull private String time = Defaults.TIME; @NotNull private String ip = Defaults.ip(); - @NotNull private final Set platforms = Defaults.platforms(); + @NotNull private Set platforms = Defaults.platforms(); @NotNull private String version = Defaults.version(); @Nullable private String description = Defaults.DESCRIPTION; @Nullable private String prize = Defaults.PRIZE; @@ -45,53 +62,104 @@ public class EventBuilder extends ScreenWithParent { public EventBuilder(@Nullable Screen parent) { super(parent); + confirmClose( + translatable("eventutils.event_builder.confirm_close.title").withStyle(ChatFormatting.RED, ChatFormatting.BOLD), + translatable("eventutils.event_builder.confirm_close.description")); } - public static class Defaults { - @NotNull public static final String TITLE = Minecraft.getInstance().getUser().getName() + "'s Event"; - @NotNull public static final String TIME = "15m"; - @Nullable private static final String IP = "play.eventalerts.gg"; - @Nullable public static final String DESCRIPTION = null; - @NotNull private static final Set PLATFORMS = Set.of(EAEvent.Platform.JAVA); - @Nullable public static final String PRIZE = null; - @Nullable public static final Integer MAX_PLAYERS = null; + private EventBuilder(@NotNull EventBuilder builder) { + this(builder.parent); - @NotNull - public static String ip() { - final ServerData server = Minecraft.getInstance().getCurrentServer(); - return server != null ? server.ip : IP; - } + this.partnerServers = new LinkedHashMap<>(builder.partnerServers); - @NotNull - public static Set platforms() { - return new HashSet<>(PLATFORMS); - } + // Values + this.custom = builder.custom; + this.partnerServer = builder.partnerServer; + this.roles = new HashSet<>(builder.roles); + this.title = builder.title; + this.time = builder.time; + this.ip = builder.ip; + this.platforms = new HashSet<>(builder.platforms); + this.version = builder.version; + this.description = builder.description; + this.prize = builder.prize; + this.maxPlayers = builder.maxPlayers; - @NotNull - public static String version() { - return Objects.requireNonNullElse(EventUtils.MC_VERSION, "26.2"); + // Checks + if (custom && (EventUtils.MOD.authManager.player == null || EventUtils.MOD.authManager.player.player.subscription == null) && partnerServer == null) { + this.custom = false; } + } - @Nullable - public static String description() { - final ServerData server = Minecraft.getInstance().getCurrentServer(); - return server != null ? server.motd.getString() : DESCRIPTION; - } + public void open() { + if (EventUtils.MOD.authManager.player == null || EventUtils.MOD.authManager.player.player.discord == null) return; - @Nullable - public static Integer maxPlayers() { - final ServerData server = Minecraft.getInstance().getCurrentServer(); - if (server == null) return Defaults.MAX_PLAYERS; - final ServerStatus.Players players = server.players; - return players != null ? Integer.valueOf(players.max()) : Defaults.MAX_PLAYERS; - } + EventUtils.MOD.http.partnerServers.retrieveAll(MapGenerator.HASH_MAP.mapOf( + "enabled", null, + "representatives", Set.of(EventUtils.MOD.authManager.player.player.discord) + )).queue( + partnerServers -> { + if (EventUtils.MOD.authManager.player == null) return; + + // partnerServers + this.partnerServers = new LinkedHashMap<>(); + for (final EAPartnerServer partnerServer : partnerServers) { + if (partnerServer.id != null) this.partnerServers.put(partnerServer.id, partnerServer); + } + + // No default preset, open immediately + if (EventUtils.MOD.authManager.player.player.defaultPreset == null) { + setScreen(); + return; + } + + // Default preset, retrieve -> apply -> open + EventUtils.MOD.http.eventPresets.retrieveOneById(EventUtils.MOD.authManager.player.player.defaultPreset).queue( + preset -> { + // Apply preset + if (preset.data != null) { + this.custom = false; + if (preset.data.title != null) this.title = preset.data.title; + if (preset.data.time != null) this.time = preset.data.time; + if (preset.data.ip != null) this.ip = preset.data.ip; + if (preset.data.platforms != null) this.platforms = new HashSet<>(preset.data.platforms); + if (preset.data.version != null) this.version = preset.data.version; + if (preset.data.description != null) this.description = preset.data.description; + if (preset.data.prize != null) this.prize = preset.data.prize; + if (preset.data.maxPlayers != null) this.maxPlayers = preset.data.maxPlayers; + } + + // Open + setScreen(); + }, + failure -> { + EventUtils.LOGGER.error("Failed to retrieve default preset", failure); + error("preset", Component.literal(failure.getMessage())); + setScreen(); // Still open, just without default preset + }); + }, + failure -> { + EventUtils.LOGGER.error("Failed to retrieve partner servers", failure); + error("partner_servers", Component.literal(failure.getMessage())); + }); + } + + private void setScreen() { + final Minecraft client = Minecraft.getInstance(); + client.execute(() -> new VersionedClient(client).setScreen(this)); + } + + private void error(@NotNull String key, @NotNull Object... args) { + NotificationToast.show( + translatable("eventutils.event_builder.error." + key + ".title").withStyle(ChatFormatting.RED), + translatable("eventutils.event_builder.error." + key + ".description", args)); } private void post() { // Get Date time final Duration duration = DurationParser.parse(time).orElse(null); if (duration == null) { - NotificationToast.show(translatable("eventutils.event_builder.error.invalid_time.title"), translatable("eventutils.event_builder.error.invalid_time.description", time)); + error("invalid_time", time); return; } final Date dateTime = new Date(System.currentTimeMillis() + duration.toMillis()); @@ -100,41 +168,40 @@ private void post() { // Build final EAEvent event = new EAEvent(); - // Constants - event.type = EAEvent.Type.COMMUNITY; - event.custom = false; - // Values - event.title = this.title; + event.type = this.partnerServer != null ? EAEvent.Type.PARTNER : EAEvent.Type.COMMUNITY; + event.custom = this.custom; + event.server = this.partnerServer; + if (event.type == EAEvent.Type.PARTNER) event.rolesNamed = this.roles; event.description = this.description; - event.time = dateTime; - event.ip = this.ip; - event.platforms = this.platforms; - event.version = this.version; - event.prize = this.prize; - event.maxPlayers = this.maxPlayers; + if (!custom) { + event.title = this.title; + event.time = dateTime; + event.ip = this.ip; + event.platforms = this.platforms; + event.version = this.version; + event.prize = this.prize; + event.maxPlayers = this.maxPlayers; + } // Post NotificationToast.show(translatable("eventutils.event_builder.actions.post.toast.title"), translatable("eventutils.event_builder.actions.post.toast.description")); EventUtils.MOD.http.events.postOne(event).queue( success -> { // Screen - Minecraft.getInstance().execute(this::onClose); + Minecraft.getInstance().execute(this::closeWithoutConfirmation); // Toast NotificationToast.show(translatable("eventutils.event_builder.success.title"), translatable("eventutils.event_builder.success.description")); // Stat EventUtils.MOD.stats.eventsPosted.incrementAndGet(); }, failure -> { - // Log EventUtils.LOGGER.error("Failed to post event", failure); - // Toast - NotificationToast.show(translatable("eventutils.event_builder.error.post.title"), Component.literal(failure.getMessage())); + error("post", Component.literal(failure.getMessage())); }); } - @Override @NotNull - protected OwoUIAdapter createAdapter() { - return OwoUIAdapter.create(this, Containers::verticalFlow); + private void rebuild() { + new VersionedClient(Minecraft.getInstance()).setScreen(new EventBuilder(this)); } @Override @@ -142,29 +209,84 @@ protected void build(@NotNull FlowLayout root) { root.gap(4); root .surface(Surface.VANILLA_TRANSLUCENT) - .padding(Insets.of(20)) + .padding(Insets.of(10)) .horizontalAlignment(HorizontalAlignment.CENTER) .verticalAlignment(VerticalAlignment.CENTER); - root.child(Components.label(translatable("eventutils.event_builder.title").withStyle(ChatFormatting.GOLD, ChatFormatting.BOLD)) - .shadow(true) - .margins(Insets.bottom(8))); + final FlowLayout fields = Containers.verticalFlow(Sizing.content(), Sizing.content()); + fields.padding(Insets.right(5)); + fields.gap(4); + + // Partner Server + if (!partnerServers.isEmpty()) { + // Build Partner Server option IDs + final List partnerServerIds = new ArrayList<>(partnerServers.keySet()); + partnerServerIds.addFirst(null); // Add null option for community events - root.child(stringRow("title", true, title, value -> title = value)); - root.child(stringRow("time", true, time, value -> time = value)); - root.child(stringRow("ip", true, ip, value -> ip = value)); - root.child(stringRow("version", true, version, value -> version = value)); - root.child(textAreaRow("description", false, description, value -> description = value)); - root.child(stringRow("prize", false, prize, value -> prize = value)); - root.child(platformsRow()); - root.child(integerRow("max_players", false, maxPlayers, value -> maxPlayers = value)); + fields.child(dropdownRow( + "partner_server", true, partnerServerIds, + partnerServer, id -> { + final ObjectId oldPartnerServer = this.partnerServer; + partnerServer = id; + + // Rebuild if switching between community and partner (for ping roles) + if ((oldPartnerServer == null && partnerServer != null) || (oldPartnerServer != null && partnerServer == null)) { + rebuild(); + } + }, + id -> { + if (id == null) return translatable("eventutils.event_builder.values.partner_server.community").withStyle(ChatFormatting.GRAY); + final EAPartnerServer server = partnerServers.get(id); + return literal(server != null && server.name != null ? server.name : id.toHexString()); + })); + } + // Roles (Partner only) + if (partnerServer != null) fields.child(checkBoxRow( + "roles", true, TOGGLEABLE_ROLES, + roles::contains, roles::add, roles::remove, + pingRole -> literal(pingRole.displayName), + pingRole -> "textures/event_builder/role/" + pingRole.name().toLowerCase() + ".png")); + + if (!custom) { + fields.child(stringRow("title", true, title, value -> title = value)); + fields.child(stringRow("time", true, time, value -> time = value)); + fields.child(stringRow("ip", true, ip, value -> ip = value)); + fields.child(stringRow("version", true, version, value -> version = value)); + } + fields.child(textAreaRow("description", false, custom, description, value -> description = value)); + if (!custom) { + fields.child(stringRow("prize", false, prize, value -> prize = value)); + fields.child(checkBoxRow( + "platforms", false, List.of(EAEvent.Platform.values()), + platforms::contains, platforms::add, platforms::remove, + platform -> literal(platform.displayName), + platform -> "textures/event_builder/platform/" + platform.name().toLowerCase() + ".png")); + fields.child(integerRow("max_players", false, maxPlayers, value -> maxPlayers = value)); + } + root.child(Containers.verticalScroll(Sizing.content(), Sizing.expand(), fields)); final FlowLayout actions = Containers.horizontalFlow(Sizing.content(), Sizing.content()); actions.gap(6); actions.margins(Insets.top(12)); - actions.child(Components.button(translatable("eventutils.event_builder.actions.post.button").withStyle(ChatFormatting.GREEN), button -> post()) + final String customKey = custom ? "custom" : "builder"; + if ((EventUtils.MOD.authManager.player != null && EventUtils.MOD.authManager.player.player.subscription != null) || partnerServer != null) { + actions.child(Components.button(translatable("eventutils.event_builder.actions.custom." + customKey).withStyle(ChatFormatting.AQUA), button -> { + custom = !custom; + rebuild(); + }).horizontalSizing(Sizing.fixed(160))); + } + actions.child(Components.button(translatable("eventutils.event_builder.actions.post.label").withStyle(ChatFormatting.GREEN, ChatFormatting.BOLD), button -> { + final VersionedClient vClient = new VersionedClient(Minecraft.getInstance()); + vClient.setScreen(new ConfirmScreen(result -> { + if (result) { + post(); + } else { + vClient.setScreen(this); + } + }, translatable("eventutils.event_builder.actions.post.confirm.title").withStyle(ChatFormatting.GREEN, ChatFormatting.BOLD), translatable("eventutils.event_builder.actions.post.confirm.description"))); + }) .horizontalSizing(Sizing.fixed(160))); - actions.child(Components.button(translatable("gui.cancel"), button -> onClose()) + actions.child(Components.button(translatable("gui.cancel").withStyle(ChatFormatting.RED), button -> onClose()) .horizontalSizing(Sizing.fixed(90))); root.child(actions); } @@ -185,44 +307,166 @@ private FlowLayout integerRow(@NotNull String key, boolean required, @Nullable N } @NotNull - private FlowLayout textAreaRow(@NotNull String key, boolean required, @Nullable String value, @NotNull Consumer setter) { - final TextAreaComponent area = Components.textArea(Sizing.expand(), Sizing.fixed(60), value == null ? "" : value); + private FlowLayout textAreaRow(@NotNull String key, boolean required, boolean big, @Nullable String value, @NotNull Consumer setter) { + final TextAreaComponent area = Components.textArea(Sizing.expand(), Sizing.fixed(big ? 200 : 60), value == null ? "" : value); area.onChanged().subscribe(setter::accept); return row(key, required, area); } @NotNull - private FlowLayout platformsRow() { + private FlowLayout dropdownRow( + @NotNull String key, boolean required, @NotNull Collection values, + @Nullable T value, @NotNull Consumer setter, + @NotNull Function<@Nullable T, @NotNull Component> displayNameMapper + ) { + final ButtonComponent button = Components.button(displayNameMapper.apply(value), b -> {}); + button.horizontalSizing(Sizing.expand()); + button.onPress(b -> { + final Insets rootPadding = this.uiAdapter.rootComponent.padding().get(); + DropdownComponent.openContextMenu( + this, this.uiAdapter.rootComponent, FlowLayout::child, + button.getX() - rootPadding.left(), button.getY() + button.getHeight() - rootPadding.top(), + dropdown -> { + for (final T v : values) dropdown.button(displayNameMapper.apply(v), d -> { + setter.accept(v); + button.setMessage(displayNameMapper.apply(v)); + dropdown.remove(); + }); + }); + }); + return row(key, required, button); + } + + @NotNull + private FlowLayout checkBoxRow( + @NotNull String key, boolean required, @NotNull List values, + @NotNull Function getter, @NotNull Consumer adder, @NotNull Consumer remover, + @NotNull Function displayNameMapper, + @Nullable Function iconPathMapper + ) { final FlowLayout checkboxes = Containers.horizontalFlow(Sizing.expand(), Sizing.content()); - checkboxes.gap(12); + checkboxes.gap(8); checkboxes.verticalAlignment(VerticalAlignment.CENTER); - for (final EAEvent.Platform platform : EAEvent.Platform.values()) checkboxes.child(Components.checkbox(literal(platform.displayName)) - .checked(platforms.contains(platform)) - .onChanged(checked -> { - if (checked) { - platforms.add(platform); - } else { - platforms.remove(platform); - } - })); - return row("platforms", false, checkboxes); + for (final T enumValue : values) { + final String iconPath = iconPathMapper == null ? null : iconPathMapper.apply(enumValue); + checkboxes.child(iconPath == null + ? Components.checkbox(displayNameMapper.apply(enumValue)) + .checked(getter.apply(enumValue)) + .onChanged(checked -> setChecked(checked, enumValue, adder, remover)) + : iconToggle(iconPath, displayNameMapper.apply(enumValue), getter.apply(enumValue), + checked -> setChecked(checked, enumValue, adder, remover))); + } + return row(key, required, checkboxes); + } + + private static void setChecked(boolean checked, @NotNull T value, @NotNull Consumer adder, @NotNull Consumer remover) { + if (checked) { + adder.accept(value); + } else { + remover.accept(value); + } + } + + private static final int ICON_TOGGLE_SIZE = 16; + + @NotNull + private FlowLayout iconToggle(@NotNull String texturePath, @NotNull Component label, boolean initiallyChecked, @NotNull Consumer onChanged) { + final FlowLayout box = Containers.horizontalFlow(Sizing.content(), Sizing.content()); + box.gap(4); + box.verticalAlignment(VerticalAlignment.CENTER); + box.padding(Insets.of(3)); + box.cursorStyle(CursorStyle.HAND); + box.child(Components.texture(VersionedIdentifier.of(texturePath), 0, 0, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE)); + box.child(Components.label(label)); + + final AtomicBoolean checked = new AtomicBoolean(initiallyChecked); + final Runnable updateSurface = () -> box.surface(checked.get() ? Surface.outline(0xFF55FF55) : Surface.BLANK); + updateSurface.run(); + //? if >=1.21.11 { + /*box.mouseDown().subscribe((event, doubleClick) -> { + *///?} else { + box.mouseDown().subscribe((mouseX, mouseY, button) -> { + //?} + checked.set(!checked.get()); + onChanged.accept(checked.get()); + updateSurface.run(); + return true; + }); + + return box; } @NotNull private FlowLayout row(@NotNull String key, boolean required, @NotNull io.wispforest.owo.ui.core.Component input) { - final FlowLayout row = Containers.horizontalFlow(Sizing.fixed(420), Sizing.content()); + final FlowLayout row = Containers.horizontalFlow(Sizing.fixed(500), Sizing.content()); row.gap(8); row.verticalAlignment(VerticalAlignment.CENTER); - final MutableComponent labelText = translatable("eventutils.event_builder.values." + key + ".label"); - if (required) labelText.withStyle(ChatFormatting.BOLD); + final MutableComponent labelText = Component.empty(); + if (required) { + labelText.append("*"); + labelText.withStyle(ChatFormatting.BOLD); + } + labelText.append(translatable("eventutils.event_builder.values." + key + ".label")); final LabelComponent label = Components.label(labelText); label.horizontalTextAlignment(HorizontalAlignment.RIGHT); - label.horizontalSizing(Sizing.fixed(75)); + label.horizontalSizing(Sizing.fixed(100)); row.child(label); row.child(input); return row; } + + @Override @NotNull + protected OwoUIAdapter createAdapter() { + return OwoUIAdapter.create(this, Containers::verticalFlow); + } + + public static class Defaults { + public static final boolean CUSTOM = false; + @NotNull private static final Set PING_ROLES = Set.of(EAEvent.PingRole.PARTNER); + @NotNull public static final String TITLE = Minecraft.getInstance().getUser().getName() + "'s Event"; + @NotNull public static final String TIME = "15m"; + @Nullable private static final String IP = "play.eventalerts.gg"; + @Nullable public static final String DESCRIPTION = null; + @NotNull private static final Set PLATFORMS = Set.of(EAEvent.Platform.JAVA); + @Nullable public static final String PRIZE = null; + @Nullable public static final Integer MAX_PLAYERS = null; + + @NotNull + public static Set pingRoles() { + return new HashSet<>(PING_ROLES); + } + + @NotNull + public static String ip() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + return server != null ? server.ip : IP; + } + + @NotNull + public static Set platforms() { + return new HashSet<>(PLATFORMS); + } + + @NotNull + public static String version() { + return Objects.requireNonNullElse(EventUtils.MC_VERSION, "26.2"); + } + + @Nullable + public static String description() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + return server != null ? server.motd.getString() : DESCRIPTION; + } + + @Nullable + public static Integer maxPlayers() { + final ServerData server = Minecraft.getInstance().getCurrentServer(); + if (server == null) return Defaults.MAX_PLAYERS; + final ServerStatus.Players players = server.players; + return players != null ? Integer.valueOf(players.max()) : Defaults.MAX_PLAYERS; + } + } } diff --git a/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java index 00050bb..9bed715 100644 --- a/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java +++ b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java @@ -2,6 +2,7 @@ import cc.aabss.eventutils.EventUtils; import cc.aabss.eventutils.screen.config.ConfigScreen; +import cc.aabss.eventutils.screen.config.group.GroupManagerScreen; import cc.aabss.eventutils.sdk.EnrichedPlayer; import cc.aabss.eventutils.versioning.VersionedClient; import io.wispforest.owo.ui.component.Components; @@ -46,6 +47,12 @@ protected void build(@NotNull FlowLayout rootComponent) { }) .horizontalSizing(Sizing.expand())); + buttons.child(Components + .button(translatable("eventutils.menu.group_manager").withStyle(ChatFormatting.YELLOW), button -> { + new VersionedClient(Minecraft.getInstance()).setScreen(new GroupManagerScreen(EventUtils.MOD, this)); + }) + .horizontalSizing(Sizing.expand())); + if (player != null) { if (!player.isDiscordLinked()) buttons.child(Components .button(translatable("eventutils.menu.discord_link").withStyle(ChatFormatting.AQUA), button -> { @@ -55,7 +62,7 @@ protected void build(@NotNull FlowLayout rootComponent) { if (player.isDiscordLinked()) buttons.child(Components .button(translatable("eventutils.menu.event_builder").withStyle(ChatFormatting.GREEN), button -> { - new VersionedClient(Minecraft.getInstance()).setScreen(new EventBuilder(this)); + new EventBuilder(this).open(); }) .horizontalSizing(Sizing.expand())); } diff --git a/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java b/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java index 8af166e..acf26ff 100644 --- a/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java +++ b/src/main/java/cc/aabss/eventutils/screen/ScreenWithParent.java @@ -3,19 +3,50 @@ import cc.aabss.eventutils.versioning.VersionedClient; import io.wispforest.owo.ui.base.BaseOwoScreen; import io.wispforest.owo.ui.core.ParentComponent; +import net.minecraft.client.gui.screens.ConfirmScreen; import net.minecraft.client.gui.screens.Screen; +import net.minecraft.network.chat.Component; +import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; public abstract class ScreenWithParent extends BaseOwoScreen { - @Nullable private final Screen parent; + @Nullable protected final Screen parent; + + @Nullable private Component confirmCloseTitle; + @Nullable private Component confirmCloseDescription; public ScreenWithParent(@Nullable Screen parent) { this.parent = parent; } + @NotNull + public ScreenWithParent confirmClose(@NotNull Component title, @NotNull Component description) { + this.confirmCloseTitle = title; + this.confirmCloseDescription = description; + return this; + } + + public void closeWithoutConfirmation() { + this.confirmCloseTitle = null; + this.confirmCloseDescription = null; + onClose(); + } + @Override public void onClose() { - if (minecraft != null) new VersionedClient(minecraft).setScreen(parent); + if (minecraft == null) return; + final VersionedClient vClient = new VersionedClient(minecraft); + + // Confirm close + if (confirmCloseTitle != null && confirmCloseDescription != null) { + vClient.setScreen(new ConfirmScreen( + result -> vClient.setScreen(result ? parent : this), + confirmCloseTitle, confirmCloseDescription)); + return; + } + + // Immediate close + vClient.setScreen(parent); } } diff --git a/src/main/java/cc/aabss/eventutils/sdk/EventWrapper.java b/src/main/java/cc/aabss/eventutils/sdk/EventWrapper.java index ef80ca8..723d77b 100644 --- a/src/main/java/cc/aabss/eventutils/sdk/EventWrapper.java +++ b/src/main/java/cc/aabss/eventutils/sdk/EventWrapper.java @@ -22,6 +22,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import static net.minecraft.network.chat.Component.translatable; + public class EventWrapper { @NotNull private final EventUtils mod; @@ -181,11 +183,11 @@ public void executeTypeSettings() { // toast if (!toastSent && settings.toasts) { // Get title - final String prizeTranslation = prize != null ? "eventutils.event.toast.prize.text" : "eventutils.event.toast.prize.none"; - final Component title = Component.translatable("eventutils.event.toast.title", eventType.nameTranslation, Component.translatable(prizeTranslation, prize)).withStyle(eventType.color); + final Component prizeTranslatable = prize != null ? translatable("eventutils.event.toast.prize.text", prize) : translatable("eventutils.event.toast.prize.none"); + final Component title = translatable("eventutils.event.toast.title", eventType.nameTranslation, prizeTranslatable).withStyle(eventType.color); // Get description - final Component description = ip != null ? Component.translatable("eventutils.event.teleport.text", Component.translatable("eventutils.event.teleport.command", eventType.name().toLowerCase()).withStyle(eventType.color)) : null; + final Component description = ip != null ? translatable("eventutils.event.teleport.text", translatable("eventutils.event.teleport.command", eventType.name().toLowerCase()).withStyle(eventType.color)) : null; // Update metric mod.stats.eventToastsReceived.incrementAndGet(); diff --git a/src/main/resources/assets/eventutils/lang/en_us.json b/src/main/resources/assets/eventutils/lang/en_us.json index 048151e..64c5569 100644 --- a/src/main/resources/assets/eventutils/lang/en_us.json +++ b/src/main/resources/assets/eventutils/lang/en_us.json @@ -147,14 +147,15 @@ "menu": { "config": "Config", + "group_manager": "Group manager", "discord_link": "Link Discord account", "event_builder": "Post an event" }, "event_builder": { - "title": "Event Builder", - "category": { - "main": "Main" + "confirm_close": { + "title": "Confirm Close", + "description": "Are you sure you want to close the Event Builder? All values will be reset." }, "success": { @@ -163,13 +164,21 @@ }, "error": { + "partner_servers": { + "title": "Failed to get Partner Servers", + "description": "%s" + }, + "preset": { + "title": "Failed to get preset", + "description": "%s" + }, "invalid_time": { "title": "Invalid time", "description": "The specified time is invalid: %s" }, - "post": { - "title": "Failed to post event" + "title": "Failed to post event", + "description": "%s" } }, @@ -177,10 +186,19 @@ "label": "Actions", "description": "Post the event, load a preset, etc.", + "custom": { + "custom": "Switch to builder", + "builder": "Switch to custom", + "description": "Whether this event is a custom event or not" + }, "post": { "label": "Post Event", "description": "Post the event to Event Alerts", - "button": "Post Event", + + "confirm": { + "title": "Confirm Post", + "description": "Are you sure you want to post this event?" + }, "toast": { "title": "Posting event...", @@ -193,20 +211,29 @@ "label": "Event Values", "description": "The actual values of the event", + "partner_server": { + "label": "Partner Server", + "description": "The server to post this event for", + "community": "COMMUNITY EVENT" + }, + "roles": { + "label": "Ping Roles", + "description": "The roles to ping for this event" + }, "title": { - "label": "*Title", + "label": "Title", "description": "REQUIRED: The title of the event" }, "time": { - "label": "*Time", + "label": "Time", "description": "REQUIRED: How long from now until the event starts (e.g. 2h 30m)" }, "ip": { - "label": "*IP", + "label": "IP", "description": "REQUIRED: The IP address players should connect to" }, "version": { - "label": "*Version", + "label": "Version", "description": "REQUIRED: The Minecraft version required to join the event" }, "description": { diff --git a/src/main/resources/assets/eventutils/textures/event_builder/platform/bedrock.png b/src/main/resources/assets/eventutils/textures/event_builder/platform/bedrock.png new file mode 100644 index 0000000000000000000000000000000000000000..10f685171b39ac8301e6a4f414f992fcfe3797cb GIT binary patch literal 9347 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

69`<0oXZ<3Qf6A&O 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

  • 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

    >Rja5>_E`tSRkz9Vv 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 +2|y31ow`5Enf#=8 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

    |7;*eSq{3_whU(QuCNtMHJ`->yFQfF zRBx5v{MRBV^;p2uB~bEh$|flld`*Ijcg@mF;OH*DN2uYyfs)Wv&2o;L2viP8KH z1Y_#2VeA~?wr|!0i-~as(c;DTjwQbmg{}K;M7sC&F38QKJg(lWeo)#^ecYe{cRf0a zQ%@nfEm~0jY-Pk)>;M1GxWNj2(h&43u)y^Q7iB9U1 zRVc}ccB>VK+!t${-RIv`9xrraSUV^}Q_)ME`}(O`lyE3*)PK=!aVyHs){rfJlyVw- z-M!4x-}`1QS?y%dAw#Z?u*Wh*nR7qH+x*<_P{`)_&@72>zY7diZUne%Qj@HAec3Vm z%}>b9g9Z3WYsxiqA5W7RujBpKFG=w;waH}m^=vjr`SVBNsUB$!@an}IL5}68q0iD- zoL``s9A$fC-1>(C;a)AnqBDxeZzK2gwx#X~6?cp;&CrB-*ti^YBF9$s3A1I`W>LGi zfoZX^{RRU?8QADF2H%x!%sV{`N5TqUc6_x&cdTi!TKKiZJ#A?2tAxpRT30;hyPFmx+V+KdbcmcgF66zP{d zQ4(8(#CO(6+-Qbg2Xmf-C<*UD@5|~nvpu31IUy9GvHvz^`QOjzS-t0NygK5d)$XL*{5Zg z*N>W(5IzG!o%o2@@EN1E{5#_om)sLSuq9k4h1;!&Vt#qWiCZEe8(XhxB;P>wl0Tu`X(e*kXwW%?A7zR z?H;G^UXhI}8ms zs1KS=#SP@!)=oU$!wd=3T&HO}te56m7_St_*$aHS%?D3gik@B#vc~@m`&|9~-mSI^ zVOtx6GZPU`t(?h}Dx6x7TO`dN6#^ZCpkTjMWrDMNpqu2P_OSy^`5OJL60f$qmQd#7 zb|XwG?E_5jbh5V{4UeBYcqbJ=ONXN zAR>_xU8<-vxJgrT&~5wgtM%>lN8!v2Qj7af=>xQWc#bsNI5~3|v zI*kfwou?Pu_HIT_mY3xpzT(Xx2)2p9imR3WbXOIZ-%P-DE~Xo`Gpvd1 z4lT74L`CdCN$IXA__=+c{JDCHF81ZD^~DI}$WviF)nB=#z+oxyGBdi^`B6ivLb6EB zyRZVA1Lp~RB}f$g;L?&^1nPSw-gd)Cg)2vo7q*Y<%}5WdeB6$>v=9K-|=L4IH58hDm);|H79OIs5{X%|uu9&Vs0 zE*;n(g#laE6N}WiQWQen^xLVoV?Or3`|ZD9?OjQynu3aDpDTp^;F_{Aby&N z182LILMbj}5vG_TioS;%o@0cL9AGQQfNH+rBO>(AzB(n}WJgz%$krRh=8QjgM;*V4 zUpL^#JK0ty&thPU&CK-gzIs9MnhR5#@vxmlYv`T5G_zK^l)tC?8VAnkwGPLMw?1I4 zW=7DohERKM&;VmddWcK*6AxNiZ_KvZOuC8d(L-(e>G;E~z^Tk8wX6rpD=|Z9M>S1p zAK#=g-?0nm_sW*@&MCq7ztA4*iU}1LIJZ*&+&ow$Lh4sj&i;H)7881v7U37B|VOmhN#52d?RKk^=TFmvv`RbefLG_gPq{>A@ zSj{Q5TgTN8YttF4K8_gV!uU-SVq-5gNLYaS?F?K=`G@Cv7&*K>zl73Wbp!@Kh>88? z!d1O5qO+@60uh3>SzNU-qkCinbA7s+vf8goTNClQwYm;#9PxLK@3)1OxzD)Y@2HGl zy|0&$>rO~>ak!TxdC5P^lmhB}#9bcYq29BS*ru*p?E~8fp5Nt(SxZ{@^ux{n(9wJh zUhEj+UF{{~vIO;j-!`Ba^E&(pm?MiP(T74FQ**N~O|M9K7taOi9jx9g>gyjkZ~!4K zD6p3o!+ZhP|7tHgCiqfg@OJvH;2)1N19qCv3?3mtLe{(I z+F$hGM&5t*Jxu>RgF3>E`h5{h6lU+AV+V-enNPqY7m>?bc4+gf%li0`gSn(SXe7~! zIw(*aTp1?<$9q8k!Ox@ag@NiyxzERtr#I^ca>v0%=$V$<5yy_<0T;=!G)pSIid0<2Rk7o6}|od z^l)9*Zrx%JLbNhI<7SYS=`UT_I`3!q_B)h{ z-9d0${0{m`f8rQ#pzi?8LSRB)G&KHhtRYUDwKT`6!S0zX+eVBLXFP2Y=navoPf!aa9WvM1BCd4l`$(IMRf0R({!XRpkyISP7;euhpR+R5z{k~pKH ziGw%`1ohj@IEM#Z6oxc}CN{ULwwu0=9roGREB?h1IrXzEtjw06+DWmqVX8B|S9i<% z&NbQmz+b)8^TY}p&(2zvuBM@gtkPnWIv$KI@Uz0`>R>hg%#pVY!El>S|3pE+5X|$3 z!v5KWBqU8b5td`SK#?8e^*g5DMG3WhHQ2Tpfer+9`Y*tYo|6;vnbJSseY?&uS)q6I zX-P`BYzI193HQA@j$DZ78MiUc-f99$AH&H-Y`^C9Ot$lhn7IA>Qor|4y0>4e=}Nq* zw(Bao>Kald3tm~RSZNbulllTR_P`ExSanlAzj9AZle~7uQp>LE*`>wdqgPoslG8Y- zj@;-Bo76=Z$lN>g9h*g`yq{=@uk(21`3P&4jIKKOciS5JMdVTzBH)C8 zB6IH?-FT*mbi>m^yd28 zvg>zO=gZ+8Lswn6SvsKw>ylol!d&&Ebq2x45cFztIITr!!fxKl%*zGu#zACfx_WU1 zJMrrIp=ePF(~jDVZgkB+Hq5%90eyzC81*~jRl)b3G+oClKla_m4Ig*G3jck(3Ge{n zf%szWECD6L^@`>%>H2F$o+Al{C+#ym|0Ib;4*_oZ`34Bt3+6?6?O&o ze!KS15&P`e%HMvybLWZ@-x2?%^7gSRtHsefV-1%NvuJoKE+NTe2nM`;*6oEcC=x4~ zJ+yeIRBgbOt4QSL(tO)i#A#eC+=#y$fW)#MJ`R%%(TgH-kaRp&4-hG@}NdHT{vgJlm(bT!M zKPMCm1QzCw{UzO1U6gT6k6CDyz{pS#E}XoyeDnsal*Ss2@hsw-tsgRmb>V47GF3d) z&bKvf9E|F(%uFsoONF7~V!mxS<2~|xkIHByJLh0*;N%^We9>56rX`)a2@!R?3{FPs zQQUSO=zGL+bTK}qYu@Z{9%}iIHJm{ZJYpD3s#E5mdO>M-_*}ok%uPid`KlX)agrR9 z!zYmojp%j!T**SgZWgg;I zSbw?iVa3?g26-bILihXyh@$bt#NAg1Nk>Lr^RVP2|40qMEEPJpgd=xL0nQfGxgjPJ z@nIsKPGO2=Yr?3G^FTDO#K+k~E&n{6T5w%#(1*%Vz2#h-(80{4f-z>jB?R=^Ar?k) z+zokQA39i4rLzqPE6)o=Mc4qUusa?7Va~G1QHfwiDLtr8_d#E~8 zk3If(hS1-Kc2Mez4c{Ty`~^4_+l=k!A1o@8ztuf(mwupNY4$gIIRDd@*y#h&q?X|R zm1Mu^6}b1HW>2lpM&?~Q+@P0CZKHdHgPFZxfZtbk*>HWm%Jf3E=@QP%=hMK|db#ri z_Er0-`s0x>>AM_X1W^!(y!g!bbu(bqV8~`y^~khBg*v7A%|9bV0?*-2-g?ma=%P{2 zop-5Sddv&hXHiSFtRUP735Bl+uwlwpYf)EH4xCL)li*nrpO|xMJKx>9J!bppA7-$v z(BL{!5XsbwYMV5}ffRy4zAo?+gxWfkY8Ss?dt_xP*5K?irOwPIHfieC1p7G#uDdqhXVs9NO6Ychk4dKw8d`B6r z7+h7r99G;GSNrfXyHB^(;O-WUt^UAO{Yh3?26Eq}BHAR$oHn2MW$_+p0aOjfY&5>hpepZYYlIx*_k`{x36 zPs{TBrDYO}JGvER3GP*Vr1~`|ZMeSWUcUf1gws-pW_t)f4C zylB7L?}lk#*5#9rso2sKWwtVJ^5$Bqn*A-u zKIvx2I`2!)vX1}9;SY)m%B#j_}rbcJK*35hQc0Msd_iec2^|t7@+kN__;JgkHq`&(IzwP_C$b@H2u*LOS1C*x~HsZU;beF#I0$#tKqy5?n3 z7(ccM5O2c@q+&8)klS~%68prJ)cxwipxMwQtK^+9_xC=bqd>n2sw042#I0_q=n~yc zHuytfP0S=pZPkKw7|ZOda04+|4B^xiXU?3&b71bS!&qJyUElMoK(~kq4~UK=pLOBe zUPL&tJGdWu40!z++sX%@Le+m~$uLv<^0f=1xe+qQ$zjm;1JaWd;Hl}V^bR1o9 z2x&W0cVSm7eFLH>WdB%hqANEs|H5UvrlQJBziB^}#938EUx}yIRM@HZeYR)VQU6r| z67E*^5vB#PUKQW;D}Fry)%n0lmtW$kcAk@AW=s$Drpo)x-;35D&gi{sZ4c-2$;RN< zfk>c-sP~P&%)T5(0ed(bDq;}j8Ev__Vl&rZ)K?fdidWURs+K<9=w`Fvw@W9PKhGo2 zLAJx_wDNAHv9ML)_={_=B219Jg!Xh;$Ycy@DW8HAp)s54~M3X>l5ue0X1wOU{3r08GIrM!8;Y~f6$HaJYvj{lp` zJy{oL0(viOw+c-fX*6HdZhqsCfy$fxd_sgS!OTtm+cR==EiLYTCK%qon0+OR*O6cg1GYa;(x&Cb5UE2QguObL1N`k3URME~SBuYW z6Q8vS@P1QERxt_6Hn_*kWNIR3D>kp?+Yay6xQ4Wg25vdRL<6Erb3K<^3R;*&x&{w1 zf57o3rS?ou+WRXUT;FO=q?SJSy)#i65we)Bs@l_Hec|&|kORD9e=>~fv8fI^RzwetIND(F`a5@Ir6yW zp5w{l6~oNwsuYb=(BW!t2HPVm%?u88`vqT|DJhP9tn=>0Bhg>G1EvPbkfrgH>=OjYTTCO3U1~}~`1DIf5Ba*Gh;R0bz!Y@z3NJdznZNNgd9c(#2Ciz{^Oq;rfDfi zR7aZldNENkgPBXNH!OVv!(<5_sg_=TchfXW%iSEXgbPTB`~Nc;P+9m-|%#i1zD7PLG{(e89s@!{*tIVAK*%`j)F^IUM{_IgKjL@`o{~7f%YntDe@hF5W zE>zS1U?+IkyFL1sP8fs=m24GE36cK{>~v*ic+1F28aTVjL0GEh^240~B7~8@bU4L| z@v#)%b*#CXGKlz|{XYKZrHrDC|Jg_m3~W5@^GKdpm#q3x4-S|i0dysvvhevSi55cP zy%VXPsmEqFtgxSnJ?`_EU_vE>5B$dzw&k#f0^P>L8+coDP1?RdD7xb1w#v&PJHg3R zN4A}z-Ho*nIL=8srb^E1mctT+B7>0qog$RZv}XFNaVs64KW4pMfkX z(~X_UXI-xe$e$y<}EprvlF@q!@{RN*q;v~wdUpQj8ZBZG`mw9c}F#j zaMrct{6x|bLDYvEhzV~t-u8NZYjt63e^P56S~s&xvJL&bU0AAs))Jg^gN3V_A1qnD z(>{H>WVL%^v`pK+uzAVNb04+fs71viLT;R&6im_}opCkW3NKCj6^xsyqbm#YAZ{LQ z>|=L&g5i0yyU)qYWz~tq{m-D_>9R!?s|!i_^r-F6CvfX~#WR<{#(^c0mnG-oh|hz+ zQ?oM<0{f%IIN(Sm*4B5P>{mGm5#)F}X5+vLkqLs)Gox>b?RO%XSF?szb89Xr6WV^; zxrNNfuh}QL2XzjHrcMmLbpMK*-$-5;$$3|;%S?G5R zbnP7YJvYHj-%(Jmg1B8z6^nVY01b##l^8T2h-=gQ_dIFe z*Y0Hjqd+tmIHLZq-ygwOh4^w2#f8iX*+#SqR2gE(M1dn#7p8PfmWtKD(Jg|7$T%+u zl)5%!dk-arM~xkjJ4c8h3Lx75JHMFsj=M>W2g4VF^=gaGXrpp27Cl`P{8J@fSa4rS z_ewI_{6Ay2X#$4RGlwg;bCy3J)3v5)mzHcoX(A^_Om4f-Hg`x&axwrGXQvv&V$zx= z)#L9l^$4T2Z5ll z@-kD3&2W;L7eRhpb5^OBRIbenTVH4@*$ghhJR)u?pn|-wg<6{cTL$QN>af~llhv~U& zcWaoVx@^U#TlFkt9TKARyeeF7Av1Do1wkzU9InV>3^>-8E?(ZU8yRY!*^C0WS6ar= z=WPEO`vkT^0K@Xb+`0hlK-57>9Ij(&ktYWbL`E*a=l{R(e>Qup>hCY28H7#&wizMB zk>7T*Uh}$}89YKrK?{~^Ax7Gmov>MecDa8341qe_DZue}srSU{E;Qw1Y?(hruUG5T_v57%WAEwHhp;<1drQYrI}w zn#&o6a9a9bzg}B3)Qs|C=uWQ<%v?vWVJErRSCGULOewogHqZy@TvKax;xFi4WxnUu zP^dDbZAC0uj9IA`^7I*eY@nB?O4XSb!42KqN&TxY%F zDw+yEC|LK;sQ(eWJ^}Z^+&Hu!m3KZ@atlmlnW=MOQ-S0fHNAxGH$A+2`N57s0a_{Z z!vQ2H1IaDtXB*MgF9^`*{xGzmeh--B;$C4Ho90ZvXjxAFmrC0q8InK4@osv+2;nMP z?;o!m6S&40*`rDAfYV#624sZ;&B5{i_;O{{`m84SV%gd>t=elHnqt@~Akv6=Gb+)C&=M)D8ESyHsHxK7GPDFWPrp-){VRg@V3Y$q8?kBA@XcNcdAi%MEPC~okQSD) z5SOd6;U5Ps%|#8OC6Md%yFQbBG-;LL3_bUq@uiU%aYRAvLr}cIp71i%b^#d+s<2GS z<}%7}N1f8#KNXD3(hAH|*0SR0hmzEB59-86;lW{wo+u-KJ^?C7p_P*7@0>X5yCq?8 z5=nY6N!!d<`bjIdG;N7H| zP3{pK*^g*URQ0xfF7MJ`BJPtG$? ZIRTp_9R%6y;MaEGl(xai%oBDu{}- Date: Sat, 5 Sep 2026 17:45:03 -0400 Subject: [PATCH 03/12] Add local checks to event builder --- .../aabss/eventutils/cache/PlayerCache.java | 8 +- .../eventutils/discordrpc/DiscordRPC.java | 4 +- .../cc/aabss/eventutils/plustag/PlusTag.java | 16 -- .../aabss/eventutils/screen/EventBuilder.java | 252 +++++++++++++----- .../aabss/eventutils/sdk/EnrichedPlayer.java | 36 ++- .../assets/eventutils/lang/en_us.json | 17 ++ 6 files changed, 241 insertions(+), 92 deletions(-) diff --git a/src/main/java/cc/aabss/eventutils/cache/PlayerCache.java b/src/main/java/cc/aabss/eventutils/cache/PlayerCache.java index 577ad34..2fbd8be 100644 --- a/src/main/java/cc/aabss/eventutils/cache/PlayerCache.java +++ b/src/main/java/cc/aabss/eventutils/cache/PlayerCache.java @@ -23,8 +23,8 @@ public PlayerCache(@NotNull EventUtils mod) { public void addToCache(@NotNull Collection players) { players.forEach(player -> { final EnrichedPlayer enriched = new EnrichedPlayer(player); - if (enriched.player.minecraft != null && enriched.player.minecraft.uuid != null) { - addToCache(enriched.player.minecraft.uuid, enriched); + if (enriched.minecraft != null && enriched.minecraft.uuid != null) { + addToCache(enriched.minecraft.uuid, enriched); } }); } @@ -42,8 +42,8 @@ protected EAAction> fetchImpl(@NotNull Collection result = new HashMap<>(); for (final EAPlayer player : players) { final EnrichedPlayer enriched = new EnrichedPlayer(player); - if (enriched.player.minecraft != null && enriched.player.minecraft.uuid != null) { - result.put(enriched.player.minecraft.uuid, enriched); + if (enriched.minecraft != null && enriched.minecraft.uuid != null) { + result.put(enriched.minecraft.uuid, enriched); } } return result; diff --git a/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java b/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java index acdd5e8..bc70c15 100644 --- a/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java +++ b/src/main/java/cc/aabss/eventutils/discordrpc/DiscordRPC.java @@ -43,8 +43,8 @@ public class DiscordRPC { public DiscordRPC(@NotNull EventUtils mod) { this.mod = mod; this.client.setListener(new CustomIPCListener(this)); - this.playerUrl = mod.authManager.player != null && mod.authManager.player.player.discord != null && mod.authManager.player.player.discord.id != null - ? utm("https://eventalerts.gg/players/" + mod.authManager.player.player.discord.id, "player") + this.playerUrl = mod.authManager.player != null && mod.authManager.player.discord != null && mod.authManager.player.discord.id != null + ? utm("https://eventalerts.gg/players/" + mod.authManager.player.discord.id, "player") : "https://namemc.com/profile/" + Minecraft.getInstance().getUser().getProfileId(); refreshConnection(); } diff --git a/src/main/java/cc/aabss/eventutils/plustag/PlusTag.java b/src/main/java/cc/aabss/eventutils/plustag/PlusTag.java index 7273508..8a95db9 100644 --- a/src/main/java/cc/aabss/eventutils/plustag/PlusTag.java +++ b/src/main/java/cc/aabss/eventutils/plustag/PlusTag.java @@ -1,10 +1,8 @@ package cc.aabss.eventutils.plustag; -import cc.aabss.eventutils.EventUtils; import cc.aabss.eventutils.versioning.VersionedIdentifier; import gg.eventalerts.sdk.object.EAPlayer; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; //? if >=1.21.11 { /*import net.minecraft.resources.Identifier; *///?} else { @@ -59,18 +57,4 @@ public enum PlusTag { this.textureId = VersionedIdentifier.of("textures/bee/plus/" + name().toLowerCase() + ".png"); this.isUnlocked = isUnlocked; } - - @Nullable - public static PlusTag getBestUnlocked(@Nullable EAPlayer player) { - if (player == null) return null; - PlusTag bestTag = null; - for (final PlusTag tag : PlusTag.values()) { - if (tag.isUnlocked.test(player)) { - bestTag = tag; - break; - } - } - EventUtils.LOGGER.debug("[API] Fetched best tag={} uuid={}", bestTag, player.minecraft != null ? player.minecraft.uuid : "(player.minecraft=null)"); - return bestTag; - } } diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 5f11704..77b97d2 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -2,10 +2,12 @@ import cc.aabss.eventutils.EventUtils; import cc.aabss.eventutils.NotificationToast; +import cc.aabss.eventutils.sdk.EnrichedPlayer; import cc.aabss.eventutils.versioning.VersionedClient; import cc.aabss.eventutils.versioning.VersionedIdentifier; import gg.eventalerts.sdk.object.EAEvent; import gg.eventalerts.sdk.object.EAPartnerServer; +import gg.eventalerts.sdk.object.EAPlayer; import io.wispforest.owo.ui.component.ButtonComponent; import io.wispforest.owo.ui.component.DropdownComponent; import io.wispforest.owo.ui.component.LabelComponent; @@ -41,9 +43,16 @@ public class EventBuilder extends ScreenWithParent { + public static final int MAX_TITLE_LENGTH = 256; + public static final int MAX_DESCRIPTION_LENGTH = 2000; + public static final int MAX_TIME_LENGTH = 1007; + public static final int MAX_IP_LENGTH = 256; + public static final int MAX_VERSION_LENGTH = 256; + public static final int MAX_PRIZE_LENGTH = 256; @NotNull private static final List TOGGLEABLE_ROLES = Arrays.stream(EAEvent.PingRole.values()) .filter(role -> role.partnerToggleable) .toList(); + @NotNull private static final ObjectId COMMUNITY_EVENT_SENTINEL = new ObjectId("000000000000000000000000"); @NotNull private Map partnerServers = new LinkedHashMap<>(); @@ -56,8 +65,8 @@ public class EventBuilder extends ScreenWithParent { @NotNull private String ip = Defaults.ip(); @NotNull private Set platforms = Defaults.platforms(); @NotNull private String version = Defaults.version(); - @Nullable private String description = Defaults.DESCRIPTION; - @Nullable private String prize = Defaults.PRIZE; + @NotNull private String description = Defaults.DESCRIPTION; + @NotNull private String prize = Defaults.PRIZE; @Nullable private Integer maxPlayers = Defaults.maxPlayers(); public EventBuilder(@Nullable Screen parent) { @@ -86,21 +95,20 @@ private EventBuilder(@NotNull EventBuilder builder) { this.maxPlayers = builder.maxPlayers; // Checks - if (custom && (EventUtils.MOD.authManager.player == null || EventUtils.MOD.authManager.player.player.subscription == null) && partnerServer == null) { + if (custom && (EventUtils.MOD.authManager.player == null || EventUtils.MOD.authManager.player.subscription == null) && partnerServer == null) { this.custom = false; } } public void open() { - if (EventUtils.MOD.authManager.player == null || EventUtils.MOD.authManager.player.player.discord == null) return; + final EAPlayer player = EventUtils.MOD.authManager.player; + if (player == null || player.discord == null) return; EventUtils.MOD.http.partnerServers.retrieveAll(MapGenerator.HASH_MAP.mapOf( "enabled", null, - "representatives", Set.of(EventUtils.MOD.authManager.player.player.discord) + "representatives", Set.of(player.discord) )).queue( partnerServers -> { - if (EventUtils.MOD.authManager.player == null) return; - // partnerServers this.partnerServers = new LinkedHashMap<>(); for (final EAPartnerServer partnerServer : partnerServers) { @@ -108,13 +116,13 @@ public void open() { } // No default preset, open immediately - if (EventUtils.MOD.authManager.player.player.defaultPreset == null) { + if (player.defaultPreset == null) { setScreen(); return; } // Default preset, retrieve -> apply -> open - EventUtils.MOD.http.eventPresets.retrieveOneById(EventUtils.MOD.authManager.player.player.defaultPreset).queue( + EventUtils.MOD.http.eventPresets.retrieveOneById(player.defaultPreset).queue( preset -> { // Apply preset if (preset.data != null) { @@ -149,33 +157,105 @@ private void setScreen() { client.execute(() -> new VersionedClient(client).setScreen(this)); } + private void rebuild() { + new VersionedClient(Minecraft.getInstance()).setScreen(new EventBuilder(this)); + } + private void error(@NotNull String key, @NotNull Object... args) { NotificationToast.show( translatable("eventutils.event_builder.error." + key + ".title").withStyle(ChatFormatting.RED), translatable("eventutils.event_builder.error." + key + ".description", args)); + setScreen(); } - private void post() { - // Get Date time - final Duration duration = DurationParser.parse(time).orElse(null); - if (duration == null) { - error("invalid_time", time); - return; + private boolean canPost() { + // Check if host is linked + final EnrichedPlayer player = EventUtils.MOD.authManager.player; + if (player == null || player.discord == null || player.minecraft == null) { + error("not_logged_in"); + return false; } - final Date dateTime = new Date(System.currentTimeMillis() + duration.toMillis()); - //TODO Local checks + final EAEvent.Type type = partnerServer != null ? EAEvent.Type.PARTNER : EAEvent.Type.COMMUNITY; + final Set missingRequiredFields = new HashSet<>(); - // Build + if (custom) { + // Custom + + // Required fields + if (description.isBlank()) missingRequiredFields.add("description"); + } else { + // Builder + + // Required fields + if (title.isBlank()) missingRequiredFields.add("title"); + if (time.isBlank()) missingRequiredFields.add("time"); + if (ip.isBlank()) missingRequiredFields.add("ip"); + if (version.isBlank()) missingRequiredFields.add("version"); + + // Get time as Duration + final Duration duration = DurationParser.parse(time).orElse(null); + if (duration == null) { + error("invalid_time", time); + return false; + } + // Check if duration is more than 1 day + if (duration.toDays() > 1) { + error("time_too_long", time); + return false; + } + + // Custom COMMUNITY required premium + if (type == EAEvent.Type.COMMUNITY && player.getEffectiveSubscriptionTier() == null) { + error("premium_required", translatable("eventutils.event_builder.error.premium_required.custom_community")); + return false; + } + } + + // Missing required field + if (!missingRequiredFields.isEmpty()) { + final MutableComponent missingFields = Component.empty(); + for (final String field : missingRequiredFields) { + if (!missingFields.getSiblings().isEmpty()) missingFields.append(", "); + missingFields.append(translatable("eventutils.event_builder.values." + field + ".label")); + } + error("missing_required", missingFields); + return false; + } + + return true; + } + + private void post() { + if (!canPost()) return; final EAEvent event = new EAEvent(); + + // Common event.type = this.partnerServer != null ? EAEvent.Type.PARTNER : EAEvent.Type.COMMUNITY; event.custom = this.custom; event.server = this.partnerServer; - if (event.type == EAEvent.Type.PARTNER) event.rolesNamed = this.roles; event.description = this.description; + + // Partner-only + if (event.type == EAEvent.Type.PARTNER) event.rolesNamed = this.roles; + if (!custom) { + // Builder + + // Get time as Duration + final Duration duration = DurationParser.parse(time).orElse(null); + if (duration == null) { + error("invalid_time", time); + return; + } + // Check if duration is more than 1 day + if (duration.toDays() > 1) { + error("time_too_long", time); + return; + } + event.title = this.title; - event.time = dateTime; + event.time = new Date(System.currentTimeMillis() + duration.toMillis()); event.ip = this.ip; event.platforms = this.platforms; event.version = this.version; @@ -200,12 +280,10 @@ private void post() { }); } - private void rebuild() { - new VersionedClient(Minecraft.getInstance()).setScreen(new EventBuilder(this)); - } - @Override protected void build(@NotNull FlowLayout root) { + final EnrichedPlayer player = EventUtils.MOD.authManager.player; + root.gap(4); root .surface(Surface.VANILLA_TRANSLUCENT) @@ -221,13 +299,13 @@ protected void build(@NotNull FlowLayout root) { if (!partnerServers.isEmpty()) { // Build Partner Server option IDs final List partnerServerIds = new ArrayList<>(partnerServers.keySet()); - partnerServerIds.addFirst(null); // Add null option for community events + partnerServerIds.addFirst(COMMUNITY_EVENT_SENTINEL); // Add community event option fields.child(dropdownRow( "partner_server", true, partnerServerIds, - partnerServer, id -> { + Objects.requireNonNullElse(partnerServer, COMMUNITY_EVENT_SENTINEL), id -> { final ObjectId oldPartnerServer = this.partnerServer; - partnerServer = id; + partnerServer = id == COMMUNITY_EVENT_SENTINEL ? null : id; // Rebuild if switching between community and partner (for ping roles) if ((oldPartnerServer == null && partnerServer != null) || (oldPartnerServer != null && partnerServer == null)) { @@ -235,32 +313,35 @@ protected void build(@NotNull FlowLayout root) { } }, id -> { - if (id == null) return translatable("eventutils.event_builder.values.partner_server.community").withStyle(ChatFormatting.GRAY); + if (id == null || id == COMMUNITY_EVENT_SENTINEL) { + return translatable("eventutils.event_builder.values.partner_server.community").withStyle(ChatFormatting.GRAY); + } final EAPartnerServer server = partnerServers.get(id); return literal(server != null && server.name != null ? server.name : id.toHexString()); })); } - // Roles (Partner only) + // Roles (Partner only) TODO role conditions if (partnerServer != null) fields.child(checkBoxRow( - "roles", true, TOGGLEABLE_ROLES, - roles::contains, roles::add, roles::remove, + "roles", !custom, + TOGGLEABLE_ROLES, roles, pingRole -> literal(pingRole.displayName), pingRole -> "textures/event_builder/role/" + pingRole.name().toLowerCase() + ".png")); if (!custom) { - fields.child(stringRow("title", true, title, value -> title = value)); - fields.child(stringRow("time", true, time, value -> time = value)); - fields.child(stringRow("ip", true, ip, value -> ip = value)); - fields.child(stringRow("version", true, version, value -> version = value)); + fields.child(stringRow("title", true, MAX_TITLE_LENGTH, title, value -> title = value)); + fields.child(stringRow("time", true, MAX_TIME_LENGTH, time, value -> time = value)); + fields.child(stringRow("ip", true, MAX_IP_LENGTH, ip, value -> ip = value)); + fields.child(stringRow("version", true, MAX_VERSION_LENGTH, version, value -> version = value)); } - fields.child(textAreaRow("description", false, custom, description, value -> description = value)); + fields.child(textAreaRow("description", custom, MAX_DESCRIPTION_LENGTH, custom, description, value -> description = value)); if (!custom) { - fields.child(stringRow("prize", false, prize, value -> prize = value)); + fields.child(stringRow("prize", false, MAX_PRIZE_LENGTH, prize, value -> prize = value)); fields.child(checkBoxRow( - "platforms", false, List.of(EAEvent.Platform.values()), - platforms::contains, platforms::add, platforms::remove, + "platforms", false, + List.of(EAEvent.Platform.values()), platforms, platform -> literal(platform.displayName), platform -> "textures/event_builder/platform/" + platform.name().toLowerCase() + ".png")); + //TODO does this allow negatives? fields.child(integerRow("max_players", false, maxPlayers, value -> maxPlayers = value)); } root.child(Containers.verticalScroll(Sizing.content(), Sizing.expand(), fields)); @@ -269,13 +350,14 @@ protected void build(@NotNull FlowLayout root) { actions.gap(6); actions.margins(Insets.top(12)); final String customKey = custom ? "custom" : "builder"; - if ((EventUtils.MOD.authManager.player != null && EventUtils.MOD.authManager.player.player.subscription != null) || partnerServer != null) { + if ((player != null && player.getEffectiveSubscriptionTier() != null) || partnerServer != null) { actions.child(Components.button(translatable("eventutils.event_builder.actions.custom." + customKey).withStyle(ChatFormatting.AQUA), button -> { custom = !custom; rebuild(); }).horizontalSizing(Sizing.fixed(160))); } actions.child(Components.button(translatable("eventutils.event_builder.actions.post.label").withStyle(ChatFormatting.GREEN, ChatFormatting.BOLD), button -> { + if (!canPost()) return; final VersionedClient vClient = new VersionedClient(Minecraft.getInstance()); vClient.setScreen(new ConfirmScreen(result -> { if (result) { @@ -292,25 +374,51 @@ protected void build(@NotNull FlowLayout root) { } @NotNull - private FlowLayout stringRow(@NotNull String key, boolean required, @Nullable String value, @NotNull Consumer setter) { - final TextBoxComponent box = Components.textBox(Sizing.expand(), value == null ? "" : value); - box.onChanged().subscribe(setter::accept); - return row(key, required, box); + private FlowLayout stringRow(@NotNull String key, boolean required, int maxLength, @Nullable String value, @NotNull Consumer setter) { + final String initial = value == null ? "" : value; + final TextBoxComponent box = Components.textBox(Sizing.expand(), initial); + final FlowLayout wrapper = inputWrapper(box, required && initial.isBlank()); + box.onChanged().subscribe(newValue -> { + String result = newValue; + if (newValue.length() > maxLength) { + result = newValue.substring(0, maxLength); + box.text(result); + } + setter.accept(result); + markInvalid(wrapper, required && result.isBlank()); + }); + return row(key, required, wrapper); } @NotNull private FlowLayout integerRow(@NotNull String key, boolean required, @Nullable Number value, @NotNull Consumer setter) { - final TextBoxComponent box = Components.textBox(Sizing.expand(), value == null ? "" : value.toString()); + final String initial = value == null ? "" : value.toString(); + final TextBoxComponent box = Components.textBox(Sizing.expand(), initial); + final FlowLayout wrapper = inputWrapper(box, required && initial.isBlank()); box.setFilter(text -> text.isEmpty() || (text.length() <= 9 && text.chars().allMatch(Character::isDigit))); - box.onChanged().subscribe(newValue -> setter.accept(Mapper.toInt(newValue).orElse(null))); + box.onChanged().subscribe(newValue -> { + setter.accept(Mapper.toInt(newValue).orElse(null)); + markInvalid(wrapper, required && newValue.isBlank()); + }); return row(key, required, box); } @NotNull - private FlowLayout textAreaRow(@NotNull String key, boolean required, boolean big, @Nullable String value, @NotNull Consumer setter) { - final TextAreaComponent area = Components.textArea(Sizing.expand(), Sizing.fixed(big ? 200 : 60), value == null ? "" : value); - area.onChanged().subscribe(setter::accept); - return row(key, required, area); + private FlowLayout textAreaRow(@NotNull String key, boolean required, int maxLength, boolean big, @Nullable String value, @NotNull Consumer setter) { + final String initial = value == null ? "" : value; + final TextAreaComponent area = Components.textArea(Sizing.expand(), Sizing.fixed(big ? 200 : 60), initial); + final FlowLayout wrapper = inputWrapper(area, required && initial.isBlank()); + area.margins(Insets.of(1)); + area.onChanged().subscribe(newValue -> { + String result = newValue; + if (newValue.length() > maxLength) { + result = newValue.substring(0, maxLength); + area.text(result); + } + setter.accept(newValue); + markInvalid(wrapper, required && result.isBlank()); + }); + return row(key, required, wrapper); } @NotNull @@ -339,22 +447,22 @@ private FlowLayout dropdownRow( @NotNull private FlowLayout checkBoxRow( - @NotNull String key, boolean required, @NotNull List values, - @NotNull Function getter, @NotNull Consumer adder, @NotNull Consumer remover, + @NotNull String key, boolean required, + @NotNull Collection availableValues, @NotNull Collection selectedValues, @NotNull Function displayNameMapper, @Nullable Function iconPathMapper ) { final FlowLayout checkboxes = Containers.horizontalFlow(Sizing.expand(), Sizing.content()); checkboxes.gap(8); checkboxes.verticalAlignment(VerticalAlignment.CENTER); - for (final T enumValue : values) { + for (final T enumValue : availableValues) { final String iconPath = iconPathMapper == null ? null : iconPathMapper.apply(enumValue); checkboxes.child(iconPath == null ? Components.checkbox(displayNameMapper.apply(enumValue)) - .checked(getter.apply(enumValue)) - .onChanged(checked -> setChecked(checked, enumValue, adder, remover)) - : iconToggle(iconPath, displayNameMapper.apply(enumValue), getter.apply(enumValue), - checked -> setChecked(checked, enumValue, adder, remover))); + .checked(selectedValues.contains(enumValue)) + .onChanged(checked -> setChecked(checked, enumValue, selectedValues::add, selectedValues::remove)) + : iconToggle(iconPath, displayNameMapper.apply(enumValue), selectedValues.contains(enumValue), + checked -> setChecked(checked, enumValue, selectedValues::add, selectedValues::remove))); } return row(key, required, checkboxes); } @@ -375,7 +483,6 @@ private FlowLayout iconToggle(@NotNull String texturePath, @NotNull Component la box.gap(4); box.verticalAlignment(VerticalAlignment.CENTER); box.padding(Insets.of(3)); - box.cursorStyle(CursorStyle.HAND); box.child(Components.texture(VersionedIdentifier.of(texturePath), 0, 0, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE, ICON_TOGGLE_SIZE)); box.child(Components.label(label)); @@ -393,6 +500,7 @@ private FlowLayout iconToggle(@NotNull String texturePath, @NotNull Component la return true; }); + cursorAll(box, CursorStyle.HAND); return box; } @@ -418,6 +526,26 @@ private FlowLayout row(@NotNull String key, boolean required, @NotNull io.wispfo return row; } + @NotNull + private static FlowLayout inputWrapper(@NotNull io.wispforest.owo.ui.core.Component input, boolean invalid) { + final FlowLayout wrapper = Containers.horizontalFlow(Sizing.expand(), Sizing.content()); + wrapper.padding(Insets.of(1)); + wrapper.child(input); + markInvalid(wrapper, invalid); + return wrapper; + } + + private static void markInvalid(@NotNull FlowLayout wrapper, boolean invalid) { + wrapper.surface(invalid ? Surface.outline(0xFFFF5555) : Surface.BLANK); + } + + private static void cursorAll(@NotNull io.wispforest.owo.ui.core.Component component, @NotNull CursorStyle style) { + component.cursorStyle(style); + if (component instanceof ParentComponent parent) { + for (final io.wispforest.owo.ui.core.Component child : parent.children()) cursorAll(child, style); + } + } + @Override @NotNull protected OwoUIAdapter createAdapter() { return OwoUIAdapter.create(this, Containers::verticalFlow); @@ -428,10 +556,10 @@ public static class Defaults { @NotNull private static final Set PING_ROLES = Set.of(EAEvent.PingRole.PARTNER); @NotNull public static final String TITLE = Minecraft.getInstance().getUser().getName() + "'s Event"; @NotNull public static final String TIME = "15m"; - @Nullable private static final String IP = "play.eventalerts.gg"; - @Nullable public static final String DESCRIPTION = null; + @NotNull private static final String IP = "play.eventalerts.gg"; + @NotNull public static final String DESCRIPTION = ""; @NotNull private static final Set PLATFORMS = Set.of(EAEvent.Platform.JAVA); - @Nullable public static final String PRIZE = null; + @NotNull public static final String PRIZE = ""; @Nullable public static final Integer MAX_PLAYERS = null; @NotNull @@ -455,7 +583,7 @@ public static String version() { return Objects.requireNonNullElse(EventUtils.MC_VERSION, "26.2"); } - @Nullable + @NotNull public static String description() { final ServerData server = Minecraft.getInstance().getCurrentServer(); return server != null ? server.motd.getString() : DESCRIPTION; diff --git a/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java b/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java index 223afe4..1c9f266 100644 --- a/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java +++ b/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java @@ -1,36 +1,56 @@ package cc.aabss.eventutils.sdk; +import cc.aabss.eventutils.EventUtils; import cc.aabss.eventutils.plustag.PlusTag; import gg.eventalerts.sdk.object.EAPlayer; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import xyz.srnyx.javautilities.parents.Stringable; -public class EnrichedPlayer extends Stringable { - @NotNull public final EAPlayer player; - +public class EnrichedPlayer extends EAPlayer { // --- Enrichment --- private boolean plusTagResolved = false; @Nullable private PlusTag plusTag; public EnrichedPlayer(@NotNull EAPlayer player) { - this.player = player; + super(player); } public boolean isOnline() { - return player.minecraft != null && player.minecraft.eventUtils != null; + return minecraft != null && minecraft.eventUtils != null; } public boolean isDiscordLinked() { - return player.discord != null; + return discord != null; + } + + @Nullable + public EAPlayer.Subscription.Tier getEffectiveSubscriptionTier() { + // Admins get highest subscription + if (discord != null && discord.roles != null && discord.roles.contains(EAPlayer.Discord.Role.ADMIN)) { + return EAPlayer.Subscription.Tier.HORNET; + } + + // Has subscription + if (subscription != null) return subscription.tier; + + // No subscription + return null; } @Nullable public PlusTag getPlusTag() { if (!plusTagResolved) { plusTagResolved = true; - plusTag = PlusTag.getBestUnlocked(player); + PlusTag bestTag = null; + for (final PlusTag tag : PlusTag.values()) { + if (tag.isUnlocked.test(this)) { + bestTag = tag; + break; + } + } + EventUtils.LOGGER.debug("[API] Fetched best tag={} uuid={}", bestTag, minecraft != null ? minecraft.uuid : "(minecraft=null)"); + return bestTag; } return plusTag; } diff --git a/src/main/resources/assets/eventutils/lang/en_us.json b/src/main/resources/assets/eventutils/lang/en_us.json index 64c5569..26af76c 100644 --- a/src/main/resources/assets/eventutils/lang/en_us.json +++ b/src/main/resources/assets/eventutils/lang/en_us.json @@ -164,6 +164,10 @@ }, "error": { + "not_logged_in": { + "title": "Not logged in", + "description": "You must be logged in to post an event" + }, "partner_servers": { "title": "Failed to get Partner Servers", "description": "%s" @@ -172,10 +176,23 @@ "title": "Failed to get preset", "description": "%s" }, + "missing_required": { + "title": "Missing required value(s)", + "description": "%s" + }, "invalid_time": { "title": "Invalid time", "description": "The specified time is invalid: %s" }, + "time_too_long": { + "title": "Time too long", + "description": "The specified time is too far in the future: %s" + }, + "premium_required": { + "title": "Premium required", + "description": "%s", + "custom_community": "Custom community events require a premium subscription" + }, "post": { "title": "Failed to post event", "description": "%s" From a87325890a98ab4a9534a38265fc6bdd8c7fe1d3 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:03:34 -0400 Subject: [PATCH 04/12] Fix Partner Server fetching --- src/main/java/cc/aabss/eventutils/screen/EventBuilder.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 77b97d2..96b85fc 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -102,11 +102,12 @@ private EventBuilder(@NotNull EventBuilder builder) { public void open() { final EAPlayer player = EventUtils.MOD.authManager.player; - if (player == null || player.discord == null) return; + if (player == null || player.discord == null || player.discord.id == null) return; + // Fetch Partner Servers EventUtils.MOD.http.partnerServers.retrieveAll(MapGenerator.HASH_MAP.mapOf( "enabled", null, - "representatives", Set.of(player.discord) + "representatives", Set.of(player.discord.id) )).queue( partnerServers -> { // partnerServers From a67cb135f1adbdbde4f9c8458b722659c129d4a4 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:03:41 -0400 Subject: [PATCH 05/12] Fix older Java versions --- src/main/java/cc/aabss/eventutils/screen/EventBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 96b85fc..305e55c 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -300,7 +300,7 @@ protected void build(@NotNull FlowLayout root) { if (!partnerServers.isEmpty()) { // Build Partner Server option IDs final List partnerServerIds = new ArrayList<>(partnerServers.keySet()); - partnerServerIds.addFirst(COMMUNITY_EVENT_SENTINEL); // Add community event option + partnerServerIds.add(0, COMMUNITY_EVENT_SENTINEL); // Add community event option (don't use addFirst to support old Java versions) fields.child(dropdownRow( "partner_server", true, partnerServerIds, From 97b16b1027c1835d315ef0b983ec9102f99fecdb Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:03:51 -0400 Subject: [PATCH 06/12] Add tooltips to Event Builder --- src/main/java/cc/aabss/eventutils/screen/EventBuilder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 305e55c..0ff667c 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -524,6 +524,7 @@ private FlowLayout row(@NotNull String key, boolean required, @NotNull io.wispfo row.child(label); row.child(input); + row.tooltip(translatable("eventutils.event_builder.values." + key + ".description")); return row; } From 31cc13a9dfe3714f39aed27caac14ffbbb223edd Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:13:53 -0400 Subject: [PATCH 07/12] Switch some authors to contributors --- src/main/resources/fabric.mod.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6f2b55e..2e22739 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -4,7 +4,8 @@ "version": "${mod_version}", "name": "${mod_name}", "description": "${description}", - "authors": ["Event Alerts", "aabss", "srnyx", "pvty", "QWERTZ_EXE"], + "authors": ["Event Alerts", "srnyx"], + "contributors": ["aabss", "pvty", "QWERTZ_EXE"], "contact": { "homepage": "https://eventalerts.gg?utm_source=minecraft&utm_medium=fabric_mod_json&utm_campaign=fabric", "sources": "https://github.com/Event-Alerts/EventUtils", From 94bb8abf26a8642a704511d143dbeaa9528c7344 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Fri, 11 Sep 2026 20:20:44 -0400 Subject: [PATCH 08/12] Add close button to menu --- .../aabss/eventutils/screen/MenuScreen.java | 29 +++++++++++++------ .../assets/eventutils/lang/en_us.json | 3 +- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java index 9bed715..c2d539c 100644 --- a/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java +++ b/src/main/java/cc/aabss/eventutils/screen/MenuScreen.java @@ -41,32 +41,43 @@ protected void build(@NotNull FlowLayout rootComponent) { buttons.horizontalSizing(Sizing.fixed(150)); buttons.gap(10); + // Config buttons.child(Components .button(translatable("eventutils.menu.config").withStyle(ChatFormatting.GOLD), button -> { new VersionedClient(Minecraft.getInstance()).setScreen(ConfigScreen.getConfigScreen(this)); }) .horizontalSizing(Sizing.expand())); + // Group Manager buttons.child(Components - .button(translatable("eventutils.menu.group_manager").withStyle(ChatFormatting.YELLOW), button -> { - new VersionedClient(Minecraft.getInstance()).setScreen(new GroupManagerScreen(EventUtils.MOD, this)); - }) + .button( + translatable("eventutils.menu.group_manager").withStyle(ChatFormatting.YELLOW), + button -> new VersionedClient(Minecraft.getInstance()).setScreen(new GroupManagerScreen(EventUtils.MOD, this))) .horizontalSizing(Sizing.expand())); if (player != null) { + // Discord Link if (!player.isDiscordLinked()) buttons.child(Components - .button(translatable("eventutils.menu.discord_link").withStyle(ChatFormatting.AQUA), button -> { - EventUtils.MOD.discordLinkManager.startLink(this, null); - }) + .button( + translatable("eventutils.menu.discord_link").withStyle(ChatFormatting.AQUA), + button -> EventUtils.MOD.discordLinkManager.startLink(this, null)) .horizontalSizing(Sizing.expand())); + // Event Builder if (player.isDiscordLinked()) buttons.child(Components - .button(translatable("eventutils.menu.event_builder").withStyle(ChatFormatting.GREEN), button -> { - new EventBuilder(this).open(); - }) + .button( + translatable("eventutils.menu.event_builder").withStyle(ChatFormatting.GREEN), + button -> new EventBuilder(this).open()) .horizontalSizing(Sizing.expand())); } + // Close + buttons.child(Components + .button( + translatable("eventutils.menu.close"), + button -> onClose()) + .horizontalSizing(Sizing.expand())); + rootComponent.child(buttons); } } diff --git a/src/main/resources/assets/eventutils/lang/en_us.json b/src/main/resources/assets/eventutils/lang/en_us.json index 26af76c..a3effdf 100644 --- a/src/main/resources/assets/eventutils/lang/en_us.json +++ b/src/main/resources/assets/eventutils/lang/en_us.json @@ -149,7 +149,8 @@ "config": "Config", "group_manager": "Group manager", "discord_link": "Link Discord account", - "event_builder": "Post an event" + "event_builder": "Post an event", + "close": "Close" }, "event_builder": { From 0a4f834e31f64b24fbcfa6fe486b1f1168f3b81d Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Sun, 13 Sep 2026 20:14:52 -0400 Subject: [PATCH 09/12] Fix event builder description truncation --- src/main/java/cc/aabss/eventutils/screen/EventBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java index 0ff667c..11c0439 100644 --- a/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java +++ b/src/main/java/cc/aabss/eventutils/screen/EventBuilder.java @@ -416,7 +416,7 @@ private FlowLayout textAreaRow(@NotNull String key, boolean required, int maxLen result = newValue.substring(0, maxLength); area.text(result); } - setter.accept(newValue); + setter.accept(result); markInvalid(wrapper, required && result.isBlank()); }); return row(key, required, wrapper); From a4cf8e2f58f7e577c5b0bc6b12ce0bb8e24e9a33 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Sun, 13 Sep 2026 20:15:12 -0400 Subject: [PATCH 10/12] Fix EnrinchedPlayer PlusTag resolution --- .../aabss/eventutils/sdk/EnrichedPlayer.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java b/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java index 1c9f266..2ae5933 100644 --- a/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java +++ b/src/main/java/cc/aabss/eventutils/sdk/EnrichedPlayer.java @@ -40,18 +40,18 @@ public EAPlayer.Subscription.Tier getEffectiveSubscriptionTier() { @Nullable public PlusTag getPlusTag() { - if (!plusTagResolved) { - plusTagResolved = true; - PlusTag bestTag = null; - for (final PlusTag tag : PlusTag.values()) { - if (tag.isUnlocked.test(this)) { - bestTag = tag; - break; - } + if (plusTagResolved) return plusTag; + + plusTagResolved = true; + PlusTag bestTag = null; + for (final PlusTag tag : PlusTag.values()) { + if (tag.isUnlocked.test(this)) { + bestTag = tag; + break; } - EventUtils.LOGGER.debug("[API] Fetched best tag={} uuid={}", bestTag, minecraft != null ? minecraft.uuid : "(minecraft=null)"); - return bestTag; } - return plusTag; + EventUtils.LOGGER.debug("[API] Fetched best tag={} uuid={}", bestTag, minecraft != null ? minecraft.uuid : "(minecraft=null)"); + plusTag = bestTag; + return bestTag; } } From 377ee164f6bb84bddd082a89fba2f8a7945b2b9f Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Sun, 13 Sep 2026 20:19:51 -0400 Subject: [PATCH 11/12] Update SDK --- stonecutter.properties.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stonecutter.properties.toml b/stonecutter.properties.toml index 2ab6bff..d6f4a80 100644 --- a/stonecutter.properties.toml +++ b/stonecutter.properties.toml @@ -14,7 +14,7 @@ library.gson = "2.14.0" library.bson = "5.7.0" library.java_websocket = "1.6.0" library.slf4j = "2.0.15" -library.sdk = "snapshot" +library.sdk = "e1bcd2f" library.okaeri_configs = "df8ae69" library.discord_ipc = "0.11.3" library.faststats = "0.30.1" From ba8e933da20035b851188332ee96f867387b4446 Mon Sep 17 00:00:00 2001 From: srnyx <25808801+srnyx@users.noreply.github.com> Date: Sun, 13 Sep 2026 20:52:57 -0400 Subject: [PATCH 12/12] Update SDK (again) --- stonecutter.properties.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stonecutter.properties.toml b/stonecutter.properties.toml index d6f4a80..e797d62 100644 --- a/stonecutter.properties.toml +++ b/stonecutter.properties.toml @@ -14,7 +14,7 @@ library.gson = "2.14.0" library.bson = "5.7.0" library.java_websocket = "1.6.0" library.slf4j = "2.0.15" -library.sdk = "e1bcd2f" +library.sdk = "5bb5854" library.okaeri_configs = "df8ae69" library.discord_ipc = "0.11.3" library.faststats = "0.30.1"

    q>8O%LA@E&#vMJjGeiKs4!TIKTmMJ1|d?5<4WtB22d;)@nwzY=JYr-*g%1$6l8E{7zYNv{on?AY4E z72$NylvNk=TW23u!@r@!-A9Wf@TdLSo;>0Nq=p7~NI$r+fxwLd^WmwYn}kOO=%gDn zx7DmhlLvLOmBCT(rHIlntjiknvKH?_*|*q*;X)j#qP@`v;N*3U{4B7 zqrSRm>Z)sm@3Wl!WuNWjK2OtNyOZQBRf$)*!5s9;e$KqhGgsO03FiI(g4H>|X%-%y z3p4+!pCBcFS}iFrGiL@uxOce34ifb00+f+pbf7C{(p;?zSkQ~?(;+7AMYbQd#w z^nV$A%~hr};5CPTfo!pLmjP zqm=W6EY7sOY<*qFM0oEdQv~}J$R_@$0u;XPyC`sdAIgKXDsl@KaZ1g!@**6kG~3I@ zHZO2JIvc@$Eu_`HDGROyOJlx}De=iA?P__e!{m`RHYPsOcTjp^8D?9ZKlv_c{Q(F* zg|8Qvqx>pfiU^OJn0y#8acSC7>R+Cr-Y#!L8smn@=j7gZVG~~k0V(E_%x2-jY4&q1 zgO&OJTC&%UY#QG={o^{!^O2-#%!7{T^?1-7j&b#mg%X(x0}-&&d!GXhiGk1HlwEV~ zA3P#NaU-X%gT}`52Z!4lGG*GRJ;h8FX{8o;Gc5WgbOZ{p=3VTvYC{~azBR_bkQ=s!C{zYRmTv9Z@BfC9pIJ%j zd=agzgxnRH&6>Z-1W{`RB<qI zf=7%k-?Kp0!8PA}XU_J^=S0(M*^~F@@Q}4gXmdW^huv|H&8CvYV>IVb+y+$4m5<`J z_FKfb-|&4;m&|B84sdr0f9d(e)fTjB32iw=(f-$-u;spuVeY#68=e!zXVUClF|RZo zFJj@q_?OeMr95Kw_xPfT{-ee*-sT&~8~a_wn+RP6OZAAJEJb&fy<@4*I0nKBm3t1o zP8@f^!dP~SQAQo6OyctOi)u&mh=2OL`e@Npd?%R_dDM<4Hs<-#?wd3AW-S-kui!_% z#XtH&)D|dO1*FV*X8#;SqhMlDt$!aa{;e-7;ynL)vj23spUgFjG72d=GU_Uy9TW21 zzyEd$iBo{aJO^Wjr-AF4}>TYhx=o~K`wEv&9e!BYn<@x^fWl@T`P+0Ul~ z=Z-39r-r{o#a56=le;O zvjW_`d}l)ELOi433+nD=$>00)ad*7%sZ5Pp=Dfn-axq)Kx3o1|%xC9-EcII~l(W=D zOX~=o;T0X%Y5emRF&Z-Guf(6t(S*Mr5A-iXd(FM;#e-M5NBExq1sM#3#+>tEnVvUY zCEM;UTPPEx=yc+qu)KX0ic4wY&_T=UT)H0HqNLy0@m3jhXjYj#F|eOvIPoY`0SPY_ zThJ$0?Og5gQA>L(>G{%A%++h~vd~A}1sz6%a^<7TC9l$KamC_bf7J$rx{w<9lW3c_ zUPqHB3FYpnlIe!g1yv4V?z{aZ#cdkpxyxI|9|~7lOl|7ak_s?VjGnh*FN`Vb$(`*i z8?&MC57NEHj_d5Wm}ZCjXK6`o^7F>v4EZ%YA)52$^{ZwB4yfHD!^RXo`?8ryd#TBC zg|6?k=GQ}9Eas+QXKAH&jc~J}HSnBh&TH3}umV-b}Gni@ku`V?! z!23L*mFzq@pR6y(&{cUtoC@xM#6O9MBpo^WPPLN3=2e#` z8;qxNg5zBdt`!s9lv!a63C}mb+uv2#>kvB01vg6Z(M*^fg}M#IN{qciKc`S&VF!(x z*2PQw&4&49;l{q$U$j|wPtul&FsZvdv+HJNs@|nZQ@qSWaqZcrM);8nPpPhXv~o^6 zzJ;&VDxaiw4+S@=vE32uPaun%lSh;yvephB_4?Y+(y-|cO~7oK@Ob@(9$IyBWHoVO z7;^?Dl@2+>OU44)d@t+UWLUCQhKr0g(<&WgVjt}_44%+>6lf-1Q^q%Pr+c14p2gK} z8kO_H?Q6y&D$&>#OP+oUT8Xuc1W`dz#yzF(pq-Ei+3GfsN6C+iX8_i=HK5s^(L z@;f+Jo%nydHH?pA_?r#FZSPzbSxX74=H`#DZ_jh#*;2T@5afDqP_l60t@yANId6JX zUJ}$G@sp98jqG^&ys`n6=Qy3SEve~Z;p(}>1;{r0UF*^(!Oi4Bn?>gPFreYy;?}2A z?1tV`d!4AOV-owbiX(zt`*3VtwrJtqI{Q!5us8OFw#<8i3Jj4@rR`uzjVZ`e!)`AW z0&cog=Nw1S-1RzEN(HaRifM0%|0~h7zhsc65p#1iZu$w`uW6sWM`(Sth7AkkQ7rR} zUj#d=dok;^{V`d^yA;)6d&L4rrOv}%gPL51Pl#}{dfZ-o`uwWCl|sRJq#MIhEEOasV(JG~|9yZL30P0(*9Q`{>6(1f|7GIjs4e^a z28_?}1tL$Pa9(Z1mt-Q1?sY&l<7++R!G9;b^_Y`hS zM1e^&dR?m<{3IL1WztCU^woi$kL~A|4PDMU(n1!~1Bh0ppkkee+n>H?*I2`{)r}MU zg6M5=JMgv_8f^#Q{(E^jrZUoIN+&KZ>grZR!0fnGDjS|tbW=M#~S&DvC}!t!k7mG*jB*>5B)L|X2B3vf8lfppvOaKpc>aMf%^;CDK|#r_sG zb{wP!>1QW!9aY>5YKS}>5C1;{1 z*LCwDz2=Db)SAKW!M>lvbft{V%2lyt&1tt-0LyoI|Y1eFTNknAW-u!^)$Fe_u zyz3Va>H8Gt5$U(1^wFJnr;?`m`b$=r<N3tC6t?1*&sGo;O;a^pxbO|v^mu;ZIe z16%u5p6Q9rYlsey_%LBNfD9xMqGWBf)nns6O_oHSSXAYY_4d6fK5*aw2ckfLhs7&H=wVleMk<6^1V;y6z{*0 zl>gVll0#GVg3x7s^1dGWCpzE<5lhx|E5pf3K-tX`Mj1GyO518Z+R&ROmd`M*tY0&B znyXa&PFWQN5n?Z7$ZDj+bLzw(n`;jAIA`<_-L3jwz6KO~+qd4j96x!SJSaMC@irCy zsZQ*~J%N;HCHz#w&gGrWNID>@1a!^Boow<^W^K~j`I_RHgo zFV20p*KEAQGOQ$#i@m_KEmuocWZaVeI@hq8CJ{ovn0!@`TTwhZEJzmuae;yAU0zfg zdPi%MW7V_zR+sr-YkP$|&oF=Y zh}he1lC4&qx_50k7vnQJD!5lN>(Iy#YCZ7EsqaC1Hq~Xoe`g2`>`bKyPjZ8hI`b>J zZBcL`{(_*Xrm1W;$}V|O)-Xh#8ORjUxPiUvX6+9VXd2IguLTB8&V#=G^^RVu_KE?{ zF}KzkOlDHihrcI;Kr24}*WcP03Fb|%3*59^?aDy?&y!UxCMyJyke@;XXDq#@rtdEy zBb7Oavet^bjkYG1h;QX^C0QX#=R6)kyCCp8gmC=3^_Hny8dlW=dG&t-9XYO8^Jx#) z9w{#ui88Y!dM)2wFa(xDzdNgCm+VQbG^(Dg0;w_hf0pawrGjek6lMi=_3ant*{V@@ zKCll>OTlc7!qY`Ei~AgOXTUWXyR_dIshQE-{r-lScbU-jDYrv0)I`nq@>HvkvFcov ztv05SjbZL?CF&}#2CL>LLpOg`+U<#8v)vRf#^0a25MauR}=;QIS;xMRP$OAtkLm zr8IK2Y09eK?`ZIqK3Sr9;Hnlw5MJS%E+V-Vil)He1j7Mkz)Ql=cNTH{0Un zog8(Bcf(v;mt7|P^oNUHhYn>{Nrk;MiSDZpEhcr)=4L4yXGMius-Z^$^JcQLmx!d% ziK6{QkI4A7%@-jOBBr2YJaZVnF2{Kj79qFyuUkc1=ahjEL8}O&xD|;qB^I^%h>uc+ zk^{JKvEmHdsTDcSeUBm((cNhP5+&2>oJ$3Lfkss6m~AGC({=Vc=K!3{&iK) zD|U?jX8A)%qiaj!mx(|Qr{_V zX1I_Q;?8`^dL7K*)k!GezY}T{=|6)ecTK} zp8je&sD|BrO5!zpw4BKlkdjpV;qUYc4JG*Uiw2?SK(=;Q{5Uq<$B2AHiE()#N7!KHb|E36!k4cOKqOH z?l`vma+s=@GoIGWtA)cQ?RnKCUBR`K+%IP;nDpqJcog z#kD6YHIEg~D|ZiUeVGU{J0zedeNPT8=MwDWJEpRq-){FGRl=V z$|tNFrKP@XINZzK3xg&dep-ZFZx5=tT>jeks2MX3)&-%7mBiIEKC?r%}1);LR1g^GBx@PW^;3|t%ye}tgObS zd@zQW+Hd_lMX(x0k?y(Nrb%3clBL4j8ix9f`htiF<$K^{k|9{Z3|iB zKbZwd5WTRW)Yw^W`m6!|Ev9I9DD9?$zGGI9Y^r0$6Eh?A{!<7)A3Lth9seq z#K$VGIRHDEUMR|>vDwq2(z|~Bef22%eDb;zmN$B{Y4{9{9@=c=U9E7DDC45immdob zgiOYBuF7C+a33X!y^*x%-LYcD27=63ptB!3=XI>Oel*@!IRw}Pt@<8^i1dX>=q=gEblXA^J`=VK>3zCJh) z@c8*pNmJVYw1X5; zpUkk8Ycn#-^v(-jX@K9MLsJ11o;)+bZu4v2E?vBie=`kjDtZ+urq`>^= z;3j2kT2f_9Y;m|$Ie40VN5F1?2lSut*1L_|{PxC(&n;jdGAGvR7H_lNzW6@Dp)rk7 zhh0Iqb@OjFFNbwK;Hi#3+V~`4r|WvgZ#%1Xvqj&lp8C_1tecs~!(4lT<(9@^cF}eB zO%EpH+0SiMt_q%XMOZiL0{lC3EWt%lpXACoi3%)b*(@9{A z*%!b0Sc2R6On>C_Up#`Ki zb11_hCC#sNM`3^?^A1?5l3F3y8Q+uTb)HLZ0<6(8Qed9w@gJtcwXhiZd7qEuEnhqd z6N9hw0iuo-qN3~7giKvdh`H4na@$T=xwX)Iu-TnBdy^6E2?KX;t<8=hD@ zb5%WGpOu?9^A!vklUpS7=$mz0LH_WdOMpF#ENFws4^o8weFcV$R2&NZOe^srLZ=fxlpVRwcaalHLz0 zV0bF;_p(ZsYQWE9&{ar3h6>l<)ckrq(5)mW3CXQ(*jrFtu9{JyrYQny_}YrN>-EYh z=!Xv4bmZ*xUJ5%_PcuE04k!r9m0w%D2c4DXO~pF0|Nkdr82k#k8Y9hmY}trsVK zf#2rW`wmLTk>DAB7zaPDqdG}{G)l7wfpkSz6|&y8{inN2NiQ(fBWLTpwoGWT^taPr zf-(-d7M>_rDtKDQC~iM!(iki$6g@9B3J$tVmaxBq5iVPZTTZ+SVqs@g-0d{!1%=pl z*CAvq73{5(7{xyZq(hfE-#8xAwMRXc*m`(Z1+4X1{;V)WRf%@TF13du~i-y=b7_*2v>1O|H5Ig?!`^kZxl664D8Db@TuuQ;CRw#T zSzhH`UoKUy82PWXi=j>yDw6qk666G<(DYDd;%2drB~0ZISs7lJzswj&3a+vIO~7n1 zN&H#gD>QCY=ZpDKm|>5%lsuf<+*KHD5Io#gV<>`%C#c{LKguvZOeFoEec0MC)a5-| zFv!n-mCYb+nm$lbLLJ;6tV)IM4#O)} zR~_V&s0*fTWu}WJZquqtnW*aaA;_+BP~y+swm6g(dq5-d)&?wiF5+ZxDlxQQFs)|P z9*QD^hM=DtZwTqXnw~YNoZvF|INx(9FzPG{te2?p-wc1P_%@3gYd{vz z7(GpkAnUG}kH51@Epld`x_olBPQPVN{M$gO;`b!WnEUq<-r>&?y2vqH>KVY8`Wm&3uy*>;k-rino!ySE`f z_w}eaIRQ#l-ht?z$sX~l64Sq!SxjekbZ1V#&oxB<1#3W2@X#pcxBLEI1W&Pm6(i2` zg!d*2m(`Icehoe&33G;-g+;?1Q#_rPkEogV#rT|}3VI*(xt?H33+9QD$c~d8FVD*a zOP#bAnGfZxI7DGc7C;S%DlEhP7!{78ZDxCvI=HD5P!!H zV+ZBFBZEG8KK}q!k?PA?Yib%aLBTfMMB_ub8p0)ulk(zlFp$WGrAa^{OZQP8TW!lf z^5nDNVz9ImSMi9=Uq99JI}(|#pxA2Lk_KmhrKLe0@@cKMMw3P<0e+_+$Dv^EVnjQp zI4g!IsC#1p5NJpfStw{RmXQ+Yj>azVF7qeJN*^+5Ci#kDtRB z@oJKI{`9OQw{ZK{mEVh^hF4L?F21wxF=u#KSR@stst*OR2fz*WHr8^7qq`>(H^EwGf3wK5aeNZIRSPQ&fo%>>m>gMy*8Ox20^HLL&X24*&X@uZIR1 zzghCm50u?(S#Q^02%Bh!-$HDDA0@P%h3f704@AeA%*@a~HTFu50F!VNU z$Q$tMEELsLuAnT;R+6v%`zHy|?5r#EIugCZ7s3LuuExw8%hZa}nsUSS0{AsGYlHmT zmYc&;EP}acb*>MNmJg+)D4AKzDtNB{mlfIKoU4Zx$))Lc%q;y*CpEAOH`LnMCyIx! zVU3<6UE!)c7^j%9D7)Z3np5nA2koE!NDgLh*dmcye$eWWeu(^jMcE!C@9n1i!Dfa1 zn~=sD#UNc}jj6>oI3gaf&yNU zzXnGlF;GQtz<;#oUf`03F@>c;sB;l~Swl1Z=~0f6qOX?A4-sV^%4azcd$)3vK zcmF>2Ya!Ye(Ac^attSap#EMRGM|6vqj%kBKqDB{V2*v`fu5>j4;POl1+PDrBF zEG%AyU=cf*>WWb$!YKMQ_Aek-pdYI!Qk3VP{~QLnR{t4>K4;r&R){jWoZcq^S;k~! zpj+~4o&CGM*YXHU>=sM=g%$L5c+{Cm3gne{tzXs_E{Q)pC;sw%$!_2&uxb+`69nAy zWC4e-Wd9K2=+4bFot_a@Cc)Z;eq{Wx^1MS{O1sCR*6CQHDh;2jw0`Gpf!$&RDm1W) zJLx>cNQZY+0ld5}z+!AWBzfLM=d1e7V>IWeGz84}kO-mK;NMK=9Ed9%wueecI zsb>NR;PTQ&>fweFI3KruV|eoQnXV#TZPUP5R^fHRNm^j{3pD`K65h~6Ap{>nv+v78 zc5oAABiw*$ck}m>_s8hEFbk}}GbBU`!;MQErQ37gh00>LX_(8`hs%jc0`LwH&xX55udAaN7)l)(d!B5rYh;ls`JDeGrnCc^qJ3?8P zPrsdz?{x<`5_dJCH{4Zs8@wg?&z#xen~nWGSTXokRh>Ht%uhAA(jV#S@XZeUw>@iT zeTBV5qJs0d70thYdh)Almn=}X_=^2%7@^H{!1wsi=Cddjx~qb0!tI=+&+`QqBT2#h zU+|74h_4UvL=D07+h&drB0ttRTC_5a_IGsq%)m{LW_~XF_%prfWvn$n4=%qRRh$#B z-YWHz+SKdTVs2{VZROlqRqc~%?|0n?;hyL#*uO;JGWqObTQ^I6W=o5>=FFnM#-9Xg za&y)zBQ*?bkI#YMU$%|6bbG9RD#*>;Tqn@w3)HZC#Zpp!B}ZfLfS(_8Sokp9xa&~s zS+~GiLpS>rr_=0dH1dkfwKSlh$r<;RT&e70>Hz%tP)gl9{rU?$z0w-Zx8Q1Bf8&CN zY+3V=e&ke@#z#F;U;EAf;}_j_n`;1E?x#eKsC(Egs5T6fxAq_5Nm?y>3-Yt2`}A zw8MP<&RAT-1hZ?CiMeQk@6C*P!#nP&VE%4IMvOhi32LDxWw`#y&CzAo_(aFT-Ddfs z(^Zpef?g|SN7CT}m@^x-#nFcBo!`Rr5jsV0!NOr$lTvMZ701s<=GCYU6e|X(!fRHB&r81s+9f8o=I22r{v^=rMz{QJayc@XND@coAL(9m}**7oBA^@ zf)#t5tF`Q!I2R8kW_bssxuvQ7|yg+~(_L z!ba$b6|y%*a|_G!zD5$+>`L0f8$Fd(&Y3ItCMI|X?6RyEMSBfJ&EC07h7Pe>ADL4U zw+AAQiqJo5+Ynb$9vsbo^9@OXcH{L=xdCG?`{A{t#+F-1Nko(NI)(e&v!p3GdYtfW zAv&P7& zv&TMA>BjP5)0nA6jL`)ZF6P9BNY^It^HrGl%#5eqf`S8ymcNg<&OvNyY=EJy_FoHC zfA-Pd{+V7$4{%xMMY_J|eSO8+UNx0EZ}~nMrO__?A(Dh;mgNj-@Vf;9{z(=emBD`$ zJcS$i;@V+*#Wkt-FvS-ATJpDK5H!N$*;koO%^4hL@z52`Eaf6S+J0iDnp*$KrmJu-{qA8@V7`dAThXM` z`X2d4-up(zM{kIc=^u4aF<@O{SV*u+QHK}Fz@hy;nI0hdr;+OH(v+^EW29;mUx1xlFCi7x8Q zB3L+lWOD|sk?0%HHBZBwm5z^Ic8x=mAvozc>YaYvJ;-`idGNsKQZSxlF2fL9_B`u; zZ|Qd8;&QVSL&hX-PpoksOS?AFTgz*?AAyXAJAfU3|3ibt_@kR{9q!o^SzB;*8U==^-c-HUKArW&HdKgUWxqgBo-IcnZxjS*YxSs?7q`8;ZKM`pt(yUmO%r>p!BKjk-XwwucIs%^19b=SA-1G+r!~L&=g`O ziOVOY`?OAeg2#;Pm5+R5a5h8`)8DrS@lim26)W%QFQOVm!9AX}zGAsKwDx@kwFgC) zXbZMli|m+q=cC`w%W-K9CJ|v?O$9>Z1}^>l;QbY@v8-G@o6a8Es_j*c@LHFPKq#qJ zYh_Nk;#2i8CADZ;aM7Jhdo|?8uY7lCQLpnAyh{c`b-px(xl)QSd>8)TD>O0dH2vG? z4wafYO^?(1j*zsNHqUHw-xNh(62biB8v>AaiAfJQ|+6qr@{?@E^O--kF-)Wfn zs*rtH8#HTrBFZg6W`#WjDd5LBtZish*wn^I0e7$0hMyq07p}$f?3-)#?#h2({iU4y zkBeZc#Rm3}A~4<6Z8n+~;%@tfnFlI75>J3n7;z70Kx;0$)!0o!?#s>xwb;cO1i zhxi6)pRul1sIE4r7yXU+Z=YRgT=o+zH^|jie7>Ba3x;^!I@~t2H|*Ugy)5!bSgFt> zyYfhZf9}8EK2d}+>1Vosf~IJ$82^s8&eLdD9QzKe_hVw6{$RsiXep%C#%``~{rFt2 zJAJY-O<$_e@!#a0TB`MT7o&^IT%cpNB{Ujnh~H({-Ct|Id-gRspf40|0&Vl?TP&$r zTa@uW{m^MrL*oK1FPD%>o_tsk<+1Ngul?`%3k=)zykG!F3Rh$jty|jez;X6tY@$2t z-x#0$;x%9CK#y^&(pO{Bnt6uJyN8>t1^L$HzX0L8htC-r>+f z_N(eL+~6qPSjuQGb`JO;Tl+82g(OKodM^b9Iq8g1h6Il7yP`wh#IVQrSUHCTRu@)7 z!%%to?8c9DE%h4J-rYlz1>P%L%1{HN-~Bc8#P0B408~*^(Xbs1KRQ3re>)YRHaAwM z>7qri)vvo(ytbzU@_TvQ#!!18kNC+gxp{OU-r| z{v7L>&q0StEr>`8ukH#(O8_O=mG;{Qs> zW6V^}7{pP`mq)I;YeLWy(lsY#DkLLx&38#Ixb)u!gA2Y$TG8pWe{Va8zFb0{F2R9S z#fm{|a>30Y0^7TJ=;)G~N$)nFHsh4|iy~CGr+)_IqVNAb_DXokrJG&$KDJlmGf)kt z`lM~`CA^10|3V`pIGVRebZ!_FtC?^deVT%eX88x%O{gGq^Q83&jsB?-()fSZP*(;8 z_O6IX3u8?0fp|mnvgd5L>`3`x7dZ@;e)AsOHGhjD-lxOfPidUeYCllofXj*{WlgIi z+Zq%GZVor1!VG%AkF;z&@3z^NZ$2o*Z-1&sqA9@3(PeY#&a!Y3GN#VO^X0Pf(79M) zWzv=|0BqUUFh9RnOa5Y2!@#n*FtuB{^_c@$s--`At8bdbU!2g?T;kF<%_tN>9W}T} zx%N+}d;IMBE%FJD1>=5B&hz=Hf?_YQAow(OJM~K~qk=N_j21_~Uf*)Tz60R(@$2sf z5eJRa0b9-t*)jXAGSI}FUiPs5_bY7loyjP4f4X>4i8sbfdCz1u&*l{1u*YchfNXM5 zZN!U0fDug81BCLV4R$V3gc89X)83Zqxt%d}F}^4ay&o8V9OwGt4YsdtHoalv2@-t; zOiZREgQ_NF>Pmc3J|!1g3YUhazd|M1P+W@!VH+l+mt@D=B&D}2TtmmDj;49bQfFa} z(!d^qPxbf~d1C`ZZSRYaqm?&RX4xMPvO7@5PQ;{b07HgV;G1xbsK9~;#$MWvwOjJ% zjcX>0&L)T2Q6J!CVC1X8P;K%rwWz4ucpX?Sj|62j*Pl|-veY|akL;muD&A1XNzZU2nL8qh3K)1Ijx;&tWA40%$j#-ro0U z`d5z#aLFh3>C$0!2c&S{gOpDTM{Rm)(cp~2E?kH|CSMRyV6)lc?w$zBz`xl%FF|X^ zf)xV~_Y3LRdg_%nbu%8}p{B#I!m(6Gqg{PjZHH?yg9Y52G+Tw=O2)R(utcAkZ=8CiHeTwmNm{7IJ@|u5n%`z^Epr zK7T$`ZSQ1010a$tFO0!+iv&~ecbbzcm!fn|>qq+&7`Ual=+oVrO-l^bA{26#9bA>I zrR$1mM`}yHuIq@oM-L;>AXydA3!?ubvdqlK5*x>(&wKtQY4fFA!%n2u6UKwDd=Fa^ zdFHSw@g;3HR@Sk9qC@f?_$H$R>7yThUye-vc5}S<_oStbIkuBYS+|*mknyq1P-Rx* z(9xA!$PgEzGe_DrFS|8f#rqK{;`D9?29XK&0jdEzt) z)1nv}ta|~y_|>uRRY!)LwCJ5wZs{ub>fMFV)gP1LB&gS2x%VhI&_W)R-hVC1#K2c5 z3My*}*Ecr764!VDFvn;O1m^^XGs3iYQ@nJMpFD#rJ z6yoty_vP2u4!K&62$zu#Rrx!irr!;#I|ZPd6noQpm{@OYW{@o22n#QEtWYy`7`|Rg ztr)L4&6V%l^CWr^icS=y9;q_xbx!CV7O&@W_ZsZQJUPg&89nhk8i2se>l@f5G>tHLVrkPEh+M8Vxd4ZH~6T-sP z=`xXuC0IgT-*da$w(p5xS;GsoiwP|ipEZSf)dhV1Aw71k8WW99D=eMF8sEd?KLKI% zpwPgKX!ZA@`YMvpxG3YhTGjyK7-^;bhuNMk53!(&uW;iz7lk|sA2%cs?VzF(m!#WQuSDK(>wkf^PtqqNS9`-9-NGRq@4UPiK`5=nAh zMoD{r`F5{Eqh(76&3FTTW{q|mtiby3naZz%mDFM&Yz-7vd>8OYgFr81n0UuL!Zb4R z?3aC!h7#v9WsdQBwNJ{FgNq+bbF3+v{P zNgfsT`hcm3BjYA3jn52WA{RUu%*KZNZZ(ZWdU4qM1f+OPl0_(lOBwKm$HwXdd z>iPb*ZZB2b8n!n1-bYOtomRJeDRw0We(aoj;t>c4lgT;pwE>vomxxT@=yf z#EsfCnl%wixvEW@99PCB8gq2$(T63gn(M@FX;<3Ybc=AtOudJ|CB8qrz8RF{9@szN zrGr13UGk{p*-#rlwE&Uj2i4xGFx@edd`wHYxtEUl{WGxZs6#&nxrXNmoICt;j+c(5 zYH2Ug%a?Eb&qgD^x1(2yrnpB53>Giz5!>Ndb`oc9#t$N)v@R-YIs`?Wn#((G ze7EYIrUcZBh6tzoosI>mm-?sbeYN)vE@gDue^+SE7Pf2gv3$Q0*+q8qhghWOuU|%X z0&wd;Z`h1#ju)S|u{=OS6kHao+ls;OE;SwB{)*ZTnhWI1;f)Vl8k6AjB05%4T;LEu zB}SUL=bg*LsLQi6>f0iCJ>&AJ4!N1WX;H8mSEE-Ae^=BFKYNJ{*ZMBq)%cPj$Fy%1 z6j#e=5fG;5-x~`9{unSQbRuOXa{QGDUzs#I-5PB_l;NClI z6A6qX4#L%pWGBJGY>qA+J`wqexsQ4q^=foMV&_Es(jKNha(t6s@(9_1r9TjPeb8U_ z)H?zGK73G@G_-lwxn_4BD+}`@E=*0V3Nw#ZD-KC&XF3+f-eh=3ihnX~vZ?ztptykX zObWI5mb|-=(AW3Nqqd{{y7~|`*5@3I;|fS!3^1)I!SVT;aM+6RaHB~I-|XuQUq z`G+J%1v{@vl~@zY=4qIJS? zX)UQ(x!I<~*{szfX8gkmgY`F=hViG2_@qv@Itt7@BCYfmV2R9DrL-Bzyhp>C)m%De z=yTSI6{o5hqe2``W$^xu#Z~<1n_?5G66vTk?-=-_r7^@{blAgVI#?F0`(D1} zuZlmzQ6$(uhW@G-UHSV;R|z1Zi}hSkQR1PXYZH^gy*(Viw|Ckt$;^t|{~1$W%IiLs zMj(g1l*<{#aHQv80y4PRR(rnRK<(6Auw*{QzF74@k+~@w>vX1Lh?MuD+=d^VwR|cM zir+HqzuwRW#t|+O@!MCVg85N3Ti3jaY-@6R((Q%)Y5CF{)xVm?*c2q?Q(KcO-M$9U;V!gLaNk{2Zk+&;bvVT45&RTV}6c zaoP7)baJZP=?Cfi{mGs9%xP=Bh$+1tb%+~fMA;M9PF?Xs(E0f8%*yc}P}gXAKg*mz znm1GRQLOYO_UV{_i9b_gTxzCP*^?_CPH_znfFiu^dw&PcqJ_3W{ASxs?_{})!4Ww5 z!bWSI4JlRi^Dcv!FUPzk&i5Go&Pb1Fepk$K6EyL{k!Ahj-Hi{qv;8jcewm@-TV*t# zTYa@!n82muvi6&#&2;Vh-b8uTc#X^k&U7J#gj$lKbeDmHt#BSV=4doXZ>&r;t;H( zt5E4-7#{B#J#{s{Xd5==G-&=L=n(|FG-PPhU8A~JLL;eR@-ofA^882N(f_g-nAgSa zZxmOJjaU6+PmH}JhhJ?ii^$}zcd>On*_|FP z+)O*I2(yk#vZF{)eLj7QRR?yR)RK6Oi>&$jm2uK5v{e@~AO6bJf3w|fV)Xzh85S)4 z49rqdP_f-_x<){vCORO{qfpB29Rz1qodrcKO2g`o6_`&ne z6^IW4QP1u!w}43=yKu$ZuWrT3>4#VFX?9UgzZl%a9%_6T>*+%MWU9IT@K1`^iCf9W zJx*HGZvcQjwibK)RmR_-PMBWF;clltpYgKV)p5wttj8#S5+DH1!&r5S97Jv+oYxM)U#SRQ5DMaMg`t!TH^seV)>#x zlfRE|NIGb?bs#QVV_X|?h{_sw9de#Md;B302-6!7B3=|RGG78b^WDX`bC31E=mef$a_%u5sO{Mu3Xe2!{_JZiDi6x- zd%b((GgnIqJi}h1l((6Nx%3nd)suC4iO6$yW;*XRGxh~Az;cvWe^k8 zJ(GJf@6xXZyY63{=^ck5wI9m}}ka#PWB`IT0`^Pr}9AxeLJo64z1h@W?Kk!=e zQlT}1WaCV8Q~9csUe~9%AS61W3u3SD59TBWA71i%^%P`Nwj(o!x+07=ws!gB%vEWx zCQMEwUzyhOS_bVq%CJFN8mif4wLzrAglHya??2&p#2%ETKMgPc$03!C2IwCZUO^c(aA@0;+`5y}fwu zqq^I8R%^S`N^dAYqu9qLXc*>`N-~pou7j#3cjyx5I%lGPnkxvMuh4Ind5=D%B8%r^ z0;-ZFJvLl~%$+dd2Yf~REM?2a7x52F_QTxQIXyCi3vP~$?r#ACcS$i$x2pT5`o~-d zDY^73!>*I1f4xDNBR5d@jFE7l8Zb16bBU=h#02#3@dauRdp)}C;rn2p%wa*~YhRgA zhb{SDGCJlu!avtCRzq}BT>o9SBtOxM2k>6T^I9s{nZNh8}#WL$##UemdY`0$F@% zgH%cT-HuzEyaV-mNu8Ssop49)z~}hJz9YH1w;WZRu=E>6PIr%Pe_`E4Ifs3u*naO( zfUB>*F}~HeM!uIc`(6;>hpq`yX1)aGOzb*=vnJYIhu{Pl-MwpD?=EmYIF0V^$7H1z zgxbM4n8kwy+~J%3PgvRk8(YZ8?6JX$w0CQ@x99z8NV(fY_{W2!h1`Z%#D8>&!kGU4 z&o0}RS1TkzdA3K9b!0gA-e284s%7sk`f)+&<|^Uwkhco9R({di3i~&+CHD;J^MSD8 zR%J%9N6hKLmc1N{NOWb;x1!O0wy4TtR|HhjO*epS5?v{XvkV@_Bn_Bd#ny`HJ>s+7 z*$>+YBs8o_A5SOaL(>FwfiQjBECh#G_d=Pzd`_dSN2ZJ){4I6{dm(A5QkW_yown2X z(P2I^m4uemH8C?Xp5SJm?TtR?c%&vSxlXf^#;V(3c3N##@P@6iNfO9tztiITt`F`j zchis2l)WT=DX7Jzfs-kd#I{C{L@4CM7tTHfx`PWBNM@8Y!a)09XCE)%B!yokl0i?TYd=5 zqu>r&YA!{8#}1s!%GJMv2BTPMwF#X)a~JtP=f2?1Ws&?|YQ^lu`Mmz(@4ALoBLOx%VJ@_xtO~*H<5xu;|7}WkT z_E8veape>CPSk8qs%Em3L^oAx-aCPrW_EMwnhN(DgG3eZgTmpgor5cW=dRS3<4psk z8sb`8XMV*?IH*Fo)0r;=QVnuOZF-l3?I(YHwgF*LA2(QN+rq^4{Kdx_E7;v9R%KOb z6_uxmPSPYnL+6g(5Wv)Le(BgZb>>5WY~b$Fns9wJ33pr=I*aTr6~dq@=no!Lv=?kG zp!}aI5&Ow`28iW{`UDqN^Ln7tEFQ@9E*r^_mU28|>tKik{KU#8(|JeN)YM7$Dt%Jq z?|Axbi0ThglHg_lR5Du3quOTV#z282flB|9jJC>l1_iOr$J<`Aa$Bh zIaG4lyV#EL+m^f>J;^D@Cw&nHsM1bsg$8Dv@xg;8?dstR&CA_oDHjHY#!xohn!;!E z1}|1OK2+8iCyhAk19p4{m2t*i(^aUimFLE`mwp%-TDI+;t5FI2dTa7Q-K*tdyCw1v z({5zJjR@5`)5ux}7V38r(Dj)aL&asS7K`?h_z5W92ms^2S%B)xP@mf3*ElF@Q4}~F zjO5$-E*NO#gS65Hls)CO+JzRz1^$e(+D>~n+tGR;fRJgseM}8~HRp5__VJ?1J|8XN zv(<=VFW8U%zoOUgzzNK8=omFKq4W%Pm!bVwdmF9E3_a4v*g| zL|=u?U3d}lWRS8xy)s_Z1BJ*=L8g(FFuofiX)Go2l~h0F2J*FvZc5dj3)R6^` z*zhUW$rp%q0TitGQ_n!h2uzT4^)09S9w^rNCR!%b>kpoT*!_>p?$MQU{KU++Ri}}QH_oT$<+*qpkzotmbI;^o=L zdrl$dst*WhRHGkE%3^q4X(dx2YlvQ4T~@J4mFFXlqxjCfjL)U6NDFfS*fM8CfH(7c zV;YbY5#_4uCdr!t3hn-3*V-2H z#GQlwrv%65-L1P3Z?2#YXwUc(ETMd+3ADpu@y>-^5YT z6`djsL|mEgZ}e<_844+6*mZnX8zyKu=(|X_mR14+2Xe}uOU1CbnFe|50V-whkw*_A z3*MC$#%~!DE1uU&R`2-#Wx5)v^7sCE1a#7g-v^C;YS{BYDWrnM(HKpXvWepHTLsl^ zGA&6iN9z+8VeH~Sq4{9glRe6G8t}P)fTR_P^>^iMlGQm7=XQS{S9|Ud=~yPJHga>N z_*O5vwWFx%b8+57n8G6U{7?>57`t2-yLtL}XI6+Fu~LxBb;VokYUBM*=OMk2FXIY* zb4Grtvk2}lkv5B^Aq+^M>3I=6tIW!Xul#+DD7^|7wUaJHUxX=8k4#tMvuFbHM%mNN;YC!(W9Z?13sJQMUIEDKZY#2A|)nuT& zT_meqE8m801nop=`Lr`tq6W;KbZ@r_k8@DgkAyk-CA!0A5L06lIo+bx2BhY@#2225 z@x$)Zb6t8WW`$%4Pe2_1l+TI9ih`u*gzpy)ECmdIrxd2<;g%&fX*p1}+oeya`_?`8 z=l}d^kglky7;kDDQ$}>ufkZ!(1cO~J8WRM`R2N05U`YSgbgNn1>(2#eJoW94c_c%K z>X2&(4|lKQ*Oo2*QwB6D=7@K)x9b-<9$`4Xb4NH-6jQ;_E$y^l85QHA3VZorUh;jB z*l(h0T{lrNfPiVOOeY>1cm+pFG_t=Ex9V}BhQgItIjf+zU2de!%=Y#>)awE{CP~DJ z!GJ7w)m@cWROK=4Eyy=m0(2(ujt8Nk1yC;S9W{09HgM~~-3jG3p~9KQcm&%?4Kg&0 zI1Y-JD&Xf`8>N;+($e&i3=_s4wJ`qoHHi91jgudBC=)$-Iyv z6z5?QS%V>c-6r|NK3r)qB&XZQKcl+wfc6N%vCjzm;rU?t0XdoLfr~VwMwrwk#pS_q{4c};SS)yi3#(IrHX7c;e@(Yh7|O1UCtL5Dh(JB zSOxVZYNg;DA$d)c$nJ?DqUUWb3Hf!>_)idQVa1cM=5xqi-E{394T^g%@Ae$gbT#-> z==I>Tj%f|Zd$=5Ix1Qc*h$N3O^wspN2&b}BKAoR?y~yA3m*nMxIND^T5@+dKta5mh z)9 z#H)dMXdETesdWuTF&^gHr>^;>VStMV_e=2%o;q zW)&h>x}OuvFJNpKN&@3DHIyUOQs~IlUFF*!lNJMi?4$0CcHw)N2jx}%xv7l*%bFZW z+*k-u^3Lm4B6wbjyO!oME>ie)jR38-jquqi7%T0iSo=kJB2f$T#Nvupk!JS+_Xmhu zb?OZc%2ztWOVIdJplk z5)heGy1|pCvZ{IXhOcf~OF^qh?57Gu-`2J_zjYW>MK0{Vt=wG^QHegP08U7auQK?8 zur$tbJ(62=7N657m41f`;{3Cn`i>+l@ z$dc=4H9sDa9+T8{OErGKc_$+CeE03L`_>%ewZn;wV&+o~Uyolq>|M{E?boFnYbY@C zR|WbU2l^qH9hAL{md`lumE}et%?<4rRf`1Q${v!oXB^~x3q(xWnc2T~JbC_tB5eW- zqU!om_+|^*%e&J)%VmA2*b7MC-NKkJ-v%mNA_ZVE*B~d@&es7cx5o|e)80wlMOUg zHSK1}8XB3WLkyeM8*OBUHj14qzf5F3Ig!S8pq_zmSR^#<-*9oTFGIdeoCYtqY&RvG zl}8heC_N!xr^k0wn{s0d2B>6JQk*Jy@Q<9YHo?@TfyMDp+v)vBjXqr-IhC#A=|}g< zISy2u|KPvOXb7{oQ>lh~KS-(KrgrATWRK3A7&v%fvg|c*r}AV?V#q{LC3>?MFeJG- z-bD{wNZY2ngqt=A-^?$o@v8WQLUMCqjxf*STcK!~4hS@2E6zU_v5rz$k`=O+pXW56 zngoV<`m&&O3S=^Hf=o{79G&od^M?2chN*I;$B-Ya?ybDzme#Q$_U7!rA|$!{c9FHP zV#umgs_)3X8>CTja3iA6G~H@EyFVeL@BQl1l?3rr^>wA$c`wYc9cx}qO=)aq$*GCO z)QC^+r=~Ke2s;SuxpY{Wl~w&`=+9OvrHnJU@2~2d7!;WZ2E6*~>#^6FcB}uem3n{T zbNgbz^;9Lz4zL`&PF}d5mL?dL#dnRYVEt6OC3dum> z*XkN4CW6yM^OC1ip!ACq1w{(usvror8j=0%ReEwHUvC-a5DTI1I0EZJtlv z{1S}&dnVWD?F=Yo$>et|+ZKC#QWhVdUIive_@u2alx?H!leevxo0r$jkyP&1J6?m; z=e;Gb(V+jy>MCPek{(Z!FQ^pyj~?Bjf#qarr9qH}gXOzArD~-!RItthWr)|qP~Pgm zmQ&nj#voNL-+(PAwmx(DhiJEOtlh?c0Ax(Gdb#nZ{kJ?!tGeZD>f)rBg96A{!3c;r z67M|rO8c#J)4I3+v|fYv@>S6q&xQ=CI*0|pUhf*4l*^ovt8Pj9o~z{d?Ta%nc4nT> zhSi+#&$F&zS90o%n7pq`6!^Z;_O+GN9V?mZFf9_MBZLKYF14oUm8Sab2TZu+BezX8 ziy5~+&!vSHIg8FVmMj^54NCR7#l)52jt=64a~-Zt1a{l3M!DkZIR~nh_M(bsAGW{g zlx*w^iNx8r$n-{dn^V!ZaEQ;)9D9VfTrPa(d!5T;{%gG#{_Yhs1(t zdyaqF*R0A1>^B$QZA9^Hn<{$VnhE-xE#O)X!*gx%0ZY=mAh|cWM6kPeD;`>0A4fQQ zvr-M_3Xgj3Tl^)o`7Yk%?xw%D@BSmz%pp%0ErN<%!|!>4a+0e*D+oYuFZj1pBG~l{ zn<|6eZz2P7W)~U~4XfqdoFn3jw%N;kL@#7sOk_3+do+4@gQ*;#kkBbN2?V4JP;zhc z;h<9UyYqK9T1g)mEaa-UG%}atLs!+?2a?%m3QMy(hNVX0Q$GY0+`bMD4vXlyHB^s@ z8#*l7mxCC(>fc>&D-02ka#~y@u+9+Rn!ywy_87ySLWBij;#`D+a+j*y=_ZsqJ;rNj zA={U@TPGOqPw<`Ba0Vf`!=8OP1*6W4Huof=R(_u`U?%MH})raoJgYeWiw zw|ENNG*rKTeaqjm#SeWJ0Jr-GsoVm$lSZz+9B%p~A zM3c@E+`Y5aBK#T#OQ!qEbH>rJ@Js#4Fz_-)*Edg*q?fGRq*h8{6;$)E`)6uFy+)<* zWfTjR=)9ch`o0!in6`Kx_L;7`xVLd2_$rfzrmQm&*QKs_r#xGQsC&poUn{G52^84g z1x2Igq;XaQkPNlN%n$Q}VNM0{AMez#JC>eC)@M%1%H=uo>av_?_rfhip5g9@cHFQQ#rVB8i)50-PvDQ|paieUxJ$=4f(UPWlQX>dgsq@t%%Km~oqZ-xuky z*9||U9Ss2<5(5@6*C-&?hZtgckI3*(?j~X!L_E%Bu9T&%8PT;Hm_rRw4*q$usA9-b zJ$W!`DmQ*`0mcyy)l=BEr+o3Ex%MmAS%!J4jkwNH(RsQiVbqRk&aKf>zu_#-dw6Qn zc*_A?uIw}ObFh~mDJUZJG}q;VW4#m2q5T?SFa{ zKI1fHa{6u(stBgyoOmfmtL6XM%DkU&njy^{BT7Bk9cgR^ zXn|#i`+$@Co(E)hbO)ZGv7?}vq(Alg$A@xtuLn$oy(zZD?mGy0(;(R=rLukV*IM#h zm(E|=j&kkKL5Mu{BYu4E2at1Rt89?8T%7V`G~iL~neI6?Fo{i{eNni&oVy$bhlyAPIW>xbmJ3~G^KP{+mf2*ThYI>d?67OE(5&n*9%vy zGP@IpqMl(7VK8fwvZCi2VS--H_~m`4T(e###+pwO2dV117~^~6G8N><@$u@2|+Dn{r<7&0X-`ILLL*~}V*k&S{m?>$MDaD>2<+gN-ca^fMlds$5 z_YuJ^zv=|SK9csLW^Npp+IT0Hw(@fhi!~3}Mf{Fi9G-?s{-;7YNyICN6k({74+34T z{p7I6WSB?+{KCtkH;lZJwZ|1~Ei4?T5{l9VoRqlGyd)Y8I-ICgF-@ZS^HN0p7_gHr zqxMK(+os>eBj}h!7EBnQM+d|wGkHjx_)Cep;)te0>`yBe`j~v-U8-(f3BR)VGsYQo zIC*lCCWS#Kg?v#;homClyV*+FU(w@#y#!9_)sSo2PB34fKYf^%mtsJC*&z9WWN=Rph}D(s^`3IrEW-X7%mTOH>jrIJo8_VIxF=f?h( zPy!t~O6KH8{=mNU?x`MYeI76Y|CAgMhy>2{f#q!KA>8j|xH_f)YK2Ov-ztlSdLSaD zIFdi_-uKvOe`%9lb+W2Ap~fVPVd)1s1luO{ontVW26A`<>-^)yAeUno{)Til5#EK5$@VSwtO*EZ~{j>xGiSOmHz_MC`jyE zPI!i&qaObptV6?oGr^&Z{h^UbxF*@BdcSg^`V6&q-j9!RG-ui5ia5fo7~b4BZ6!A| z@OPPU2TwmiFv0#&`JnpF7c%N@3SeqfM{b#2$|;CRh)uM=h)*NRQl?J8=AfaQe{#dq z=dqOzDGn(RIX4$P3qe1L_nP{U?$>+e=vc_Bg>^%=GHjRN+D{9sdw^Swle!J2x;YB9 zv^n9EA!Mq!;fw7MJ$pPCIjaTvupsqiC_%lJAubi zZDzaT$07W)6g&-%e!RrnLX7FcRI{-E>C_JWf!GB?^BQFLg7?7&a_8&zrquUAlTA`( zrV)V&A-2F=*>pna+b%q&hq_T5O*s#%b7g$JL7zeJC$`Y*_Ei|rRg2oY;KxU%oq!ll zLxuh99ogz@(0zE!nRDBgPZ0&##+=)ENqH$hLsfv&R@g(1Jd45VoBx(}7}RzoC{Rp{ zK)$9l?^f-oDWO)*5FrP#ZKn!ct<$#?;$+-GVg+TX+n|V=)lmwG-`We=q5-KIG#0(a z0@t;hoq*Gq3-UyUKAmGFrR)pw-QHgu-PpTqoB8pYWLWLLRqQTYHLRum$WYji$l!P0 zSAkT^$Rx=5?a%!h8KUOa-y!wgOG}jBj`rWQ7H`a5{k>ED$3z&Y3aq-bxW+qpm|{;ND^+PSP-!$sZ9YQ+=4SJr)mR8jwR*(Ku5XXg z`&ul^{m*x1fEz_wY#}~1`1z~>7Ww5|^leSyx~0&sAx-LK`YSrGt4sH3*{FBI-u^BF z6$b`N9OyTDbM<6uVHp5DtrwVnCNScO$5IN6842n_5_@!!o}A}76&qX@=FF%c{?kU# z*Ag*(66r$QSKL)a@(^_PzW)gI>YJdPcL&YuF=n+vwDwlFN& zq(pjMiAnDywJa1P%aVW?J_donO`5}V}o7!LCP+&<}G47(W+xfFpg)on2Q0o3A86;-|*+p>6L0r9E z(Z?yaDgCHXr;s}$;&Pnsk3cKxQ^?5L_@_z>>O4RkXIVVyZegr=TP;xtnHAl{!H4eR zJz9I>8mQ6PJ)IA%Q6+Q1(Fbi)lhUNHi|iE-J@4Yp;_VQPW`jGf?{&UN8kVZs@rmmo zzk;5Nl-k@iW$fXd{B{SPv(Hi_hX2e{x`+s}mGhJF40P)Vwr3(9@@{jO~zgC%B zWM%n?SJ2^KKz&%8x9|DHBJCSuH81<_1C*;G-=KRTYMADE5q)!EZ^h{V2(2MDDX>i&7kj0{x#aMp zy!d^e2nh$+4|0y18MPWqhyf^|$+a#6NzK3I7Ulsm`0vt39~90w4gPt`I)ci(jl)i9 z+G6YVX2*0?`{STm%s_UhR8Dh;`~DT!00kyOb_sDGGQ3kcL-w=u77mO_H8jS0Um4)G zZ@67cuRnWkIcIzx7#Y*U%DvBdprD5D~iw8mbIe$4d)Dys&e%YzZPO6et4QJ=~%!F5#ac*0qBiX6+vySbzkt z9Zi|g#B28$WLl_~%kX;$&M*!Ct;D(OoU!J@Q^cT2wAo-Pv%Q%UKAr;;RMIJRW2c1< z^vxsG_9A_1H%wjH|HW`KcH3T*9C8F1Q7b&?UbLI{y_bSnI3DQpU&B z9z9^SZ@E$-Z-oPMa&+1ba{2%m-6#j-xJ#EHaC#XW-*Xo zg?Q5RT(2a~FQ6z1W+qXjoVtarC4!ZH)?<96vGnRbBpSN3JqdEa45wqxmqGnn$X7Av zRYb`_Hcu4_5gg#G+dfaCwP=8Q=m|uOe+zeha6BF=j#bO_AS=Ve@IV*7-!!p|U!YcQ z5v!rNeB0B-IS1+=(=1B<=FG+R6eI(dP&I$Y&1^0%ZB+WicM;_4?&$95Yau--?Xw_En~I8d z`M0BXRJVQKU8U6!l2@Wxhlf`s6Kx!vg20vt@bkpK9}N4>m>JYE^)?W*?>VeWhcd!dSXehgqfwd!`Xx_Qw3e5WaEXVlsL9!}H78-GO`o9*gJP^w5 z4UhI*d!i5_M4>E`tx$xqGm2;x##pjUDPois>&RNRFw9tru5~O)ms^(X6UvM&x|c$m zEsEcJ=6C;eocX@nG@!qd0@t+%EE@_nL+QBTHA;)HgU(I+hvTu*Gj zT;qyX-=u#}QAMB=%ef{%IMP&!e~+r0M1Vnd>hunEhT%k=L(8t`<%7EuCh}6HGBG6W zOkkZFtG+vTu}jhJwSk)%jEpNKf)kK&s_b-+conpkQN2Ui zke(X4@M&=<+gN2=)GO({d}0W4)~TKMOGC{1!-{f$hsoXihpxP>821`hjz$cQFOg~S zdfE3&mh;>2c9Uoq0lOzn3g-Qb9P5eQtMfq4VU>2rD$u^&(l_GqH}BtH=5A5^*}rq$ zxq)OatnH3!lAKKwfex-f?Oue?N}&!{W_KlgN{mi4?F}muZ1|Hwt4xpdWQXQn>w}^} zjD&i+F6X5Nr0P<(p??srckZQ8{JADeg7t)hc3*lrx1930mO)U%T89!HbVycD%-+er zo)QJ|E_H1Dzn@;qYZ{MQGVPtqVg9;6Z=Z4f^iU*07OBNpMOT||4^11x5)zZQ zZZKr{_E)GgVs`I#<$6eV>k)CX;))CRR5bI?{)Y4a zVyEb!9x$Zsd?Rql#3LV-@&hP)MyOmiTnJDa?edmpYG^uGW0cX0z_PgBQM&|$umMw( zd;Q)`t>B?8h)0$sF>&%dRqsS*Vhv=l*qeHH7vEzuKW7&C_=c^H$`8dV(ew4?jmhR* z4r9b~mjT&GU_VQd!r93FbZ7XWUaW z@)w`K(^7nlQO@uipQDr-xLh0)D2h$D3M@dt7|M1`kChsLW+GkK0LD_BrTw<%vnPgy zK+3t>QW`4q`4PUxMe7WShMXGXo{{U6~k!<{Wf9*4D6hyv=U-;L+P5d29lUV zrS$Kg&BwV49{NCHVR9&MCK9JW_Z^#yDUC!SM3(fl--mP<`Lux8T-nB)iOtmBv}*ijEMTrjuR5&JHBkMfsla zW1#CW*K;I=DjMvpaKPG?^`=bffSav=>vpq6rH@#G5bf#Y+#g@h18jkGTvz@`4*AU0 zzws+v=Bu4$KW{~}KGHlBN2!kjMpP~{4<4eE29Sfz z8T(hsl_uJ&kPNMpko?OkiYglN#qXhp>kw{twGks_v8UEcR+PuQCWDo;uGi_~G2ZbW z=zu*R{UERqY8cxp7c8=yIRFvOb}FkqE2Zsd>*0$?Z>q*ptl%~mCY-D8vr_P1@g3iv z9HEyaFFBK(X~jcsJorU_BzjTHTSq(-uTZlBROmX5%I*U)31su#&W+a)zcm_Lh}>cPrYWkd;qK+g@OCnXe3{M;*j=K;!^N+(x5#m6&ky5NND42IYsYmCe;sJBfb}C6ZhFM@w?y{)|QG zAe;e?5 zb2ckFj9bcdhWEK#`5K8_zC$&>#r4m|cSpoZYL@Uw^z(QR~M0yVV6gc)I_<+`Tt4tdr#U zwNmzPt4#_wL;}S%vIKLE`U`#oX8qJ&2%6KVakrxT7!^KF5_Gws>>Zb5B~HIt>*h}c z_VO?4aJli{p!)D~8$s2sQoDy05;BzPB8asmv8Hh8>`*J@=f3pp$wwtr0l@<>3fVIM z%6S1FKL5LhCs@pCph z&Y@s6U`gBU?1Tov4#6$i{?O?`xFU-fCg3T65-Gz^Eydza>LU0%wewB;NRx5b3qGqw zrE%<3x^|lGWUL@8-yHzJFFrO++7JHzn!68m#~8KKi~Tw}esbpDbxDy`g#yDP>w8yw zQGugN3l`6`m6IsYh+Y(a&++SqUVZ|>sKknF1R4ww(=_^^)f|Jo`Bs`p2qo;`MVCwU$71(JHcRjhG zznj2`oBTA9{yweSPmCikpm#e<=wme4gK&#U-njEBeTPs&aRpvb$ZdS3K44z8pZ*U_ z3ZiICMuK`kct=ml{)BsmMMtj8zjpv;Aksy$y_}H_b@u}%qkR_-uLQvQAWM1aqMN&d z$xT?I%kmJ;L=qW+T$tE7c}vCoMof%@}Z)?SkUan~QT#WBDM6 zzf(Q5BT2mHJSk+-G{FB-GKqEgXS>%u!rWPG_9qY{cvy=I=CP=~Ny%#m#Mj=I(+f#b) z@5&0Dt{UKj#Dr$Qw#fTbv-r=AiRG$E?I&6S#WWiJirFs=Z#NLglTr#fou7d3oceaz zYt|27bfP{)yT>#1@9~I%+2+}oV$Wol?u6yQY(4}94Z*V4kH|Gu*Nog(H6yW_iq_XS zhMWnwtTcc+Gw|P_rwxY6^rHX_G^poj%@nSu=E<&de>LZ$cZ+GYOhHikDzh=Iqr{bL}nq{+T6R=Php* zoivP2?bFkx>Fe0Dt7@81!oYCvlh?nHLvZz`iL3PE03IGUvDx( zzV{WlTP5+q?W`F(2~)8DF(QcV@H~Wy`<1^|0n++-r%wQwM#0yMr=9FS$%Cm}Qwx0y zeG6}M5@iGOjU&(m1}#f*_(3ZpG7oUBpLAWWarKp79&m(RCl!((}D$pEy_> z4bPQ?y}zg6jq2Tg)cw>ia#I0yzu*?7rS(xF?iH?Vde$`_7{+a2#cDjWVok zg1SfM8Ay0c;5Xw0^Z5bYK7Ev3r7}~ih4+vkQn7g8F^^_U>u#)ZXjL8|tCZd1UlR|Oea(iDHwej`t zZ98`+I+6Yk(1mSBI19}`+_=;87;T5$0CRLteeSP~3FL=s=S)^;C_GmIPf*eJ#z_g7 z0%A^mvrK0J;@N>vr!R71jMjz`Du-|-TMHn-onWh=IOb`g^L+qDl9QzNwe}HbrA!P-ecIvN9)UzR595a0*)pplHKFr0muC{EidF1At6nXjyI5sQZdFxyO^( zHJ^>}swp8IXd~P~(h)IO86{E0l`DM>GmG;k;K?_@*X#2kJM~dA5T2$ajbttf>cx+< zYR}G(&c|QvZg4uk{Ho@o-)@blQd-om|MxmLY@#|8E3bFv=apV^5?{pdQ&pqWo4tyP zSYBkh*ZB?i&?leC5sJ;c5-($vR=~akInf$iuojW=fDbgKTj?-m#qW zGzNQcRkL)l_u*zdQa9>Rvajy{)#{TU5M7!!ynhXqM>A*ZQ@G*}y8h`Mi3Jm(+P&;ZrH967UpF zNGy^RMItCNvcAf`oW!k(lKup7Fr4<&WD~z8yrwF_R!TDiuxNPatNG~C`?Jam0yyNs z_PWA-W8j8>#4Rw!cBp=>tvphG+A))kNE`ih@!2HU&zSXQR11PfB-2W2nG1&lUl`lp zRYq2yQievTHgmQlv^EZ}V%sqDc|wz+R*^Mdvv!~qyOUz-^6GFGJOaN>?#I~E?1Ke` z*dGhu76C`u)-PGS!QJP|c>Di5aQ}PuqP8YLg^E)B?cAS5ITyc}B=U#4|10JSzgMEI zCq6&HzNd5_iFmTqx=^g@0>CH7{(nu^k?+-vM;QW^%|{!QU?04sQPJb%j~}a}SI>E& zk2tc=!(e6>J)wN{)xqZ?t~iJ5J5KAO)VB@7*-3C-b2nNKb)yf=G%sb2z{rz5 zoT_;XXzPUIw&Ugxe!$|jg`sp-u&fnGLSPAN5cHXl#8zyP6CT*zdU1|8PuT!$_g`XL0@1oT@GBo=5A z!SaeH|ZFJPgr8zmRECzv)#IS5?uf+a#CuUmF|5nreXT zwe3nTjAvg91Z$QG)LKic*(PTVXmQ%LZu-%KEnnb1t}F)A;?3ijPQJsMdVBD>F--S^ zI8L4{&Z^|U?ro6fe*=<nRi*g-cr9x z9_wcVDhHGEM*{NYKm;%1WU2BEb0nME0^W^*s0_r0`V6jO!~ZWZH)?AJdV3lRlTwO| z{{WH}MMBFtF&BM{D$>yGF$9&I%s%E$)V9FJGZ1w{4k%J)qaGmQ2a-Z!VR}fmE9}Pr z%mK+Y1bC=v0c&9(N*^qoTk_Ay71Eq|zcPvt;{W|azUUxHf+4MBi&#OmE%3btq6&LQ z^1?xZV1N9D0;9Pyn6;i)Wk}N#$Oc6SC05%4!@?{laWrE9wr@u$4%)o*2-+}YwdJ`c zCi``va2z6zE@p%M|4AU6v<$vP)#p$wSZqe5;fXe)vZS=Fkvj6?ZUk4kqUQoktr%rixie;u{S8{{8SzGt|wsQt?bn)zDJkMxxQDrH>Tc zATK7|UMx69(wx6g(8(sNM`aj{xm6Lt+3#GiLEJWS{1(iwAhlwlYSdvn_mB9*IXH#| zj&>cJ`!*H_>D(jgn=bKS!kHUxhc?qp@Lx0*9_l5{!Kryz$$P3XLDKH1eSgALvpQH9 z7duu`;E7<&W3vJ-2%ckpTxNrEh%bwbi!YLNB2(vU zNsZ9a%{XXLbK0<9wn(n5vu}6kRp+lBcj1WTp`r@8tz{jF|W*m$EAbjdeJ@D_D zuH;6NTaNRV_VZ4Oo#y!=8!;~r-O3G1Fc-6@%+#Fu;ai@|K6+{O6f;R(LU2#w)2=QH zp6*gshHl?c;_4bB(6w>fO{bBnsc3C^4Tmgysg<(tJs-AG*x1u~zREGI!ZZ!l_jJ%W zq@J`HPVG8-^vlcgth9*5h@VS?lFBzLsk$MB`I@u%OC#R(SHgq7UiT=l`jMUBvWw~X zLUST>)?no9)zUEX$ZX$0CDZI@s>7$*g>PL&_n$hNPn=O=iJsfF8oVSHFRH&=mt5d& pz7igsA|-3W|yH#7e` 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