diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d226e2cbc4..93afe4dcc2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,7 +40,7 @@ jobs: - uses: actions/upload-artifact@v4 with: name: artifacts - path: build/libs/*.jar + path: fabric/build/libs/*.jar - name: stop daemon run: ./gradlew --stop \ No newline at end of file diff --git a/.github/workflows/deploy_all.yml b/.github/workflows/deploy_all.yml index 2e6f06cd33..616e4856a2 100644 --- a/.github/workflows/deploy_all.yml +++ b/.github/workflows/deploy_all.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/upload-artifact@v4 with: name: artifacts - path: build/libs/*.jar + path: fabric/build/libs/*.jar - name: stop daemon run: ./gradlew --stop \ No newline at end of file diff --git a/.github/workflows/deploy_curseforge.yml b/.github/workflows/deploy_curseforge.yml index 4cad9bd5e3..7366700bc2 100644 --- a/.github/workflows/deploy_curseforge.yml +++ b/.github/workflows/deploy_curseforge.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/upload-artifact@v4 with: name: artifacts - path: build/libs/*.jar + path: fabric/build/libs/*.jar - name: stop daemon run: ./gradlew --stop \ No newline at end of file diff --git a/.github/workflows/deploy_modrinth.yml b/.github/workflows/deploy_modrinth.yml index c10d45a65d..5aa0c36ab2 100644 --- a/.github/workflows/deploy_modrinth.yml +++ b/.github/workflows/deploy_modrinth.yml @@ -44,7 +44,7 @@ jobs: - uses: actions/upload-artifact@v4 with: name: artifacts - path: build/libs/*.jar + path: fabric/build/libs/*.jar - name: stop daemon run: ./gradlew --stop \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a4ffa92b6c..7256ccfe6f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,10 @@ import com.diffplug.gradle.spotless.SpotlessExtension +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar import com.hypherionmc.modfusioner.plugin.FusionerExtension import xyz.wagyourtail.jvmdg.gradle.task.files.DowngradeFiles import xyz.wagyourtail.replace_str.ProcessClasses import xyz.wagyourtail.unimined.api.UniminedExtension +import xyz.wagyourtail.unimined.api.minecraft.patch.fabric.FabricLikePatcher import xyz.wagyourtail.unimined.api.minecraft.task.RemapJarTask import java.time.LocalDateTime import java.time.ZoneOffset @@ -106,6 +108,9 @@ subprojects { } repositories { + flatDir { + dirs("$rootDir/libs") + } mavenLocal() mavenCentral() // ModLoader Mavens @@ -154,121 +159,32 @@ subprojects { extensions.getByType().minecraft(sourceSets.getByName("main"), true) { side(if (isJarMod) "client" else "combined") - version(mcVersion) + version("empty-$mcVersion") - mappings { - val mcMappings = "mc_mappings"()!! - when (mcMappingsType) { - "mcp" -> { - if (!isJarMod) { - searge() - } - mcp(if (isJarMod) "legacy" else "stable", mcMappings) { - if (!isJarMod) { - clearOutputs() - outputs("mcp", true) { listOf("intermediary") } - } - } - } - - "forgeMCP" -> { - forgeBuiltinMCP("forge_version"()!!) { - clearContains() - clearOutputs() - contains({ _, t -> - !t.contains("MCP") - }) { - onlyExistingSrc() - outputs("searge", false) { listOf("official") } - } - contains({ _, t -> - t.contains("MCP") - }) { - outputs("mcp", true) { listOf("intermediary") } - sourceNamespace("searge") - } - } - officialMappingsFromJar { - clearContains() - clearOutputs() - outputs("official", false) { listOf() } - } - } - - "retroMCP" -> { - retroMCP(mcMappings) - } - - "yarn" -> { - yarn(mcMappings) - } - - "mojmap" -> { - mojmap { - skipIfNotIn("intermediary") - } - } - - "parchment" -> { - mojmap { - skipIfNotIn("intermediary") - } - parchment(mcVersion, mcMappings) - } - - else -> throw GradleException("Unknown or Unsupported Mappings version") + defaultRemapJar = false + val fabricData: FabricLikePatcher.() -> Unit = { + if (accessWidenerFile.exists()) { + accessWidener(accessWidenerFile) } - - // Only use Intermediaries on Versions that support it - val usingIntermediary = (isLegacy && protocol >= 39) || !isLegacy - if (usingIntermediary) { - if (extIsModern) { - intermediary() - } else { - legacyIntermediary() - } + loader("fabric_loader_version"()!!) + if (isJarMod) { + prodNamespace("official") + devMappings = null } - - // ability to add custom mappings - val target = if (!extIsModern) "mcp" else "mojmap" - stub.withMappings("searge", target) { - c("ModLoader", "net/minecraft/src/ModLoader", "net/minecraft/src/ModLoader") - c("BaseMod", "net/minecraft/src/BaseMod", "net/minecraft/src/BaseMod") - // Fix: Fixed an inconsistent mapping in 1.16 and 1.16.1 between MCP and Mojmap - if (!isLegacy && (protocol == 735 || protocol == 736)) { - c( - "dng", - listOf( - "net/minecraft/client/gui/widget/Widget", - "net/minecraft/client/gui/components/AbstractWidget" - ) - ) { - m("e", "()I", "func_238483_d_", "getHeightRealms") - } - } - } - - if (isMCPJar) { - if (protocol <= 2) { // MC a1.1.2_01 and below - devNamespace("searge") - } else { - devFallbackNamespace("searge") - } - } else if (usingIntermediary) { - devFallbackNamespace("intermediary") + customIntermediaries = true + } + if (isModern) { + fabric(fabricData) + } else { + merged { + legacyFabric(fabricData) + jarMod {} } + } - if (shouldDowngrade) { - val apiVersion = if (buildVersion.isJava7) JavaVersion.VERSION_1_8 else buildVersion - runs.config("client") { - val downgradeClient = tasks.create("downgradeClient", DowngradeFiles::class.java) { - inputCollection = sourceSet.output.classesDirs + sourceSet.runtimeClasspath - classpath = project.files() - } - launchClasspath = downgradeClient.outputCollection + files(jvmdg.getDowngradedApi(apiVersion)) - runFirst.add(downgradeClient) - } - } + mappings { + devNamespace("official") + devFallbackNamespace("official") } minecraftRemapper.config { @@ -350,9 +266,7 @@ subprojects { jvmdg.debugSkipStubs.add(JavaVersion.VERSION_1_8) } - val remapJar = tasks.getByName("remapJar") { - destinationDirectory = temporaryDir - } + val remapJar = tasks.getByName("shadowJar") tasks.getByName("assemble").dependsOn("shadeDowngradedApi") tasks.downgradeJar { diff --git a/common/build.gradle.kts b/common/build.gradle.kts index b6ac59e4d5..f179828fef 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,4 +1,3 @@ -import xyz.wagyourtail.unimined.api.minecraft.patch.fabric.FabricLikePatcher import java.util.regex.Pattern plugins { @@ -26,21 +25,7 @@ val mcVersionLabel: String by extra val fileFormat: String by extra unimined.minecraft { - defaultRemapJar = false - if (!isJarMod) { - val fabricData: FabricLikePatcher.() -> Unit = { - if (accessWidenerFile.exists()) { - accessWidener(accessWidenerFile) - } - loader("fabric_loader_version"()!!) - customIntermediaries = true - } - if (isModern) { - fabric(fabricData) - } else { - legacyFabric(fabricData) - } - } + // N/A } val shadeOnly: Configuration by configurations.creating @@ -51,6 +36,8 @@ configurations.implementation.get().extendsFrom(shade) configurations.runtimeOnly.get().extendsFrom() dependencies { + "jarMod"("local:nsss:${"forge_version"()}") + // Legacy Dependencies, based on Protocol Version if (isLegacy) { if (protocol <= 61) { // MC 1.5.2 and below @@ -238,7 +225,7 @@ tasks.register("generateMyResources") { // Setup Name Schema for Uploading val archiveName = "mod_name"()!! -var targetFile = file("$rootDir/build/libs/$fileFormat.jar") +var targetFile = file("$rootDir/fabric/build/libs/$fileFormat-dev-shadow.jar") if (!targetFile.exists() && (isJarMod)) { // Fallback to an alternative Sub-Project Output when in a Jar Mod configuration and the target file isn't there targetFile = file("$rootDir/$fmlName/build/libs/$fileFormat-$fmlName.jar") diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/CraftPresence.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/CraftPresence.java index e84e008875..f4035f6abf 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/CraftPresence.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/CraftPresence.java @@ -35,13 +35,11 @@ import com.gitlab.cdagaming.craftpresence.utils.server.ServerUtils; import com.gitlab.cdagaming.craftpresence.utils.world.BiomeUtils; import com.gitlab.cdagaming.craftpresence.utils.world.DimensionUtils; +import com.mojang.minecraft.Minecraft; +import com.mojang.minecraft.entity.EntityPlayer; +import com.mojang.minecraft.util.Session; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import io.github.cdagaming.unicore.utils.*; -import net.minecraft.client.Minecraft; -import net.minecraft.src.EntityPlayer; -import net.minecraft.src.Session; -import net.minecraft.src.ThreadSleepForever; -import net.minecraft.src.UnexpectedThrowable; /** * The Primary Application Class and Utilities @@ -196,7 +194,7 @@ private void scheduleTick() { */ private void clientTick() { if (!Constants.IS_GAME_CLOSING) { - instance = getMinecraftInstance(); + instance = Minecraft.getMinecraft(); if (initialized) { session = instance.session; player = instance.thePlayer; @@ -212,39 +210,4 @@ private void clientTick() { } } } - - private static void ThrowException(Throwable e) { - ThrowException("Exception occurred in ModLoader", e); - } - - public static void ThrowException(String message, Throwable e) { - Minecraft game = getMinecraftInstance(); - if (game != null) { - game.displayUnexpectedThrowable(new UnexpectedThrowable(message, e)); - } else { - throw new RuntimeException(e); - } - } - - public static Minecraft getMinecraftInstance() { - if (instance == null) { - try { - ThreadGroup group = Thread.currentThread().getThreadGroup(); - int count = group.activeCount(); - Thread[] threads = new Thread[count]; - group.enumerate(threads); - - for (Thread thread : threads) { - if (thread.getName().equals("Timer hack thread")) { - instance = (Minecraft) StringUtils.getField(ThreadSleepForever.class, thread, "mc", "field_1588_a", "a"); - break; - } - } - } catch (Exception var4) { - ThrowException(var4); - } - } - - return instance; - } } diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/config/gui/MainGui.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/config/gui/MainGui.java index 74712d460c..180480408f 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/config/gui/MainGui.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/config/gui/MainGui.java @@ -31,8 +31,8 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.controls.ExtendedButtonControl; import com.gitlab.cdagaming.craftpresence.utils.gui.impl.ConfigurationGui; import com.gitlab.cdagaming.craftpresence.utils.gui.widgets.ScrollableTextWidget; +import com.mojang.minecraft.gui.GuiScreen; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.GuiScreen; public class MainGui extends ConfigurationGui { private final Config INSTANCE, DEFAULTS; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/integrations/replaymod/ReplayModUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/integrations/replaymod/ReplayModUtils.java index 80c553bf99..dca5414ce7 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/integrations/replaymod/ReplayModUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/integrations/replaymod/ReplayModUtils.java @@ -28,11 +28,11 @@ import com.gitlab.cdagaming.craftpresence.config.Config; import com.gitlab.cdagaming.craftpresence.core.config.element.ModuleData; import com.gitlab.cdagaming.craftpresence.core.impl.ExtendedModule; +import com.mojang.minecraft.gui.GuiScreen; import io.github.cdagaming.unicore.utils.FileUtils; import io.github.cdagaming.unicore.utils.MappingUtils; import io.github.cdagaming.unicore.utils.StringUtils; import io.github.classgraph.ClassInfo; -import net.minecraft.src.GuiScreen; import java.util.List; import java.util.function.Supplier; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/KeyUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/KeyUtils.java index ce153863f3..0b4fca5f7f 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/KeyUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/KeyUtils.java @@ -31,9 +31,9 @@ import com.gitlab.cdagaming.craftpresence.core.impl.KeyConverter; import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; +import com.mojang.minecraft.gui.GuiControls; +import com.mojang.minecraft.player.controller.KeyBinding; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.GuiControls; -import net.minecraft.src.KeyBinding; import org.lwjgl.input.Keyboard; import java.util.List; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/NbtUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/NbtUtils.java index 3345d30b99..a6ce18be66 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/NbtUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/NbtUtils.java @@ -25,9 +25,12 @@ package com.gitlab.cdagaming.craftpresence.utils; import com.gitlab.cdagaming.craftpresence.core.Constants; +import com.mojang.minecraft.entity.Entity; +import com.mojang.minecraft.entity.EntityList; +import com.mojang.minecraft.entity.item.ItemStack; +import com.mojang.minecraft.nbt.*; import io.github.cdagaming.unicore.utils.FileUtils; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.*; import java.util.List; import java.util.Map; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/discord/DiscordUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/discord/DiscordUtils.java index 6f42eba09d..71b5a53b60 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/discord/DiscordUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/discord/DiscordUtils.java @@ -1293,7 +1293,7 @@ public void syncPlaceholders() { syncArgument("_general.instance", () -> CraftPresence.instance); syncArgument("_general.player", () -> CraftPresence.player); - syncArgument("_general.world", () -> CraftPresence.player != null ? CraftPresence.instance.theWorld : null); + syncArgument("_general.world", () -> CraftPresence.player != null ? CraftPresence.player.worldObj : null); syncArgument("_config.instance", () -> CraftPresence.CONFIG); // Sync Custom Variables diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/EntityUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/EntityUtils.java index e450b21a04..81c2e67062 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/EntityUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/EntityUtils.java @@ -28,8 +28,10 @@ import com.gitlab.cdagaming.craftpresence.config.Config; import com.gitlab.cdagaming.craftpresence.core.config.element.ModuleData; import com.gitlab.cdagaming.craftpresence.core.impl.ExtendedModule; +import com.mojang.minecraft.entity.Entity; +import com.mojang.minecraft.entity.EntityList; +import com.mojang.minecraft.level.World; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.*; import java.util.List; import java.util.Map; @@ -159,7 +161,7 @@ public static String getWeather(final World worldObj) { * @return the current weather data */ public static String getWeather(final Entity entity) { - return getWeather((World) null); + return getWeather(entity != null ? entity.worldObj : null); } @Override diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/TileEntityUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/TileEntityUtils.java index 5ac06da74c..bb01340483 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/TileEntityUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/entity/TileEntityUtils.java @@ -27,11 +27,12 @@ import com.gitlab.cdagaming.craftpresence.CraftPresence; import com.gitlab.cdagaming.craftpresence.ModUtils; import com.gitlab.cdagaming.craftpresence.core.impl.Module; +import com.mojang.minecraft.entity.item.Item; +import com.mojang.minecraft.entity.item.ItemStack; +import com.mojang.minecraft.level.tile.Block; +import com.mojang.minecraft.util.Session; import io.github.cdagaming.unicore.utils.MappingUtils; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.Block; -import net.minecraft.src.Item; -import net.minecraft.src.ItemStack; import java.util.List; import java.util.Map; @@ -197,7 +198,7 @@ public static boolean isEmpty(final Object data) { if (itemStack.stackSize <= 0) { return true; } else { - return itemStack.itemDmg < -32768 || itemStack.itemDmg > 65535; + return itemStack.itemDamage < -32768 || itemStack.itemDamage > 65535; } } else { return true; @@ -485,7 +486,7 @@ public void updatePresence() { @Override public void getInternalData() { - for (Block block : Block.blocksList) { + for (Block block : Session.creativeInventory) { if (!isEmpty(block)) { final ItemStack stack = getStackFrom(block); final String blockName = getName(stack); @@ -501,7 +502,7 @@ public void getInternalData() { } } - for (Item item : Item.itemsList) { + for (Item item : Session.creativeInventoryItems) { if (!isEmpty(item)) { final ItemStack stack = getStackFrom(item); final String itemName = getName(stack); diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/GuiUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/GuiUtils.java index 9886b6391e..70178f2546 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/GuiUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/GuiUtils.java @@ -28,13 +28,13 @@ import com.gitlab.cdagaming.craftpresence.config.Config; import com.gitlab.cdagaming.craftpresence.core.config.element.ModuleData; import com.gitlab.cdagaming.craftpresence.core.impl.ExtendedModule; +import com.mojang.minecraft.gui.GuiContainer; +import com.mojang.minecraft.gui.GuiScreen; +import com.mojang.minecraft.render.FontRenderer; import io.github.cdagaming.unicore.utils.FileUtils; import io.github.cdagaming.unicore.utils.MappingUtils; import io.github.cdagaming.unicore.utils.StringUtils; import io.github.classgraph.ClassInfo; -import net.minecraft.src.FontRenderer; -import net.minecraft.src.GuiScreen; -import net.minecraft.src.GuiContainer; import java.util.List; import java.util.Map; @@ -99,7 +99,7 @@ public class GuiUtils implements ExtendedModule { * @return The Default/Global Font Renderer */ public static FontRenderer getDefaultFontRenderer() { - return CraftPresence.instance.fontRenderer; + return CraftPresence.instance.fontRender; } @Override diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/RenderUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/RenderUtils.java index 4a24998a7d..a621c59f6f 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/RenderUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/RenderUtils.java @@ -36,18 +36,18 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.controls.ExtendedButtonControl; import com.gitlab.cdagaming.craftpresence.utils.gui.controls.ExtendedTextControl; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; +import com.mojang.minecraft.Minecraft; +import com.mojang.minecraft.entity.item.ItemStack; +import com.mojang.minecraft.entity.render.RenderItem; +import com.mojang.minecraft.gui.GuiScreen; +import com.mojang.minecraft.render.FontRenderer; +import com.mojang.minecraft.render.RenderHelper; +import com.mojang.minecraft.render.Tessellator; import io.github.cdagaming.unicore.impl.Pair; import io.github.cdagaming.unicore.impl.Tuple; import io.github.cdagaming.unicore.utils.MathUtils; import io.github.cdagaming.unicore.utils.StringUtils; import io.github.cdagaming.unicore.utils.TimeUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.src.FontRenderer; -import net.minecraft.src.GuiScreen; -import net.minecraft.src.RenderHelper; -import net.minecraft.src.Tessellator; -import net.minecraft.src.RenderItem; -import net.minecraft.src.ItemStack; import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL12; @@ -248,7 +248,7 @@ public static boolean isMouseOver(final ExtendedScreen screen) { * @param targetScreen The target Gui Screen to display */ public static void openScreen(@Nonnull final Minecraft client, final GuiScreen targetScreen) { - client.displayGuiScreen(new GuiScreen() { + client.setCurrentScreen(new GuiScreen() { @Override public void initGui() { // N/A @@ -256,7 +256,7 @@ public void initGui() { @Override public void drawScreen(int i, int j, float par3) { - client.displayGuiScreen(targetScreen); + client.setCurrentScreen(targetScreen); } }); } @@ -310,7 +310,7 @@ public static void drawItemStack(@Nonnull final Minecraft client, final FontRend final int xPos = Math.round(x / scale); final int yPos = Math.round(y / scale); itemRender.renderItemIntoGUI(fontRenderer, client.renderEngine, stack, xPos, yPos); - itemRender.renderItemOverlayIntoGUI(fontRenderer, client.renderEngine, stack, xPos, yPos); + itemRender.renderTextDmg(fontRenderer, client.renderEngine, stack, xPos, yPos); RenderHelper.disableStandardItemLighting(); GL11.glDisable(GL11.GL_DEPTH_TEST); @@ -436,7 +436,7 @@ public static void renderButton(@Nonnull final Minecraft mc, if (data.getFirst()) { GL11.glBindTexture(GL11.GL_TEXTURE_2D, data.getSecond()); } else { - GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(texLocation)); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTex(texLocation)); } } } catch (Exception ignored) { @@ -483,7 +483,7 @@ public static void drawTexture(@Nonnull final Minecraft mc, if (data.getFirst()) { GL11.glBindTexture(GL11.GL_TEXTURE_2D, data.getSecond()); } else { - GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTexture(texLocation)); + GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc.renderEngine.getTex(texLocation)); } } } catch (Exception ignored) { @@ -790,7 +790,7 @@ private static void applyScissor(@Nonnull final Minecraft mc, final ScreenRectan public static int computeGuiScale(@Nonnull final Minecraft mc) { int scaleFactor = 1; - int k = 0; + int k = mc.options.guiScale; if (k == 0) { k = 1000; } diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/CheckBoxControl.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/CheckBoxControl.java index a0f0e5b77f..06a84e4c68 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/CheckBoxControl.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/CheckBoxControl.java @@ -26,7 +26,7 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; -import net.minecraft.client.Minecraft; +import com.mojang.minecraft.Minecraft; import javax.annotation.Nonnull; @@ -157,12 +157,12 @@ public CheckBoxControl(final int xPos, final int yPos, final String displayStrin * Draws this button to the screen. */ @Override - public void drawButton(@Nonnull Minecraft mc, int mouseX, int mouseY) { - setCurrentFontRender(mc.fontRenderer); + public void func_561_a(@Nonnull Minecraft mc, int mouseX, int mouseY) { + setCurrentFontRender(mc.fontRender); if (isControlVisible()) { setHoveringOver(isOverScreen() && RenderUtils.isMouseOver(mouseX, mouseY, this)); - mouseDragged(mc, mouseX, mouseY); + func_560_b(mc, mouseX, mouseY); final int color = !isControlEnabled() ? 10526880 : 14737632; if (isChecked()) @@ -189,9 +189,9 @@ left, getTop(), getRight() - 2, getBottom(), * Equivalent of MouseListener.mouseDragged(MouseEvent e). */ @Override - protected void mouseDragged(@Nonnull Minecraft mc, int mouseX, int mouseY) { + protected void func_560_b(@Nonnull Minecraft mc, int mouseX, int mouseY) { if (isControlVisible()) { - final int hoverState = getHoverState(isHoveringOrFocusingOver()); + final int hoverState = func_558_a(isHoveringOrFocusingOver()); final String borderColor = hoverState == 2 ? "#FFFFFF" : "#000000"; final String contentColor = "#2b2b2b"; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedButtonControl.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedButtonControl.java index 3106fc225c..e8bc98d683 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedButtonControl.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedButtonControl.java @@ -29,9 +29,9 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; import com.gitlab.cdagaming.craftpresence.utils.gui.widgets.DynamicWidget; -import net.minecraft.client.Minecraft; -import net.minecraft.src.FontRenderer; -import net.minecraft.src.GuiButton; +import com.mojang.minecraft.Minecraft; +import com.mojang.minecraft.gui.GuiButton; +import com.mojang.minecraft.render.FontRenderer; import javax.annotation.Nonnull; @@ -204,12 +204,12 @@ public void postDraw(final ExtendedScreen screen) { } @Override - public void drawButton(@Nonnull Minecraft mc, int mouseX, int mouseY) { - setCurrentFontRender(mc.fontRenderer); + public void func_561_a(@Nonnull Minecraft mc, int mouseX, int mouseY) { + setCurrentFontRender(mc.fontRender); if (isControlVisible()) { setHoveringOver(isOverScreen() && RenderUtils.isMouseOver(mouseX, mouseY, this)); - mouseDragged(mc, mouseX, mouseY); + func_560_b(mc, mouseX, mouseY); final int color; if (!isControlEnabled()) { @@ -234,9 +234,9 @@ public void drawButton(@Nonnull Minecraft mc, int mouseX, int mouseY) { * Equivalent of MouseListener.mouseDragged(MouseEvent e). */ @Override - protected void mouseDragged(@Nonnull Minecraft mc, int mouseX, int mouseY) { + protected void func_560_b(@Nonnull Minecraft mc, int mouseX, int mouseY) { if (isControlVisible()) { - final int hoverState = getHoverState(isHoveringOrFocusingOver()); + final int hoverState = func_558_a(isHoveringOrFocusingOver()); final int hoverValue = 46 + hoverState * 20; final double xOffset = getControlWidth() / 2D; @@ -256,7 +256,7 @@ xOffset, getControlHeight(), * Equivalent of MouseListener.mousePressed(MouseEvent e). */ @Override - public boolean mousePressed(@Nonnull Minecraft arg, int mouseX, int mouseY) { + public boolean func_562_c(@Nonnull Minecraft arg, int mouseX, int mouseY) { return isOverScreen() && isControlEnabled() && isControlVisible() && isHoveringOver(); } @@ -434,7 +434,7 @@ public void setControlEnabled(final boolean isEnabled) { * @return Whether the control is currently visible */ public boolean isControlVisible() { - return this.visible; + return this.enabled2; } /** @@ -443,7 +443,7 @@ public boolean isControlVisible() { * @param isVisible The new visibility state for this control */ public void setControlVisible(final boolean isVisible) { - this.visible = isVisible; + this.enabled2 = isVisible; } /** diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedTextControl.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedTextControl.java index 3e867fb1ea..9c61f94ce3 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedTextControl.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ExtendedTextControl.java @@ -27,9 +27,9 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.GuiTextField; import com.gitlab.cdagaming.craftpresence.utils.gui.widgets.DynamicWidget; +import com.mojang.minecraft.render.FontRenderer; import io.github.cdagaming.unicore.impl.Pair; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.FontRenderer; /** * Extended Gui Widget for a Text Field diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ScrollableListControl.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ScrollableListControl.java index d7d89c423d..5e15728c33 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ScrollableListControl.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/ScrollableListControl.java @@ -34,14 +34,14 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.GuiSlot; +import com.mojang.minecraft.Minecraft; +import com.mojang.minecraft.entity.item.ItemStack; +import com.mojang.minecraft.render.FontRenderer; +import com.mojang.minecraft.render.Tessellator; import io.github.cdagaming.unicore.impl.Pair; import io.github.cdagaming.unicore.utils.MappingUtils; import io.github.cdagaming.unicore.utils.StringUtils; import io.github.classgraph.ClassInfo; -import net.minecraft.client.Minecraft; -import net.minecraft.src.FontRenderer; -import net.minecraft.src.ItemStack; -import net.minecraft.src.Tessellator; import javax.annotation.Nonnull; import java.awt.*; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/SliderControl.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/SliderControl.java index 863b757fdf..de37047662 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/SliderControl.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/controls/SliderControl.java @@ -26,10 +26,10 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; +import com.mojang.minecraft.Minecraft; import io.github.cdagaming.unicore.impl.Pair; import io.github.cdagaming.unicore.impl.Tuple; import io.github.cdagaming.unicore.utils.MathUtils; -import net.minecraft.client.Minecraft; import javax.annotation.Nonnull; @@ -210,7 +210,7 @@ public SliderControl(final Pair positionData, final Pair> 16 & 255; - int var4 = i >> 8 & 255; - int var5 = i & 255; - instance.setColorRGBA(var3, var4, var5, j); - } } diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/integrations/GuiTextField.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/integrations/GuiTextField.java index 9b94e69e01..bbb27dee82 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/integrations/GuiTextField.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/integrations/GuiTextField.java @@ -25,9 +25,9 @@ package com.gitlab.cdagaming.craftpresence.utils.gui.integrations; import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; -import net.minecraft.src.FontRenderer; -import net.minecraft.src.Gui; -import net.minecraft.src.GuiScreen; +import com.mojang.minecraft.gui.Gui; +import com.mojang.minecraft.gui.GuiScreen; +import com.mojang.minecraft.render.FontRenderer; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/widgets/TextWidget.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/widgets/TextWidget.java index 91cfad46a7..509738382a 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/widgets/TextWidget.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/gui/widgets/TextWidget.java @@ -28,8 +28,8 @@ import com.gitlab.cdagaming.craftpresence.utils.gui.RenderUtils; import com.gitlab.cdagaming.craftpresence.utils.gui.controls.ExtendedTextControl; import com.gitlab.cdagaming.craftpresence.utils.gui.integrations.ExtendedScreen; +import com.mojang.minecraft.render.FontRenderer; import io.github.cdagaming.unicore.utils.StringUtils; -import net.minecraft.src.FontRenderer; /** * Implementation for a Row-Style {@link ExtendedTextControl} Widget diff --git a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/server/ServerUtils.java b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/server/ServerUtils.java index 5b74173251..f3f89c9e7d 100644 --- a/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/server/ServerUtils.java +++ b/common/src/main/java/com/gitlab/cdagaming/craftpresence/utils/server/ServerUtils.java @@ -33,13 +33,13 @@ import com.gitlab.cdagaming.craftpresence.core.impl.discord.DiscordStatus; import com.gitlab.cdagaming.craftpresence.core.impl.discord.PartyPrivacy; import com.gitlab.cdagaming.craftpresence.utils.entity.EntityUtils; +import com.mojang.minecraft.Minecraft; +import com.mojang.minecraft.gui.GuiConnecting; +import com.mojang.minecraft.level.WorldClient; +import com.mojang.minecraft.networknew.NetClientHandler; import io.github.cdagaming.unicore.utils.MathUtils; import io.github.cdagaming.unicore.utils.StringUtils; import io.github.cdagaming.unicore.utils.TimeUtils; -import net.minecraft.client.Minecraft; -import net.minecraft.src.GuiConnecting; -import net.minecraft.src.NetClientHandler; -import net.minecraft.src.WorldClient; import java.util.List; import java.util.Map; @@ -203,8 +203,8 @@ public void updateData() { NetClientHandler newConnection = null; ServerData newServerData; try { - if (CraftPresence.instance.theWorld instanceof WorldClient) { - newConnection = (NetClientHandler) StringUtils.getField(WorldClient.class, ((WorldClient)CraftPresence.instance.theWorld), "sendQueue", "field_1052_A", "A"); + if (CraftPresence.instance.mcWorld instanceof WorldClient) { + newConnection = (NetClientHandler) StringUtils.getField(WorldClient.class, ((WorldClient)CraftPresence.instance.mcWorld), "sendQueue", "field_1052_A", "A"); } } catch (Exception ex) { newConnection = null; @@ -222,7 +222,7 @@ public void updateData() { final List newPlayerList = StringUtils.newArrayList(); final int newCurrentPlayers = 1; final int newMaxPlayers = newCurrentPlayers + 1; - final boolean newSinglePlayerStatus = !CraftPresence.instance.isMultiplayerWorld(); + final boolean newSinglePlayerStatus = !CraftPresence.instance.isServer(); final boolean newLANStatus = false; final String newServer_IP = newServerData != null && !StringUtils.isNullOrEmpty(newServerData.getServerIP()) ? newServerData.getServerIP() : "127.0.0.1"; @@ -380,10 +380,10 @@ public void verifyAndJoin(final String secret) { private void joinServer(final ServerData serverData) { try { if (CraftPresence.player != null) { - CraftPresence.instance.theWorld.sendQuittingDisconnectingPacket(); + CraftPresence.player.worldObj.sendQuittingDisconnectingPacket(); CraftPresence.instance.changeWorld1(null); } - CraftPresence.instance.displayGuiScreen(new GuiConnecting(CraftPresence.instance, serverData.getServerIP(), serverData.getServerPort())); + CraftPresence.instance.setCurrentScreen(new GuiConnecting(CraftPresence.instance, serverData.getServerIP(), serverData.getServerPort())); } catch (Throwable ex) { printException(ex); } @@ -404,7 +404,7 @@ public void initPresence() { syncArgument("world.difficulty", () -> { final String newDifficulty = false ? ModUtils.RAW_TRANSLATOR.translate("selectWorld.gameMode.hardcore") : - Integer.toString(CraftPresence.instance.theWorld.difficultySetting); + Integer.toString(CraftPresence.player.worldObj.difficulty); return StringUtils.getOrDefault(newDifficulty); }); syncArgument("world.weather.name", () -> { @@ -419,22 +419,22 @@ public void initPresence() { // World Time Arguments syncArgument("world.time.day", () -> - TimeUtils.fromWorldTime(CraftPresence.instance.theWorld.worldTime).getFirst() + TimeUtils.fromWorldTime(CraftPresence.player.worldObj.worldTime).getFirst() ); syncArgument("world.time.format_24", () -> TimeUtils.toString( - TimeUtils.fromWorldTime(CraftPresence.instance.theWorld.worldTime).getSecond(), + TimeUtils.fromWorldTime(CraftPresence.player.worldObj.worldTime).getSecond(), "HH:mm" ) , true); syncArgument("world.time.format_12", () -> TimeUtils.toString( - TimeUtils.fromWorldTime(CraftPresence.instance.theWorld.worldTime).getSecond(), + TimeUtils.fromWorldTime(CraftPresence.player.worldObj.worldTime).getSecond(), "HH:mm a" ) , true); syncArgument("data.world.time.instance", () -> - TimeUtils.fromWorldTime(CraftPresence.instance.theWorld.worldTime) + TimeUtils.fromWorldTime(CraftPresence.player.worldObj.worldTime) ); // Default Arguments diff --git a/fabric/build.gradle.kts b/fabric/build.gradle.kts index 1c28800f14..0fe831f0b8 100644 --- a/fabric/build.gradle.kts +++ b/fabric/build.gradle.kts @@ -1,7 +1,3 @@ -import xyz.wagyourtail.unimined.api.mapping.task.ExportMappingsTask -import xyz.wagyourtail.unimined.api.minecraft.patch.fabric.FabricLikePatcher -import xyz.wagyourtail.unimined.api.minecraft.task.RemapJarTask - /** * Retrieve a Project Property */ @@ -22,22 +18,7 @@ val mcVersionLabel: String by extra val baseVersionLabel: String by extra unimined.minecraft { - val fabricData: FabricLikePatcher.() -> Unit = { - if (accessWidenerFile.exists()) { - accessWidener(accessWidenerFile) - } - loader("fabric_loader_version"()!!) - if (isJarMod) { - prodNamespace("official") - devMappings = null - } - customIntermediaries = true - } - if (isModern) { - fabric(fabricData) - } else { - legacyFabric(fabricData) - } + // N/A } val common: Configuration by configurations.creating @@ -47,6 +28,8 @@ configurations.compileClasspath.get().extendsFrom(common) configurations.runtimeClasspath.get().extendsFrom(common) dependencies { + "jarMod"("local:nsss:${"forge_version"()}") + // Fabric Integrations (1.14+) if (isModern) { // Required for loading translation data @@ -80,26 +63,8 @@ tasks.processResources { filesMatching(resourceTargets) { expand(replaceProperties) } - - filesMatching("mappings-fabric.srg") { - filter { line -> - @Suppress("NULL_FOR_NONNULL_TYPE") - if (line.startsWith("CL:")) line.replace("/", ".") else null - } - } } -tasks.named("exportMappings") { - val target = if (isMCPJar) "searge" else (if (!isModern) "mcp" else "mojmap") - export { - setTargetNamespaces(listOf(target)) - setSourceNamespace(if (isJarMod) "official" else "intermediary") - location = file("$projectDir/src/main/resources/mappings-fabric.srg") - setType("SRG") - } -} -tasks.processResources.get().dependsOn(tasks.named("exportMappings")) - tasks.shadowJar { mustRunAfter(project(":common").tasks.shadowJar) dependsOn(project(":common").tasks.shadowJar) @@ -156,15 +121,7 @@ tasks.shadowJar { relocate("me.hypherionmc", "external.me.hypherionmc") } } - -tasks.named("remapJar") { - if (isJarMod) { - prodNamespace("official") - } - inputFile.set(tasks.shadowJar.get().archiveFile) - dependsOn(tasks.shadowJar.get()) - archiveClassifier.set("fabric") -} +tasks.build.get().dependsOn(tasks.shadowJar.get()) tasks.jar { archiveClassifier.set("dev") diff --git a/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/CraftPresenceFabric.java b/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/CraftPresenceFabric.java index 4cfda09499..1525726470 100644 --- a/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/CraftPresenceFabric.java +++ b/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/CraftPresenceFabric.java @@ -28,7 +28,6 @@ import com.gitlab.cdagaming.craftpresence.core.Constants; import io.github.cdagaming.unicore.utils.MappingUtils; import io.github.cdagaming.unicore.utils.OSUtils; -import net.fabricmc.api.ClientModInitializer; import net.fabricmc.loader.api.FabricLoader; /** @@ -36,9 +35,8 @@ * * @author CDAGaming */ -public class CraftPresenceFabric implements ClientModInitializer { - @Override - public void onInitializeClient() { +public class CraftPresenceFabric { + public void onInitialize() { if (OSUtils.JAVA_SPEC < 1.8f) { throw new UnsupportedOperationException("Incompatible JVM!!! @MOD_NAME@ requires Java 8 or above to work properly!"); } diff --git a/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/NSSSBootstrap.java b/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/NSSSBootstrap.java new file mode 100644 index 0000000000..0062564eff --- /dev/null +++ b/fabric/src/main/java/com/gitlab/cdagaming/craftpresence/fabric/NSSSBootstrap.java @@ -0,0 +1,47 @@ +/* + * MIT License + * + * Copyright (c) 2018 - 2024 CDAGaming (cstack2011@yahoo.com) + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.gitlab.cdagaming.craftpresence.fabric; + +import io.github.cdagaming.unicore.utils.StringUtils; +import net.fabricmc.loader.api.entrypoint.PreLaunchEntrypoint; +import net.fabricmc.loader.impl.FabricLoaderImpl; +import net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider; + +public class NSSSBootstrap implements PreLaunchEntrypoint { + @Override + public void onPreLaunch() { + try { + StringUtils.updateField( + MinecraftGameProvider.class, + FabricLoaderImpl.INSTANCE.getGameProvider(), + "com.mojang.minecraft.Minecraft", + "entrypoint" + ); + } catch (Exception ex) { + throw new RuntimeException(ex); + } + new CraftPresenceFabric().onInitialize(); + } +} diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 3b8867406d..0dfc5ffb6a 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -16,8 +16,8 @@ "icon": "logo.png", "environment": "client", "entrypoints": { - "client": [ - "com.gitlab.cdagaming.craftpresence.fabric.CraftPresenceFabric" + "preLaunch": [ + "com.gitlab.cdagaming.craftpresence.fabric.NSSSBootstrap" ] }, "custom": { diff --git a/gradle.properties b/gradle.properties index 1d866fd131..7ce6225eb3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false # Archive Info -mod_name=CraftPresence +mod_name=CraftPresence-NSSS group=com.gitlab.cdagaming -enabled_platforms=fabric,modloader +enabled_platforms=fabric # Critical Info isLegacy=true isJarMod=true @@ -17,20 +17,20 @@ mc_mappings=a1.1.2_01 mc_mappings_type=retroMCP mc_version=a1.1.2_01 mc_protocol=2 -display_version= +display_version=a1.1.11 # Fabric Info fabric_loader_version=0.15.11 fabric_api_version= fabric_game_version_range=* fabric_loader_version_range=>=0.13.0 # Forge Info -forge_version=a1.1.2_01 +forge_version=111-1 fml_version_range= forge_game_version_range=a1.1.2_01 forge_loader_version_range= # Deployment Info versionId=2.4.1 -deploymentType=Release +deploymentType=Alpha versionLabel=Release additional_mc_versions= additional_loaders= diff --git a/libs/nsss-111-1.jar b/libs/nsss-111-1.jar new file mode 100644 index 0000000000..55347a3a47 Binary files /dev/null and b/libs/nsss-111-1.jar differ