From c2f7a060a9c0f34aaa6dcd14501c6fee0e801443 Mon Sep 17 00:00:00 2001 From: Alexander01998 Date: Wed, 20 Dec 2023 20:34:49 +0100 Subject: [PATCH] Update to 1.20.2 --- .gitignore | 1 + build.gradle | 365 +++++++----------- gradle.properties | 102 ++--- settings.gradle | 24 +- .../java/net/wurstclient/glass/MoGlass.java | 14 +- .../net/wurstclient/glass/MoGlassBlocks.java | 101 +++-- src/main/resources/META-INF/mods.toml | 4 +- .../resources/{assets/mo_glass => }/icon.png | Bin src/main/resources/mo-glass.mixins.json | 2 +- 9 files changed, 260 insertions(+), 353 deletions(-) rename src/main/resources/{assets/mo_glass => }/icon.png (100%) diff --git a/.gitignore b/.gitignore index c015402..af3bc43 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ eclipse .metadata .project run-data +runs/ diff --git a/build.gradle b/build.gradle index dd5c378..4f0132d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,218 +1,147 @@ -plugins { - id 'eclipse' - id 'idea' - id 'maven-publish' - id 'net.neoforged.gradle' version '[6.0.18,6.2)' - id 'org.spongepowered.mixin' version '0.7.+' -} - -version = mod_version -group = mod_group_id - -base { - archivesName = mod_id -} - -// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. -java.toolchain.languageVersion = JavaLanguageVersion.of(17) - -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official MCVersion Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/NeoForged/NeoForm/blob/main/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://parchmentmc.org/docs/getting-started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: mapping_channel, version: mapping_version - - // When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. - // In most cases, it is not necessary to enable. - // enableEclipsePrepareRuns = true - // enableIdeaPrepareRuns = true - - // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. - // It is REQUIRED to be set to true for this template to function. - // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html - copyIdeResources = true - - // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. - // The folder name can be set on a run configuration using the "folderName" property. - // By default, the folder name of a run configuration is the name of the Gradle project containing it. - // generateRunFolders = true - - // This property enables access transformers for use in development. - // They will be applied to the Minecraft artifact. - // The access transformer file can be anywhere in the project. - // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. - // This default location is a best practice to automatically put the file in the right place in the final jar. - // See https://docs.neoforged.net/docs/1.20.x/advanced/accesstransformers/ for more information. - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - // applies to all the run configs below - configureEach { - workingDirectory project.file("run/${it.name}") - - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' - - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' - - mods { - "${mod_id}" { - source sourceSets.main - } - } - } - - client { - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', mod_id - } - - server { - property 'forge.enabledGameTestNamespaces', mod_id - args '--nogui' - } - - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - property 'forge.enabledGameTestNamespaces', mod_id - } - - data { - // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it - // workingDirectory project.file('run-data') - - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') - } - } -} - -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -repositories { - // Put repositories for dependencies here - // NeoGradle automatically adds the Forge maven and Maven Central for you - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so. - // See https://docs.gradle.org/current/userguide/declaring_repositories.html#sub:flat_dir_resolver - // flatDir { - // dir 'libs' - // } -} - -dependencies { - // Specify the version of Minecraft to use. - // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. - // The "userdev" classifier will be requested and setup by NeoGradle. - // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], - // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. - minecraft "net.neoforged:forge:${minecraft_version}-${neo_version}" - - // Example mod dependency with JEI - using fg.deobf() ensures the dependency is remapped to your development mappings - // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-common-api:${jei_version}") - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}-forge-api:${jei_version}") - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}-forge:${jei_version}") - - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") - - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html - - // Apply Mixin AP - annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' -} - -mixin { - // MixinGradle Settings - add sourceSets.main, 'mo-glass.refmap.json' - config 'mo-glass.mixins.json' -} - -// This block of code expands all declared replace properties in the specified resource targets. -// A missing property will result in an error. Properties are expanded using ${} Groovy notation. -// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. -// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html -tasks.withType(ProcessResources).configureEach { - var replaceProperties = [ - minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range, - neo_version : neo_version, neo_version_range: neo_version_range, - loader_version_range: loader_version_range, - mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, - mod_authors : mod_authors, mod_description: mod_description, pack_format_number: pack_format_number, - ] - inputs.properties replaceProperties - - filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { - expand replaceProperties + [project: project] - } -} - -// Example for how to get properties into the manifest for reading at runtime. -tasks.named('jar', Jar).configure { - manifest { - attributes([ - 'Specification-Title' : mod_id, - 'Specification-Vendor' : mod_authors, - 'Specification-Version' : '1', // We are version 1 of ourselves - 'Implementation-Title' : project.name, - 'Implementation-Version' : project.jar.archiveVersion, - 'Implementation-Vendor' : mod_authors, - 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) - } - - // This is the preferred method to reobfuscate your jar file - finalizedBy 'reobfJar' -} - -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing: -// tasks.named('publish').configure { -// dependsOn 'reobfJar' -// } - -// Example configuration to allow publishing using the maven-publish plugin -publishing { - publications { - register('mavenJava', MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file://${project.projectDir}/mcmodsrepo" - } - } -} - -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation -} +plugins { + id 'java-library' + id 'eclipse' + id 'idea' + id 'maven-publish' + id 'net.neoforged.gradle.userdev' version '7.0.71' + id 'net.neoforged.gradle.mixin' version '7.0.71' +} + +version = mod_version +group = mod_group_id + +repositories { + mavenLocal() +} + +base { + archivesName = mod_id +} + +// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +//minecraft.accessTransformers.file rootProject.file('src/main/resources/META-INF/accesstransformer.cfg') +//minecraft.accessTransformers.entry public net.minecraft.client.Minecraft textureManager # textureManager + +mixin { + config 'mo-glass.mixins.json' +} + +// Default run configurations. +// These can be tweaked, removed, or duplicated as needed. +runs { + // applies to all the run configs below + configureEach { + // Recommended logging data for a userdev environment + // The markers can be added/remove as needed separated by commas. + // "SCAN": For mods scan. + // "REGISTRIES": For firing of registry events. + // "REGISTRYDUMP": For getting the contents of all registries. + systemProperty 'forge.logging.markers', 'REGISTRIES' + + // Recommended logging level for the console + // You can set various levels here. + // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels + systemProperty 'forge.logging.console.level', 'debug' + + modSource project.sourceSets.main + } + + client { + // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + } + + server { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + programArgument '--nogui' + } + + // This run config launches GameTestServer and runs all registered gametests, then exits. + // By default, the server will crash when no gametests are provided. + // The gametest system is also enabled by default for other run configs under the /test command. + gameTestServer { + systemProperty 'forge.enabledGameTestNamespaces', project.mod_id + } + + data { + // example of overriding the workingDirectory set in configureEach above, uncomment if you want to use it + // workingDirectory project.file('run-data') + + // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. + programArguments.addAll '--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } +} + +// Include resources generated by data generators. +sourceSets.main.resources { srcDir 'src/generated/resources' } + + +dependencies { + // Specify the version of Minecraft to use. + // Depending on the plugin applied there are several options. We will assume you applied the userdev plugin as shown above. + // The group for userdev is net.neoforged, the module name is neoforge, and the version is the same as the neoforge version. + // You can however also use the vanilla plugin (net.neoforged.gradle.vanilla) to use a version of Minecraft without the neoforge loader. + // And its provides the option to then use net.minecraft as the group, and one of; client, server or joined as the module name, plus the game version as version. + // For all intends and purposes: You can treat this dependency as if it is a normal library you would use. + implementation "net.neoforged:neoforge:${neo_version}" + + // Example mod dependency with JEI + // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime + // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}" + // compileOnly "mezz.jei:jei-${mc_version}-forge-api:${jei_version}" + // runtimeOnly "mezz.jei:jei-${mc_version}-forge:${jei_version}" + + // Example mod dependency using a mod jar from ./libs with a flat dir repository + // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar + // The group id is ignored when searching -- in this case, it is "blank" + // implementation "blank:coolmod-${mc_version}:${coolmod_version}" + + // Example mod dependency using a file as dependency + // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar") + + // Example project dependency using a sister or child project: + // implementation project(":myproject") + + // For more info: + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html +} + +// This block of code expands all declared replace properties in the specified resource targets. +// A missing property will result in an error. Properties are expanded using ${} Groovy notation. +// When "copyIdeResources" is enabled, this will also run before the game launches in IDE environments. +// See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html +tasks.withType(ProcessResources).configureEach { + var replaceProperties = [ + minecraft_version : minecraft_version, minecraft_version_range: minecraft_version_range, + neo_version : neo_version, neo_version_range: neo_version_range, + loader_version_range: loader_version_range, + mod_id : mod_id, mod_name: mod_name, mod_license: mod_license, mod_version: mod_version, + mod_authors : mod_authors, mod_description: mod_description, pack_format_number: pack_format_number, + ] + inputs.properties replaceProperties + + filesMatching(['META-INF/mods.toml', 'pack.mcmeta']) { + expand replaceProperties + [project: project] + } +} + +// Example configuration to allow publishing using the maven-publish plugin +publishing { + publications { + register('mavenJava', MavenPublication) { + from components.java + } + } + repositories { + maven { + url "file://${project.projectDir}/repo" + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +} diff --git a/gradle.properties b/gradle.properties index 3fe01b9..2f79d39 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,61 +1,41 @@ -# Sets default memory used for gradle commands. Can be overridden by user or command line properties. -# This is required to provide enough memory for the Minecraft decompilation process. -org.gradle.jvmargs=-Xmx3G -org.gradle.daemon=false - - -## Environment Properties - -# The Minecraft version must agree with the Neo version to get a valid artifact -minecraft_version=1.20.1 -# The Minecraft version range can use any release version of Minecraft as bounds. -# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly -# as they do not follow standard versioning conventions. -minecraft_version_range=[1.20,1.21) -# The Neo version must agree with the Minecraft version to get a valid artifact -neo_version=47.1.65 -# The Neo version range can use any version of Neo as bounds or match the loader version range -neo_version_range=[47.1,) -# The loader version range can only use the major version of Neo/FML as bounds -loader_version_range=[47,) -# The mapping channel to use for mappings. -# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. -# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. -# -# | Channel | Version | | -# |-----------|----------------------|--------------------------------------------------------------------------------| -# | official | MCVersion | Official field/method names from Mojang mapping files | -# | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | -# -# You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. -# See more information here: https://github.com/neoforged/NeoForm/blob/main/Mojang.md -# -# Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. -# Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started -mapping_channel=official -# The mapping version to query from the mapping channel. -# This must match the format required by the mapping channel. -mapping_version=1.20.1 - - -## Mod Properties - -# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} -# Must match the String constant located in the main mod class annotated with @Mod. -mod_id=mo_glass -# The human-readable display name for the mod. -mod_name=Mo Glass -# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. -mod_license=GPL-3.0-or-later -# The mod version. See https://semver.org/ -mod_version=1.7-MC1.20.1-Forge -# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. -# This should match the base package used for the mod sources. -# See https://maven.apache.org/guides/mini/guide-naming-conventions.html -mod_group_id=net.wurstclient.glass -# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. -mod_authors=Alexander01998 -# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. -mod_description=Adds glass stairs and glass slabs to Minecraft. -# Pack version - this changes each minecraft release, in general. -pack_format_number=15 +# Sets default memory used for gradle commands. Can be overridden by user or command line properties. +#org.gradle.jvmargs= +org.gradle.daemon=false +org.gradle.debug=false + +## Environment Properties + +# The Minecraft version must agree with the Neo version to get a valid artifact +minecraft_version=1.20.2 +# The Minecraft version range can use any release version of Minecraft as bounds. +# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly +# as they do not follow standard versioning conventions. +minecraft_version_range=[1.20.2,1.21) +# The Neo version must agree with the Minecraft version to get a valid artifact +neo_version=20.2.86 +# The Neo version range can use any version of Neo as bounds or match the loader version range +neo_version_range=[20.2,) +# The loader version range can only use the major version of Neo/FML as bounds +loader_version_range=[1,) + +## Mod Properties + +# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} +# Must match the String constant located in the main mod class annotated with @Mod. +mod_id=mo_glass +# The human-readable display name for the mod. +mod_name=Mo Glass +# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. +mod_license=GPL-3.0-or-later +# The mod version. See https://semver.org/ +mod_version=1.7-MC1.20.2-NeoForge +# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. +# This should match the base package used for the mod sources. +# See https://maven.apache.org/guides/mini/guide-naming-conventions.html +mod_group_id=net.wurstclient.glass +# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. +mod_authors=Alexander01998 +# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. +mod_description=Adds glass stairs and glass slabs to Minecraft. +# Pack version - this changes each minecraft release, in general. +pack_format_number=18 diff --git a/settings.gradle b/settings.gradle index 07fc75e..b359a59 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,13 +1,11 @@ -pluginManagement { - repositories { - gradlePluginPortal() - maven { - name = 'NeoForged' - url = 'https://maven.neoforged.net/releases' - } - } -} - -plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' -} \ No newline at end of file +pluginManagement { + repositories { + mavenLocal() + gradlePluginPortal() + maven { url = 'https://maven.neoforged.net/releases' } + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '0.5.0' +} diff --git a/src/main/java/net/wurstclient/glass/MoGlass.java b/src/main/java/net/wurstclient/glass/MoGlass.java index 19179c4..f739378 100644 --- a/src/main/java/net/wurstclient/glass/MoGlass.java +++ b/src/main/java/net/wurstclient/glass/MoGlass.java @@ -8,11 +8,11 @@ package net.wurstclient.glass; import net.minecraft.world.item.CreativeModeTabs; -import net.minecraftforge.event.BuildCreativeModeTabContentsEvent; -import net.minecraftforge.eventbus.api.SubscribeEvent; -import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.javafmlmod.FMLJavaModLoadingContext; +import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; +import net.neoforged.neoforge.registries.DeferredBlock; @Mod(MoGlass.MODID) @Mod.EventBusSubscriber(modid = MoGlass.MODID, @@ -45,13 +45,13 @@ public static void onBuildCreativeTabContents( // stairs event.accept(MoGlassBlocks.GLASS_STAIRS); event.accept(MoGlassBlocks.TINTED_GLASS_STAIRS); - for(RegistryObject stairs : MoGlassBlocks.STAINED_GLASS_STAIRS) + for(DeferredBlock stairs : MoGlassBlocks.STAINED_GLASS_STAIRS) event.accept(stairs); // slabs event.accept(MoGlassBlocks.GLASS_SLAB); event.accept(MoGlassBlocks.TINTED_GLASS_SLAB); - for(RegistryObject slab : MoGlassBlocks.STAINED_GLASS_SLABS) + for(DeferredBlock slab : MoGlassBlocks.STAINED_GLASS_SLABS) event.accept(slab); } } diff --git a/src/main/java/net/wurstclient/glass/MoGlassBlocks.java b/src/main/java/net/wurstclient/glass/MoGlassBlocks.java index 4663147..2367fa5 100644 --- a/src/main/java/net/wurstclient/glass/MoGlassBlocks.java +++ b/src/main/java/net/wurstclient/glass/MoGlassBlocks.java @@ -23,21 +23,20 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.NoteBlockInstrument; import net.minecraft.world.level.material.MapColor; -import net.minecraftforge.registries.DeferredRegister; -import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.RegistryObject; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredRegister; public enum MoGlassBlocks { ; - public static final DeferredRegister BLOCKS = - DeferredRegister.create(ForgeRegistries.BLOCKS, MoGlass.MODID); + public static final DeferredRegister.Blocks BLOCKS = + DeferredRegister.createBlocks(MoGlass.MODID); - public static final DeferredRegister ITEMS = - DeferredRegister.create(ForgeRegistries.ITEMS, MoGlass.MODID); + public static final DeferredRegister.Items ITEMS = + DeferredRegister.createItems(MoGlass.MODID); - public static final RegistryObject GLASS_SLAB = + public static final DeferredBlock GLASS_SLAB = registerBlock("glass_slab", () -> new GlassSlabBlock(BlockBehaviour.Properties.of() .instrument(NoteBlockInstrument.HAT).strength(0.3F) @@ -47,7 +46,7 @@ public enum MoGlassBlocks .isSuffocating(MoGlassBlocks::never) .isViewBlocking(MoGlassBlocks::never))); - public static final RegistryObject GLASS_STAIRS = + public static final DeferredBlock GLASS_STAIRS = registerBlock("glass_stairs", () -> new GlassStairsBlock(BlockBehaviour.Properties.of() .instrument(NoteBlockInstrument.HAT).strength(0.3F) @@ -57,7 +56,7 @@ public enum MoGlassBlocks .isSuffocating(MoGlassBlocks::never) .isViewBlocking(MoGlassBlocks::never))); - public static final RegistryObject TINTED_GLASS_SLAB = + public static final DeferredBlock TINTED_GLASS_SLAB = registerBlock("tinted_glass_slab", () -> new TintedGlassSlabBlock(BlockBehaviour.Properties .copy(Blocks.GLASS).mapColor(MapColor.COLOR_GRAY).noOcclusion() @@ -66,7 +65,7 @@ public enum MoGlassBlocks .isSuffocating(MoGlassBlocks::never) .isViewBlocking(MoGlassBlocks::never))); - public static final RegistryObject TINTED_GLASS_STAIRS = + public static final DeferredBlock TINTED_GLASS_STAIRS = registerBlock("tinted_glass_stairs", () -> new TintedGlassStairsBlock(BlockBehaviour.Properties .copy(Blocks.GLASS).mapColor(MapColor.COLOR_GRAY).noOcclusion() @@ -75,93 +74,93 @@ public enum MoGlassBlocks .isSuffocating(MoGlassBlocks::never) .isViewBlocking(MoGlassBlocks::never))); - public static final ArrayList> STAINED_GLASS_SLABS = + public static final ArrayList> STAINED_GLASS_SLABS = new ArrayList<>(); - public static final ArrayList> STAINED_GLASS_STAIRS = + public static final ArrayList> STAINED_GLASS_STAIRS = new ArrayList<>(); - public static final RegistryObject WHITE_STAINED_GLASS_SLAB = + public static final DeferredBlock WHITE_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.WHITE); - public static final RegistryObject ORANGE_STAINED_GLASS_SLAB = + public static final DeferredBlock ORANGE_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.ORANGE); - public static final RegistryObject MAGENTA_STAINED_GLASS_SLAB = + public static final DeferredBlock MAGENTA_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.MAGENTA); - public static final RegistryObject LIGHT_BLUE_STAINED_GLASS_SLAB = + public static final DeferredBlock LIGHT_BLUE_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.LIGHT_BLUE); - public static final RegistryObject YELLOW_STAINED_GLASS_SLAB = + public static final DeferredBlock YELLOW_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.YELLOW); - public static final RegistryObject LIME_STAINED_GLASS_SLAB = + public static final DeferredBlock LIME_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.LIME); - public static final RegistryObject PINK_STAINED_GLASS_SLAB = + public static final DeferredBlock PINK_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.PINK); - public static final RegistryObject GRAY_STAINED_GLASS_SLAB = + public static final DeferredBlock GRAY_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.GRAY); - public static final RegistryObject LIGHT_GRAY_STAINED_GLASS_SLAB = + public static final DeferredBlock LIGHT_GRAY_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.LIGHT_GRAY); - public static final RegistryObject CYAN_STAINED_GLASS_SLAB = + public static final DeferredBlock CYAN_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.CYAN); - public static final RegistryObject PURPLE_STAINED_GLASS_SLAB = + public static final DeferredBlock PURPLE_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.PURPLE); - public static final RegistryObject BLUE_STAINED_GLASS_SLAB = + public static final DeferredBlock BLUE_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.BLUE); - public static final RegistryObject BROWN_STAINED_GLASS_SLAB = + public static final DeferredBlock BROWN_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.BROWN); - public static final RegistryObject GREEN_STAINED_GLASS_SLAB = + public static final DeferredBlock GREEN_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.GREEN); - public static final RegistryObject RED_STAINED_GLASS_SLAB = + public static final DeferredBlock RED_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.RED); - public static final RegistryObject BLACK_STAINED_GLASS_SLAB = + public static final DeferredBlock BLACK_STAINED_GLASS_SLAB = createStainedGlassSlab(DyeColor.BLACK); - public static final RegistryObject WHITE_STAINED_GLASS_STAIRS = + public static final DeferredBlock WHITE_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.WHITE); - public static final RegistryObject ORANGE_STAINED_GLASS_STAIRS = + public static final DeferredBlock ORANGE_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.ORANGE); - public static final RegistryObject MAGENTA_STAINED_GLASS_STAIRS = + public static final DeferredBlock MAGENTA_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.MAGENTA); - public static final RegistryObject LIGHT_BLUE_STAINED_GLASS_STAIRS = + public static final DeferredBlock LIGHT_BLUE_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.LIGHT_BLUE); - public static final RegistryObject YELLOW_STAINED_GLASS_STAIRS = + public static final DeferredBlock YELLOW_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.YELLOW); - public static final RegistryObject LIME_STAINED_GLASS_STAIRS = + public static final DeferredBlock LIME_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.LIME); - public static final RegistryObject PINK_STAINED_GLASS_STAIRS = + public static final DeferredBlock PINK_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.PINK); - public static final RegistryObject GRAY_STAINED_GLASS_STAIRS = + public static final DeferredBlock GRAY_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.GRAY); - public static final RegistryObject LIGHT_GRAY_STAINED_GLASS_STAIRS = + public static final DeferredBlock LIGHT_GRAY_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.LIGHT_GRAY); - public static final RegistryObject CYAN_STAINED_GLASS_STAIRS = + public static final DeferredBlock CYAN_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.CYAN); - public static final RegistryObject PURPLE_STAINED_GLASS_STAIRS = + public static final DeferredBlock PURPLE_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.PURPLE); - public static final RegistryObject BLUE_STAINED_GLASS_STAIRS = + public static final DeferredBlock BLUE_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.BLUE); - public static final RegistryObject BROWN_STAINED_GLASS_STAIRS = + public static final DeferredBlock BROWN_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.BROWN); - public static final RegistryObject GREEN_STAINED_GLASS_STAIRS = + public static final DeferredBlock GREEN_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.GREEN); - public static final RegistryObject RED_STAINED_GLASS_STAIRS = + public static final DeferredBlock RED_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.RED); - public static final RegistryObject BLACK_STAINED_GLASS_STAIRS = + public static final DeferredBlock BLACK_STAINED_GLASS_STAIRS = createStainedGlassStairs(DyeColor.BLACK); - private static RegistryObject registerBlock( + private static DeferredBlock registerBlock( String idPath, Supplier block) { System.out.println("Registering block & item for mo_glass:" + idPath); - RegistryObject result = BLOCKS.register(idPath, block); + DeferredBlock result = BLOCKS.register(idPath, block); ITEMS.register(idPath, () -> new BlockItem(result.get(), new Item.Properties())); return result; } - private static RegistryObject createStainedGlassSlab( + private static DeferredBlock createStainedGlassSlab( DyeColor color) { - RegistryObject result = + DeferredBlock result = registerBlock(color + "_stained_glass_slab", () -> new StainedGlassSlabBlock(color, BlockBehaviour.Properties.of().mapColor(color) @@ -176,10 +175,10 @@ private static RegistryObject createStainedGlassSlab( return result; } - private static RegistryObject createStainedGlassStairs( + private static DeferredBlock createStainedGlassStairs( DyeColor color) { - RegistryObject result = + DeferredBlock result = registerBlock(color + "_stained_glass_stairs", () -> new StainedGlassStairsBlock(color, BlockBehaviour.Properties.of().mapColor(color) diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 361920d..cf35de2 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -35,7 +35,7 @@ displayName="${mod_name}" #mandatory displayURL="https://www.wimods.net/mo-glass/?utm_source=Mo+Glass&utm_medium=NeoForge+mod+list&utm_content=Mo+Glass+NeoForge+website+link" #optional # A file name (in the root of the mod JAR) containing a logo for display -logoFile="assets/mo_glass/icon.png" #optional +logoFile="icon.png" #optional # A text field displayed in the mod UI #credits="" #optional @@ -57,7 +57,7 @@ description='''${mod_description}''' # A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. [[dependencies.${mod_id}]] #optional # the modid of the dependency - modId="forge" #mandatory + modId="neoforge" #mandatory # Does this dependency have to exist - if not, ordering below must be specified mandatory=true #mandatory # The version range of the dependency diff --git a/src/main/resources/assets/mo_glass/icon.png b/src/main/resources/icon.png similarity index 100% rename from src/main/resources/assets/mo_glass/icon.png rename to src/main/resources/icon.png diff --git a/src/main/resources/mo-glass.mixins.json b/src/main/resources/mo-glass.mixins.json index 26aa544..0a26dbd 100644 --- a/src/main/resources/mo-glass.mixins.json +++ b/src/main/resources/mo-glass.mixins.json @@ -1,6 +1,6 @@ { "required": true, - "minVersion": "0.8", + "minVersion": "0.8.5", "package": "net.wurstclient.glass.mixin", "compatibilityLevel": "JAVA_17", "refmap": "mo-glass.refmap.json",