From 2f1931bcc29b551bd3c65297462d6e6df57258de Mon Sep 17 00:00:00 2001 From: Ryder Belserion Date: Sat, 1 Apr 2023 11:19:31 -0400 Subject: [PATCH] Update buildscript --- README.md | 4 +- api/build.gradle.kts | 14 - .../configurations/ConfigSettings.java | 7 - .../configurations/LocaleSettings.java | 7 - .../configurations/PluginSettings.java | 7 - .../migrations/PluginMigrationService.java | 19 +- .../crazyauctions/utils/FileUtils.java | 89 ------- .../utils/{misc => }/NumberUtils.java | 9 +- build-src/build.gradle.kts | 20 -- build-src/settings.gradle.kts | 11 - .../crazyauctions.paper-plugin.gradle.kts | 27 -- build.gradle.kts | 48 ++-- buildSrc/build.gradle.kts | 23 ++ buildSrc/settings.gradle.kts | 9 + .../crazyauctions.paper-plugin.gradle.kts | 27 ++ .../crazyauctions.root-plugin.gradle.kts | 35 +-- .../src/main/kotlin/task/ReleaseWebhook.kt | 1 + .../src/main/kotlin/task/WebhookExtension.kt | 7 +- gradle.properties | 6 +- gradle/libs.versions.toml | 42 ++- gradle/settings.versions.toml | 15 +- gradle/tools.versions.toml | 20 -- gradle/wrapper/gradle-wrapper.jar | Bin 60756 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 5 +- gradlew | 244 ++++++++++++++++++ gradlew.bat | 92 +++++++ jars/CrazyAuctions-Paper-ef7c6f0.jar | Bin 0 -> 58284 bytes platforms/paper/build.gradle.kts | 80 +++--- .../crazyauctions/CrazyAuctions.java | 19 +- .../crazyauctions/api/economy/Currency.java | 7 - .../api/economy/CurrencyAPI.java | 7 - .../api/economy/vault/VaultSupport.java | 7 - .../api/enums/PluginSupport.java | 7 - .../api/events/AuctionAddEvent.java | 7 - .../api/events/AuctionBidEvent.java | 7 - .../api/events/AuctionBuyEvent.java | 7 - .../api/events/AuctionCancelEvent.java | 7 - .../api/events/AuctionExpireEvent.java | 7 - .../api/events/AuctionListEvent.java | 7 - .../api/events/AuctionWinEvent.java | 7 - .../api/manager/enums/AuctionType.java | 7 - .../api/manager/interfaces/AuctionItem.java | 7 - .../api/manager/objects/AuctionButtons.java | 7 - .../api/manager/objects/AuctionCategory.java | 7 - .../api/manager/objects/AuctionHouse.java | 7 - .../manager/objects/InventorySettings.java | 7 - .../objects/auctiontype/BiddingAuction.java | 7 - .../objects/auctiontype/SellingAuction.java | 7 - .../crazyauctions/commands/Permissions.java | 7 - .../crazyauctions/loader/AuctionsLoader.java | 12 +- .../crazyauctions/loader/AuctionsStarter.java | 33 +-- .../crazyauctions/storage/StorageManager.java | 7 - .../storage/data/PlayerData.java | 4 +- .../crazyauctions/utils/ItemUtils.java | 7 - .../crazyauctions/utils/misc/ColorUtils.java | 7 - settings.gradle.kts | 18 +- 56 files changed, 554 insertions(+), 561 deletions(-) delete mode 100644 api/src/main/java/us/crazycrew/crazyauctions/utils/FileUtils.java rename api/src/main/java/us/crazycrew/crazyauctions/utils/{misc => }/NumberUtils.java (90%) delete mode 100644 build-src/build.gradle.kts delete mode 100644 build-src/settings.gradle.kts delete mode 100644 build-src/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts create mode 100644 buildSrc/build.gradle.kts create mode 100644 buildSrc/settings.gradle.kts create mode 100644 buildSrc/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts rename {build-src => buildSrc}/src/main/kotlin/crazyauctions.root-plugin.gradle.kts (59%) rename {build-src => buildSrc}/src/main/kotlin/task/ReleaseWebhook.kt (97%) rename {build-src => buildSrc}/src/main/kotlin/task/WebhookExtension.kt (98%) delete mode 100644 gradle/tools.versions.toml create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 jars/CrazyAuctions-Paper-ef7c6f0.jar diff --git a/README.md b/README.md index d687408..89f3ccc 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ![Purpur](https://cdn.jsdelivr.net/gh/intergrav/devins-badges/assets/compact/supported/purpur_vector.svg)

- A crates plugin that offers quality crates with ease! + Auction off your items in style!
Explore the docs ยป
@@ -25,7 +25,7 @@ ยท Request Feature ยท - Get Support + Get Support

diff --git a/api/build.gradle.kts b/api/build.gradle.kts index cdac14f..0179fdd 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -2,14 +2,6 @@ plugins { id("crazyauctions.root-plugin") } -val projectBeta = settings.versions.projectBeta.get().toBoolean() -val projectVersion = settings.versions.projectVersion.get() -val projectName = settings.versions.projectName.get() - -val finalVersion = if (projectBeta) "$projectVersion+Beta" else projectVersion - -project.version = finalVersion - dependencies { //compileOnly(libs.adventure.api) //compileOnly(libs.adventure.text) @@ -18,10 +10,4 @@ dependencies { compileOnly(libs.yaml) compileOnly(libs.crazycore.api) -} - -tasks { - shadowJar { - archiveFileName.set("$projectName+API+$finalVersion.jar") - } } \ No newline at end of file diff --git a/api/src/main/java/us/crazycrew/crazyauctions/configurations/ConfigSettings.java b/api/src/main/java/us/crazycrew/crazyauctions/configurations/ConfigSettings.java index 92a12b3..02f92aa 100644 --- a/api/src/main/java/us/crazycrew/crazyauctions/configurations/ConfigSettings.java +++ b/api/src/main/java/us/crazycrew/crazyauctions/configurations/ConfigSettings.java @@ -8,13 +8,6 @@ import ch.jalu.configme.properties.Property; import static ch.jalu.configme.properties.PropertyInitializer.newProperty; /** - * @author RyderBelserion - * @author BadBones69 - * - * Date: 3/4/2023 - * Time: 10:22 PM - * Last Edited: 3/4/2023 @ 10:22 PM - * * Description: The config.yml options. */ public class ConfigSettings implements SettingsHolder { diff --git a/api/src/main/java/us/crazycrew/crazyauctions/configurations/LocaleSettings.java b/api/src/main/java/us/crazycrew/crazyauctions/configurations/LocaleSettings.java index 8e9e826..2425ee6 100644 --- a/api/src/main/java/us/crazycrew/crazyauctions/configurations/LocaleSettings.java +++ b/api/src/main/java/us/crazycrew/crazyauctions/configurations/LocaleSettings.java @@ -4,13 +4,6 @@ import ch.jalu.configme.SettingsHolder; import ch.jalu.configme.configurationdata.CommentsConfiguration; /** - * @author RyderBelserion - * @author BadBones69 - * - * Date: 3/4/2023 - * Time: Unknown - * Last Edited: 3/4/2023 @ 10:23 PM - * * Description: The locale file. */ public class LocaleSettings implements SettingsHolder { diff --git a/api/src/main/java/us/crazycrew/crazyauctions/configurations/PluginSettings.java b/api/src/main/java/us/crazycrew/crazyauctions/configurations/PluginSettings.java index 670bf83..384a54a 100644 --- a/api/src/main/java/us/crazycrew/crazyauctions/configurations/PluginSettings.java +++ b/api/src/main/java/us/crazycrew/crazyauctions/configurations/PluginSettings.java @@ -7,13 +7,6 @@ import ch.jalu.configme.properties.Property; import static ch.jalu.configme.properties.PropertyInitializer.newProperty; /** - * @author RyderBelserion - * @author BadBones69 - * - * Date: 2/28/2023 - * Time: Unknown - * Last Edited: 3/4/2023 @ 10:23 PM - * * Description: The plugin-settings.yml options. */ public class PluginSettings implements SettingsHolder { diff --git a/api/src/main/java/us/crazycrew/crazyauctions/configurations/migrations/PluginMigrationService.java b/api/src/main/java/us/crazycrew/crazyauctions/configurations/migrations/PluginMigrationService.java index 22304cb..952b485 100644 --- a/api/src/main/java/us/crazycrew/crazyauctions/configurations/migrations/PluginMigrationService.java +++ b/api/src/main/java/us/crazycrew/crazyauctions/configurations/migrations/PluginMigrationService.java @@ -4,19 +4,10 @@ import ch.jalu.configme.configurationdata.ConfigurationData; import ch.jalu.configme.migration.PlainMigrationService; import ch.jalu.configme.resource.PropertyReader; import org.simpleyaml.configuration.file.YamlConfiguration; -import us.crazycrew.crazycore.CrazyCore; -import us.crazycrew.crazycore.CrazyLogger; import java.io.IOException; import java.nio.file.Path; /** - * @author RyderBelserion - * @author BadBones69 - * - * Date: 3/1/2023 - * Time: 12:41 PM - * Last Edited: 3/1/2023 @ 12:42 PM - * * Description: Migrate old values to new values. */ public class PluginMigrationService extends PlainMigrationService { @@ -29,7 +20,9 @@ public class PluginMigrationService extends PlainMigrationService { private boolean convert(PropertyReader reader, String oldValue, String newFile, boolean cascade) { if (reader.contains(oldValue)) { - Path nFile = CrazyCore.api().getDirectory().resolve(newFile); + //Path nFile = CrazyCore.api().getDirectory().resolve(newFile); + + Path nFile = null; YamlConfiguration yamlNewFile = null; @@ -39,8 +32,8 @@ public class PluginMigrationService extends PlainMigrationService { exception.printStackTrace(); } - CrazyLogger.info("Starting the config migration process..."); - CrazyLogger.info("Found old config value (" + oldValue + ")"); + //CrazyLogger.info("Starting the config migration process..."); + //CrazyLogger.info("Found old config value (" + oldValue + ")"); if (!nFile.toFile().exists()) { try { @@ -66,7 +59,7 @@ public class PluginMigrationService extends PlainMigrationService { try { yamlNewFile.save(nFile.toFile()); - CrazyLogger.info("The migration process is complete!"); + //CrazyLogger.info("The migration process is complete!"); } catch (Exception exception) { exception.printStackTrace(); } diff --git a/api/src/main/java/us/crazycrew/crazyauctions/utils/FileUtils.java b/api/src/main/java/us/crazycrew/crazyauctions/utils/FileUtils.java deleted file mode 100644 index e9445a6..0000000 --- a/api/src/main/java/us/crazycrew/crazyauctions/utils/FileUtils.java +++ /dev/null @@ -1,89 +0,0 @@ -package us.crazycrew.crazyauctions.utils; - -import us.crazycrew.crazycore.CrazyLogger; -import java.io.BufferedOutputStream; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; -import java.net.JarURLConnection; -import java.net.URL; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Enumeration; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -public class FileUtils { - - /** - * Extracts files from inside the .jar into an output - *

- * @param input the directory in the .jar - * @param output the output wherever you use this. - * @param replace if we should replace or not. - */ - public static void extract(String input, Path output, boolean replace, boolean verbose) { - URL directory = FileUtils.class.getResource(input); - - if (directory == null) if (verbose) CrazyLogger.debug("Could not find " + input + " in the jar."); - - assert directory != null; - if (!directory.getProtocol().equals("jar")) if (verbose) CrazyLogger.debug("Failed because the protocol does not equal .jar!"); - - ZipFile jar; - try { - if (verbose) CrazyLogger.debug("Starting to extract files from <#11e092>" + input + " directory in the jar."); - - jar = ((JarURLConnection) directory.openConnection()).getJarFile(); - } catch (Exception e) { - throw new RuntimeException(e); - } - - String filePath = input.substring(1); - Enumeration fileEntries = jar.entries(); - - while (fileEntries.hasMoreElements()) { - ZipEntry entry = fileEntries.nextElement(); - String entryName = entry.getName(); - - if (!entryName.startsWith(filePath)) continue; - - Path outFile = output.resolve(entryName); - boolean exists = Files.exists(outFile); - - if (!replace && exists) continue; - - if (entry.isDirectory()) { - if (exists) { - if (verbose) CrazyLogger.debug("File already exists."); - - return; - } - - try { - Files.createDirectories(outFile); - - if (verbose) CrazyLogger.debug("Directories have been created."); - } catch (Exception e) { - e.printStackTrace(); - } - - continue; - } - - try (InputStream inputStream = jar.getInputStream(entry); OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outFile.toFile()))) { - byte[] buffer = new byte[4096]; - - int readCount; - - while ((readCount = inputStream.read(buffer)) > 0) { - outputStream.write(buffer, 0, readCount); - } - - outputStream.flush(); - } catch (Exception e) { - e.printStackTrace(); - } - } - } -} \ No newline at end of file diff --git a/api/src/main/java/us/crazycrew/crazyauctions/utils/misc/NumberUtils.java b/api/src/main/java/us/crazycrew/crazyauctions/utils/NumberUtils.java similarity index 90% rename from api/src/main/java/us/crazycrew/crazyauctions/utils/misc/NumberUtils.java rename to api/src/main/java/us/crazycrew/crazyauctions/utils/NumberUtils.java index 2d49492..88f92f0 100644 --- a/api/src/main/java/us/crazycrew/crazyauctions/utils/misc/NumberUtils.java +++ b/api/src/main/java/us/crazycrew/crazyauctions/utils/NumberUtils.java @@ -1,13 +1,6 @@ -package us.crazycrew.crazyauctions.utils.misc; +package us.crazycrew.crazyauctions.utils; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Number utilities. */ public class NumberUtils { diff --git a/build-src/build.gradle.kts b/build-src/build.gradle.kts deleted file mode 100644 index 3cae0b2..0000000 --- a/build-src/build.gradle.kts +++ /dev/null @@ -1,20 +0,0 @@ -plugins { - `kotlin-dsl` -} - -repositories { - gradlePluginPortal() -} - -dependencies { - implementation(tools.jetbrains) - implementation(tools.license) - implementation(tools.shadowJar) - - // For the webhook tasks, this applies to the build-logic only - implementation(tools.ktor.gson) - implementation(tools.ktor.core) - implementation(tools.ktor.cio) - implementation(tools.ktor.cn) - implementation(tools.kotlinx) -} \ No newline at end of file diff --git a/build-src/settings.gradle.kts b/build-src/settings.gradle.kts deleted file mode 100644 index c31c432..0000000 --- a/build-src/settings.gradle.kts +++ /dev/null @@ -1,11 +0,0 @@ -@file:Suppress("UnstableApiUsage") - -dependencyResolutionManagement { - versionCatalogs { - create("tools") { - from(files("../gradle/tools.versions.toml")) - } - } - - repositories.gradlePluginPortal() -} \ No newline at end of file diff --git a/build-src/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts b/build-src/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts deleted file mode 100644 index 72d631d..0000000 --- a/build-src/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts +++ /dev/null @@ -1,27 +0,0 @@ -plugins { - id("crazyauctions.root-plugin") -} - -repositories { - exclusiveContent { - forRepository { - maven("https://repo.papermc.io/repository/maven-public/") - } - - filter { - includeGroup("io.papermc.paper") - includeGroup("com.mojang") - includeGroup("net.md-5") - } - } -} - -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(project.properties["java_version"].toString())) -} - -tasks { - compileJava { - options.release.set(project.properties["java_version"].toString().toInt()) - } -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index f2fa735..7c7fa9e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,3 +1,4 @@ +import com.lordcodes.turtle.shellRun import task.WebhookExtension import java.awt.Color @@ -5,26 +6,30 @@ plugins { id("crazyauctions.root-plugin") } -val legacyUpdate = Color(255, 73, 110) val releaseUpdate = Color(27, 217, 106) val betaUpdate = Color(255, 163, 71) +val changeLogs = Color(37, 137, 204) -val isBeta = settings.versions.projectBeta.get().toBoolean() -val projectVersion = settings.versions.projectVersion.get() -val projectName = settings.versions.projectName.get() -val projectExt = settings.versions.projectExtension.get() +val beta = settings.versions.beta.get().toBoolean() +val extension = settings.versions.extension.get() -val finalVersion = if (isBeta) "$projectVersion+beta" else projectVersion +val color = if (beta) betaUpdate else releaseUpdate +val repo = if (beta) "beta" else "releases" -val color = if (isBeta) betaUpdate else releaseUpdate -val repo = if (isBeta) "beta" else "releases" +val url = if (beta) "https://ci.crazycrew.us/job/${rootProject.name}/" else "https://modrinth.com/$extension/${rootProject.name.lowercase()}/versions" +val download = if (beta) "https://ci.crazycrew.us/job/${rootProject.name}/" else "https://modrinth.com/$extension/${rootProject.name.lowercase()}/version/${rootProject.version}" +val msg = if (beta) "New version of ${rootProject.name} is ready!" else "New version of ${rootProject.name} is ready! <@&929463441159254066>" + +val hash = shellRun("git", listOf("rev-parse", "--short", "HEAD")) + +rootProject.version = if (beta) hash else "1.11.14.3" webhook { this.avatar("https://en.gravatar.com/avatar/${WebhookExtension.Gravatar().md5Hex("no-reply@ryderbelserion.com")}.jpeg") this.username("Ryder Belserion") - this.content("New version of $projectName is ready! <@&929463441159254066>") + this.content(msg) this.embeds { this.embed { @@ -32,21 +37,32 @@ webhook { this.fields { this.field( - "Version $finalVersion", - "Download Link: https://modrinth.com/$projectExt/${projectName.lowercase()}/version/$finalVersion" + "Download: ", + url ) this.field( - "API Update", - "Version $finalVersion has been pushed to https://repo.crazycrew.us/#/$repo" + "API: ", + "https://repo.crazycrew.us/#/$repo/${rootProject.group.toString().replace(".", "/")}/${rootProject.name.lowercase()}-api/${rootProject.version}" ) } this.author( - projectName, - "https://modrinth.com/$projectExt/${projectName.lowercase()}/versions", - "https://cdn-raw.modrinth.com/data/r3BBZyf3/4522ef0f83143c4803473d356160a3e877c2499c.png" + "${rootProject.name} | Version ${rootProject.version}", + url, + "https://git.crazycrew.us/ryderbelserion/assets/raw/branch/main/crazycrew/png/${rootProject.name}Website.png" ) } + + this.embed { + this.color(changeLogs) + + this.title("What changed?") + + this.description(""" + Changes: + ยป N/A + """.trimIndent()) + } } } \ No newline at end of file diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 0000000..7876b31 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +repositories { + gradlePluginPortal() +} + +dependencies { + implementation(libs.kotlin) + implementation(libs.shadow) + + implementation(libs.paperweight) + + implementation(libs.ktor.core) + implementation(libs.ktor.cio) + implementation(libs.ktor.content) + implementation(libs.ktor.gson) + + implementation(libs.kotlin.coroutines) + + implementation(libs.turtle) +} \ No newline at end of file diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 0000000..3b3e0b7 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,9 @@ +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } + + repositories.gradlePluginPortal() +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts b/buildSrc/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts new file mode 100644 index 0000000..51ec658 --- /dev/null +++ b/buildSrc/src/main/kotlin/crazyauctions.paper-plugin.gradle.kts @@ -0,0 +1,27 @@ +plugins { + id("crazyauctions.root-plugin") + + id("io.papermc.paperweight.userdev") +} + +repositories { + maven("https://repo.papermc.io/repository/maven-public/") +} + +dependencies { + paperweight.paperDevBundle("1.19.4-R0.1-SNAPSHOT") +} + +tasks { + assemble { + dependsOn(reobfJar) + } + + reobfJar { + val file = File("$rootDir/jars") + + if (!file.exists()) file.mkdirs() + + outputJar.set(layout.buildDirectory.file("$file/${rootProject.name}-Paper-${rootProject.version}.jar")) + } +} \ No newline at end of file diff --git a/build-src/src/main/kotlin/crazyauctions.root-plugin.gradle.kts b/buildSrc/src/main/kotlin/crazyauctions.root-plugin.gradle.kts similarity index 59% rename from build-src/src/main/kotlin/crazyauctions.root-plugin.gradle.kts rename to buildSrc/src/main/kotlin/crazyauctions.root-plugin.gradle.kts index 1031457..0d7095f 100644 --- a/build-src/src/main/kotlin/crazyauctions.root-plugin.gradle.kts +++ b/buildSrc/src/main/kotlin/crazyauctions.root-plugin.gradle.kts @@ -3,37 +3,25 @@ import task.WebhookExtension plugins { `java-library` - `maven-publish` - id("com.github.hierynomus.license") - id("com.github.johnrengelman.shadow") } -license { - header = rootProject.file("LICENSE") - encoding = "UTF-8" - - mapping("java", "JAVADOC_STYLE") - - include("**/*.java") -} - repositories { maven("https://repo.triumphteam.dev/snapshots/") - maven("https://repo.crazycrew.us/libraries/") - - maven("https://repo.crazycrew.us/plugins/") - - maven("https://libraries.minecraft.net/") + maven("https://repo.crazycrew.us/api/") maven("https://jitpack.io/") mavenCentral() } +java { + toolchain.languageVersion.set(JavaLanguageVersion.of("17")) +} + tasks { // Creating the extension to be available on the root gradle val webhookExtension = extensions.create("webhook", WebhookExtension::class) @@ -42,4 +30,17 @@ tasks { register("webhook") { extension = webhookExtension } + + compileJava { + options.encoding = Charsets.UTF_8.name() + options.release.set(17) + } + + javadoc { + options.encoding = Charsets.UTF_8.name() + } + + processResources { + filteringCharset = Charsets.UTF_8.name() + } } \ No newline at end of file diff --git a/build-src/src/main/kotlin/task/ReleaseWebhook.kt b/buildSrc/src/main/kotlin/task/ReleaseWebhook.kt similarity index 97% rename from build-src/src/main/kotlin/task/ReleaseWebhook.kt rename to buildSrc/src/main/kotlin/task/ReleaseWebhook.kt index ba83927..ea7f568 100644 --- a/build-src/src/main/kotlin/task/ReleaseWebhook.kt +++ b/buildSrc/src/main/kotlin/task/ReleaseWebhook.kt @@ -1,6 +1,7 @@ package task import io.ktor.client.HttpClient +import io.ktor.client.call.body import io.ktor.client.engine.cio.CIO import io.ktor.client.plugins.contentnegotiation.ContentNegotiation import io.ktor.client.request.headers diff --git a/build-src/src/main/kotlin/task/WebhookExtension.kt b/buildSrc/src/main/kotlin/task/WebhookExtension.kt similarity index 98% rename from build-src/src/main/kotlin/task/WebhookExtension.kt rename to buildSrc/src/main/kotlin/task/WebhookExtension.kt index 0ece16c..ad795df 100644 --- a/build-src/src/main/kotlin/task/WebhookExtension.kt +++ b/buildSrc/src/main/kotlin/task/WebhookExtension.kt @@ -17,15 +17,15 @@ abstract class WebhookExtension { private val embeds: MutableList = mutableListOf() fun content(content: String) { - this.content = content; + this.content = content } fun username(username: String) { - this.username = username; + this.username = username } fun avatar(avatar: String) { - this.avatar = avatar; + this.avatar = avatar } fun embeds(builder: EmbedsBuilder.() -> Unit) { @@ -43,7 +43,6 @@ abstract class WebhookExtension { } class Gravatar { - private fun hexCode(array: ByteArray): String { val sb = StringBuffer() for (i in array.indices) { diff --git a/gradle.properties b/gradle.properties index e5e4292..1bc3444 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,7 @@ -org.gradle.jvmargs=-Xmx2G +org.gradle.jvmargs=-Xmx3G org.gradle.parallel=false org.gradle.warning.mode = all -java_version = 17 \ No newline at end of file +name = CrazyAuctions +group = us.crazycrew.crazyauctions +description = Auction off your items in style. \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a0922ea..8d081cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,19 +1,23 @@ [versions] # Minecraft -paper = "1.19.3-R0.1-SNAPSHOT" - -# Adventure -adventure = "4.12.0" +paper = "1.19.4-R0.1-SNAPSHOT" # CrazyCore -crazycore = "1.1.0.0" +crazycore = "618b89a" + +# Adventure +adventure = "4.13.0" + +ktor = "2.2.4" +kotlin = "1.8.20-RC" [libraries] # Minecraft -paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" } -spigot = { module = "org.spigotmc:spigot-api", version.ref = "paper" } +papermc = { module = "io.papermc.paper:paper-api", version.ref = "paper" } +paperlib = { module = "io.papermc:paperlib", version = "1.0.8-SNAPSHOT" } +paperweight = { module = "io.papermc.paperweight:paperweight-userdev", version = "1.5.3" } # Adventure adventure_api = { module = "net.kyori:adventure-api", version.ref = "adventure" } @@ -36,11 +40,25 @@ bstats_bukkit = { module = "org.bstats:bstats-bukkit", version = "3.0.0" } vault_api = { module = "com.github.MilkBowl:VaultAPI", version = "1.7" } # Holograms -holographic_displays = { module = "me.filoghost.holographicdisplays:holographicdisplays-api", version = "3.0.0" } -decent_holograms = { module = "com.github.decentsoftware-eu:decentholograms", version = "2.7.8" } +holographic_displays = { module = "me.filoghost.holographicdisplays:holographicdisplays-api", version = "3.0.1" } +decent_holograms = { module = "com.github.decentsoftware-eu:decentholograms", version = "2.8.1" } -cmi_api = { module = "com.Zrips.CMI:CMI-API", version = "9.2.6.1" } -cmi_lib = { module = "net.Zrips.CMILib:CMI-Lib", version = "1.2.4.1" } +cmi_api = { module = "com.Zrips.CMI:CMI-API", version = "9.3.1.5" } +cmi_lib = { module = "net.zrips.CMILib:cmi-lib-api", version = "1.2.5.3" } # Placeholders -placeholder_api = { module = "me.clip:placeholderapi", version = "2.11.2" } \ No newline at end of file +placeholder_api = { module = "me.clip:placeholderapi", version = "2.11.2" } + +# Kotlin +ktor-core = { module = "io.ktor:ktor-client-core-jvm", version.ref = "ktor" } +ktor-cio = { module = "io.ktor:ktor-client-cio-jvm", version.ref = "ktor" } +ktor-content = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } +ktor-gson = { module = "io.ktor:ktor-serialization-gson", version.ref = "ktor" } + +kotlin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } +kotlin-serialization = { module = "org.jetbrains.kotlin:kotlin-serialization", version.ref = "kotlin"} +kotlin-coroutines = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.6.4" } + +shadow = { module = "com.github.johnrengelman:shadow", version = "8.1.0" } + +turtle = { module = "com.lordcodes.turtle:turtle", version = "0.8.0" } \ No newline at end of file diff --git a/gradle/settings.versions.toml b/gradle/settings.versions.toml index 872156f..8a59747 100644 --- a/gradle/settings.versions.toml +++ b/gradle/settings.versions.toml @@ -1,15 +1,10 @@ [versions] -# Project Settings -projectVersion = "0.0.0.0" - -projectGroup = "us.crazycrew.crazyauctions" -projectName = "CrazyAuctions" -projectDescription = "Auction off your items in style!" -projectGithub = "https://github.com/Crazy-Crew/CrazyAuctions" -projectBeta = "true" -projectExtension = "plugin" +github = "https://github.com/Crazy-Crew/CrazyAuctions" +beta = "true" +extension = "plugin" [plugins] -minotaur = { id = "com.modrinth.minotaur", version = "2.7.2" } \ No newline at end of file +minotaur = { id = "com.modrinth.minotaur", version = "2.7.2" } +run-paper = { id = "xyz.jpenilla.run-paper", version = "2.0.1" } \ No newline at end of file diff --git a/gradle/tools.versions.toml b/gradle/tools.versions.toml deleted file mode 100644 index 6a3b9b7..0000000 --- a/gradle/tools.versions.toml +++ /dev/null @@ -1,20 +0,0 @@ -[versions] - -# Gradle -shadow = "7.1.2" -ktor = "2.2.3" -kotlin = "1.7.21" -license = "0.16.1" -coroutines = "1.6.4" - -[libraries] -jetbrains = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } -license = { module = "gradle.plugin.com.hierynomus.gradle.plugins:license-gradle-plugin", version.ref = "license" } -shadowJar = { module = "gradle.plugin.com.github.johnrengelman:shadow", version.ref = "shadow" } - -ktor-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } -ktor-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } -ktor-cn = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } -ktor-gson = { module = "io.ktor:ktor-serialization-gson", version.ref = "ktor"} - -kotlinx = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines"} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e5832f090a2944b7473328c07c9755baa3196..ccebba7710deaf9f98673a68957ea02138b60d0a 100644 GIT binary patch delta 39304 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 O;LQ#O9OtPYE&l^NyjRr# delta 38549 zcmZ5{V|XP%yJRM|&53Q>wr$(S2~W%u+qRvFZBH<9H?{@XP4|KruX8q#P-TXc9O^Bo8;bfNnum8g?VxrLff+d*!C>hkeMibP$TG7F# zn@<8^e$AdQog9Fo3vyoDB_kB)^mI##CDA>oS7C5kQ$u!)u2+nyUv0F; z#b~fbbH;VDLG@m*S1G1XANgfs|B3EqlmN4LF_HW2-U6E+zWQrx=)BCFbeT+waP0i# z{sUcqFmv@QdVlR6J)PG<4Y<4amAx%O2g&)h(=YGR5_|1G$@PMQd4@eu;QNQ~w0*4A z3!{@@MRjVwKOJZ^kveB92)5GTR$@aYXF3#Gg7VNmALLejWo(l1BoHkDJ5E;Xj%i zZIL*Ub>Br+Yy=$7$;pAMox@qgF4jGdGPz1`W*-2oObkAav*r@R4j@g#Pjg)nMfu$- zeeh!@=@Ex*;%IyWMv^84rk`l!q_p5Mmf2qV;k}gP-DxbZsu_;f0FI>%yD>Ar01>{P z@%^I0r6Bg8n9w62(i=hdJe31^J9P=2yvXGU*ObZ(8voF%Z>7g0qQy12za^P61F74m z{7*o#%^`*1`}x#GSrd^}Tu{2iY!RvL6?g+pc%I}2W>?HdO-#?OX-&MHHcV^ZzT%KwiZ;J2f&?; zo(7P8C=KHjsaHY#)_Yc*`4OCz<+f7`XElHt-EnNsiye=|rh@?{Dr={G7hsklbU-l> z+JI1tq)4<2uHK@2@H`)2?`o$4IBD`=X{vk7%$oT=8$QnxpY7tjPWRJoRiYcId?E)I_W#E(fWCPK1 zS6m2{weRSW2F9ErPy9PqX)oP4rqpkka?2;}DGCQ>C0#-RiB2dT6zEcMy5_R|zb5xz zz^4T>JDO}L9h4}H6nNH)g!dA`^#ESPiJkIB&MPWm$4323 zdFVx9Wr0m={K~0HS9gcBY7n?&sP#pN2$}eNeBfhvj zRQRJQDxV(R>d{%)-HR=e03&G$?eZ1H(P2!yH4Mfz6*jAp>nermiL`ik7Pi#Z%v^Z{ zJA)$j<_{eHI^XVHpXa$+MYT5` z>zap}M$~?(r*=xLo|rViLyQofqcn+px^4KIt`p5*BEeWe!&#WpL2-+qaFC z>}Wlow5jn{mf2j$bw*+(ZU{Mc_wqf7=2N45tmdn=<3QDxxa3MEXB4f_j~ub(n6`|W z(JUV>ELi zconE7mHSrDzBVisbIyQ)eO;*|H8RIt-aqqrhAR)fV4Rk@=%IP=02+gOD%ML_wouK+biOw%);W0}s1$yX|S? zVrntz@Hu!FlcG=Ntioc57+rk(>|@Eyq=xL&tr*m5dS@eoq6dX?EZn#i^LuKVz;a8v zVj}1k0Y5(|+TU=?>quZ~sN9!~cW7Ga%;Ym@8}_Y$Iv9l$)*J`Y%bg3tGS}O3mUHgK zVwRrgR}N=)fpaN#=d<@X~bC2q|<^LCFc*9$5a&FSW=0?_Hg` zxfQCGrGjk0;=35uS1(tZUBQHuepMR9etcv2F9^>519_TjdiYe&mp5=dZ+LcfngR-K z8MiVD5?pC4Z|Lk8`q5KhQPDzm19+dL!|7xp<5j2j7zn<1-Q^UOJOdSa=X zu-&Lw04nmn7j;0!n-QOaguE-7^ebl=K5=R3Fimm(pQ1zDuIB@acUF;=L^mgsBsA7e zci3T-%9=Fq$zjA}-k%JwpQEfCEQZ&{m^(6&W; ztyMi1=dQC-*He7s@lx}H(u_Z7|2UIq8A+=cg%cRw?|uOMH}OkGaQ-jWC-XntukjZo z$Q%*t8+?l|Vhs4d0TQJV^50(J9$w2FM!>g!<==m$1(wvmvZV%F68hiDJ>doN|0RqR zSXTa^b0QT0tzaXgiVEs&6jl*qD->E|uvl6wCcLQZ-LH1TOR-JLEy)0=f+6i65@B*? z9~JjmajtVtA!hpRxafa#r)P4V`+51<{e!-~eq;Uku0_E?z9b{AA%;MPZif442K&MT z*pc0tkaPp)&eA6<7{yaO)-mc% zQ)w#drpJexjZFF(tZKNYn6|HPemEn@=Q1|MzSOaHV)$v9+MtD&<<+&C34oS;Q(7sX z;&P2aNSar%VjYFkF0L14Rk-Zcsw~>xOOi6szk17QrO23Z;Nf-SdE5{+hKhLlvdpL9 zwbh9MaN?l)y6k4t@^(edbsluYy62x>l5(I%qem+4qjfh5X8W#*YTHUZCL^YEcPk^H zBH@JvIWFP88auvy^ewK3FC-4rzuc#O=GnRu6@xl zq*Oprpa|nBZmDMA_yi4mwM;<*Th2FEZJ}1ceke*%tDC^RDRc{=yU@%bt$4=rDoY$M zx^KOs-Fv+jDG6UqRX}Hqedq=mWphbb1l=9cD&{9ARc4-uhF+PzsJ$#AEpQ)D-K1yM zEU0un1$1L8w~HBU!9hCicgN1lhHOVW&dQyni4Zg4kkjSU5I23?wCpyoeuLFat84^d zfYY7knz22mdc|q@iBD!mTFXlkPOo$*g+I5eHSk8dF*x$IVc&`=1~zE5lFYsMlL3?= zn7BIsda~}f6c)z@oiRRMS_ci-Xt!2}$$Ky_C?|Wlw>Fe);vfcw)8oS5mfQ$l8`@Mf z>7H#cTx=5dIuH|4Tz)6oJVdVtTZ;j_BTwSigSZKvi2A;7b0|X!|9FDCxwBsBxkJh? z`?|H^2Qx-VE+?IMUhMP+v;73yeNxG6@Bb2)T+Wx&TCl+|aX_ncfV*ah0Ml=(gmk2q z)}V4h*pU#eby}X1{1%D!gJ|fS)D~ic8IngJC}dNgB8RN*$G+C%6^~zHuo=4^W&LY1 zeS#3U^%|YcD6Ko>URgTKQc_8#096B{+s`OyZ7|0!uMT z%Ez?1)ta~OChNNB743tmKS_deaRg;Al5Ngt-fbxb!aVzGZf5Sw%F5g6&%=5L37D1Z zR&atUgl(KBh@-y5=6kd(gnFZg!eyrEghsDlUaZ|D8rQJOB#5(y%6GM`F6L54xyxZ= zwJZ=&00mqjlIHm`1SU86yxg;iyG_=h3sfM|Z#^mM3mxV#=_;l6!h25}@X4XX%L1lt zSuAe*9v$C~;%|M#s;0#@+$N9Xfr{0hEN&E5N#TSEHx;!Ho?k)BMo(RjIa0u{rX~8X zbbTfqPW#o2gi6LZXBLXi+Nz_U*m!;dXrh3#Ov^L-soBcbGj${aq6s3iQJlpwt<&3x zH*0~WgJ|JZi?1n@CUwXA`{HB|19KgrA);|}>rkNuukuw9L+*f7M#Qn|4o3QCap|W~ zk(~L|YL-~UX1mUONp3_UZrl^|bNhp~yWMDHZEl~9lo-~ELo4hKmU$N6T4;+*o;koK z`wZ~_=h;KNuqJS^oj~xaAKo`aJ+gEMr8b(&Aa1T+$fk0 z{?VZP9H~rN|gmLW*gEJFjSkK>t4l)s=Pwr<#jU?SPE z@H|042|T2{qyN^p;Nkeqom55kRCYTF)(E0-nsz6V_) z8xZYopR-{rpJEhEfU^yq>juJFt!yewU|8-4PyC^uikFGWw(u3UPvnD%`z+&Rwyt!< zlD9wKb+y^@=ek0$=JTPzI0%9zGLlWn{2mfXo(7fz_jCm#ykZvD!QXX;%rLYEjCiKS9aPhzsdgHz4Imh`008JU3H`5eGwK{72q-yZ9 zIBT@jXRmurFT6E->bH28jJOnryM|ocmyAC>k+geviZgP4S|qL2I_B-CqB?NcS?=^# zq}NbHpD-%cIaRllJ}VYc?6D!%U7#@P514KMJS#S6xEOnt?nJ0X- z#W8Jl_*JgOl&l#LA<}g{G`463yb!04Uc*fn^!@wK7D)B=L2uF*9d_l_*=Y)kO-L;% zm#GSG;N9V9Zux;%C zcj>^ZAcF+5;W>gy`oE}FJKG2Xd1%A6xF@&=ecR?qv0B4xG}aPg$lhlP2sc={qfw!z zx%-{tNkZ5a2fqWMa$Zvp*`X*MSVulyHSWL)*csmZx}9$_*DzY-t?~u0WCnTT;53X` zDNwu{&9w13cRcEaS0Am2bM3R^INd1#hLnAo8Np4__wOSd;z!?g5ssz1Ph0}(L?m^6 zR&bf#fUQ9?BEvf<;f8eBIDhqB&!Cb{-HxN}F0X@;`7`;y>?@>C3hJe)5-LU-chw~? zo>V8R%g>+u0$hQ_>j5aYzEcmYE^&6im=GF7NAPMptQ}LHU+~M*soLK9k}$A#{79@wRqy>`qA`1IdR;JYp5(-@&bOim+w0i?e#Rn;>r9BTTtY`ILO<{v`0W z{jfF|CwyS?H){(1y;8!NI_8|A~=OAX6+NkckuwDBzG1P^NCE zj3J6C=>4Zjr9*8xGKMTl(?%5AhqXMsQc)p$C9yR8rHJTa&nsibDH<^P_eU&q=Br7- zGYQ`P;oJ>$n56xI`03m>@5{EolC?14?;Y9?DlUXZRa%o72HtJXX+Z*csy>GjEA!DY zI?{o%04zrgw&_(vv34{MO4H&pK)_qT!Y`1Y^p$TeZAWOromYg`NiJ2(B0U!R2?1HE zqHt1h#4+oYL}3nUfD0A|;N1EmZgEbL*Mk(zVZ&rGxRS;qp`2 zLeWYZTB>L0PPDSX*pl0&2qD}$M$o)s($l^|+a%|pX(>2h_zVv`*U-5c&|LrX7d7fS z=2r4qZx9u-`r>JK-v)nDUZqfO6_?|7;vjjM(@OlqT8^jKvGGFqefz~589wg4J|No) zm3IE~cw?<`&#|1YH7w+2qGC!W2hXmx ztLX1TE0Qs=u_ZfX3gx#J0BW1(4-xt00+ztR99CwF4@5;BT*-N-jgJUdEP%VN&KR{2 zZ-5&w`nbWhV6As=lgbgNbIK!BhVLx}m_p%9a$JOMla)uhxv%9DWY%?8$HXjAPT+H9 zOIBu;1L`A|FP~&c|6mabt36|tg6^ynKD%oLTmA3313W^5Vb7B+TSY3qCu%8?gmo+5x;H|yAYHiZk^dp{3m(JB>y}R3 zA(27!X~)J5op;u#A_Q~%C**%3Qoxnk+yXQh7!?}mmXjKEcSs1B)j9XZ(8T=P$2D8J z{7pWYPSRE4EX5-vlwZqUvbI&S4x63{aWVHyQbkBIZzrY!m9E#E0EMaz|nA#rF) z&g^Q0-g_3;Eh`3K3;hNMjFa48C;``hO^q>W1gBz@eIEm8tLmRF;o)piEAuu6hhr-I0RC7PYti26d*6u5wADR z>Z^Cml!co|v$%$Y4fM(`ck(Xf7+)j`NoSf?YNv2yOkM)$AJCSR4dWB8%t&OIUU1vC zmu$sSFB#LKK2yRn@F7(xi*I1v6E=cHQYP);F&11ARh%rMzX2)LgeJju; zT2r%aZ*I14;i_#bH6&kMvgBdfNqfPURd-+JVl@&t_AC3Fw=`oRZ{khRqHmiC+@f+R z3<4U_-&6q(60)-HkpjVskm*I&@+kdwz28kE!*QU3{`@^PaJ{lLGD>$aoSJ4c((~1wn})9+wsrX)`J!jb zUvKQ}Vp8+qlFdtmX%L;(dxe>qQ*-0Bwbt$${je$z&opWYUu>hb5LyPGUZgqbW>CB* zRf`6Q%G1kJK(GCYzaCb}gi@cQ=F#wOs8*+cuu=sl@2#=yrm4MET$5d8mC})=r_SWN z?zCMyF58lE4`0(EKUlND*x0l zg)%(TXvDF{>`mZA-$m^#t?cMQ8ZR>V{SX0AK-L@V4Ru-bC2_rOnv+n4`g30%-htU0 z?~U0Ty91BBCkS=xPVuvQnRdMpf4bRg1#M@oV)o;^kjfpY{$Dhq{3Fi+1I&OSP;jC?b;x!{R>NC{PUGxd829pY)c5mr*3oZA zey00TuW?Jf5Op#w+%TpL=?E?YSSS3O_HgOmYf=}uGgpoAKhgJh8(99(%)K*l0jFl3 zazE_(GDgQ#HA6i|Y;H&obS`vN#dm{!a8h_gvIi3NTu~hl#64mX1rVwO&vg;}8sXPL zPBrI*Vv|q^=K&CW5RTkFKOy90@;QJl(yRrPi6D2D7~OG|op~dn(*+9vrB%z@fxAYm zxXLI_zR9RHCalr*K73m6qX%4R+tQp&vdB;B&5dw8rBJsxvTx*rC{P7PHb+~igG!Cg z(yH8|n!l1yu{|ha5dg=!Qfl_y0nJd4`S`=WyQbo2B4bde)}hUfE-GV_muF6d)IG9S z0(=HEcY@eYBiUmvi-Q2b-`|@I#1*+y`*}HoHP@yQux&Sc1AwI_fzuVOX2JuWlNe`I zj9=;+fFFVf(s5A*jq)FHs`m(eDM7=o_xwTVfIV&3p$F~MfaciW?KuYqF^5N8#8Vn` z^B5s0Ta6I*uIfop2&f5pN7U=H)T&JT=>w|n=rP_r1Lzty9nkxLpArhRo8P6);}svo zrAd*M;Wp^=!5xLPxQ;Ehu`%Q0`U`C=Y7t_j#;%PP@2W_=lj6{8UtV{kspgSPNA?Pn zZ?qSJT%-P0yDTXE>YM3j6O+C9j`YPnGT1`;Cj6i1M={c0T=tK4J^n*Lf&a0AL4Vlz z0FKJbDwyMcy$N>Ku<+=j5)~viA)1krNh{&zB5|p+O;`rCan@$CZ?K*Di|^x|AD3Un z&?820g204R@3-4$zR5#Rr`+Ujxd)v#T^9@t1VLnurX)bR@uf^q%hJ(!>Pf?MuWrVr z#JHv&W?C-fGS0h65O&}KjbDGuGa0Ja1N^qx@!~4PGMnw(*EtP=UD@OWqrfB2Ee5Bb zT1^)mIR-2C=`0WfljKR1F>dSV>D~oJDc3Mb`sPuZd3?w0rHI;kvqR=U{#*u4q0uL7prrA!{DRqWyCpg?32r6l zQy`A!Tg{)X8)Y58D{qK?d8YlNkM^dbmccfBFk2i&z*%tv*KR0YnAbKX7!T zwC@Zq{v<>?bsaoiNDt4o#w=j_Ve$o2+=EM_a4YsF2=--i+!B14%ZX)#R+gGp?6+lH ztrru_iWrx6x*zi!|vOYo4n?hdv(Hz2B zqQ?B5_xk_IVH%L~LZEX_weO{_2b~nDTn1B=rL>AW@;^mr`&?+TB(aLVLrKy(6O4oO zxflT>eLUzBRSPV1-s>8Eaa9xM1`!ExP#`)?1$vswD03}Q)j>~S_&!I@c6}Pdmc>Lm zp(^tVR0HQs=wc(ha+k~O&kK?nbnz8`+pexG;xlA}KZQwWmecLM{D>$IgLfux_weEt zt5vGavgaE%oHgY>V>L*>5mO1nxakaZmYxB5Xjx3+@00D;yw6j}IQ@E?hs2|8o?Bd_ zc40mBvYin>7~K1^&J5KRzuN6mD0>4DhgJF?V+KwlpgS%jnyDFj`Z>OGNoOPtskX67 z(|MkO<|L>T2^9VVIEF4`(#uyB@l8*e&VR7frj_JzPqHcFJ=V`{t13yOQ-RBw%L{-+ zb$ll?oxxt9zK%*`r77GrqI*bIZSS2zlNH=LeMfarrfFk_e)W!3CLi%>P+w(;UIi_$ z&GU)!hB|N(P*oS&gJ?eJo}c45?>gg#(wz&3A8>)+uu9x}57}@hHT^Mdq1j#4y;8Nm z&7!bAJ3G6;NGv$kmx|HzWPEe$Y7c1HE%S1#cVJ;kDVi^nB3VL(J`RAWO3n589gbE+ ziVrr7*DMzfyPUm5?KSA}j71vghO@8yrMsXT)54&^6-qH}8Wmt0vxuiR4{@Eh0*iJE zh4^PC)7rDcnj7V>kXk$t#m`Zw7S3;|KM3tkO8X#gR7* z{QvPsj;zEpL0|kH5b%M7EuI2C-%$RqcTzm|B3T3a5R?HNPr0V*K}x8i#kNXMtBw?W z$G2CAgQcQ@{;OY~;pWq4e}i0-c!2TBOaUHEB@}#H>guJB>Hrc0&E3q*1w72o+{jD>UafOTUPX+hdaNP zpGGN!%=UQ_cZ)gWt@=#I|O#K7jC%YJMPM4_Mii_0vJ!8Bei=;&uu#AlVZY7nt(8f z%<~%F-a(d|1joy@sFtKBxNg?b=4XfP*AlAr0>bk9X&<~ji%l+pj2m!{r(N_wmTe#l zxfr5>$e0Lrn3wm5A!YmA!J)RZbt_(7bQd3kAhm3Me4%-~G`xulBKwJKcalCMx57Zz6E&IwmpTr>#D5|(2vuS)GNyXM`A=$LE$Z5w`j1-pK>d4I zGlH0epg~Nc1b_%j1gs)DJ(1c4H4EDB;i;%H7%5bm3U)G&T&aq>240gl>8}kxCUY{3 zdPRz(7i$0@*8a_U8tl6J1z+KloR|I=Ppg3d|G#KI$h15j&7~rlaFBfe^{~dwnL^IusO-5T`^W={%mkMlD;V9IIm~L0vDoS~ia$(0j-Sb*Q3-v5 zWO$x`O9MnUH3Tu^wUtL)1+LS^`28cb$Qit?;Wd$B(K=5X%bHVj2aHT6J`u8u2AsGJ z(b`LqF9BxD@Q&jjw7Y&UR|Fbz4gQP+rjA=~tqR&bzP=N|A*msh4E8=Vjhi5INl2|# zBnIwA@joLM{b(41sLh9^A*vR*O9Ky9I-m0h9)L0(X$D~O<%(J6#i#NDr7J@R9j#?+1bp*e3L_h@QWD?E*`aKdU zEM6qgs3{Ox+#gcjA5rZv^NC+qxv73ua)F25nbD7|1o5vsnN;)sWey z9HR56;76dsVt*(Mnowk9a^9F?vw7;RH0`(HBSjgX?!2yBKqJzKdqJo=OiqaoI$Ef_Az|#P<$DfWsR|<* znqC|_4^3foH0s#fQV-2_9MiMk(_YLf=GL_%6W)16x4b(hY-nz!{1l!~8orS#*-^|8 z8RS?*fpNVe=xYRh?Dw)f{YmB(B(%y2{IeKhy9mtR@ruUuju8_Y(I+r-BB+XTU$s37 zW^CCit`7jNR-L-yq)Cw>y{Lcub_L{bX_IIt2zZ+tsRfA)&YtPT>0PbwTPjldXz+iClZxn*3c0Q~>?D~nnp2!o9d2IfHf zPhI>UNgEneC<_a)H8B`X{*uei;`Z}vx7=(NG;!F6xJ+klZ#-5P0>hK%N^eR=nbGk} zks_Xt%0g@B5$ha6OF&I9!2l02iG&R8vOoygRO}o=pSVHam~A%Q3=<4SB6R>89}oK6 z%~_l|!;Ah<@mBWM^wjiRU0+phAo71k4c7gwLCkmGWcLNo<{VgW!Y;6R4MS!YTD+(I zs&s#6NBUc_ul)9kB(z?1h(P4~sy1v&M1Fr7KsdM4j57j=Vp^?gqX4KFOqm`uw?`7usg?6@|oIr!0o=<*xK6?1+XLU~4ZBjnHdvl){HrSzC6tHT$SC3$>Ep zLRD4uH_HTN@k*8|2|^7^C+*?eq(h@`a2XAfySjgT;UP=?ta1GIpe<>By?WhbV!u)A z1Q%INw51h6R$h1YA(_g{hl?!j%@yvIRhQ5MIrYxE7BJ@PYB|G!MZ|i!{#!+$lhFaN z6x|P1Btz3AlccXU<^ISJ+ny~4xLMigGta@(uYiS$s3~R~yn8ocC=KEVxoXvLyjz-f$d@MJP=DZ?PUA{w0F^kzTo37imnqVaZ8@+OV*gp}GVibDbLILPQ| z^N_hz?4m$+HfwA|7&VToMT?pkM7>lVVPc0`=B-b?~EU{astL#Kj|&gD%|MPua;53ZF)%FOpeFytCO_28%c0 zF_PLySuVZby>xi;Xb)1gJ*=jX6#O)Y;#O+`Lr0rU%UxU{Yl_89CaAW+P@l=e!))?D8|4wBU0n97p zl)+ZkQpKNLVIGyh4gbSjJuDGr>|q)5=ukDAct5E& zU9mI1TbhBQPwU!hv)-sya3k-d4x!4o`DmseqbGZ9z3pZdij zQw=8;${&-BodQ4?gVY-aV6o^hU=AkrKQa>UXMVA9D+u8}h5>FDjOK&eixaEtpJWji z5Kl(&5qv{>D>87H2>XrtlI29Sn20NRe_%FhGBHdyI@V>LN9B+8DWnByONrW4D~M|a zx7iowZC2fDX=|QiBw+3rAmvJ9M2I*(V`8uDN`Lz^Y7?MW*81Ay_COB&kSG(oZZ@Gn zSHy(T*N-i+?G^nkmBP-*r6_Bob)C2I}PAS3Ng(*Rfakvzc5EuOGRJKhsN6 zr8^h}ya7(?r!R(5{YT4JD%~#Ao7Keglc>*ENX?@uUs6b;fdNAE1ZpGEMoYud-Y?$m zCTr_}JVcmqwU<-p+T&b-SI&^H{gkMrPCS8DHfo*^9L=exuR{Re8c%Ys7K5?laTw%?j!`7D@CNu_1=Ld&fD@vC-xOupQL* zi8M4`L`3wg9Uc_;b=7ZSYS7J7*X+bQ{dMAJR7g2 zes3IOt*)8HNm@;BHUC~z07{?rQkDO^4W4`-)ldbVEh~F~MGNB>u|8V@e z?{bKD)(jkkd}=xa?OZjLw;0_EgD zDFHEu*n8jUS^K^#5QR3iHsT7)(Mb1A)TZz5RvGSISAm}4+o1!QbTIxkV2rr_*K||l z=gZqTw*Xej!Zx>!nb4@ud-D1=N?+HN?a?Etu?yJPw>X=#@rjdWc-~;u_~SsDJ%k~Q zyGPSjlaAhcsff^lp-eqz%O6{@O+Cj=!5xj2IEP*(g(QbLSeM~rfo>!f5Pdwh+)8AY zKjaTU{;W-FICoD6nCJ#dfKXX%QOzIvjg2@U`v5LWG};)fI_w4TkK?Y11Hm)}YmjZs zs7JNrrD@XD!xE(qK0hepR{l3Ff1(ayxzq5G-uVq&cW)*Im7+ z57JJpFwpw^ezHXOrRIgTevw7yDP5Y6uDj~vn199pbs)r0&XiJL-_nn=9JwTqcD|N8 z>#*(ZU}edy)Ue?!85L7OtvdKDpkRWoAc=9&h)nM)wDkmQ2GM>9{#b~oZAQLqf?@8+ zPCSM!5RY)bz7b;#I3(+ppL%ITDky;(U!)^9neu6!q_xQ~^N^wCJ63SWpbEFd@RFe} zUW#Dq0>_zFjG8nWIad7&g62QweVmx?)Yu*2J`y*e1^nRrjaLs6KJ?=S61cl%rqex> zjM`ir52LsUZ}qU?{rl=kC>W=@mMb-j=%3cT;eqd+6AE(=K=p_=XAP1_5U^{T)q8UP zC19-)qfL8G>K1Tz_inpcu`$g{a&e@4bvRMeOq&%*cs-Vw<%)4cE)ZJ4!d)@-=arUo zcGP^*qoXotZ1FHxH#pRsW<9B5-wx?dqDcafb+pAgPB;`jA)z?G4rnM{xoFD3H)HdG zUU5PQOdM_nFm!}mz$Fxns3Q~3?#GG2*Uda2x=lY@7cJCje6@36E)lYa)7O((Bt`Ml z94O(SX|rbCXASSaNuhY8Kh z4Fc`^;{N>7d^AlcY+8aQjcf2=sgxpBmt>yX_WlS1G>7Qq52=HH?o*#A9#qX*7!P;y zB%bz$oc1SMmp|qy&QcdG@XkKGuFE4n(g>>SbmPG=GCZ+kyx%b}D&-dmF3;n60@e3< z=TshT&sOeofv21BJNHoKM5--+P|V4)koTdsD7)re_=g%ls!7~)rcq3YT|3f!1O~G1 zy7s^T*j!rW!Cfe^XR$#H<+tf8esql9E9f7Dk^k;hf^q9v`q5BtEgY_H+)T(jOUkA|PGh9s^TC#O`T(o5YGZ_01pud1BDEKw)z+%7@RMP-^?&b-;CHG#~(z?f1kY# zTtBAlC2crR^v(0}u1MP;r}gK(rkrvemyTMRXM^!p>nS+IiQ7eCL1K2}O!UtS&0y%} zEZv+YymKWP7L$qZF^I~D4$FpLvoLZ2Jj(Zusmy_J?zw&PbWxKk?&*J@nx${Ya_jK< zR^C7OfOJpWnx&3&>Lwf1vp*PFXLt8+d90_;lqX;P{nRbjk#Kzp+myWe%1rCiOa@H# zLVS9`-}j)9IM-esW6xl*(Zx{?Eyzw(6E-;$a^8?3r$Ac_|v+>vn2n1rMj6)h+j;ou69ON2uSazy%?D{IMM2(<^Z6AQ} zo;c2`CEJpJ5(b7}yIjDAt1)>Nf`oSu@}1QeyC4n9%X4>wu$UqrYeU7 zIXE))PRI&6FN;E=m=MIWK`}E=dHCW4dvoBO$1PULx z)f>hOvrY?HCjdl`-co%1c|76G7fpBQjOr5_f6MI9MXGg7k)CRGrCC?~X7r7;8Q<$* zN+7Sa3RV(|t1|xKk144I;9#eyz<#~IeMLF7s<&!DR_fw;S*-0C%x&f0oOU>!v-nc} z$UtycdLACidmAwHPB*=pnfOz%f?*ro1`Y|&@86V%6Jkvw(4}l@XZrfxO90CKPQNNx z`gbQK)3^>}jVy)>G#X_d~nwE<3n3rX`H=~<9C zuQ#tVZeYA+AommNYCv?7eA9UHE9a`=_t9M|zbn#tgC&6ITnmHN=>GWgzrA}<;VB+S z!x|MNVu9KsZmzF{lCLFD7H)gJD&3|>LdV zkXc@L$}D@ug8m>!7~(6KS*Q|a;;i!ai)Or~NNja3Gg7eU^f~Z!>Ff3FjUbpkbG8s| z81HH@>f8E=D+DzgPqYIxtZ5)Q~`$<6NAfN*2K~v?KImq26G^J z7Ym)=XcY7NPz}wwKbr~}eCO@#wA*gRu`4hklNruW35HHDXP**Ym@8L*pSkPwq44Zj zlOpWkbz*>S2o4?4lVA5Q#OJgB7HCxOc9DKxvS(Z?_|$lUmu>kW0Uf(h?-KK18Rzk_D$e#wKQ*lV0yqy@H3Z+*p_V zF#~$pUd$S$Paq}EqT~v4UeXu-v@_mgq5Y`v{cvDN8^*ELsnZHXts^(D)abFxz3)}XM6=eP0X zK{$`a0tJ%hk&$7VbFZ$rRTo>a3lF;#=!T9?IqUGVvxeoH4Y5<{jhwUQ9yl$CrtIgu zvIm`|r6OaM|Haigc83+U>pG3u*tTspMq}HyjTPH$Y#WVj+qUfn&FR_WJ!kB_zpWoI z$5_w2@9VjyH1a<`!v80dQ^*%e+LCbXC4omV&tyS;DNE}mI zacqeLm=82u4x;*9uve5K`ZaS8HC#N>4Gk}038mt7uQ0C1ba zJWgQVK!r9i;%N7-xHHbCJV!|@L26ov>3I!1va4dX;5yG^+LG%+B}fs0!yQnq=0p5r zT=Ha2I=g(DY`o}9Lf8EFnfv+;73-3k!I?f)3Kn;j%3lc-==MLW6cwVdHaZlCWhV6( zs7WTCLd)e&L3~elOoOC0A-DBZb%2278B>yR5_~d0-#Q>)@>Gv+1l0k0Ma#*c@KyL| zdm~Jq)w{kUn}RThLSN@T)NZpE#9_&Y{;I{&$j!R^e0h4_NQ!zJHeV0o-nQOugJ98r z0PNqtwjFzL5sI&ziZung`F-IIrk!)|b}5h}I%KaBoweObS=qd>zKtRY~ zlY~mKlLQ^{fDL6-b*wLZ=e0VzaAul_z}o{9Z_ND*=)Y9(g;Yq>MUyC)XNxo?di0zXU!%nf(i2rNlu{ zS@Z@VU@%2~B{Pv557<5HXl`!kzk1}Ja2o&KHEGeF?#i~Y_sk`dM^^(67IAS-e-)d`!PfX|ny1+g zV}w7_u9)!@lF{fLILHl}xu02q07=$bTvgKF58YAdbwPlhV$%IHyyx za!q-lRH{45DW!+Mu)5U<#l?xEKI4Qo)-K%?rlpKWx?NM@cVxQ$aWk$yP(bclJ*E&% z?+9!8{$vjEIP}miJ4^2!qhnSbnSBx{6=9`5k<65501^Z%cYr_Mug2w!zAz{K0j$EK z0@#&CX!|8cg9zhc0|(PAar!Q_Xtl;s^10bj7iQTyvty;*8ps&?B0)#_Xd*MINzzd* z(AB{ku<*&?DEEyg+~ma|xZJRGRg$k70SM#eg?WLzu-B2sAeAV~Xg-1R=$iw+;|#yu z$1h4$@U6$es8I@bS$*WHX|w{BHk4E$0R3HQ2>m_l^CGW#)=<^sf^OLEJ_CH6Y8A_2qOqNrbn2L5D6`7Gp}q9PB7zI&o}{5gtl=S?Aph=3aFj&-5h;aEr-TX5^%6{vPBZtm)H|F_o?*MaOrS{j>Q}0xu8I z17v>&iXxRDyLLf4BPTj1U=N{A|EvK)#065<2n~h@T^>XVej&*aypT+6{1Tk(4eB~h zpuc%dz(Rg#!?FN1B1lry4Ib+OF@yeGe)HwypK zcoqD;jiu=~4zM8VOe!Mf*7s0vj@&ZtvxxV^kT~_7St|Qte5?_PeFH?2h5Vm8@{~`D zoEe3-!oEM|=lXF)lg7e})hc~(IwFxrb_vhzkRl*&7GVm~b2;*gy8ZH&K45~t>7|LC zoswvto?9L+yrgWm>iPTENuj zAr*El@m)y&OZwMq4m*3!QJg>N&K(V)1b|QIUfS1DQBZrf0`!6TXvrk@u`JtOZq$=I zGt|UZB6Wt0*5EmcXv0mx>0WJ$0uNp%LxOW-k~kPk2Han44nw_YB7=7{=zFX#7<@g6 z<*%KW;gc0JX=x$3)KuoF`T2BsihBVDT)$U_neCTc`SiNaz0vhmDj_;>pw)p80=?&< z$g8D_4ewxm6uaKu`(R+%?P`~A;Art1cn(~HeJU~Ec}j$}bD!H#%KCiZt@&%92rWHC z?O?X%^~OEm%Zx|2t{QsH>=?9?WzaJTueM$6xVX1ek>~FWb;t9UaP8D0@uo!jf zU-!^XEE!u%IV963#9Rm2qy~^ZX+%X;O6r?1P4_2$ZptLqy4U%MgBGj}gK=g;i8Wb$ z$YPv~^s|NHkCU#Wl9Ox8&pz6M(<3gJMdeHl+v1Fyq?5Ibv0Yh@jfun3Vf(Z}Cj)PW zdW+H|`X#*cMDugq*54)=T{uIBHe)R9Ddq~GTBkt2Dx58s&A&(# zBQ|fLpBf&eQV8ru#yBt1FpV*Sm6FyfM#E4JJU zu2jCF_aCu4N7+{LgezduDy(l%RC;$^%9Z>VW!;@=f!}t| z_0;5MTO=7ngg&9xU{dO(C43@3Hw$qNDZr$dT5ZH2{xgK(T_5IxQ|X15_%q= zfBDXUlo5v9dG21>Vb&t20m{{DM3@DvAw%}!8QM*ur|1{t+@J5h`1K=*Xs<}fP3J6n zf?#U^5~&1c;jt+(d_8oiCYEN2aTfN^acmMy(tB)_3Q|D&=J$e!COSn6J!7dTGka12 z8+paI^;vQ-HPo{L+=3eG43)7{(ax%;?X&I!@>!pYBm}&5!3oTb;iwn!g*#tKeGT>+|i;fH@y^?x6#a{{Y3^1(nr{GdQU*#5(tn>!hr*d+b+rU$m1 zmBrA$u4GST?Ks&6f0k>MqcHz-Hi>=YiRBgL8N3TgGZd?^5+qFRe#+@9a!6FN-D}m<2}3P?&xuT&f4Mbc$s_1^@DW4AqSIS#wp%w z3J~b5Tx3=340}m=3fIL<&$mFH*Q6XNxC+RI`&p;sA5oWvyL?WdWQC? zNSJs<5bHQdC+3%0a67d>A7wmZ3}(pEMif}XdP{kv&f`WIqJv&dd0lr+MF1H+4EQ@N zAva#|9~B3ZwFXgEswfmYXQzjHP-yOe=3Apl_nudA3IBvEmR!mFP{+P?f^$*s2B9c{ z5&Dt4xi&fS>S{mr$+7Q@(>Qn}(x|)aidi`1>rh3}tMNlOQ_nAy6e4x}To#?vN&OLc z2{5nU-k$8yELmJ2QwEbA?7&R2I^B?qjX7;4%dQ8)2zPA0zLZ!j_2lWVqgQxmya$ch z`qBE}3m!WMx&sOkeedHmt5n@Yf)QA?v${*WbG%&I0d2e%$1vh;yHN+OjbU1)HFX;!!&J)@OHngw)N`-lU4x? zGa9sHV~@*)8lgH-H?FO_O;1k!$}q)=@tjx_*S#ONEpVz!uXAp$*;K2Bs8wSUN%k}F zr>nM7N_O_^>P7Kh0Xsuo57Zn=jx)ob#pUX_}BHFn5S#1`jD zij+Na>)7*b88MTyh_fu((7w_cq2F*ipuzZtaoO$#IUGRk=kV0Bw{CA4Ee$iQ(|P)L z_GUTjB+n~E7|puFoQ3 zv<==LI9p>Zgt%1anN))y=Aj#e(47KI3G9VE5fzVyN976~&KL>uZ{L`F>%acj;%=OS z{3P{1%BhS31cdmX5s(02Ft#ytb{^7%@z7pM5g5_hZhXYs__;4C1r6H3r6&aqvuY5I z4@G;IsNoifD(q38V@uvZR#ZxtOrBigtpVFaSL~7>Ts%9A!rdpBM-StDX5;dF)|5@n zI@#@Jaq;)1n^LnOMCv5-Ce!E6_a(>sy6q(AA=ml(xBl0ZGb0KxNAp*adT9>uIQ?948y57%$ILNr1lPPZW7%_wIKZ@|9ehto&FvK zfmS~pzsonq`&n(kC-#>fU52yjcaKv90r|a$p%>6OI^-#(Il710%+Ae$rA}cscG#5) zos;|}og0$7+Q2*jjMMAXwOipRg+OlzGeWEq!t{4PCT-`ii26JfP3=$`Bl1)+4QE8H zh@_R;D@*>_QGq4$6na6M65EC70!;=-$O`Rd%{?Td?VcHs|E@~o?m^Wrl)_ojDRm?# zbcJGe^*rmkS$J=T_?g^Nwpr;Q8ULnot?pSVOo_gIyjSTdcyuK^{5_;r(W7*HrJ_^% z=t5;#b(`J=53M6il|zL<$y4J9IfazwM$xlY154FIWe+O}BYG&>L|a9^I2vuC?IMPl zAD?|?3S;mMfmf<(ETPn1)z%ajWezsqo-R_`8+uWWW z6oOJ@XP#Q$+;CR4_oiy9tOjeq?>C;UsV?p4=&A+~c`wi5+a7{ z?B72^m-)N>?0ON!!qirHw`b@W8$D*NW$JPyOJb@ z-Ti)GZK4F%ji(rbWiw682)Qw&{I^$VVNOgFx^{Y&?Oh$QO3YyN_2a1>>00ScEKdL2 zoe+P!s=WB%Dh1C}0`zycX_@AL$Op)Sdfz%>iwvn$^^_!biU-69s4%c zs;?;2b}K&6=Eo3xV|@>&#YD^?E~jWgXmZ)6s7=umGq~v5Of29LG(YhaC zFe@1@MOQO=jUAmX&Qc;#Pn6A)coB-g3xHO4EQpAZz@%JS3=P*mTGSFJKV~>8$GPFu z8#DqU^M&dJv=O3i;l;B>r#NlVd3Dncj7@K+_e7Xo1jRV z!||_$miJYZtOZ z`Ax-7YU&N)P{36-WTzOI33aqmuGLT$BKNU##?kHwCpy{^6lxd1W_x#FUdmhGbwFFX{E3noB%fFyQX2zyD8Y6f;-}F z)q}VPTO1$|@n3eWl*{&)jBxo?`7viW7o%(D)|~wf&sVRI)J3vz;|xHe*?@=Ax<`Hy zE*s2UIQ`zPTv&Q)X<$0YhKc}_@bAjQ_Lq-PXc~EOkqp}{%W~mNUABJa3U(*|F54$< zSbw*Jy&FoR6dr%!H0&{U_~jlmVY#ubSk+9DG%GhCe*d1;{%>;p7x~;~>D}jtzj%*4 zkT=J8%Ks`yrNekvat8!`nCcLl&*~n8z0%_Rpv$PeUt#;p1Be_*yk^4wsJK(~lQ|gq z(_GaeigGy?f@4>w$sF+MMT3NV#+@$rOT1O+^f|a+-s*$i@8?13pA8w04E%*xY(L?H z8|aPPcVrlxJ05m5t%ZcL=)>{LX(Gtb#Jf5F;hiIMF=xC8Dkh+4z-X_;-*OD?+$7%N zK1lO`IiL}>fSX$GGwU=a>e!P_;||n@Q-np_EpxFJa|p)!NOpRg$QAn6ouIIMNwoiJ zlArjG5pson=>yC^XbXF`7hWAfTj~&R%KJ?CzP_1YEWe>(oxO=-c`XFv`lhLkkvIc- zP2MmvO(x7iqCf$4DR-#;USF05UV0B4(9A+eln#y5$lk~R7rOxkuzejHOnGs;I@*X0 zCE-H%vk{!0K}PEj{=WjzwBNUgKwI)vmtkUn-dYfkq%}fhHu58du#vxTB{G7p6~BZFScbpq6eI>Q=r|K^J{<@ESR#O0wNn8Rt(2w>|j5_ zg{v~Bqp@A1-3y8u3^Wt{l9nSF3g=Vy9|c;Y6%_+u5HG#YK0$>DgA=UWg#>woV-Lgv zD!~8@x5cgRT7Z@f_j0!BURIUZu~AnIynAQ<)fV}*L5}URu`<*w?$S!Z4ncyF`X}F# z0Xj9J7X)CUyBrfDtsEn*9Pm%iX7&dV(^Eenyyulv7h{of@V%b*oR*PtBCj!}qBn)G zBrMIvgW3bV$QCGF#U;hC_I+Bx%$^)0Tz?m3*)1s&B9JP%L zTTe+C#zoXmq<{8j>5o|RE_&%Wr{QStP+o&SToG^#sw_pop2(`8`ptXUVPB1>ptL;( zti%V!W<-~p0xIMsb~9xhL6;M|x7F&nUk+lbyM-5J-^)kp>9Kf$TI|UF?T5Ec#6^X% zhK8XgvTLNB-_WFbZaPI;RWhy|iRJiB0w482lRZv&W+$)Fx7=jny*x^xCPD3lr@=$- zaeknk6Hf}1hJlrV`Padi05!NkNzd*_Qd3}9)UQm4UqknOJqD4JfiH=OCui(6@&{|? zV2`_pHyi?QX$&bEb`y=(T>k3#$zGCUUR)Bn|A@iCold?WwC=h=XHcVWAgu31;AKJa z*~v2!>QAw1%vDs-n%t_PZ&Wrp_?Y`U1(5)BR8e438b+{ZecE?9#dlsobftzAuHd&s zx!*B@8Sw(%g z$;l|a#e^v+|6pe|CQhR+{{3^WWp+25*eWK_PlC@>t81zZaFfTpMr$*ZUPn@0j=Bay ziv;*+cBCR2`?p&fcZ0^NjMZ{^J!3A30I zLBi?n&Llh-I|7(&p6h)~6WDo6s>jk;uKw_U4ICRpOWNrBFn+jOA{$@+!scxQr-NVi znoaH*rE?R$o5&MevSr*@Ew+FpCY}r zpeVxlW?{_QK1OW5G7aZW;sUS-@+UDrg6_=Wh6V0a#C9n4D(}5JK8J#o{qEc#zqS&; z2|rp;4W z71&v&YC+Y#D`|=A=hqfM(Vqg=kFGwd=Xv&$4}2u#$*Vd$;A!mch{ps&I=I|`tUyRC z&EqO~HBqT>oHl7lrwU0&0t_8ZmV*ZB>zDMTrhtdA*RIqA6ITqJ08vFHc41`3`hkk3 zGLYrN?swvtp?lztPg#Rq$_@70)tK#tOEthY$01IH;LS&p+$sR3CJ#_*N3qkAa4tiq zvMfAm%CRcf#mO65Cp~Fy&)PUAlly6M6Yi3E3IoMsDxWt(K2^B(;oe8Z@J_eWKcoEE z6hi@K4L%c@VIJZ8AfMO+UQ?M|2;tK7bQ2#odlIm&Uu|D)|60Du1sTV z+uE=8rg(OiD5j^-BMXe!JUk_d)X>#V%nuGJwPqGay&3a~VU{N_S}FNa*QE`PTKu~m9?{EL75CHh{8hD2YAIv(nyPDfTD)3b zGa^NXUF zf!czxMW-Vxkg$R4r#Ge96;L&p;g!ktnoA98!V0jTc>_&^?>mw=fd@0EW^XV^f1OR{ zUe1U*3|ipvBR;N4&n&=&e-T@}ka(GLjbQVH93BtaVa`s>N+3&)8zJ%I2AyhR(e1&V zy+49E2?9{fEA6d0dO~Pz@z804`;~%4(9!Orya7|=Xcfw3BKa$5Ub^|5XkNtU{ukJ>%IaYrog}dG4wtZ z%cJpgw>1BiX<(jEc|KBZ3_?yeYQeE@j_M~Wdj|B&zhFJ#UEr0{gLQAOGs9*l=Hm-u zZ|lU{+Cd$CFPh~o4ibC*L0IaS?nn0L;_PJ?iT0*7!WE)YdhmwtYVrXsi%7{t8sYi$ zqUJ|X!`Ve`h#dC%8;B(fQ8O{oxsSSep*aY%vhok{jp|h)o?nyxQ4mB5SesPS1ed!Z zY7YQN9EhMh_xY*GlkFIJO{&hmRsIif!Jl<+C~u_c!y(&D%eA9$Gt*;h&g{RoiwU)# z52-lNQ}&=In@L4hT$cX0nVo9wFpR*t=!QOC^X%9$6Sx@h?cRon5OHu{U_Xe5hGyva zmF|Q{8TTq);7-p%V}|u#b#2)2o?CY)KOe9R#lPh^oxcsJe@ZjucT2#MS^)d4Y%Xa z1F*Y%#xGMKS76$MLxBFfmjA7no^AKJLl`V_2OmelS_BOJnuqPD?FvGf(y=0V&#z-B#QtaZV`}{yu!seHrRuKXBldomMgrx@UXHX}a z>l|d!tq4=UoR-K}a88GCF;D{3<8Or5hD&-DNQG=BwzAzA9TWg5xM{OJW6wK^*@H3D zQiP~~17^9)d^o?|!`*dZ3aFPtLzucs=ADxi`Eb5H;?^K=;^1c-LQjYXqO zZy5UI;DOL!BQ_YeZ^FXT>6hO#rOeEi*EB(&^47KDyjEzR1nMJy)~^K@#JmJ7d+iid zYu!}-HT)i-}QBbq^W;{Ae#M& zAxZeV$2&gDc7*#FmKp872Pfi9!tFNEHs;`a(5oO4Ve%Xhjd<4=rn&A2Lzqzi?PcO{ zPlDV>rXL1|5VMS@3db6rwg5-OYoB6k797Jpt|Dxy&Mw5WODZqWvcPNpY|%ELcrB$G zu@rBMbCfa05l8=SJbR3tQgmnpseEX-^@kjYcy%=+LKcmSkKBr`&=?zmED_R zH&uBF4GocgRyTC(H7Pq+*KE-4-qaPKJ&|v>xI1e-S2RywOqS$! zp((V>Bn{$Pv6Ro6@M3)wL!Z&m*M;W)yGFtrOu?AvQ1{xk|T06zDc1valS+QGwNbd{CS; z79$)G`2Q4NV3vs~wLkmN++eDxLQk8M?f!9D+I?(tv>wprRJBvfzXIhSyr2XMcMT`0 zUg;2X54vU!;9$GM8L3}cx=HpbVY@>cVY_4PB|Sv@IPb~=?G45IThM)=cF?Kp<;t21 zcfDT)uu~vF&T0%pe#GC3K>RSOAv~Z&@vGQ1e{BnNehmrK-)Dx1J5Y!9n|cF+und6` zWmdMZH5dTRaYEo{U{0?+`G;KJ%^eg3Fqn(>fejGvqx6#fTZ*A3)iTzSlO6BWm0wi& zw#0=YTcAm_T3RkOVMAIDn1+3Y_RxBuu!7Q>7p|nS;PclU1v^!ZhGgR%ErS~3nt z_Z~e2itnyR(aqV+vsOo~yBTsTECA_Sr%r5EI;q()iPnmG$!dBU)cG7n))fcKHG)&4n;mpa03&4`rrq(>GVD(1nUh2kVyi3}CLT>#Y~3?B&e z_Im&6EX9p}E8G)h?a{Gq6VDZ9`!k)?WBO@Rf`<1v3jCNFr(Cm*KbV6I_mjk5Z0tGa zPp(y-6M^iQ!bX-b_`yZswebB94N8*v;7|pd3RLNpKg)8vYRS4QpI3RdhJS}32Dk6G zC@xoDa}y0^bPvSsd+AdQMmg^u(C2N#Eu9=+d>cp+;y8*)UF*o_ zwtfrQ4Un6?kZkmW{`vD)9V+gRZ&H7~scxh=G4*iQQZpI*Q+)>YWq^qZ8Vgg1%)dA0 zO|+4C=fs*;(XdrU%~JGikvTh$QYMoC&-O zjicFTTcSP4zK=a%GvwC{Z#cr(WEr*P_P>J5?6X8QeHX}lo`}E5KA!ULrIJ^|K$D;s z<%PWbsU~juaKHu;=YdBboU{c3DM3!JZ!b~ob3uW*;4b1`J}voKPswBENO)BMlBp#f z516L|Ec*6Oslo;?W&}&R^a6LrtGD@96Hr{-`LY~AI9urL$M30f2lF|@mUNkd@g+x; z@`eyoX~oDSZz*6ov*+(bf8qviHiWIe*wmhCa(Y)gDXON^XMtnHKdc3VYz#B;YWhOp zvX(khqLzyuVe0j-@n38?MLz!7#6gMDY?V!ps1_;`YW(rdXO8S zVn3~VFaJl~Oq(>j#vz;$k82CQQhsC4^vB=vlIO5sRGNRy9B;kf20$$WBK(cZL?XS|f+u7E$c9VSaA~Z}|1k3kY8@we~)r=InkPetr9&b@$wn z;<@)fyc+wTUXA|$)!j)lrR;zW+_L=#NbyhVVr|$Aq#>+KBw0a5tBl>PI(Sn<%Q3sk zzoho9v!VragVKy2io>jp8}e2b3y+goTb{WOIoWHU4=*E(Amn@;ND^|P#o!^G@DnWb zr&QyP|9Wb2{7QK7sRQpCk2Nj~`0{Fzzd71+1M4n2cfkyo&Lg&-M%uuuK4<)Z_7(4UHH&bEtG#9-f|`S#m!h8N#GRvVLr56$x6-=d#hoRAtOs?U9at?+JI^qY6XkmT`WG<2|v@R$HwX?Pgh+0k7ts0mq7w zTpribKhcJMAS^}YH0gjX0hfwn7HsH&ddSHouTdOvhOW;@d=*=pZ_|`~e+hgI&sY^& z6#SpdQHQZeA3C>hv^g$>sYvpKp@42ZFx6OI*X+W4*d*9gUyRSI@#bL zyAEeUKRGHzA_crmMr#Z&&oUNS&rA1$@Md1zF2l@lQwLu&y9uwhS7C(JFlHEx zhbuh#j10<&yk;P|nosxh04*hVls;Q%;%ElxbH1;r9DEgpEmb0ro^%KnmK$@FDM;Ht zLyAk8b4Y85V4nY82>78JQFcCxeJENFumJ{EpEg7MK&UHU=E zn$GFzxiw#MHXHISgTs2E%S9>DGGjiOjb0XWVf;R^lMJkJFrCvDltv*zR}neE7rB~* z1|p*goGQHG9}G#g8;A?KADTDh^X0rVX_DAEzr3@e?{(wt&iz97)!3QI_pk#+NL&!| zQ6quYEa9%XwjTkxvvEdeTi=5gdR@3`!(~)YkZCBiJ`~YTWs#)rE zOI15XG7!%mQF6=gG;wn2<4#Upcrtma4>)2rT-S*fR~*A~={?VqDT*A^D7|rJCWmhIqw_bp5VVy5+HW^bg=%&M~Up z9wcDT^gk3W1xoHhc*OpYWHTOb-MfTV{cRmiv-p6?PHZ6VOB=755Z#|}^^&leqo3mS z2^m(m@>%%;M-5JWFVVDv!&NUmIZ7s2xUK<N4TuA$^@hJ5kz z?q{*JcIC2UrFTy;$Xpo6%igO|>2Dgi)39wbeslmj#a&2BEM~IJX?|EK#g~DNQ1;tW zd+sELGsU=%j?i_OO_Ye!QBUj6&)YKSG>n`WRP ltSba#rbH)&uY59oK&k!`i zQCd6QpF5CDEY?ki^7weSN^Iv#?+%_P*hf#@>-ifX2IX8DwyTR;os#GP^|CHs`i%Un+7fyyC?CsGcK; z`7yxeTABjw{(NNRpv?E(BwOI;dA)GQK6wnVu+~-&LzjFQX!twDMn2dZ57(QwA4ZaQ zEIYdI-?NiF38Tc0AXdbEkRY4va}J_hSmcVu-Dmb=uNMqexy z7oT<%k9ZLBq#LiPIGPG<;+;ytmeO}ci>GIetLCMAvkzpbBqa9J*ixOj2MBr%9>Wn} zv>1m!MntP$mw7>s+~M_ubQY%&0fgLg4WX+yhaPs*g1lhQM2QbXfGYzBd$q^p_38u(qv97>8>PCy0lyN_`}Nj}|KEJpWz!P7-j&g+%l{Z_E#YNN*! z!3nC$X}G^aqRp}4fbf98R~t-p$aI)P#IPDm{>iwDV*mHqE2%65sH8}Xd&D0pQj0Va`oOB#XhKJNcH2Iiy%;$@P|tAvhdZVgY;og&-2HT9Vc@UK1U;BojzM3fT6V!#+gf(Il~n>HG)(A z;Dw2h+n^&?&TmF`*lui?u^9MggpR@Of}TdC$d|p#E{Bfwl-p}N@5h`qB>&Gi>__Xj z7$N!DBuL*t2KLhfmk1%Srk%XX*9WfGUln?5E?q+Evni0e;%U|&5JC39E-pfMg#Gd> zhG*N-?#8QI(9Q0KVo*2YIwo{IFT!7v9SCG6a?yATO>Om<{;^%gyEJ5KCv)d4EHon8 zo4s1B57q9C-P*eogzm7OSpOrvVT%uhpq{Z8oX)fx)>l72!3mxn1x#93OIldO_g zgyU44zP94Aw!YZb6!>9a-wg@9);82wh;=#46sG8;b+Fg7FVv;x`}&;$C5zDPxtLbm zBLt?&%F~oc3d`hXXtOi3&8?q+!EF$q#jS`B;X-wBIG=kdn@SMIljUA09P5`(k=#UU|TAw2%_EFZ4ulu znCwPiitFb!XnU{PDXg9$I;OJK>ZTfugf^m|C6SRg(VII?Qic~-#7JtDq0ewJ;dT0ZNS@E_0j)aZOw80q?lS8g0Z6&iepWY>WkPn`fFaEOzo!^jB*vA+y-dP}j*N|(T8dC*=;HQ{6<@H6PaG;O% zA?-J|n?~-I8Xd!IiLSCZqMY#kh?^>DFDRXddzDp(3X1n2LP24Fh8E{*d{;lpu*t(o z4<5a6xQ7{dZTYAe?qPj>`G5-g8U^|v8A`j^UfKUP_SHV%Qd#OwPz7!8b0YkW!n&vb zYb`!tY(*LLMN$8L1NjxC&;FWgbd6mYQ*S8B%tgpBYCn<-cmK0-_*v7ymRCu9!sdX zl(+mZP$7j+Ro-Heb)=PAN()ZDF^!3t@1UN%a)T&#NHdK~_A}D_b9#|tS%`6@qaj1> z+*JTgAax^SPB`H@|K-A|%ob_;q?>|n|5_kE(tgQ4MgHa7$Dw2`L7(MKe#W|>@8w#v zV*?9djy8ah3V>W?crj7#;y4-}CLsNfhcW67t_Ib&YMcgE}uryl&7+x!q931N-^SHGuQE(LoLa}mpkci3t*< zThQu7S!a#s?S{{u#Ydp&B7l6vg3j8Uvqc|0Zo}bQqd7lp1IC8Ts!;%p(ldK{IaXxQ zAP*{OY3nqbWmsG92;=!C-`(tL>NvnW^^vO<^-| z_!hNvA^HK@_Mvs4V<`&?J`#>BS2MlXI$OH-O*Gr(@Ld9r8F_Lsv)%)q-D+^p%qo3i zDC$16$UeOCNqQ5xtI(_}#@!eSY1C#25q=f^}= zLdWnEJa9}ZOQJO$_-4mC2Z~saRF%T%L0Tb6H67?lmMy4RGbgTBA$!V^ba4Q{R1zDB z8RFxqVl{eQJziL_njVBhR&#SEwt4EzsYCuN-l!3@Nt{eMnJwM4(uL>Nj-ql-Hk+VA z4Y`jYt0~kKNg2++hkbqMj>=+W3t}p8BOfXIGZaOIpBZ%?&Dqf;M#1r6j?ssnGZs#$ z0uZ_pek{v+V(NvTWZMj&5RAav8akMY0<)x-wc;L`mz96CFI!E46QL!#>iej=VprVo zjVh%N?3Lr8NCyb7wFN9aIAW9q27O7A1&nS`I&2t)Z-#(KQBE+WntZ=%ju%QdAJ!+G zZWQvK*^jfLe0|L|dDP{?^i`cZkeHEyqIk~TtI`66ZkHqxf#^86S4hC}r?prw=4fq2 z6+zydlR^zdEv*GlwlL*AU^ zLFhf}S_19zGKtq*Mm^!SB2_8p;oA}91={gDx>h}*o_9016T)srei5>+pv!K^2RsG2 z=vW_t$l5>CJ;`NABK`qH{tRt*Zdi!B67}So(LG^!+v9sx(!}3ThsLwMz;|hF$u~a7 zBj1mS^t#to$^Go{0M>dqocVA z{uyQQ{U1~o=meVg$8;S`^?COXtwNLd#5x(TJ<&se!6CzbU-!IxB35N7-1TeR?;=VF>buyi}CEh0(= zD{L&Ej0^xvX=^`MY1%p(qtJUOOHFGc;Gegkl{1P*VxG5ePFDr`UH%&jXx%xUh70mr zQr`*<)(y^4nLy{oBRzUAtR*&oEF}!jljhmQ*#-^McoLUoj@MhP)A75?>EV~ZK}}n3 z9_0ec_k7G5T~5h~J!@hZ@!y=Yur9P2#7_lQ%zFT-G(INXbWf5T(u?+K>ozrKydwJS z_t|kiC!On~iaClc#5btCV<_TNBH18jj9#<}Lw{8dJ-7fC3SGe@v{&{j9U1w#1tgFx zQwZHOjz&V>p;k}LBp%W@15xlAvKb`dv{c8iARPW6!q7-Fm`?sR7&<>Sh`F2nFXzY3 z128}#Prm*ySK?4PXT19jQA(2$3oWR#M>S7-oV+KnMLc1)9S~jn;P1YlF5=dsU*IX=O$D;CVc;M1 zpNkC$ii#?oZJvlz4x@HMr1t}UZw5bpkM{y@^$JMX!nj5Fd9V2etnX)Z0mSWoJRP~y zYjBp4$TbY5^c6iA`2zuaZW)o!QWo#jr#IM#6Xx~%+=92BuyZeYb2r9Uh`V$@3LgHc zle&Kl{Y?`*gE(Bt9iU+hSdW6%=<)adi_+?aZQuu?@cFyJ0&%xJ<~U&fC1oNda2XMB z)Z&~1ABu7~CRqn>|M5*r*oCL;3%lHZ8PiwA5yppYu@1V}^Ozh7os5h3$snmUvBh7c)q+aK9$6r`5 zp6f7c&2>G)mY^5b*cGsUCX2Pl$VPZ0eRfsVm|}cn-&cpJY1KR~LU36L^4PZ6%G?-7Zq%+iMiFGfh;4?_EuvSO~p&Mk=w{`OF zxsI^mkdJff-5;&yr(RjBl%{}a03SFkl1o>wC*@GDI(&F?H^`VT=i8R#VMk-V6{^wq zxgKV3==$>>=ur`s$ng5;hf|ej1u$<*dZ%+YhCDfjU{T1S+0xmUd#-kW%GnUU1h>K- zyiZj=sd6t=2fd&4OrsaGGc3u3_GLU)yyv5wh8PH?VyEZX!SwOn9sq*Xw z_5`Ag{!8d9IGsgtX6+A$TcqW=q<0)eZx7qsinmLHxZ*C3aI^zNx{Dc`R~V7}7q7~# z{kXE2Fo&2;pW}@%wp`@@DeKDPq57gYV~H`0FqjBq5VA!WAzK*PE7`JT&z2=yn1m?1 zQCYK%rVz43T9E8S%Wn!XwhXc*OQHOpDWc||nRnj#o_o%__r1@&cklatYiaC3Z{O%x zr}}i??46Ax6b@y&gqT!|4!!>SsUJ>1$V( zfOQ5yBlnZa&}rF^E+biBj!mEEK;qMlJEFL`(-owHDd(Mu2+;|mChaYnmC+6;%`WnkBIWzga^UH{%04o;0OsvJtjGc@CLZen2-Y#T zI_E9*kDb)bp$-ATT%jX4FqoenZK4O$pkW~4Eppn zc-3?MD}ia1+alIM4CNO>`^jR!%|btsx61u|5vLe^2yV-`Q%KYnuS_+B)jK6Rn&f}fx1Vw|ud|FXZ;w-{n2 zu3&ns&v!CxmA~jjlcuKF^lUmCFxT2H}N=Kl%k_tpl zZ+Uhk6c3i=?f1wb-glW=Xy~ zr=iPz6HuLU-(ahfGKlnEye!PCX&Fgb6%=EK8%u&X#Y$aMQO(6%WIh+oH3`?Mc`3vm zT*R2BqPppSTug$RV>I0Niw7siC~Rh~z|(h)ZHa+RxyvAT!T^=WdFeVm+v{h&Evz5B zVFE%CdZKD`FO*?uJz9~1mKjQQs0NpzsM=AugBHDy4P$;gpYOf3T!?fT zwa9%nTE`^KcVf#%6z%j$6)XaX2qn|2X%~_rAr&_=s(JW=D5W1z>vZs$2)0qlqEFHG zsdi`b@X=68vtDred)`WW;~o@7PeH*AOb`f@CkHTZIWVgjRuX*kj`;WSF*9jecgX&h zD@pDUYP!R?4{4(WjcWH8!~+Fg=XF(r2%dGAE#vhYKipxDjHEfg-t;tf_XF~Ito?rT z&(@vC->w7=DdMmw;U8-A!FN{IXGqG=7Uwx^Xv=9fQ@+H+X=?=PslkRs$2`DSQFzrC z1K-EJ;h1^4k!7fE!#H;^UNSA{Gd7<;9Sl;0gox5RDk3)!iKRBCeD->I>M@iNr^U$THx-;P-y2+*g^Mc=-Ki2sDn7S-v0)&S zSyNpSitc3dqmOr_IJll-#S`gs{ycG54eA{PKN572*mlcfKs!a_8OyDMQwDJY`_}i> ziSEZJr-D&}&glw+6^zP~cJ~W{8|9>Dua7F+ug`sXsi7_DCj+-ZlRHV-`yH-pChdrX zokpT-d`+UI#j%2#oQf*$K{u6|uI#ILTh~W+PE)4_(_E9Y#)3PByv&Yf5K)q*;`nXgi_%{tf62 zH>N_`4`F{{D)NxHy4Ecg^Y=or{zsL=Dvh?7Su_dynKunPfYZb?E$q)Kt4 z>Gf+^h3(q!L4S&OyfB4#I3iOxNrLTzdTssrOMa*llstCg5 zCRNAlJTtq%VquldFSyXgDZ*-AFIRs&Mb0%-b~Yv~qsSR~Q=h&Vld5?0#{B4IvDpK% zIf^Abu(GDlCfp5fCfp}#!10%quNH`wj;#v_%!>TSBwkkhjndjUxm5?I;-KTmP2YXT z=nHb<+Y#2!&t8s4YDpSbNZlVj#MI&n!>BmQEhCV(al(@ckvT_}NsiR}zH#V%6J(tZ zsS^w;e=Fwj=7sLZe13cg_l0!qi#)Er)Agsk<2-)IQf<=Kn|x8U{=uVt-?*?d!{r)G zh&LxH6lwl3L8lBaAD|SPsJWrm%=_gK3^Sp}*=h{O7=JO{&~G7{Y*1~cmY4O!#b8b( zW=YRnZ=(MkB>W|VW=HfQYIqr6Om#UWtumBhCnd5ym5;37TXzuLfNI`vsQ~= z4$P~WoiQ(AA$)u8w)B|pofKZrFkU3Q{N>&1_|pXmQM^}bPG?%O4;dW`d} zrH+9Yb?n5%8(@ux89xzS1sL^emj>&P+E3p1mVz@~>U%0}wAPt=!f0j{mDf$Gi1U5& zZ=ZKo+QdrLxLHI$wvSB@MsUKZ z#Lh|-ShSg`$}l72P#L`w$^T7fB(ps|#j3w#drZA>eMl*f$Kid=Foj}tp*{YauM8{AH8ZenMqaeL zvZCuv7agUGpK6ifJ3E8cDM4uzVIp;J=TECppVDu{8VkOyKbukD*HNYv5BwpLDt7Ti zkeV;I6+C#a;3e!Vk>^S4;a8FD<4imI_RA@B6TftJWG(Lo{cF8N)`Sx+KFi=y38gFY zDb^+WbZ?4XZne+Jzm`zNBVUG=+-s*Ah4534EZl{=KW7qTA37Q<9!Rc#!S{q=LqpzR`@UtM7L9|F11)Xmq&ytN~%tcJ=UkL zy5;a6$EVW#cjIRs6dH-~>DZ;182Tc+^~cWNbaj)s_E?_L}9Ydd^9m{ZB^o-d(4w0McMR>I5z}c{L#@lcBiv(^wSt> zWKC3qmPTRaLBi7D6OhLj+KxD7j##vTszFksjG5l!t{BT~%jR>8tRAP(^hk!&4tksl zO6UOCsR90Inj1_pEZN7OpQBo-?K^OzxsU?pUdX6m$bRhxi-vHFLL&bgyOiP*CpRY3U#a`F=_N{yg@luJW8T`~M_Q)YUXUb#; zaFLCsSxdUDxOcXAu#B3RYgbLi3FH&`Nx6yI|H_X$N?BW5Rss74A>-y z3|4A*Ykjo*FcK8O1Q_7hOT(goAr~+lWyOvNb7Lo2IRF8@U-@nV<_%ITqK07pe0x+k`x&Y%xJy4e7 zHVF8}g8}|aw`jC{JS`k$kLiv z#5fEjAWhzFIgSwgQ|OjdVG&U1OJHf(-e^c{-niDTL$W0x_XO}P0zBpSv@47v2bTK8 zy({pRq8y%*f}#L8AgDd=D6IDQ}Z95F`jSKI;v;)Be z2>mkv{^tDI#^S;~f_H%BpLut+wTDz>+n?N)ZP;%J(@xgBGe}Td(oQ5kEc?!`Fkn}0 zGI>|+j1bU=M8Hs=Mm9h*{}g^~7Pv@elFfdzuw9Ald5L6CA|6>}_pNtII%jtur@z;H zZliGFRE0Ybt~vOwR`#sL+x91y+m8PYVce-HVh#x!d*6I(fn=qi;OgJn`X8G3)Bykh diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 68d3dee..bdc9a83 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.2-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists \ No newline at end of file +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..79a61d4 --- /dev/null +++ b/gradlew @@ -0,0 +1,244 @@ +#!/bin/sh + +# +# Copyright ยฉ 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions ยซ$varยป, ยซ${var}ยป, ยซ${var:-default}ยป, ยซ${var+SET}ยป, +# ยซ${var#prefix}ยป, ยซ${var%suffix}ยป, and ยซ$( cmd )ยป; +# * compound commands having a testable exit status, especially ยซcaseยป; +# * various built-in commands including ยซcommandยป, ยซsetยป, and ยซulimitยป. +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..93e3f59 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/jars/CrazyAuctions-Paper-ef7c6f0.jar b/jars/CrazyAuctions-Paper-ef7c6f0.jar new file mode 100644 index 0000000000000000000000000000000000000000..05d5c7ef13bfba5fe5255772c80814fbbe53edd7 GIT binary patch literal 58284 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 Yq(otWo=pe{0pPz}VhD)!hV$P40rPI8ivR!s literal 0 HcmV?d00001 diff --git a/platforms/paper/build.gradle.kts b/platforms/paper/build.gradle.kts index 6fdd66c..75936b8 100644 --- a/platforms/paper/build.gradle.kts +++ b/platforms/paper/build.gradle.kts @@ -4,6 +4,7 @@ plugins { id("crazyauctions.paper-plugin") alias(settings.plugins.minotaur) + alias(settings.plugins.run.paper) } repositories { @@ -16,8 +17,6 @@ repositories { dependencies { api(project(":crazyauctions-api")) - compileOnly(libs.paper) - compileOnly(libs.crazycore.paper) compileOnly(libs.triumph.gui) @@ -30,35 +29,32 @@ dependencies { } } -val projectDescription = settings.versions.projectDescription.get() -val projectGithub = settings.versions.projectGithub.get() -val projectGroup = settings.versions.projectGroup.get() -val projectName = settings.versions.projectName.get() -val projectExt = settings.versions.projectExtension.get() +val github = settings.versions.github.get() +val extension = settings.versions.extension.get() -val isBeta = settings.versions.projectBeta.get().toBoolean() +val beta = settings.versions.beta.get().toBoolean() -val projectVersion = settings.versions.projectVersion.get() - -val finalVersion = if (isBeta) "$projectVersion+Beta" else projectVersion - -val type = if (isBeta) "beta" else "release" +val type = if (beta) "beta" else "release" tasks { shadowJar { - archiveFileName.set("${projectName}+Paper+$finalVersion.jar") + fun reloc(pkg: String) = relocate(pkg, "${rootProject.group}.dependency.$pkg") - listOf( - "org.bstats" - ).forEach { relocate(it, "$projectGroup.library.$it") } + reloc("de.tr7zw.changeme.nbtapi") + reloc("org.bstats") + reloc("dev.triumphteam.cmd") + } + + runServer { + minecraftVersion("1.19.4") } modrinth { token.set(System.getenv("MODRINTH_TOKEN")) - projectId.set(projectName.lowercase()) + projectId.set(rootProject.name.lowercase()) - versionName.set("$projectName $finalVersion") - versionNumber.set(finalVersion) + versionName.set("${rootProject.name} ${rootProject.version}") + versionNumber.set(rootProject.version.toString()) versionType.set(type) @@ -66,17 +62,26 @@ tasks { autoAddDependsOn.set(true) - gameVersions.addAll(listOf("1.19, 1.19.1, 1.19.2, 1.19.3")) + gameVersions.addAll( + listOf( + "1.19", + "1.19.1", + "1.19.2", + "1.19.3", + "1.19.4" + ) + ) loaders.addAll(listOf("paper", "purpur")) - //

The first release for CrazyAuctions on Modrinth! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰


If we want a header. + //

The first release for CrazyCrates on Modrinth! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰


If we want a header. changelog.set( """

Changes:

-

N/A

+

Added 1.19.4 support

+

Removed 1.18.2 and below support

Under the hood changes

-

N/A

+

Simplified build script

Bug Fixes:

N/A

""".trimIndent() @@ -84,12 +89,13 @@ tasks { } processResources { - filesMatching("paper-plugin.yml") { + filesMatching("plugin.yml") { expand( - "name" to projectName, - "group" to projectGroup, - "version" to finalVersion, - "description" to projectDescription + "name" to rootProject.name, + "group" to rootProject.group, + "version" to rootProject.version, + "description" to rootProject.description, + "website" to "https://modrinth.com/$extension/${rootProject.name.lowercase()}" ) } } @@ -97,24 +103,18 @@ tasks { publishing { repositories { - val repo = if (isBeta) "beta" else "releases" + val repo = if (beta) "beta" else "releases" maven("https://repo.crazycrew.us/$repo") { name = "crazycrew" - // Used for locally publishing. - // credentials(PasswordCredentials::class) - - credentials { - username = System.getenv("REPOSITORY_USERNAME") - password = System.getenv("REPOSITORY_PASSWORD") - } + credentials(PasswordCredentials::class) } } publications { create("maven") { - groupId = projectGroup - artifactId = "${projectName.lowercase()}-${projectDir.name}" - version = finalVersion + groupId = rootProject.group.toString() + artifactId = "${rootProject.name.lowercase()}-api" + version = rootProject.version.toString() from(components["java"]) } diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/CrazyAuctions.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/CrazyAuctions.java index 743c5ea..5f30c08 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/CrazyAuctions.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/CrazyAuctions.java @@ -1,22 +1,12 @@ package us.crazycrew.crazyauctions; import org.bukkit.plugin.java.JavaPlugin; -import org.jetbrains.annotations.NotNull; import us.crazycrew.crazyauctions.storage.StorageManager; -import us.crazycrew.crazycore.CrazyLogger; import us.crazycrew.crazycore.paper.PaperCore; import java.io.File; import java.nio.file.Path; -import java.util.logging.Logger; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/28/2023 - * Time: 1:25 AM - * Last Edited: 2/28/2023 @ 3:13 AM - * * Description: The java plugin instance of our plugin where we handle post world startup tasks. */ public class CrazyAuctions extends JavaPlugin { @@ -36,18 +26,11 @@ public class CrazyAuctions extends JavaPlugin { this.users = new File(paperCore.getDirectory() + "/userdata"); - if (users.mkdir()) CrazyLogger.info("Created the folder " + users.getName() + "."); - } - - @Override - public @NotNull Logger getLogger() { - return CrazyLogger.getLogger(); + if (users.mkdir()) getLogger().info("Created the folder " + users.getName() + "."); } @Override public void onEnable() { - // Enable the player registry. - getCrazyCore().createPlayerRegistry(this); this.storageManager = new StorageManager(); } diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/Currency.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/Currency.java index 02e7fc0..cee3f48 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/Currency.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/Currency.java @@ -1,13 +1,6 @@ package us.crazycrew.crazyauctions.api.economy; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when an item is added to an auction house. */ public enum Currency { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/CurrencyAPI.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/CurrencyAPI.java index 9603511..0e00e15 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/CurrencyAPI.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/CurrencyAPI.java @@ -6,13 +6,6 @@ import org.bukkit.entity.Player; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Defines what currency to use. */ public class CurrencyAPI { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/vault/VaultSupport.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/vault/VaultSupport.java index cf7c10a..3c33a28 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/vault/VaultSupport.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/economy/vault/VaultSupport.java @@ -5,13 +5,6 @@ import net.milkbowl.vault.economy.Economy; import org.bukkit.plugin.RegisteredServiceProvider; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Vault support related code. */ public class VaultSupport { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/enums/PluginSupport.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/enums/PluginSupport.java index 0216905..8461d9b 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/enums/PluginSupport.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/enums/PluginSupport.java @@ -8,13 +8,6 @@ import java.util.List; import java.util.Map; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Handles all our plugin support. */ public class PluginSupport { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionAddEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionAddEvent.java index 2f55b3f..fbf5590 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionAddEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionAddEvent.java @@ -11,13 +11,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when an item is added to an auction house. */ public class AuctionAddEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBidEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBidEvent.java index 03572b5..778d6cb 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBidEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBidEvent.java @@ -9,13 +9,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when a player bids on an auction. */ public class AuctionBidEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBuyEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBuyEvent.java index eb482e6..f980eff 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBuyEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionBuyEvent.java @@ -10,13 +10,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when a player buys an item. */ public class AuctionBuyEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionCancelEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionCancelEvent.java index 6bf8fab..3396192 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionCancelEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionCancelEvent.java @@ -10,13 +10,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when an auction is cancelled. */ public class AuctionCancelEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionExpireEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionExpireEvent.java index 50ff843..d787c9b 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionExpireEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionExpireEvent.java @@ -9,13 +9,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when an auction expires. */ public class AuctionExpireEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionListEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionListEvent.java index 749960b..2c3d515 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionListEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionListEvent.java @@ -10,13 +10,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when a player lists an item. */ public class AuctionListEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionWinEvent.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionWinEvent.java index 56c1f9b..debd498 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionWinEvent.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/events/AuctionWinEvent.java @@ -10,13 +10,6 @@ import org.jetbrains.annotations.NotNull; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: This event is fired when an auction has a winner. */ public class AuctionWinEvent extends Event { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/enums/AuctionType.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/enums/AuctionType.java index 739a10d..2a47143 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/enums/AuctionType.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/enums/AuctionType.java @@ -1,13 +1,6 @@ package us.crazycrew.crazyauctions.api.manager.enums; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Defines the auction type to use */ public enum AuctionType { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/interfaces/AuctionItem.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/interfaces/AuctionItem.java index 6861835..cc1421c 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/interfaces/AuctionItem.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/interfaces/AuctionItem.java @@ -5,13 +5,6 @@ import org.bukkit.inventory.ItemStack; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Defines the auction type to use */ public interface AuctionItem { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionButtons.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionButtons.java index f97bba8..82846ac 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionButtons.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionButtons.java @@ -5,13 +5,6 @@ import org.bukkit.configuration.file.FileConfiguration; import us.crazycrew.crazycore.paper.items.ItemBuilder; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the auction buttons */ public class AuctionButtons { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionCategory.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionCategory.java index 79cf6d4..9593002 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionCategory.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionCategory.java @@ -5,13 +5,6 @@ import us.crazycrew.crazycore.paper.items.ItemBuilder; import java.util.List; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the auction categories */ public class AuctionCategory { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionHouse.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionHouse.java index 522545d..4d447e8 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionHouse.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/AuctionHouse.java @@ -15,13 +15,6 @@ import java.util.UUID; import java.util.stream.Collectors; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the main auction house menu */ public class AuctionHouse { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/InventorySettings.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/InventorySettings.java index 9f4e87b..997a44e 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/InventorySettings.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/InventorySettings.java @@ -3,13 +3,6 @@ package us.crazycrew.crazyauctions.api.manager.objects; import org.bukkit.configuration.file.FileConfiguration; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the auction house inventory settings */ public class InventorySettings { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/BiddingAuction.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/BiddingAuction.java index 2808a6c..8d00ffb 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/BiddingAuction.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/BiddingAuction.java @@ -6,13 +6,6 @@ import org.bukkit.inventory.ItemStack; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the bidding auction type */ public class BiddingAuction implements AuctionItem { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/SellingAuction.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/SellingAuction.java index f469105..3bb9aa8 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/SellingAuction.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/api/manager/objects/auctiontype/SellingAuction.java @@ -7,13 +7,6 @@ import org.bukkit.inventory.ItemStack; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/19/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Creates the selling auction type */ public class SellingAuction implements AuctionItem { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/commands/Permissions.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/commands/Permissions.java index a161a4c..76455a1 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/commands/Permissions.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/commands/Permissions.java @@ -10,13 +10,6 @@ import java.util.EnumSet; import java.util.HashMap; /** - * @author RyderBelserion - * @author BadBones69 - * - * Date: 3/4/2023 - * Time: 10:22 PM - * Last Edited: 3/4/2023 @ 10:22 PM - * * Description: The permissions */ public enum Permissions implements Universal { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsLoader.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsLoader.java index 728a552..074f9b9 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsLoader.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsLoader.java @@ -9,13 +9,6 @@ import org.eclipse.aether.repository.RemoteRepository; import org.jetbrains.annotations.NotNull; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/28/2023 - * Time: 1:25 AM - * Last Edited: 2/28/2023 @ 3:13 AM - * * Description: The class path resolver where we download dependencies at run-time */ @SuppressWarnings("UnstableApiUsage") @@ -25,16 +18,17 @@ public class AuctionsLoader implements PluginLoader { public void classloader(@NotNull PluginClasspathBuilder classpathBuilder) { MavenLibraryResolver resolver = new MavenLibraryResolver(); - resolver.addDependency(new Dependency(new DefaultArtifact("us.crazycrew.crazycore:crazycore-paper:1.1.0.0"), null)); + resolver.addDependency(new Dependency(new DefaultArtifact("us.crazycrew.crazycore:crazycore-paper:618b89a"), null)); // Configs resolver.addDependency(new Dependency(new DefaultArtifact("ch.jalu:configme:1.3.0"), null)); resolver.addDependency(new Dependency(new DefaultArtifact("me.carleslc.Simple-YAML:Simple-Yaml:1.8.3"), null)); - // TriumphTeam + // TriumphTeam. resolver.addDependency(new Dependency(new DefaultArtifact("dev.triumphteam:triumph-gui:3.1.2"), null)); resolver.addDependency(new Dependency(new DefaultArtifact("dev.triumphteam:triumph-cmd-bukkit:2.0.0-SNAPSHOT"), null)); + // Repositories resolver.addRepository(new RemoteRepository.Builder("maven2", "default", "https://repo1.maven.org/maven2").build()); resolver.addRepository(new RemoteRepository.Builder("crazycrew-libraries", "default", "https://repo.crazycrew.us/libraries").build()); resolver.addRepository(new RemoteRepository.Builder("triumphteam-snapshots", "default", "https://repo.triumphteam.dev/snapshots/").build()); diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsStarter.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsStarter.java index 786eb07..f11e964 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsStarter.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/loader/AuctionsStarter.java @@ -11,22 +11,12 @@ import us.crazycrew.crazyauctions.configurations.ConfigSettings; import us.crazycrew.crazyauctions.configurations.LocaleSettings; import us.crazycrew.crazyauctions.configurations.PluginSettings; import us.crazycrew.crazyauctions.configurations.migrations.PluginMigrationService; -import us.crazycrew.crazyauctions.utils.FileUtils; -import us.crazycrew.crazycore.CrazyLogger; -import us.crazycrew.crazycore.paper.PaperConsole; import us.crazycrew.crazycore.paper.PaperCore; -import us.crazycrew.crazycore.paper.player.PaperPlayerRegistry; +import us.crazycrew.crazycore.utils.FileUtils; + import java.io.File; -import java.util.logging.LogManager; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/28/2023 - * Time: 1:25 AM - * Last Edited: 3/4/2023 @ 10:23 PM - * * Description: The starter class that thanks to paper is run directly at server startup and allows us to pass variables through the plugin class. */ @SuppressWarnings("UnstableApiUsage") @@ -40,7 +30,7 @@ public class AuctionsStarter implements PluginBootstrap { @Override public void bootstrap(@NotNull PluginProviderContext context) { - this.paperCore = new PaperCore(context.getConfiguration().getName(), context.getDataDirectory()); + this.paperCore = new PaperCore(context.getDataDirectory()); pluginConfig = SettingsManagerBuilder .withYamlFile(new File(context.getDataDirectory().toFile(), "plugin-settings.yml")) @@ -55,22 +45,7 @@ public class AuctionsStarter implements PluginBootstrap { @Override public @NotNull JavaPlugin createPlugin(@NotNull PluginProviderContext context) { - // Create the player registry. - this.paperCore.setPaperPlayerRegistry(new PaperPlayerRegistry()); - - // Create the console instance. - this.paperCore.setPaperConsole(new PaperConsole()); - - // Set the project prefix. - this.paperCore.setProjectPrefix(getPluginConfig().getProperty(PluginSettings.CONSOLE_PREFIX)); - - // Set the logger name and create it. - CrazyLogger.setName(this.paperCore.getProjectName()); - - // Add the logger manager. - LogManager.getLogManager().addLogger(CrazyLogger.getLogger()); - - FileUtils.extract("/locale", context.getDataDirectory(), false, getPluginConfig().getProperty(PluginSettings.VERBOSE_LOGGING)); + FileUtils.extract("/locale", context.getDataDirectory(), false); locale = SettingsManagerBuilder .withYamlFile(new File(context.getDataDirectory().toFile() + "/locale/", pluginConfig.getProperty(PluginSettings.LOCALE_FILE))) diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/StorageManager.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/StorageManager.java index 4fefa46..552a2d1 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/StorageManager.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/StorageManager.java @@ -9,13 +9,6 @@ import java.nio.file.Path; import java.util.UUID; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/28/2023 - * Time: 3:04 AM - * Last Edited: 2/28/2023 @ 3:11 AM - * * Description: Handles player data for auctions. */ public class StorageManager implements Universal, UserCache { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/data/PlayerData.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/data/PlayerData.java index 7c2fecc..e8a9809 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/data/PlayerData.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/storage/data/PlayerData.java @@ -3,6 +3,8 @@ package us.crazycrew.crazyauctions.storage.data; import com.google.gson.annotations.Expose; import us.crazycrew.crazyauctions.api.interfaces.Universal; import us.crazycrew.crazycore.files.FileExtension; +import us.crazycrew.crazycore.files.enums.FileType; + import java.util.UUID; import java.util.concurrent.ConcurrentHashMap; @@ -22,7 +24,7 @@ public class PlayerData extends FileExtension implements Universal { public static ConcurrentHashMap auctions = new ConcurrentHashMap<>(); public PlayerData(UUID uuid) { - super(uuid + ".json", plugin.getUsers()); + super(uuid + ".json", plugin.getUsers(), FileType.YAML); } public static void load(UUID uuid) { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/ItemUtils.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/ItemUtils.java index fb3d9a7..9591eda 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/ItemUtils.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/ItemUtils.java @@ -3,13 +3,6 @@ package us.crazycrew.crazyauctions.utils; import us.crazycrew.crazycore.paper.items.ItemBuilder; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 2/28/2023 @ 3:04 AM - * * Description: Item utilities. */ public class ItemUtils { diff --git a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/misc/ColorUtils.java b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/misc/ColorUtils.java index 6646aba..ba08346 100644 --- a/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/misc/ColorUtils.java +++ b/platforms/paper/src/main/java/us/crazycrew/crazyauctions/utils/misc/ColorUtils.java @@ -10,13 +10,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * @author RyderBelserion - * @author BadBones69 - * - * Created: 2/18/2023 - * Time: Unknown - * Last Edited: 3/4/2023 @ 11:15 PM - * * Description: Color utilities. */ public class ColorUtils implements Universal { diff --git a/settings.gradle.kts b/settings.gradle.kts index 4317fa3..5cd3d44 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,8 +1,4 @@ -@file:Suppress("UnstableApiUsage") - dependencyResolutionManagement { - includeBuild("build-src") - versionCatalogs { create("settings") { from(files("gradle/settings.versions.toml")) @@ -19,12 +15,11 @@ pluginManagement { } } +rootProject.name = "CrazyAuctions" + val lowerCase = rootProject.name.lowercase() -include("api") -project(":api").name = "$lowerCase-api" - -listOf("platforms").forEach(::includeProject) +listOf("api").forEach(::includeProject) listOf("paper").forEach(::includePlatform) @@ -55,13 +50,6 @@ fun includePlatformModule(name: String, platform: String) { } } -fun includeDiscordType(name: String) { - include(name) { - this.name = "$lowerCase-$name" - this.projectDir = file("platforms/discord/$name") - } -} - fun include(name: String, block: ProjectDescriptor.() -> Unit) { include(name) project(":$name").apply(block)