diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 961cefc..4bfe2c8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,9 +34,9 @@ jobs: if: ${{ runner.os != 'Windows' }} run: chmod +x ./gradlew - name: Build -# run: ./gradlew build neoforge:publishGithub fabric:publishGithub --stacktrace -# run: ./gradlew build neoforge:publishGithub neoforge:publishModrinth fabric:publishGithub fabric:publishModrinth --stacktrace - run: ./gradlew build neoforge:publishGithub neoforge:publishModrinth neoforge:publishCurseforge fabric:publishGithub fabric:publishModrinth fabric:publishCurseforge --stacktrace +# run: ./gradlew build forge:publishGithub fabric:publishGithub --stacktrace +# run: ./gradlew build forge:publishGithub forge:publishModrinth fabric:publishGithub fabric:publishModrinth --stacktrace + run: ./gradlew build forge:publishGithub forge:publishModrinth forge:publishCurseforge fabric:publishGithub fabric:publishModrinth fabric:publishCurseforge --stacktrace env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} diff --git a/build.gradle b/build.gradle index b32849d..442716f 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,8 @@ plugins { id("fabric-loom") version("${loom_version}") apply(false) - id("net.neoforged.moddev") version("${moddev_version}") apply(false) + id("net.minecraftforge.gradle") version("${forgegradle_version}") apply(false) + id("org.spongepowered.gradle.vanilla") version("${vanillagradle_version}") apply(false) + id("org.spongepowered.mixin") version("${mixingradle_version}") apply(false) id("org.cadixdev.licenser") version("${licenser_version}") apply(false) id("me.modmuss50.mod-publish-plugin") version("${mpp_version}") id("org.ajoberstar.grgit.service") version("${grgitservice_version}") @@ -31,7 +33,8 @@ subprojects { afterEvaluate { publishMods { - file = project.name == "fabric" ? remapJar.archiveFile : jar.archiveFile + file = project.name == "fabric" ? remapJar.archiveFile : name == "forge" + ? project.file("build/libs/${mod_id}-${name}-${mod_version}.jar") : jar.archiveFile version = mod_version type = me.modmuss50.mpp.ReleaseType.of(release_type) displayName = "v${mod_version}-${capsLoader(project.name)}" diff --git a/buildSrc/src/main/groovy/multiloader-common.gradle b/buildSrc/src/main/groovy/multiloader-common.gradle index ccf5f8d..2a866bc 100644 --- a/buildSrc/src/main/groovy/multiloader-common.gradle +++ b/buildSrc/src/main/groovy/multiloader-common.gradle @@ -25,18 +25,9 @@ repositories { } filter { includeGroupAndSubgroups("org.spongepowered") } } - exclusiveContent { - forRepositories( - maven { - name = "ParchmentMC" - url = "https://maven.parchmentmc.org" - }, - maven { - name = "NeoForge" - url = "https://maven.neoforged.net/releases" - } - ) - filter { includeGroup("org.parchmentmc.data") } + maven { + name = "ParchmentMC" + url = "https://maven.parchmentmc.org" } maven { name = "Modrinth" @@ -94,7 +85,7 @@ processResources { "mod_version": mod_version, "mod_group": mod_group, "mod_id": mod_id, - "mod_id_neoforge": mod_id.replace('-', '_'), + "mod_id_forge": mod_id.replace('-', '_'), "mod_name": mod_name, "mod_description": mod_description, "mod_icon": "assets/${mod_id}/icon.png", @@ -112,19 +103,19 @@ processResources { // Java "java_version": java_version, "java_versions_fabric_list": asJsonList(java_versions_fabric), - "java_versions_neoforge": java_versions_neoforge, + "java_versions_forge": java_versions_forge, // Minecraft "minecraft_versions_fabric_list": asJsonList(minecraft_versions_fabric), - "minecraft_versions_neoforge": minecraft_versions_neoforge, + "minecraft_versions_forge": minecraft_versions_forge, // Fabric "fabric_loader_versions_list": asJsonList(fabric_loader_versions), "fabric_api_versions_list": asJsonList(fabric_api_versions), - // NeoForge - "neoforge_loader_versions": neoforge_loader_versions, - "neoforge_versions": neoforge_versions, + // Forge + "forge_loader_versions": forge_loader_versions, + "forge_versions": forge_versions, // Dependencies "clothconfig_versions_fabric_list": asJsonList(clothconfig_versions_fabric), - "clothconfig_versions_neoforge": clothconfig_versions_neoforge, + "clothconfig_versions_forge": clothconfig_versions_forge, "modmenu_versions_fabric_list": asJsonList(modmenu_versions_fabric), ] filesMatching(["pack.mcmeta", "*.mod.json", "META-INF/*mods.toml", "*.mixins.json"]) { diff --git a/common/build.gradle b/common/build.gradle index 43bda32..a65c858 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,25 +1,24 @@ +buildscript { + dependencies.add("classpath", "org.spongepowered:vanillagradle:${vanillagradle_version}") +} + plugins { id("multiloader-common") - id("net.neoforged.moddev") + id("org.spongepowered.gradle.vanilla") } dependencies { compileOnly("org.spongepowered:mixin:${mixin_version}") compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixinextras_version}")) - + // Cloth Config API - api("me.shedaniel.cloth:cloth-config-neoforge:${clothconfig_version}") + api("me.shedaniel.cloth:cloth-config-forge:${clothconfig_version}") } -neoForge { - version = neoforge_version // Shut up - neoFormVersion = neoform_version - // Automatically enable AccessTransformers if the file exists - def at = file("src/main/resources/META-INF/accesstransformer.cfg") - if (at.exists()) accessTransformers.from(at.absolutePath) - parchment { - minecraftVersion = parchment_minecraft_version - mappingsVersion = parchment_version +minecraft { + version(minecraft_version) + if (file("src/main/resources/${mod_id}.accesswidener").exists()) { + accessWideners(file("src/main/resources/${mod_id}.accesswidener")) } } diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/NowPlaying.java b/common/src/main/java/com/github/scotsguy/nowplaying/NowPlaying.java index cf61789..97d55f2 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/NowPlaying.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/NowPlaying.java @@ -47,7 +47,7 @@ public class NowPlaying { public static final String MOD_ID = "now-playing"; - public static final String MOD_ID_NEOFORGE = "now_playing"; + public static final String MOD_ID_FORGE = "now_playing"; public static final String MOD_NAME = "Now Playing"; public static final ModLogger LOG = new ModLogger(MOD_NAME); public static final KeyMapping DISPLAY_KEY = new KeyMapping( diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/gui/screen/ConfigScreenProvider.java b/common/src/main/java/com/github/scotsguy/nowplaying/gui/screen/ConfigScreenProvider.java index 25bc713..6ff0dfd 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/gui/screen/ConfigScreenProvider.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/gui/screen/ConfigScreenProvider.java @@ -23,11 +23,13 @@ package com.github.scotsguy.nowplaying.gui.screen; import net.minecraft.Util; +import net.minecraft.client.gui.GuiGraphics; import net.minecraft.client.gui.components.Button; import net.minecraft.client.gui.components.MultiLineTextWidget; import net.minecraft.client.gui.screens.ConfirmLinkScreen; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.CommonComponents; +import org.jetbrains.annotations.NotNull; import static com.github.scotsguy.nowplaying.util.Localization.localized; @@ -86,5 +88,11 @@ public void init() { .build(); addRenderableWidget(exitButton); } + + @Override + public void render(@NotNull GuiGraphics graphics, int mouseX, int mouseY, float delta) { + renderDirtBackground(graphics); + super.render(graphics, mouseX, mouseY, delta); + } } } diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/gui/toast/NowPlayingToast.java b/common/src/main/java/com/github/scotsguy/nowplaying/gui/toast/NowPlayingToast.java index 0be6f9b..124a38f 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/gui/toast/NowPlayingToast.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/gui/toast/NowPlayingToast.java @@ -37,10 +37,8 @@ import static com.github.scotsguy.nowplaying.util.Localization.localized; public class NowPlayingToast implements Toast { - private static final ResourceLocation BACKGROUND_SPRITE_LIGHT = ResourceLocation.withDefaultNamespace("toast/recipe"); private static final int NOW_PLAYING_COLOR_LIGHT = 0xFF800080; private static final int TITLE_COLOR_LIGHT = 0xFF000000; - private static final ResourceLocation BACKGROUND_SPRITE_DARK = ResourceLocation.withDefaultNamespace("toast/advancement"); private static final int NOW_PLAYING_COLOR_DARK = 0xFF993299; private static final int TITLE_COLOR_DARK = 0xFFD1D1D1; @@ -48,7 +46,7 @@ public class NowPlayingToast implements Toast { private final ResourceLocation discSprite; private final long displayTime; private final float scale; - private final ResourceLocation sprite; + private final int spriteY; private final int nowPlayingColor; private final int titleColor; @@ -61,11 +59,11 @@ public NowPlayingToast(Component description, ResourceLocation discSprite, long this.displayTime = displayTime; this.scale = scale; if (darkMode) { - sprite = BACKGROUND_SPRITE_DARK; + spriteY = 0; nowPlayingColor = NOW_PLAYING_COLOR_DARK; titleColor = TITLE_COLOR_DARK; } else { - sprite = BACKGROUND_SPRITE_LIGHT; + spriteY = 32; nowPlayingColor = NOW_PLAYING_COLOR_LIGHT; titleColor = TITLE_COLOR_LIGHT; } @@ -86,7 +84,7 @@ public NowPlayingToast(Component description, ResourceLocation discSprite, long if (width == 160 && textLines.size() <= 1) { // Text fits, draw the whole toast from the texture - graphics.blitSprite(sprite, 0, 0, width, height); + graphics.blit(TEXTURE, 0, 0, 0, spriteY, width, height); } else { // Stretch toast by drawing the sprite multiple times height = height + Math.max(0, textLines.size() - (Config.options().simpleToast ? 2 : 1)) * 12; @@ -129,13 +127,12 @@ public NowPlayingToast(Component description, ResourceLocation discSprite, long private void renderBackgroundRow(GuiGraphics graphics, int i, int vOffset, int y, int vHeight) { int uWidth = vOffset == 0 ? 20 : 5; int n = Math.min(60, i - uWidth); - - graphics.blitSprite(sprite, 160, 32, 0, vOffset, 0, y, uWidth, vHeight); + graphics.blit(TEXTURE, 0, y, 0, spriteY + vOffset, uWidth, vHeight); for (int o = uWidth; o < i - n; o += 64) { - graphics.blitSprite(sprite, 160, 32, 32, vOffset, o, y, Math.min(64, i - o - n), vHeight); + graphics.blit(TEXTURE, o, y, 32, spriteY + vOffset, Math.min(64, i - o - n), vHeight); } - graphics.blitSprite(sprite, 160, 32, 160 - n, vOffset, i - n, y, n, vHeight); + graphics.blit(TEXTURE, i - n, y, 160 - n, spriteY + vOffset, n, vHeight); } } diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinMinecraft.java b/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinMinecraft.java index e45ebed..d16d0e6 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinMinecraft.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinMinecraft.java @@ -25,7 +25,6 @@ import com.github.scotsguy.nowplaying.sound.NowPlayingListener; import net.minecraft.client.Minecraft; import net.minecraft.client.sounds.SoundManager; -import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -33,11 +32,11 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @Mixin(Minecraft.class) -public class MixinMinecraft { - @Shadow @Final private SoundManager soundManager; +public abstract class MixinMinecraft { + @Shadow public abstract SoundManager getSoundManager(); @Inject(method = "", at = @At("TAIL")) void registerSoundInstanceListener(CallbackInfo ci) { - soundManager.addListener(new NowPlayingListener()); + getSoundManager().addListener(new NowPlayingListener()); } } diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/sound/NowPlayingListener.java b/common/src/main/java/com/github/scotsguy/nowplaying/sound/NowPlayingListener.java index e128bea..1414682 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/sound/NowPlayingListener.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/sound/NowPlayingListener.java @@ -36,7 +36,7 @@ public class NowPlayingListener implements SoundEventListener { @Override public void onPlaySound(@NotNull SoundInstance soundInstance, - @NotNull WeighedSoundEvents soundSet, float f) { + @NotNull WeighedSoundEvents soundSet) { if (soundInstance.getSource() == SoundSource.MUSIC) { ResourceLocation location = soundInstance.getSound().getLocation(); NowPlaying.lastMusic = location; diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/sound/SpriteProvider.java b/common/src/main/java/com/github/scotsguy/nowplaying/sound/SpriteProvider.java index 89af559..b3e709b 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/sound/SpriteProvider.java +++ b/common/src/main/java/com/github/scotsguy/nowplaying/sound/SpriteProvider.java @@ -37,9 +37,9 @@ public class SpriteProvider { private static final ResourceLocation SPRITES_FILE = - ResourceLocation.fromNamespaceAndPath(NowPlaying.MOD_ID, "sprites.json"); + new ResourceLocation(NowPlaying.MOD_ID, "sprites.json"); public static final ResourceLocation DISC_SPRITE_DEFAULT = - ResourceLocation.parse("minecraft:textures/item/music_disc_cat.png"); + new ResourceLocation("minecraft:textures/item/music_disc_cat.png"); private static final HashMap CACHE = new HashMap<>(); private static boolean hasAttemptedLoad; @@ -113,6 +113,6 @@ public static ResourceLocation getMusicSprite(ResourceLocation location) { public static ResourceLocation getDiscSprite(ResourceLocation location) { String discId = location.getPath().replaceAll("\\.", "_"); - return ResourceLocation.parse("textures/item/" + discId + ".png"); + return new ResourceLocation("textures/item/" + discId + ".png"); } } diff --git a/common/src/main/resources/META-INF/accesstransformer.cfg b/common/src/main/resources/META-INF/accesstransformer.cfg deleted file mode 100644 index 184db24..0000000 --- a/common/src/main/resources/META-INF/accesstransformer.cfg +++ /dev/null @@ -1 +0,0 @@ -# https://docs.neoforged.net/docs/advanced/accesstransformers diff --git a/common/src/main/resources/assets/now-playing/lang/en_us.json b/common/src/main/resources/assets/now-playing/lang/en_us.json index 0d00edd..2713af8 100644 --- a/common/src/main/resources/assets/now-playing/lang/en_us.json +++ b/common/src/main/resources/assets/now-playing/lang/en_us.json @@ -44,60 +44,60 @@ "now-playing.minecraft:music/game/an_ordinary_day": "Kumi Tanioka - An Ordinary Day", "now-playing.minecraft:music/game/ancestry": "Lena Raine - Ancestry", "now-playing.minecraft:music/game/bromeliad": "Aaron Cherof - Bromeliad", - "now-playing.minecraft:music/game/clark": "C418 - Clark", + "now-playing.minecraft:music/game/calm2": "C418 - Clark", "now-playing.minecraft:music/game/comforting_memories": "Kumi Tanioka - Comforting Memories", - "now-playing.minecraft:music/game/creative/aria_math": "C418 - Aria Math", - "now-playing.minecraft:music/game/creative/biome_fest": "C418 - Biome Fest", - "now-playing.minecraft:music/game/creative/blind_spots": "C418 - Blind Spots", - "now-playing.minecraft:music/game/creative/dreiton": "C418 - Dreiton", - "now-playing.minecraft:music/game/creative/haunt_muskie": "C418 - Haunt Muskie", - "now-playing.minecraft:music/game/creative/taswell": "C418 - Taswell", + "now-playing.minecraft:music/game/creative/creative4": "C418 - Aria Math", + "now-playing.minecraft:music/game/creative/creative1": "C418 - Biome Fest", + "now-playing.minecraft:music/game/creative/creative2": "C418 - Blind Spots", + "now-playing.minecraft:music/game/creative/creative5": "C418 - Dreiton", + "now-playing.minecraft:music/game/creative/creative3": "C418 - Haunt Muskie", + "now-playing.minecraft:music/game/creative/creative6": "C418 - Taswell", "now-playing.minecraft:music/game/crescent_dunes": "Aaron Cherof - Crescent Dunes", - "now-playing.minecraft:music/game/danny": "C418 - Danny", + "now-playing.minecraft:music/game/hal4": "C418 - Danny", "now-playing.minecraft:music/game/deeper": "Lena Raine - Deeper", - "now-playing.minecraft:music/game/dry_hands": "C418 - Dry Hands", + "now-playing.minecraft:music/game/piano1": "C418 - Dry Hands", "now-playing.minecraft:music/game/echo_in_the_wind": "Aaron Cherof - Echo in the Wind", "now-playing.minecraft:music/game/eld_unknown": "Lena Raine - Eld Unknown", - "now-playing.minecraft:music/game/end/alpha": "C418 - Alpha", + "now-playing.minecraft:music/game/end/credits": "C418 - Alpha", "now-playing.minecraft:music/game/end/boss": "C418 - Boss", - "now-playing.minecraft:music/game/end/the_end": "C418 - The End", + "now-playing.minecraft:music/game/end/end": "C418 - The End", "now-playing.minecraft:music/game/endless": "Lena Raine - Endless", "now-playing.minecraft:music/game/featherfall": "Aaron Cherof - Featherfall", "now-playing.minecraft:music/game/floating_dream": "Kumi Tanioka - Floating Dream", - "now-playing.minecraft:music/game/haggstrom": "C418 - Haggstrom", + "now-playing.minecraft:music/game/hal3": "C418 - Haggstrom", "now-playing.minecraft:music/game/infinite_amethyst": "Lena Raine - Infinite Amethyst", - "now-playing.minecraft:music/game/key": "C418 - Key", + "now-playing.minecraft:music/game/nuance1": "C418 - Key", "now-playing.minecraft:music/game/komorebi": "Kumi Tanioka - komorebi", "now-playing.minecraft:music/game/left_to_bloom": "Lena Raine - Left to Bloom", - "now-playing.minecraft:music/game/living_mice": "C418 - Living Mice", - "now-playing.minecraft:music/game/mice_on_venus": "C418 - Mice on Venus", - "now-playing.minecraft:music/game/minecraft": "C418 - Minecraft", - "now-playing.minecraft:music/game/nether/ballad_of_the_cats": "C418 - Ballad of the Cats", - "now-playing.minecraft:music/game/nether/concrete_halls": "C418 - Concrete Halls", + "now-playing.minecraft:music/game/hal2": "C418 - Living Mice", + "now-playing.minecraft:music/game/piano3": "C418 - Mice on Venus", + "now-playing.minecraft:music/game/calm1": "C418 - Minecraft", + "now-playing.minecraft:music/game/nether/nether4": "C418 - Ballad of the Cats", + "now-playing.minecraft:music/game/nether/nether1": "C418 - Concrete Halls", "now-playing.minecraft:music/game/nether/crimson_forest/chrysopoeia": "Lena Raine - Chrysopoeia", - "now-playing.minecraft:music/game/nether/dead_voxel": "C418 - Dead Voxel", + "now-playing.minecraft:music/game/nether/nether2": "C418 - Dead Voxel", "now-playing.minecraft:music/game/nether/nether_wastes/rubedo": "Lena Raine - Rubedo", "now-playing.minecraft:music/game/nether/soulsand_valley/so_below": "Lena Raine - So Below", - "now-playing.minecraft:music/game/nether/warmth": "C418 - Warmth", + "now-playing.minecraft:music/game/nether/nether3": "C418 - Warmth", "now-playing.minecraft:music/game/one_more_day": "Lena Raine - One More Day", - "now-playing.minecraft:music/game/oxygene": "C418 - Oxygène", + "now-playing.minecraft:music/game/nuance2": "C418 - Oxygène", "now-playing.minecraft:music/game/pokopoko": "Kumi Tanioka - pokopoko", "now-playing.minecraft:music/game/puzzlebox": "Aaron Cherof - Puzzlebox", "now-playing.minecraft:music/game/stand_tall": "Lena Raine - Stand Tall", - "now-playing.minecraft:music/game/subwoofer_lullaby": "C418 - Subwoofer Lullaby", + "now-playing.minecraft:music/game/hal1": "C418 - Subwoofer Lullaby", "now-playing.minecraft:music/game/swamp/aerie": "Lena Raine - Aerie", "now-playing.minecraft:music/game/swamp/firebugs": "Lena Raine - Firebugs", "now-playing.minecraft:music/game/swamp/labyrinthine": "Lena Raine - Labyrinthine", - "now-playing.minecraft:music/game/sweden": "C418 - Sweden", + "now-playing.minecraft:music/game/calm3": "C418 - Sweden", "now-playing.minecraft:music/game/watcher": "Aaron Cherof - Watcher", "now-playing.minecraft:music/game/water/axolotl": "C418 - Axolotl", "now-playing.minecraft:music/game/water/dragon_fish": "C418 - Dragon Fish", "now-playing.minecraft:music/game/water/shuniji": "C418 - Shuniji", "now-playing.minecraft:music/game/wending": "Lena Raine - Wending", - "now-playing.minecraft:music/game/wet_hands": "C418 - Wet Hands", + "now-playing.minecraft:music/game/piano2": "C418 - Wet Hands", "now-playing.minecraft:music/game/yakusoku": "Kumi Tanioka - yakusoku", - "now-playing.minecraft:music/menu/beginning_2": "C418 - Beginning 2", - "now-playing.minecraft:music/menu/floating_trees": "C418 - Floating Trees", - "now-playing.minecraft:music/menu/moog_city_2": "C418 - Moog City 2", - "now-playing.minecraft:music/menu/mutation": "C418 - Mutation" + "now-playing.minecraft:music/menu/menu3": "C418 - Beginning 2", + "now-playing.minecraft:music/menu/menu4": "C418 - Floating Trees", + "now-playing.minecraft:music/menu/menu2": "C418 - Moog City 2", + "now-playing.minecraft:music/menu/menu1": "C418 - Mutation" } \ No newline at end of file diff --git a/common/src/main/resources/assets/now-playing/sprites.json b/common/src/main/resources/assets/now-playing/sprites.json index a0945ef..40c4df1 100644 --- a/common/src/main/resources/assets/now-playing/sprites.json +++ b/common/src/main/resources/assets/now-playing/sprites.json @@ -3,60 +3,60 @@ "minecraft:music/game/an_ordinary_day": "minecraft:textures/item/music_disc_mall", "minecraft:music/game/ancestry": "minecraft:textures/item/music_disc_otherside", "minecraft:music/game/bromeliad": "minecraft:textures/item/music_disc_relic", - "minecraft:music/game/clark": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/calm2": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/comforting_memories": "minecraft:textures/item/music_disc_mall", - "minecraft:music/game/creative/aria_math": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/creative/biome_fest": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/creative/blind_spots": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/creative/dreiton": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/creative/haunt_muskie": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/creative/taswell": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative4": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative1": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative2": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative5": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative3": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/creative/creative6": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/crescent_dunes": "minecraft:textures/item/music_disc_relic", - "minecraft:music/game/danny": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/hal4": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/deeper": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/dry_hands": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/piano1": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/echo_in_the_wind": "minecraft:textures/item/music_disc_relic", "minecraft:music/game/eld_unknown": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/end/alpha": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/end/credits": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/end/boss": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/end/the_end": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/end/end": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/endless": "minecraft:textures/item/music_disc_otherside", "minecraft:music/game/featherfall": "minecraft:textures/item/music_disc_relic", "minecraft:music/game/floating_dream": "minecraft:textures/item/music_disc_mall", - "minecraft:music/game/haggstrom": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/hal3": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/infinite_amethyst": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/key": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nuance1": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/komorebi": "minecraft:textures/item/music_disc_mall", "minecraft:music/game/left_to_bloom": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/living_mice": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/mice_on_venus": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/minecraft": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/nether/ballad_of_the_cats": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/game/nether/concrete_halls": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/hal2": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/piano3": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/calm1": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nether/nether4": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nether/nether1": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/nether/crimson_forest/chrysopoeia": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/nether/dead_voxel": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nether/nether2": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/nether/nether_wastes/rubedo": "minecraft:textures/item/music_disc_otherside", "minecraft:music/game/nether/soulsand_valley/so_below": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/nether/warmth": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nether/nether3": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/one_more_day": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/oxygene": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/nuance2": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/pokopoko": "minecraft:textures/item/music_disc_mall", "minecraft:music/game/puzzlebox": "minecraft:textures/item/music_disc_relic", "minecraft:music/game/stand_tall": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/subwoofer_lullaby": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/hal1": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/swamp/aerie": "minecraft:textures/item/music_disc_otherside", "minecraft:music/game/swamp/firebugs": "minecraft:textures/item/music_disc_otherside", "minecraft:music/game/swamp/labyrinthine": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/sweden": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/calm3": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/watcher": "minecraft:textures/item/music_disc_relic", "minecraft:music/game/water/axolotl": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/water/dragon_fish": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/water/shuniji": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/wending": "minecraft:textures/item/music_disc_otherside", - "minecraft:music/game/wet_hands": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/game/piano2": "minecraft:textures/item/music_disc_blocks", "minecraft:music/game/yakusoku": "minecraft:textures/item/music_disc_mall", - "minecraft:music/menu/beginning_2": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/menu/floating_trees": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/menu/moog_city_2": "minecraft:textures/item/music_disc_blocks", - "minecraft:music/menu/mutation": "minecraft:textures/item/music_disc_blocks" + "minecraft:music/menu/menu3": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/menu/menu4": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/menu/menu2": "minecraft:textures/item/music_disc_blocks", + "minecraft:music/menu/menu1": "minecraft:textures/item/music_disc_blocks" } \ No newline at end of file diff --git a/common/src/main/resources/now-playing.mixins.json b/common/src/main/resources/now-playing.mixins.json index 99504b3..8d9458a 100644 --- a/common/src/main/resources/now-playing.mixins.json +++ b/common/src/main/resources/now-playing.mixins.json @@ -7,7 +7,6 @@ "mixins": [ ], "client": [ - "MixinLevelRenderer", "MixinMinecraft", "MixinToastInstance", "accessor.GuiAccessor", diff --git a/fabric/build.gradle b/fabric/build.gradle index 8bc364c..a8a1470 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -24,6 +24,9 @@ dependencies { modApi("me.shedaniel.cloth:cloth-config-fabric:${clothconfig_version}") { exclude(group: "net.fabricmc.fabric-api") } + + // ModMenu + modImplementation("maven.modrinth:mOgUt4GM:${modmenu_version}") } loom { diff --git a/fabric/src/main/java/com/github/scotsguy/nowplaying/NowPlayingFabric.java b/fabric/src/main/java/com/github/scotsguy/nowplaying/NowPlayingFabric.java index 916c732..5fa97ff 100644 --- a/fabric/src/main/java/com/github/scotsguy/nowplaying/NowPlayingFabric.java +++ b/fabric/src/main/java/com/github/scotsguy/nowplaying/NowPlayingFabric.java @@ -41,8 +41,8 @@ import java.util.concurrent.Executor; public class NowPlayingFabric implements ClientModInitializer { - public static final ResourceLocation ID = - ResourceLocation.fromNamespaceAndPath(NowPlaying.MOD_ID, "reload_listener"); + public static final ResourceLocation ID = + new ResourceLocation(NowPlaying.MOD_ID, "reload_listener"); @Override public void onInitializeClient() { diff --git a/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java b/fabric/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java similarity index 87% rename from common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java rename to fabric/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java index 0484924..a43d3e5 100644 --- a/common/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java +++ b/fabric/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java @@ -30,21 +30,22 @@ import net.minecraft.client.renderer.LevelRenderer; import net.minecraft.network.chat.Component; import net.minecraft.sounds.SoundEvent; -import net.minecraft.world.item.JukeboxSong; +import net.minecraft.world.item.RecordItem; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @Mixin(LevelRenderer.class) public class MixinLevelRenderer { @WrapOperation( - method = "playJukeboxSong", + method = "playStreamingMusic", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/gui/Gui;setNowPlaying(Lnet/minecraft/network/chat/Component;)V" ) ) private void display(Gui instance, Component text, Operation original, - @Local JukeboxSong song, @Local SoundEvent sound) { - NowPlaying.displayDisc(song.description(), sound.getLocation()); + @Local RecordItem recordItem, + @Local(argsOnly = true) SoundEvent sound) { + NowPlaying.displayDisc(recordItem.getDescription(), sound.getLocation()); } } diff --git a/fabric/src/main/resources/now-playing.fabric.mixins.json b/fabric/src/main/resources/now-playing.fabric.mixins.json index 9e13f8a..594c7e3 100644 --- a/fabric/src/main/resources/now-playing.fabric.mixins.json +++ b/fabric/src/main/resources/now-playing.fabric.mixins.json @@ -1,16 +1,17 @@ { - "required": true, - "minVersion": "0.8", - "package": "com.github.scotsguy.nowplaying.mixin", - "refmap": "${mod_id}.refmap.json", - "compatibilityLevel": "JAVA_${java_version}", - "mixins": [ - ], - "client": [ - ], - "server": [ - ], - "injectors": { - "defaultRequire": 1 - } + "required": true, + "minVersion": "0.8", + "package": "com.github.scotsguy.nowplaying.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_${java_version}", + "mixins": [ + ], + "client": [ + "MixinLevelRenderer" + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + } } diff --git a/forge/build.gradle b/forge/build.gradle new file mode 100644 index 0000000..16143bc --- /dev/null +++ b/forge/build.gradle @@ -0,0 +1,85 @@ +plugins { + id("multiloader-loader") + id("net.minecraftforge.gradle") + id("org.spongepowered.mixin") +} + +dependencies { + minecraft("net.minecraftforge:forge:${minecraft_version}-${forge_version}") + annotationProcessor("org.spongepowered:mixin:${mixin_version}:processor") + compileOnly(annotationProcessor("io.github.llamalad7:mixinextras-common:${mixinextras_version}")) + + // JiJ MixinExtras + implementation(jarJar("io.github.llamalad7:mixinextras-forge:${mixinextras_version}")) { + jarJar.ranged(it, "[${mixinextras_version},)") + } + + // Cloth Config API + api("me.shedaniel.cloth:cloth-config-forge:${clothconfig_version}") +} + +mixin { + add(sourceSets.main, "${mod_id}.refmap.json") + config("${mod_id}.mixins.json") + config("${mod_id}.forge.mixins.json") +} + +sourceSets.main.resources.srcDir "src/generated/resources" + +jarJar.enable() + +tasks.jar.configure { + archiveClassifier.set("pure") + finalizedBy("reobfJar") +} + +tasks.jarJar.configure { + archiveClassifier.set("") + finalizedBy("reobfJarJar") +} + +afterEvaluate { + // Required due to direct reference to fat jar file in root build.gradle publish task + tasks.named("publishGithub").configure { it.dependsOn(tasks.named("jarJar")) } + tasks.named("publishModrinth").configure { it.dependsOn(tasks.named("jarJar")) } + tasks.named("publishCurseforge").configure { it.dependsOn(tasks.named("jarJar")) } +} + +minecraft { + mappings channel: "official", version: minecraft_version + copyIdeResources = true // Calls processResources when in dev + + if (file("src/main/resources/META-INF/accesstransformer.cfg").exists()) { + accessTransformer = file("src/main/resources/META-INF/accesstransformer.cfg") + } + + runs { + client { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Client' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modClientRun { + source sourceSets.main + source project(":common").sourceSets.main + } + } + } + + server { + workingDirectory project.file('run') + ideaModule "${rootProject.name}.${project.name}.main" + taskName 'Server' + property 'mixin.env.remapRefMap', 'true' + property 'mixin.env.refMapRemappingFile', "${projectDir}/build/createSrgToMcp/output.srg" + mods { + modServerRun { + source sourceSets.main + source project(":common").sourceSets.main + } + } + } + } +} diff --git a/neoforge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingNeoForge.java b/forge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingForge.java similarity index 63% rename from neoforge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingNeoForge.java rename to forge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingForge.java index c3c64c9..1c1b876 100644 --- a/neoforge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingNeoForge.java +++ b/forge/src/main/java/com/github/scotsguy/nowplaying/NowPlayingForge.java @@ -28,25 +28,26 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceManagerReloadListener; -import net.neoforged.api.distmarker.Dist; -import net.neoforged.bus.api.SubscribeEvent; -import net.neoforged.fml.ModLoadingContext; -import net.neoforged.fml.common.EventBusSubscriber; -import net.neoforged.fml.common.Mod; -import net.neoforged.neoforge.client.event.ClientTickEvent; -import net.neoforged.neoforge.client.event.RegisterClientCommandsEvent; -import net.neoforged.neoforge.client.event.RegisterClientReloadListenersEvent; -import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent; -import net.neoforged.neoforge.client.gui.IConfigScreenFactory; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.client.event.RegisterClientCommandsEvent; +import net.minecraftforge.client.event.RegisterClientReloadListenersEvent; +import net.minecraftforge.client.event.RegisterKeyMappingsEvent; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; import org.jetbrains.annotations.NotNull; -@Mod(value = NowPlaying.MOD_ID_NEOFORGE, dist = Dist.CLIENT) -@EventBusSubscriber(modid = NowPlaying.MOD_ID_NEOFORGE, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) -public class NowPlayingNeoForge { - public NowPlayingNeoForge() { +@Mod(NowPlaying.MOD_ID_FORGE) +@Mod.EventBusSubscriber(modid = NowPlaying.MOD_ID_FORGE, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) +public class NowPlayingForge { + public NowPlayingForge() { // Config screen - ModLoadingContext.get().registerExtensionPoint(IConfigScreenFactory.class, - () -> (mc, parent) -> ConfigScreenProvider.getConfigScreen(parent)); + ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, + () -> new ConfigScreenHandler.ConfigScreenFactory( + (minecraft, parent) -> ConfigScreenProvider.getConfigScreen(parent)) + ); // Main initialization NowPlaying.init(); @@ -70,18 +71,21 @@ public void onResourceManagerReload(@NotNull ResourceManager resourceManager) { }); } - @EventBusSubscriber(modid = NowPlaying.MOD_ID_NEOFORGE, value = Dist.CLIENT) + @Mod.EventBusSubscriber(modid = NowPlaying.MOD_ID_FORGE, value = Dist.CLIENT) static class ClientEventHandler { // Commands @SubscribeEvent static void registerClientCommands(RegisterClientCommandsEvent event) { - new Commands().register(Minecraft.getInstance(), event.getDispatcher(), event.getBuildContext()); + new Commands().register( + Minecraft.getInstance(), event.getDispatcher(), event.getBuildContext()); } // Tick events @SubscribeEvent - public static void clientTickEvent(ClientTickEvent.Post event) { - NowPlaying.onEndTick(Minecraft.getInstance()); + public static void clientTickEvent(TickEvent.ClientTickEvent event) { + if (event.phase.equals(TickEvent.Phase.END)) { + NowPlaying.onEndTick(Minecraft.getInstance()); + } } } } diff --git a/forge/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java b/forge/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java new file mode 100644 index 0000000..9a8364b --- /dev/null +++ b/forge/src/main/java/com/github/scotsguy/nowplaying/mixin/MixinLevelRenderer.java @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2022-2025 AppleTheGolden + * + * 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.github.scotsguy.nowplaying.mixin; + +import com.github.scotsguy.nowplaying.NowPlaying; +import com.llamalad7.mixinextras.injector.wrapoperation.Operation; +import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; +import com.llamalad7.mixinextras.sugar.Local; +import net.minecraft.client.gui.Gui; +import net.minecraft.client.renderer.LevelRenderer; +import net.minecraft.network.chat.Component; +import net.minecraft.sounds.SoundEvent; +import net.minecraft.world.item.RecordItem; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(LevelRenderer.class) +public class MixinLevelRenderer { + @WrapOperation( + method = "playStreamingMusic(Lnet/minecraft/sounds/SoundEvent;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/item/RecordItem;)V", + at = @At( + value = "INVOKE", + target = "Lnet/minecraft/client/gui/Gui;setNowPlaying(Lnet/minecraft/network/chat/Component;)V" + ) + ) + private void display(Gui instance, Component text, Operation original, + @Local(ordinal = 0, argsOnly = true) RecordItem recordItem, + @Local(argsOnly = true) SoundEvent sound) { + NowPlaying.displayDisc(recordItem.getDescription(), sound.getLocation()); + } +} diff --git a/forge/src/main/resources/META-INF/accesstransformer.cfg b/forge/src/main/resources/META-INF/accesstransformer.cfg new file mode 100644 index 0000000..5445ab9 --- /dev/null +++ b/forge/src/main/resources/META-INF/accesstransformer.cfg @@ -0,0 +1 @@ +# https://docs.minecraftforge.net/en/latest/advanced/accesstransformers diff --git a/neoforge/src/main/resources/META-INF/neoforge.mods.toml b/forge/src/main/resources/META-INF/mods.toml similarity index 52% rename from neoforge/src/main/resources/META-INF/neoforge.mods.toml rename to forge/src/main/resources/META-INF/mods.toml index 7510984..fce5873 100644 --- a/neoforge/src/main/resources/META-INF/neoforge.mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -1,20 +1,20 @@ modLoader="javafml" -loaderVersion="${neoforge_loader_versions}" +loaderVersion="${forge_loader_versions}" license="${mod_license}" #showAsResourcePack=true #optional:false #services=[] #optional:none #properties={} #optional:none -issueTrackerURL="${issues_url}" #optional:none +issueTrackerURL="${issues_url}" [[mods]] - modId="${mod_id_neoforge}" + modId="${mod_id_forge}" version="${mod_version}" #optional:"1" displayName="${mod_name}" #optional:modId description='''${mod_description}''' #optional:'''MISSING DESCRIPTION''' logoFile="${mod_icon}" #optional:none #logoBlur=false #optional:true #updateJSONURL="" #optional:none - features={java_version="${java_versions_neoforge}"} #optional:none + features={java_version="${java_versions_forge}"} #optional:none #modproperties={} #optional:none credits="${mod_contributors_string}" #optional:none authors="${mod_authors_string}" #optional:none @@ -24,27 +24,26 @@ issueTrackerURL="${issues_url}" #optional:none [[mixins]] config="${mod_id}.mixins.json" [[mixins]] - config="${mod_id}.neoforge.mixins.json" + config="${mod_id}.forge.mixins.json" -[[dependencies."${mod_id_neoforge}"]] +[[dependencies."${mod_id_forge}"]] modId="minecraft" - #type="" #optional:"required" #options:"required","optional","incompatible","discouraged" - #reason="" #optional:none - versionRange="${minecraft_versions_neoforge}" #optional:any + mandatory=true #optional:true + versionRange="${minecraft_versions_forge}" #optional:any #ordering="" #optional:"NONE" #options:"BEFORE","AFTER" #side="" #optional:"BOTH" #options:"CLIENT","SERVER","BOTH" - #referralUrl="" #optional:none -[[dependencies."${mod_id_neoforge}"]] - modId="neoforge" - versionRange="${neoforge_versions}" +[[dependencies."${mod_id_forge}"]] + modId="forge" + mandatory=true + versionRange="${forge_versions}" side="CLIENT" -[[dependencies."${mod_id_neoforge}"]] +[[dependencies."${mod_id_forge}"]] modId="cloth_config" - type="optional" - versionRange="${clothconfig_versions_neoforge}" + mandatory=false + versionRange="${clothconfig_versions_forge}" side="CLIENT" -# https://docs.neoforged.net/docs/gettingstarted/modfiles/#modstoml -# https://docs.neoforged.net/docs/misc/updatechecker +# https://docs.minecraftforge.net/en/latest/gettingstarted/modfiles +# https://docs.minecraftforge.net/en/latest/misc/updatechecker \ No newline at end of file diff --git a/forge/src/main/resources/now-playing.forge.mixins.json b/forge/src/main/resources/now-playing.forge.mixins.json new file mode 100644 index 0000000..594c7e3 --- /dev/null +++ b/forge/src/main/resources/now-playing.forge.mixins.json @@ -0,0 +1,17 @@ +{ + "required": true, + "minVersion": "0.8", + "package": "com.github.scotsguy.nowplaying.mixin", + "refmap": "${mod_id}.refmap.json", + "compatibilityLevel": "JAVA_${java_version}", + "mixins": [ + ], + "client": [ + "MixinLevelRenderer" + ], + "server": [ + ], + "injectors": { + "defaultRequire": 1 + } +} diff --git a/gradle.properties b/gradle.properties index eaac971..8e84b73 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,40 +21,38 @@ issues_url=https://github.com/Scotsguy/now-playing/issues contact_url= # Java -java_version=21 -java_versions_fabric=>=21 -java_versions_neoforge=[21,) +java_version=17 +java_versions_fabric=>=17 +java_versions_forge=[17,) # Minecraft -minecraft_version=1.21 -minecraft_versions_fabric=>1.20.6 <1.22 -minecraft_versions_neoforge=(1.20.6, 1.22) +minecraft_version=1.20.1 +minecraft_versions_fabric=>1.19.4 <1.20.2 +minecraft_versions_forge=(1.19.4, 1.20.2) # Parchment https://parchmentmc.org/docs/getting-started#choose-a-version -parchment_minecraft_version=1.21 -parchment_version=2024.11.10 +parchment_minecraft_version=1.20.1 +parchment_version=2023.09.03 # Fabric https://fabricmc.net/develop fabric_loader_version=0.16.9 fabric_loader_versions=>=0.15.0 -fabric_api_version=0.102.0+1.21 +fabric_api_version=0.92.2+1.20.1 fabric_api_versions=* -# NeoForge https://projects.neoforged.net/neoforged/neoforge -neoforge_loader_versions=[1,) -neoforge_version=21.0.167 -neoforge_versions=[21.0.143, 22) -# NeoForm https://projects.neoforged.net/neoforged/neoform -neoform_version=1.21-20240613.152323 +# Forge https://files.minecraftforge.net/net/minecraftforge/forge +forge_loader_versions=[46,) +forge_version=47.3.10 +forge_versions=[46,) # Cloth Config https://modrinth.com/mod/9s6osm5g/versions -clothconfig_version=15.0.140 -clothconfig_versions_fabric=>=15 -clothconfig_versions_neoforge=[15,) +clothconfig_version=11.1.136 +clothconfig_versions_fabric=>=11 +clothconfig_versions_forge=[11,) # ModMenu https://modrinth.com/mod/mOgUt4GM/versions -modmenu_version=11.0.3 -modmenu_versions_fabric=>=11.0.0-beta.1 +modmenu_version=7.2.2 +modmenu_versions_fabric=>=7.0.0 # GitHub, Modrinth, CurseForge releases # Plural properties expect CSV lists @@ -66,14 +64,14 @@ curseforge_slug=now-playing release_type=STABLE # Fabric release_mod_loaders_fabric=fabric,quilt -release_game_versions_fabric=1.21,1.21.1 +release_game_versions_fabric=1.20,1.20.1 release_required_dep_ids_fabric_mr=P7dR8mSH,mOgUt4GM,9s6osm5g release_required_dep_ids_fabric_cf=fabric-api,modmenu,cloth-config -# NeoForge -release_mod_loaders_neoforge=neoforge -release_game_versions_neoforge=1.21,1.21.1 -release_required_dep_ids_neoforge_mr=9s6osm5g -release_required_dep_ids_neoforge_cf=cloth-config +# Forge +release_mod_loaders_forge=forge +release_game_versions_forge=1.20,1.20.1 +release_required_dep_ids_forge_mr=9s6osm5g +release_required_dep_ids_forge_cf=cloth-config # Mixin https://mvnrepository.com/artifact/org.spongepowered/mixin mixin_version=0.8.7 @@ -83,8 +81,12 @@ mixinextras_version=0.4.1 # Plugins # Fabric Loom https://mvnrepository.com/artifact/net.fabricmc/fabric-loom loom_version=1.9.2 -# ModDev https://plugins.gradle.org/plugin/net.neoforged.moddev -moddev_version=1.0.23 +# ForgeGradle https://files.minecraftforge.net/net/minecraftforge/gradle/ForgeGradle +forgegradle_version=6.0.29 +# VanillaGradle https://plugins.gradle.org/plugin/org.spongepowered.gradle.vanilla +vanillagradle_version=0.2.1-20240507.024226-82 +# Mixin Gradle https://mvnrepository.com/artifact/org.spongepowered.mixin/org.spongepowered.mixin.gradle.plugin +mixingradle_version=0.7.38 # Mod Publish Plugin https://plugins.gradle.org/plugin/me.modmuss50.mod-publish-plugin mpp_version=0.8.1 # grgit-service https://github.com/ajoberstar/grgit/releases diff --git a/neoforge/build.gradle b/neoforge/build.gradle deleted file mode 100644 index bd6d009..0000000 --- a/neoforge/build.gradle +++ /dev/null @@ -1,43 +0,0 @@ -plugins { - id("multiloader-loader") - id("net.neoforged.moddev") -} - -dependencies { - // JiJ MixinExtras if required to be newer than minimum loader-provided version -// implementation(jarJar("io.github.llamalad7:mixinextras-neoforge:${mixinextras_version}")) - - // Cloth Config API - api("me.shedaniel.cloth:cloth-config-neoforge:${clothconfig_version}") -} - -neoForge { - version = neoforge_version - // Automatically enable neoforge AccessTransformers if the file exists - def at = project(":common").file("src/main/resources/META-INF/accesstransformer.cfg") - if (at.exists()) accessTransformers.from(at.absolutePath) - parchment { - minecraftVersion = parchment_minecraft_version - mappingsVersion = parchment_version - } - runs { - configureEach { - systemProperty("neoforge.enabledGameTestNamespaces", "${mod_id}") - // Unify the run config names with fabric - ideName = "NeoForge ${it.name.capitalize()} (${project.path})" - } - client { - client() - } - server { - server() - } - } - mods { - "${mod_id}" { - sourceSet sourceSets.main - } - } -} - -sourceSets.main.resources { srcDir "src/generated/resources" } diff --git a/neoforge/src/main/resources/now-playing.neoforge.mixins.json b/neoforge/src/main/resources/now-playing.neoforge.mixins.json deleted file mode 100644 index 9e13f8a..0000000 --- a/neoforge/src/main/resources/now-playing.neoforge.mixins.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "required": true, - "minVersion": "0.8", - "package": "com.github.scotsguy.nowplaying.mixin", - "refmap": "${mod_id}.refmap.json", - "compatibilityLevel": "JAVA_${java_version}", - "mixins": [ - ], - "client": [ - ], - "server": [ - ], - "injectors": { - "defaultRequire": 1 - } -} diff --git a/settings.gradle b/settings.gradle index 2ee7bbc..abcaa4d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -24,8 +24,8 @@ pluginManagement { filter { includeGroupAndSubgroups("org.spongepowered") } } maven { - name = "NeoForge" - url = "https://maven.neoforged.net/releases" + name = "Forge" + url = "https://maven.minecraftforge.net" } } } @@ -38,4 +38,4 @@ plugins { rootProject.name = "now-playing" include("common") include("fabric") -include("neoforge") +include("forge")