From 59f699dacf65582b7f58fc96501c4a5312f2724d Mon Sep 17 00:00:00 2001 From: GCJOJO <39382270+GCJOJO@users.noreply.github.com> Date: Wed, 3 Jun 2026 23:26:38 +0200 Subject: [PATCH 1/9] Implementation of Blablalib To test this publish Blablalib to mavenLocal --- build.gradle | 48 +-- gradle.properties | 8 +- settings.gradle | 1 + .../fr/gcjojo/worldscolliding/ModEntry.java | 3 + .../client/gui/DialogueScreen.java | 352 ------------------ ...{DialogueCommand.java => ModCommands.java} | 35 +- .../dialogues/DialogueAction.java | 23 -- .../dialogues/DialogueChoice.java | 86 ----- .../dialogues/DialogueClear.java | 63 ---- .../dialogues/DialogueCredit.java | 208 ----------- .../dialogues/DialogueExecuteCommand.java | 50 --- .../dialogues/DialogueFading.java | 98 ----- .../dialogues/DialogueImage.java | 110 ------ .../dialogues/DialogueMessage.java | 95 ----- .../dialogues/DialogueMoveImage.java | 100 ----- .../dialogues/DialogueNext.java | 37 -- .../dialogues/DialogueRawAction.java | 33 -- .../dialogues/DialogueSpeaker.java | 76 ---- .../dialogues/DialogueWait.java | 46 --- .../worldscolliding/entity/ScourgeEntity.java | 26 +- .../worldscolliding/events/ModEvents.java | 48 +++ .../worldscolliding/network/ModNetwork.java | 42 +-- 22 files changed, 116 insertions(+), 1472 deletions(-) delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/client/gui/DialogueScreen.java rename src/main/java/fr/gcjojo/worldscolliding/commands/{DialogueCommand.java => ModCommands.java} (88%) delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueAction.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueChoice.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueClear.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueCredit.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueExecuteCommand.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueFading.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueImage.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueMessage.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueMoveImage.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueNext.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueRawAction.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueSpeaker.java delete mode 100644 src/main/java/fr/gcjojo/worldscolliding/dialogues/DialogueWait.java diff --git a/build.gradle b/build.gradle index 2b96242..e36a06b 100644 --- a/build.gradle +++ b/build.gradle @@ -4,6 +4,11 @@ plugins { id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'org.spongepowered.mixin' version '0.7.+' + id 'architectury-plugin' version '3.4-SNAPSHOT' +} + +architectury { + minecraft = project.minecraft_version } version = mod_version @@ -115,17 +120,7 @@ sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { // Put repositories for dependencies here // ForgeGradle automatically adds the Forge maven and Maven Central for you - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver - flatDir { - dir 'libs' - } - maven - { - url = uri("https://maven.bai.lol") - } - + mavenLocal() maven { name = 'GeckoLib' @@ -136,11 +131,10 @@ repositories { } } - dependencies { - implementation fg.deobf("software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}") - implementation("com.eliotlash.mclib:mclib:20") + maven { + name = "CurseMaven" + url 'https://cursemaven.com' } - } dependencies { @@ -151,16 +145,11 @@ dependencies { // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" - // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings - // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") + implementation fg.deobf("software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}") + implementation("com.eliotlash.mclib:mclib:20") - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - //implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + implementation fg.deobf("dev.architectury:architectury-forge:${architectury_api_version}") + implementation fg.deobf("io.github.gcjojo:blablalib-forge:${blablalib_version}") // For more info: // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html @@ -211,16 +200,7 @@ tasks.named('jar', Jar).configure { // Example configuration to allow publishing using the maven-publish plugin publishing { - publications { - register('mavenJava', MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } - } + } tasks.withType(JavaCompile).configureEach { diff --git a/gradle.properties b/gradle.properties index 2147373..cf2ffac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,6 @@ org.gradle.jvmargs=-Xmx8G org.gradle.daemon=false - ## Environment Properties # The Minecraft version must agree with the Forge version to get a valid artifact @@ -18,6 +17,11 @@ forge_version=47.4.10 forge_version_range=[47,) # The loader version range can only use the major version of Forge/FML as bounds loader_version_range=[47,) + +architectury_api_version=9.2.14 +blablalib_file_id=8192430 +blablalib_version=1.0.2 + # The mapping channel to use for mappings. # The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. # Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. @@ -48,7 +52,7 @@ mod_name=World's Colliding # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=1.1.6 +mod_version=1.2.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/settings.gradle b/settings.gradle index e693003..608f44a 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,6 +2,7 @@ pluginManagement { repositories { gradlePluginPortal() maven { url = 'https://repo.spongepowered.org/repository/maven-public/' } + maven { url "https://maven.architectury.dev/" } maven { name = 'MinecraftForge' url = 'https://maven.minecraftforge.net/' diff --git a/src/main/java/fr/gcjojo/worldscolliding/ModEntry.java b/src/main/java/fr/gcjojo/worldscolliding/ModEntry.java index 1df3a15..2862d74 100644 --- a/src/main/java/fr/gcjojo/worldscolliding/ModEntry.java +++ b/src/main/java/fr/gcjojo/worldscolliding/ModEntry.java @@ -7,6 +7,7 @@ import fr.gcjojo.worldscolliding.entity.AwakenedScourgeEntity; import fr.gcjojo.worldscolliding.entity.ModEntities; import fr.gcjojo.worldscolliding.entity.ScourgeEntity; +import fr.gcjojo.worldscolliding.events.ModEvents; import fr.gcjojo.worldscolliding.items.ModItems; import fr.gcjojo.worldscolliding.network.ModNetwork; import fr.gcjojo.worldscolliding.worldgen.dimension.ModDimensions; @@ -62,6 +63,8 @@ public ModEntry(FMLJavaModLoadingContext context) MinecraftForge.EVENT_BUS.register(this); context.registerConfig(ModConfig.Type.COMMON, Config.SPEC); + + ModEvents.registerBlablaLibEvents(); } public static Logger getLogger() { return LOGGER; } diff --git a/src/main/java/fr/gcjojo/worldscolliding/client/gui/DialogueScreen.java b/src/main/java/fr/gcjojo/worldscolliding/client/gui/DialogueScreen.java deleted file mode 100644 index 88e9871..0000000 --- a/src/main/java/fr/gcjojo/worldscolliding/client/gui/DialogueScreen.java +++ /dev/null @@ -1,352 +0,0 @@ -package fr.gcjojo.worldscolliding.client.gui; - -import fr.gcjojo.worldscolliding.ModEntry; -import com.google.gson.Gson; -import com.google.gson.JsonObject; -import fr.gcjojo.worldscolliding.dialogues.*; -import fr.gcjojo.worldscolliding.network.ModNetwork; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiGraphics; -import net.minecraft.client.gui.components.Button; -import net.minecraft.client.gui.screens.Screen; -import net.minecraft.network.chat.Component; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.FastColor; -import net.minecraft.util.Mth; -import org.jetbrains.annotations.NotNull; - -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class DialogueScreen extends Screen { - private List dialogueActions; - private int actionIndex = -1; - private List dialogueSpeakers; - - private String currentSet; - - private final List currentActions = new ArrayList<>(); - - private boolean advanceDialogueAtTickEnd = false; - private String queuedNextSet = null; - - private float currentFadingTime = -1.0f; - private static final float endFade = 7.5f; - - private boolean guiVisible = true; - - private final List