diff --git a/.gitignore b/.gitignore index 42e44b7..c6ae066 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,5 @@ libs/ classes/ .metadata .settings -*.launch \ No newline at end of file +*.launch +.architectury-transformer \ No newline at end of file diff --git a/.vscode/java-formatter.xml b/.vscode/java-formatter.xml deleted file mode 100644 index c0370f9..0000000 --- a/.vscode/java-formatter.xml +++ /dev/null @@ -1,382 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/.vscode/launch.json b/.vscode/launch.json index 47ffabf..a9227c9 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,35 +3,29 @@ "configurations": [ { "type": "java", - "name": "Minecraft Client (:forge)", + "name": "Minecraft Client (:fabric)", "request": "launch", - "cwd": "${workspaceFolder}/forge/run", + "cwd": "${workspaceFolder}/fabric/run", "console": "integratedTerminal", "stopOnEntry": false, "mainClass": "dev.architectury.transformer.TransformerRuntime", - "vmArgs": "-Dfabric.dli.config\u003d/pool/git/SimplyCompat/forge/.gradle/loom-cache/launch.cfg -Dfabric.dli.env\u003dclient -Djava.net.preferIPv6Addresses\u003dsystem -p /home/toph/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/2.1.10/51e6a22c6c716beb11e244bf5b8be480f51dd6b5/securejarhandler-2.1.10.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.7.1/406c6a2225cfe1819f102a161e54cc16a5c24f75/asm-commons-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.7.1/9e23359b598ec6b74b23e53110dd5c577adf2243/asm-util-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.7.1/f97a3b319f0ed6a8cd944dc79060d3912a28985f/asm-analysis-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.7.1/3a53139787663b139de76b627fca0084ab60d32c/asm-tree-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.7.1/f0ed132a49244b042cd0e15702ab9f2ce3cc8436/asm-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/net.minecraftforge/JarJarFileSystems/0.3.19/2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020/JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming -Dfabric.dli.main\u003dcpw.mods.bootstraplauncher.BootstrapLauncher -Darchitectury.main.class\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.main_class -Darchitectury.runtime.transformer\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.transforms -Darchitectury.properties\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.properties -Djdk.attach.allowAttachSelf\u003dtrue -javaagent:/pool/git/SimplyCompat/.gradle/architectury/architectury-transformer-agent.jar", + "vmArgs": "-Dfabric.dli.config\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/loom-cache/launch.cfg -Dfabric.dli.env\u003dclient -Dfabric.dli.main\u003dnet.fabricmc.loader.impl.launch.knot.KnotClient -Darchitectury.main.class\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.main_class -Darchitectury.runtime.transformer\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.transforms -Darchitectury.properties\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.properties -Djdk.attach.allowAttachSelf\u003dtrue -javaagent:/home/toph/git/simplycompat-1.20.1-fabric-forge-template/.gradle/architectury/architectury-transformer-agent.jar", "args": "", - "env": { - "MOD_CLASSES": "main%%/pool/git/SimplyCompat/forge/build/resources/main:main%%/pool/git/SimplyCompat/forge/build/classes/java/main", - "MCP_MAPPINGS": "loom.stub" - }, - "projectName": "forge" + "env": {}, + "projectName": "fabric" }, { "type": "java", - "name": "Minecraft Server (:forge)", + "name": "Minecraft Server (:fabric)", "request": "launch", - "cwd": "${workspaceFolder}/forge/run", + "cwd": "${workspaceFolder}/fabric/run", "console": "integratedTerminal", "stopOnEntry": false, "mainClass": "dev.architectury.transformer.TransformerRuntime", - "vmArgs": "-Dfabric.dli.config\u003d/pool/git/SimplyCompat/forge/.gradle/loom-cache/launch.cfg -Dfabric.dli.env\u003dserver -Djava.net.preferIPv6Addresses\u003dsystem -p /home/toph/.gradle/caches/modules-2/files-2.1/cpw.mods/securejarhandler/2.1.10/51e6a22c6c716beb11e244bf5b8be480f51dd6b5/securejarhandler-2.1.10.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.7.1/406c6a2225cfe1819f102a161e54cc16a5c24f75/asm-commons-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.7.1/9e23359b598ec6b74b23e53110dd5c577adf2243/asm-util-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.7.1/f97a3b319f0ed6a8cd944dc79060d3912a28985f/asm-analysis-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.7.1/3a53139787663b139de76b627fca0084ab60d32c/asm-tree-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.7.1/f0ed132a49244b042cd0e15702ab9f2ce3cc8436/asm-9.7.1.jar:/home/toph/.gradle/caches/modules-2/files-2.1/net.minecraftforge/JarJarFileSystems/0.3.19/2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020/JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming -Dfabric.dli.main\u003dcpw.mods.bootstraplauncher.BootstrapLauncher -Darchitectury.main.class\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.main_class -Darchitectury.runtime.transformer\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.transforms -Darchitectury.properties\u003d/pool/git/SimplyCompat/forge/.gradle/architectury/.properties -Djdk.attach.allowAttachSelf\u003dtrue -javaagent:/pool/git/SimplyCompat/.gradle/architectury/architectury-transformer-agent.jar", + "vmArgs": "-Dfabric.dli.config\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/loom-cache/launch.cfg -Dfabric.dli.env\u003dserver -Dfabric.dli.main\u003dnet.fabricmc.loader.impl.launch.knot.KnotServer -Darchitectury.main.class\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.main_class -Darchitectury.runtime.transformer\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.transforms -Darchitectury.properties\u003d/home/toph/git/simplycompat-1.20.1-fabric-forge-template/fabric/.gradle/architectury/.properties -Djdk.attach.allowAttachSelf\u003dtrue -javaagent:/home/toph/git/simplycompat-1.20.1-fabric-forge-template/.gradle/architectury/architectury-transformer-agent.jar", "args": "nogui", - "env": { - "MOD_CLASSES": "main%%/pool/git/SimplyCompat/forge/build/resources/main:main%%/pool/git/SimplyCompat/forge/build/classes/java/main", - "MCP_MAPPINGS": "loom.stub" - }, - "projectName": "forge" + "env": {}, + "projectName": "fabric" } ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index 992bd89..72b9edc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -15,7 +15,6 @@ }, "java.compile.nullAnalysis.mode": "automatic", "java.configuration.updateBuildConfiguration": "interactive", - "java.format.settings.url": ".vscode/java-formatter.xml", "java.import.gradle.home": "/home/toph/.asdf/installs/gradle/8.8", "java.jdt.ls.java.home": "/home/toph/.asdf/installs/java/openjdk-17", "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx4G -Xms100m -Xlog:disable", diff --git a/build.gradle b/build.gradle index f459289..45a12c9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,54 +1,81 @@ plugins { - id "architectury-plugin" version "3.4-SNAPSHOT" - id "dev.architectury.loom" version "1.7-SNAPSHOT" apply false + id 'dev.architectury.loom' version '1.7-SNAPSHOT' apply false + id 'architectury-plugin' version '3.4-SNAPSHOT' + id 'com.github.johnrengelman.shadow' version '8.1.1' apply false } architectury { - minecraft = rootProject.minecraft_version -} - -subprojects { - apply plugin: "dev.architectury.loom" - - loom { - silentMojangMappingsLicense() - } - - dependencies { - minecraft "com.mojang:minecraft:${rootProject.minecraft_version}" - // The following line declares the mojmap mappings, you may use other mappings as well - // mappings loom.officialMojangMappings() - // The following line declares the yarn mappings you may select this one as well. - mappings "net.fabricmc:yarn:${rootProject.yarn_mappings}:v2" - } + minecraft = project.minecraft_version } allprojects { - apply plugin: "java" - apply plugin: "architectury-plugin" - apply plugin: "maven-publish" + group = rootProject.maven_group + version = rootProject.mod_version +} + +subprojects { + apply plugin: 'dev.architectury.loom' + apply plugin: 'architectury-plugin' + apply plugin: 'maven-publish' base { - archivesName = rootProject.archives_base_name + // Set up a suffixed format for the mod jar names, e.g. `example-fabric`. + archivesName = "$rootProject.archives_name-$project.name" } - version = rootProject.mod_version - group = rootProject.maven_group - repositories { // Add repositories to retrieve artifacts from in here. // You should only use this when depending on other mods because // Loom adds the essential maven repositories to download Minecraft and libraries from automatically. // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. + maven { + name = 'ParchmentMC' + url = 'https://maven.parchmentmc.org' + } } - tasks.withType(JavaCompile) { - options.encoding = "UTF-8" - options.release = 17 + loom { + silentMojangMappingsLicense() + } + + dependencies { + minecraft "net.minecraft:minecraft:$rootProject.minecraft_version" + mappings loom.layered() { + officialMojangMappings() + parchment("org.parchmentmc.data:parchment-$rootProject.parchment_version@zip") + } } java { + // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task + // if it is present. + // If you remove this line, sources will not be generated. withSourcesJar() + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + tasks.withType(JavaCompile).configureEach { + it.options.release = 17 + } + + // Configure Maven publishing. + publishing { + publications { + mavenJava(MavenPublication) { + artifactId = base.archivesName.get() + from components.java + } + } + + // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. + repositories { + // Add repositories to publish to here. + // Notice: This block does NOT have the same function as the block in the top level. + // The repositories here will be used for publishing your artifact, not for + // retrieving dependencies. + } } } diff --git a/common/build.gradle b/common/build.gradle index ecc02b9..dca4fe2 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -1,20 +1,11 @@ architectury { - common(rootProject.enabled_platforms.split(",")) + common rootProject.enabled_platforms.split(',') } - -loom { - accessWidenerPath = file("src/main/resources/simplycompat.accesswidener") -} - repositories { - exclusiveContent { - forRepository { - maven { - url "https://cursemaven.com" - } - } - filter { + maven { + url "https://www.cursemaven.com" + content { includeGroup "curse.maven" } } @@ -23,36 +14,23 @@ repositories { } dependencies { - // We depend on fabric loader here to use the fabric @Environment annotations and get the mixin dependencies - // Do NOT use other classes from fabric loader - modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" - // Remove the next line if you don't want to depend on the API - modApi "dev.architectury:architectury:${rootProject.architectury_version}" + // We depend on Fabric Loader here to use the Fabric @Environment annotations, + // which get remapped to the correct annotations on each platform. + // Do NOT use other classes from Fabric Loader. + modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" + + // Architectury API. This is optional, and you can comment it out if you don't need it. + modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version" - modApi("me.shedaniel.cloth:cloth-config:${rootProject.cloth_config_version}") { + modApi("me.shedaniel.cloth:cloth-config:$rootProject.cloth_config_version") { exclude(group: "net.fabricmc.fabric-api") } - modImplementation("curse.maven:simplyswords-659887:5255981") + modImplementation "curse.maven:simplyswords-659887:5255981" // runtimeOnly "curse.maven:better-combat-by-daedelus-639842:5625757" // runtimeOnly "curse.maven:playeranimator-658587:4587214" // implementation "curse.maven:additional-additions-forge-582387:5155724" // implementation "curse.maven:create-328085:5838779" // implementation "curse.maven:create-industry-693815:5811638" - -} - -publishing { - publications { - mavenCommon(MavenPublication) { - artifactId = rootProject.archives_base_name - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } } diff --git a/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java b/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java deleted file mode 100644 index ccea463..0000000 --- a/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java +++ /dev/null @@ -1,26 +0,0 @@ -package cc.toph.simplycompat; - -import dev.architectury.platform.Platform; -import java.nio.file.Path; - -public class ExpectPlatform { - - /** - * We can use {@link Platform#getConfigFolder()} but this is just an example of {@link dev.architectury.injectables.annotations.ExpectPlatform}. - *

- * This must be a public static method. The platform-implemented solution must be placed under a - * platform sub-package, with its class suffixed with {@code Impl}. - *

- * Example: - * Expect: cc.toph.simplycompat.ExampleExpectPlatform#getConfigDirectory() - * Actual Fabric: net.examplemod.fabric.ExampleExpectPlatformImpl#getConfigDirectory() - * Actual Forge: net.examplemod.forge.ExampleExpectPlatformImpl#getConfigDirectory() - *

- * You should also get the IntelliJ plugin to help with @ExpectPlatform. - */ - @dev.architectury.injectables.annotations.ExpectPlatform - public static Path getConfigDirectory() { - // Just throw an error, the content should get replaced at runtime. - throw new AssertionError(); - } -} diff --git a/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java b/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java index 9b4e2f7..dee26a0 100644 --- a/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java +++ b/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java @@ -1,111 +1,38 @@ package cc.toph.simplycompat; import cc.toph.simplycompat.registry.ItemsRegistry; -import dev.architectury.platform.Platform; import dev.architectury.registry.CreativeTabRegistry; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import net.minecraft.item.Items; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.text.Text; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -public class SimplyCompat { +public final class SimplyCompat { public static final String MOD_ID = "simplycompat"; - public static final DeferredRegister TABS = DeferredRegister.create( - SimplyCompat.MOD_ID, - RegistryKeys.ITEM_GROUP + public static final DeferredRegister TABS = DeferredRegister.create( + MOD_ID, + Registries.CREATIVE_MODE_TAB ); - - public static final RegistrySupplier SIMPLYCOMPAT = TABS.register( - "simplycompat", // Tab ID - () -> - CreativeTabRegistry.create( - Text.translatable("itemGroup.simplycompat.simplycompat"), // Tab Name - () -> new ItemStack(Items.AMETHYST_SHARD) // TODO: Icon - ) + public static final RegistrySupplier SIMPLYCOMPAT = TABS.register(MOD_ID, () -> + CreativeTabRegistry.create( + Component.translatable("creativeTab.simplycompat.simplycompat"), + () -> new ItemStack(Items.AMETHYST_SHARD) + ) ); public static final Logger LOGGER = LogManager.getLogger(MOD_ID); - public static boolean isConfigOutdated; - - // public static GeneralConfig generalConfig; - // public static LootConfig lootConfig; - // public static GemEffectsConfig gemEffectsConfig; - // public static RunicEffectsConfig runicEffectsConfig; - // public static StatusEffectsConfig statusEffectsConfig; - // public static UniqueEffectsConfig uniqueEffectsConfig; - // public static WeaponAttributesConfig weaponAttributesConfig; - // - // public static String minimumEldritchEndVersion = "0.2.40"; - // public static String minimumSpellPowerVersion = "0.10.0+1.20.1"; - public static void init() { - //CONFIG + // Write common init code here. - // SimplyCompatConfig.init(); - // - // AutoConfig.register(ConfigWrapper.class, PartitioningSerializer.wrap(JanksonConfigSerializer::new)); - // generalConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().general; - //// lootConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().loot; - //// gemEffectsConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().gem_effects; - //// runicEffectsConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().runic_effects; - //// statusEffectsConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().status_effects; - //// uniqueEffectsConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().unique_effects; - // weaponAttributesConfig = AutoConfig.getConfigHolder(ConfigWrapper.class).getConfig().weapon_attributes; - - String version = SimplyCompatExpectPlatform.getVersion(); - String defaultConfig = String.format( - """ - { - "regen_simplycompat_config_file": false, - "config_version": %s - }""", - version.substring(0, 4) - ); - - // File configFile = Config.createFile("config/simplycompat_extra/backupconfig.json", defaultConfig, false); - // JsonObject json = Config.getJsonObject(Config.readFile(configFile)); - // isConfigOutdated = !json.has("config_version") || !version.startsWith(json.get("config_version").getAsString()); - // - // SimplySwordsConfig.generateConfigs(json == null || !json.has("regen_simplyswords_config_file") || json.get("regen_simplyswords_config_file").getAsBoolean()); - // SimplySwordsConfig.loadConfig(); - - SimplyCompat.TABS.register(); + TABS.register(); ItemsRegistry.ITEMS.register(); - // SoundRegistry.SOUND.register(); - // EffectRegistry.EFFECT.register(); - // EntityRegistry.ENTITIES.register(); - // ModLootTableModifiers.init(); - // if (passVersionCheck("eldritch_end", minimumEldritchEndVersion)) { - // EldritchEndCompat.registerModItems(); - // EldritchEndCompatRegistry.EFFECT.register(); - // } - - // try { - // FileCopier.copyFileToConfigDirectory(); - // } catch (IOException e) { - // throw new RuntimeException(e); - // } - - //Don't announce via in-game chat because that's kinda annoying - //ClientPlayerEvent.CLIENT_PLAYER_JOIN.register(new EventGameStart()); - - System.out.println( - SimplyCompatExpectPlatform.getConfigDirectory().toAbsolutePath().normalize().toString() - ); - } - - public static boolean passVersionCheck(String modId, String requiredVersion) { - if (Platform.isModLoaded(modId)) { - return Platform.getMod(modId).getVersion().compareTo(requiredVersion) >= 0; - } - return false; } } diff --git a/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java.bak b/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java.bak deleted file mode 100644 index 7561776..0000000 --- a/common/src/main/java/cc/toph/simplycompat/SimplyCompat.java.bak +++ /dev/null @@ -1,36 +0,0 @@ -package cc.toph.simplycompat; - -public class SimplyCompat { - - public static final String MOD_ID = "simplycompat"; - // We can use this if we don't want to use DeferredRegister - public static final Supplier REGISTRIES = Suppliers.memoize(() -> - RegistrarManager.get(MOD_ID) - ); - - // Registering a new creative tab - public static final DeferredRegister TABS = DeferredRegister.create( - MOD_ID, - Registries.CREATIVE_MODE_TAB - ); - public static final RegistrySupplier EXAMPLE_TAB = TABS.register("example_tab", () -> - CreativeTabRegistry.create(Component.translatable("itemGroup." + MOD_ID + ".example_tab"), () -> - new ItemStack(ExampleMod.EXAMPLE_ITEM.get()) - ) - ); - - public static final DeferredRegister ITEMS = DeferredRegister.create( - MOD_ID, - Registries.ITEM - ); - public static final RegistrySupplier EXAMPLE_ITEM = ITEMS.register("example_item", () -> - new Item(new Item.Properties().arch$tab(ExampleMod.EXAMPLE_TAB)) - ); - - public static void init() { - // TABS.register(); - // ITEMS.register(); - // - System.out.println(ExpectPlatform.getConfigDirectory().toAbsolutePath().normalize().toString()); - } -} diff --git a/common/src/main/java/cc/toph/simplycompat/SimplyCompatExpectPlatform.java b/common/src/main/java/cc/toph/simplycompat/SimplyCompatExpectPlatform.java deleted file mode 100644 index b84976e..0000000 --- a/common/src/main/java/cc/toph/simplycompat/SimplyCompatExpectPlatform.java +++ /dev/null @@ -1,43 +0,0 @@ -package cc.toph.simplycompat; - -import dev.architectury.injectables.annotations.ExpectPlatform; -import java.nio.file.Path; -import net.minecraft.entity.player.PlayerEntity; - -public class SimplyCompatExpectPlatform { - - /** - * We can use {@link Platform#getConfigFolder()} but this is just an example of {@link ExpectPlatform}. - *

- * This must be a public static method. The platform-implemented solution must be placed under a - * platform sub-package, with its class suffixed with {@code Impl}. - *

- * Example: - * Expect: net.examplemod.ExampleExpectPlatform#getConfigDirectory() - * Actual Fabric: net.examplemod.fabric.ExampleExpectPlatformImpl#getConfigDirectory() - * Actual Forge: net.examplemod.forge.ExampleExpectPlatformImpl#getConfigDirectory() - *

- * You should also get the IntelliJ plugin to help with @ExpectPlatform. - */ - @ExpectPlatform - public static Path getConfigDirectory() { - // Just throw an error, the content should get replaced at runtime. - throw new AssertionError(); - } - - @ExpectPlatform - public static String getVersion() { - // Just throw an error, the content should get replaced at runtime. - throw new AssertionError(); - } - - @ExpectPlatform - public static float getSpellPowerDamage( - float damageModifier, - PlayerEntity player, - String magicSchool - ) { - // Just throw an error, the content should get replaced at runtime. - throw new AssertionError(); - } -} diff --git a/common/src/main/java/cc/toph/simplycompat/config/Config.java b/common/src/main/java/cc/toph/simplycompat/config/Config.java deleted file mode 100644 index b397d92..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/Config.java +++ /dev/null @@ -1,190 +0,0 @@ -package cc.toph.simplycompat.config; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; - -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; -import java.util.Scanner; - -public class Config { - - public static File createFile(String path, String contents, boolean overwrite) { - File file = new File(path); - if (file.exists() && !overwrite) { - return file; - } - file.getParentFile().mkdirs(); - try { - file.createNewFile(); - } catch (IOException e) { - e.printStackTrace(); - } - file.setReadable(true); - file.setWritable(true); - file.setExecutable(true); - if (contents == null || "".equals(contents)) { - return file; - } - try (FileWriter writer = new FileWriter(file)) { - writer.write(contents); - } catch (IOException e) { - e.printStackTrace(); - } - return file; - } - - - public static String readFile(File file) { - String output = ""; - try (Scanner scanner = new Scanner(file)) { - scanner.useDelimiter("\\Z"); - output = scanner.next(); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - return output; - } - - public static JsonObject getJsonObject(String json) { - try { - return new JsonParser().parse(json).getAsJsonObject(); - } catch (Exception e) { - e.printStackTrace(); - return null; - } - } - - - // -- Safe Config Fetching -- - // Allows safely fetching config values in a scenario where we do not know if they exist. - // EG. Addon mod for Simply Swords attempting to load config values before Simply Swords has initialised. - - private static final HashMap BOOLEAN = new LinkedHashMap<>(); - private static final HashMap FLOAT = new LinkedHashMap<>(); - private static final HashMap DOUBLE = new LinkedHashMap<>(); - private static final HashMap INT = new LinkedHashMap<>(); - - public static boolean getBoolean(String key, String parent, boolean defaultValue) { - //System.out.println("Trying to fetch config value for " + key + " from " + parent); - safeValueFetch("boolean", parent); - if (!BOOLEAN.isEmpty()) { - if (BOOLEAN.containsKey(key)) { - //System.out.println("Successfully fetched value for " + key + " : " + BOOLEAN.get(key)); - return BOOLEAN.get(key); - } - } - System.out.println("Failed to fetch config value for " + key + ". Loading default value.\nIt is recommended that you restart your game."); - return defaultValue; - } - - public static float getFloat(String key, String parent, float defaultValue) { - //System.out.println("Trying to fetch config value for " + key + " from " + parent); - safeValueFetch("float", parent); - if (!FLOAT.isEmpty()) { - if (FLOAT.containsKey(key)) { - //System.out.println("Successfully fetched value for " + key + " : " + FLOAT.get(key)); - return FLOAT.get(key); - } - } - System.out.println("Failed to fetch config value for " + key + ". Loading default value.\nIt is recommended that you restart your game."); - //System.out.print(FLOAT); - return defaultValue; - } - - public static double getDouble(String key, String parent, double defaultValue) { - safeValueFetch("double", parent); - if (!DOUBLE.isEmpty()) { - if (DOUBLE.containsKey(key)) - return DOUBLE.get(key); - } - System.out.println("Failed to fetch config value for " + key + ". Loading default value.\nIt is recommended that you restart your game."); - return defaultValue; - } - - public static int getInt(String key, String parent, int defaultValue) { - safeValueFetch("int", parent); - if (!INT.isEmpty()) { - if (INT.containsKey(key)) - return INT.get(key); - } - System.out.println("Failed to fetch config value for " + key + ". Loading default value.\nIt is recommended that you restart your game."); - return defaultValue; - } - - public static void safeValueFetch(String type, String parent) { - Path path = Paths.get("config/simplycompat_main/"); - JsonObject json = null; - if (Files.exists(path)) { - json = switch (parent) { -// case "GemEffects" -> -// Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/gem_effects.json5"))); -// case "General" -> -// Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/general.json5"))); -// case "Loot" -> Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/loot.json5"))); -// case "RunicEffects" -> -//// Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/runic_effects.json5"))); -// case "StatusEffects" -> -// Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/status_effects.json5"))); -// case "UniqueEffects" -> -// Config.getJsonObject(Config.readFile(new File("config/simplyswords_main/unique_effects.json5"))); - case "WeaponAttributes" -> - Config.getJsonObject(Config.readFile(new File("config/simplycompat_main/weapon_attributes.json5"))); - default -> null; - }; - } - - if (json != null) { - - switch (type) { - case "boolean" -> { - for (Map.Entry entry : json.entrySet()) { - try { - BOOLEAN.put(entry.getKey(), entry.getValue().getAsBoolean()); - } catch (Exception e) { - //System.out.println(entry.getKey() + ": " + entry.getValue() + " is not a valid value. Skipping this entry."); - } - } - } - case "float" -> { - for (Map.Entry entry : json.entrySet()) { - try { - FLOAT.put(entry.getKey(), entry.getValue().getAsFloat()); - } catch (Exception e) { - //System.out.println(entry.getKey() + ": " + entry.getValue() + " is not a valid value. Skipping this entry."); - } - } - } - case "double" -> { - for (Map.Entry entry : json.entrySet()) { - try { - DOUBLE.put(entry.getKey(), entry.getValue().getAsDouble()); - } catch (Exception e) { - //System.out.println(entry.getKey() + ": " + entry.getValue() + " is not a valid value. Skipping this entry."); - } - } - } - case "int" -> { - for (Map.Entry entry : json.entrySet()) { - try { - INT.put(entry.getKey(), entry.getValue().getAsInt()); - } catch (Exception e) { - //System.out.println(entry.getKey() + ": " + entry.getValue() + " is not a valid value. Skipping this entry."); - } - } - } - } - } - } - - -} diff --git a/common/src/main/java/cc/toph/simplycompat/config/ConfigDefaultValues.java b/common/src/main/java/cc/toph/simplycompat/config/ConfigDefaultValues.java deleted file mode 100644 index 31c757b..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/ConfigDefaultValues.java +++ /dev/null @@ -1,59 +0,0 @@ -package cc.toph.simplycompat.config; - -public class ConfigDefaultValues { - - // public static float bronze_damageModifier = 3.0f; - public static float copper_damageModifier = 3.0f; -// public static float steel_damageModifier = 3.0f; - -// // -- LOOT CONFIG -- -// -// public static boolean enableLootDrops = true; -// -// public static boolean enableLootInVillages = false; -// public static boolean enableTheWatcher = true; -// -// public static float standardLootTableWeight = 0.01f; -// -// public static float rareLootTableWeight = 0.004f; -// -// public static float runicLootTableWeight = 0.007f; -// -// public static float uniqueLootTableWeight = 0.001f; -// public static boolean enableWatchingWarglaive = true; -// public static boolean enableContainedRemnants = true; -// public static boolean enableLongswordOfThePlague = true; -// public static boolean enableSwordOnAStick = true; -// public static boolean enableBramblethorn = true; -// public static boolean enableStormsEdge = true; -// public static boolean enableStormbringer = true; -// public static boolean enableMjolnir = true; -// public static boolean enableEmberblade = true; -// public static boolean enableHearthflame = true; -// public static boolean enableTwistedBlade = true; -// public static boolean enableSoulrender = true; -// public static boolean enableSoulpyre = true; -// public static boolean enableSoulkeeper = true; -// public static boolean enableSoulstealer = true; -// public static boolean enableFrostfall = true; -// public static boolean enableMoltenEdge = true; -// public static boolean enableLivyatan = true; -// public static boolean enableIcewhisper = true; -// public static boolean enableArcanethyst = true; -// public static boolean enableThunderbrand = true; -// public static boolean enableBrimstone = true; -// public static boolean enableSlumberingLichblade = true; -// public static boolean enableShadowsting = true; -// public static boolean enableDormantRelic = true; -// public static boolean enableWhisperwind = true; -// public static boolean enableEmberlash = true; -// public static boolean enableWaxweaver = true; -// public static boolean enableHiveheart = true; -// public static boolean enableStarsEdge = true; -// public static boolean enableWickpiercer = true; -// public static boolean enableTempest = true; -// public static boolean enableFlamewind = true; -// public static boolean enableRibboncleaver = true; -// public static boolean enableCaelestis = true; - -} diff --git a/common/src/main/java/cc/toph/simplycompat/config/ConfigWrapper.java b/common/src/main/java/cc/toph/simplycompat/config/ConfigWrapper.java deleted file mode 100644 index 9efbeb8..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/ConfigWrapper.java +++ /dev/null @@ -1,33 +0,0 @@ -package cc.toph.simplycompat.config; - -import cc.toph.simplycompat.SimplyCompat; -import me.shedaniel.autoconfig.annotation.Config; -import me.shedaniel.autoconfig.annotation.ConfigEntry; -import me.shedaniel.autoconfig.serializer.PartitioningSerializer; - -@Config(name = SimplyCompat.MOD_ID + "_main") -@Config.Gui.Background("cloth-config2:transparent") -public class ConfigWrapper extends PartitioningSerializer.GlobalData { - - // @ConfigEntry.Category("general") - // @ConfigEntry.Gui.TransitiveObject - // public GeneralConfig general = new GeneralConfig(); - // @ConfigEntry.Category("loot") - // @ConfigEntry.Gui.TransitiveObject - // public LootConfig loot = new LootConfig(); - // @ConfigEntry.Category("gem_effects") - // @ConfigEntry.Gui.TransitiveObject - // public GemEffectsConfig gem_effects = new GemEffectsConfig(); - // @ConfigEntry.Category("runic_effects") - // @ConfigEntry.Gui.TransitiveObject - // public RunicEffectsConfig runic_effects = new RunicEffectsConfig(); - // @ConfigEntry.Category("status_effects") - // @ConfigEntry.Gui.TransitiveObject - // public StatusEffectsConfig status_effects = new StatusEffectsConfig(); - // @ConfigEntry.Category("unique_effects") - // @ConfigEntry.Gui.TransitiveObject - // public UniqueEffectsConfig unique_effects = new UniqueEffectsConfig(); - @ConfigEntry.Category("weapon_attributes") - @ConfigEntry.Gui.TransitiveObject - public WeaponAttributesConfig weapon_attributes = new WeaponAttributesConfig(); -} diff --git a/common/src/main/java/cc/toph/simplycompat/config/LootConfig.java b/common/src/main/java/cc/toph/simplycompat/config/LootConfig.java deleted file mode 100644 index ca2a68e..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/LootConfig.java +++ /dev/null @@ -1,62 +0,0 @@ -package cc.toph.simplycompat.config; - -import me.shedaniel.autoconfig.ConfigData; -import me.shedaniel.autoconfig.annotation.Config; -import me.shedaniel.autoconfig.annotation.ConfigEntry; - -@Config(name = "loot") -public class LootConfig implements ConfigData { - - @ConfigEntry.Gui.PrefixText - @ConfigEntry.Gui.Tooltip - public boolean enableLootDrops = true; - @ConfigEntry.Gui.Tooltip - public boolean enableLootInVillages = false; - public boolean enableTheWatcher = true; - @ConfigEntry.Gui.Tooltip - public float standardLootTableWeight = 0.01f; - @ConfigEntry.Gui.Tooltip - public float rareLootTableWeight = 0.004f; - @ConfigEntry.Gui.Tooltip - public float runicLootTableWeight = 0.007f; - @ConfigEntry.Gui.Tooltip - public float uniqueLootTableWeight = 0.001f; - @ConfigEntry.Gui.Tooltip - public boolean enableContainedRemnants = true; - public boolean enableWatchingWarglaive = true; - public boolean enableLongswordOfThePlague = true; - public boolean enableSwordOnAStick = true; - public boolean enableBramblethorn = true; - public boolean enableStormsEdge = true; - public boolean enableStormbringer = true; - public boolean enableMjolnir = true; - public boolean enableEmberblade = true; - public boolean enableHearthflame = true; - public boolean enableTwistedBlade = true; - public boolean enableSoulrender = true; - public boolean enableSoulpyre = true; - public boolean enableSoulkeeper = true; - public boolean enableSoulstealer = true; - public boolean enableFrostfall = true; - public boolean enableMoltenEdge = true; - public boolean enableLivyatan = true; - public boolean enableIcewhisper = true; - public boolean enableArcanethyst = true; - public boolean enableThunderbrand = true; - public boolean enableBrimstone = true; - public boolean enableSlumberingLichblade = true; - public boolean enableShadowsting = true; - public boolean enableDormantRelic = true; - public boolean enableWhisperwind = true; - public boolean enableEmberlash = true; - public boolean enableWaxweaver = true; - public boolean enableHiveheart = true; - public boolean enableStarsEdge = true; - public boolean enableWickpiercer = true; - public boolean enableTempest = true; - public boolean enableFlamewind = true; - public boolean enableRibboncleaver = true; - public boolean enableCaelestis = true; - - -} diff --git a/common/src/main/java/cc/toph/simplycompat/config/SimplyCompatConfig.java b/common/src/main/java/cc/toph/simplycompat/config/SimplyCompatConfig.java deleted file mode 100644 index 84b1031..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/SimplyCompatConfig.java +++ /dev/null @@ -1,99 +0,0 @@ -package cc.toph.simplycompat.config; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; - -import java.io.File; -import java.util.HashMap; -import java.util.LinkedHashMap; -import java.util.Map; - -public class SimplyCompatConfig { - private static final HashMap LOOT_OPTIONS = new LinkedHashMap<>(); - - public static float getLootModifiers(String key) { - if (!LOOT_OPTIONS.containsKey(key)) { - //System.out.println(key); - return 0f; - } - return LOOT_OPTIONS.get(key); - } - - public static boolean getLootList(String id) { - if (!LOOT_OPTIONS.isEmpty()) { - //System.out.println(id); - return LOOT_OPTIONS.toString().contains(id); - } - return false; - } - - public static void init() { - - LOOT_OPTIONS.put("minecraft:entities/wither", 0.05f); - LOOT_OPTIONS.put("minecraft:entities/ender_dragon", 0.5f); - LOOT_OPTIONS.put("minecraft:chests/ruined_portal", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_armorer", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_butcher", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_cartographer", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_desert_house", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_fisher", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_fletcher", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_mason", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_plains_house", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_savanna_house", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_shepard", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_snowy_house", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_taiga_house", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_tannery", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_temple", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_toolsmith", 0f); - LOOT_OPTIONS.put("minecraft:chests/village/village_weaponsmith", 0f); - - } - - public static void loadConfig() { - //System.out.println("Loading common Simply Swords config"); - JsonObject json; - json = Config.getJsonObject(Config.readFile(new File("config/simplyswords_extra/loot_config.json5"))); - for (Map.Entry entry : json.entrySet()) { - LOOT_OPTIONS.put(entry.getKey(), entry.getValue().getAsFloat()); - } - } - - - public static void generateConfigs(boolean overwrite) { - //System.out.println("Generating common Simply Swords config"); - StringBuilder config; - int i; - config = new StringBuilder("{\n"); - i = 0; - for (String key : LOOT_OPTIONS.keySet()) { - if (i == 0) { - config.append("// --------------------------------------------- LOOT CONFIGURATION ----------------------------------------------------------------- \n"); - config.append("// This config allows for the tweaking of loot injection for UNIQUE weapons. \n"); - config.append("// Standard iron > diamond gear, and Runic Tablets, are controlled by the loot modifiers in the general_config, not here. \n"); - config.append("// ---------------------------------------------------------------------------------------------------------------------------------- \n"); - config.append("// --------------------------------------------- How does it work? ------------------------------------------------------------------ \n"); - config.append("// If 'add_weapons_to_loot_tables' is enabled in the simplyswords_main config, Simply Swords will attempt to inject its loot into \n"); - config.append("// any loot table that contains 'chests' in its filepath. This includes loot tables from other mods.\n"); - config.append("// Any values provided in this config will override the aforementioned process, acting as both a whitelist, and a blacklist.\n"); - config.append("\n"); - config.append("// Each line must be made up of a string containing the namespace, path, and filename, in addition to a float value. \n"); - config.append("// The float value provided will determine the chance of the loot appearing in the loot table. Where 0.0 is %0, and 1.0 is %100.\n"); - config.append("// If the float value provided is 0.0 the items will be blacklisted from this loot table and skipped entirely by the loot injection.\n"); - config.append("\n"); - config.append("// Items can also be injected into entity loot tables, as seen in the Wither example below.\n"); - config.append("// ---------------------------------------------------------------------------------------------------------------------------------- \n"); - config.append("\n"); - } - config.append(" \"").append(key).append("\": ").append(LOOT_OPTIONS.get(key)); - ++i; - if (i < LOOT_OPTIONS.size()) { - config.append(","); - } - config.append("\n"); - } - config.append("}"); - Config.createFile("config/simplyswords_extra/loot_config.json5", config.toString(), overwrite); - } -} \ No newline at end of file diff --git a/common/src/main/java/cc/toph/simplycompat/config/WeaponAttributesConfig.java b/common/src/main/java/cc/toph/simplycompat/config/WeaponAttributesConfig.java deleted file mode 100644 index e96d9ae..0000000 --- a/common/src/main/java/cc/toph/simplycompat/config/WeaponAttributesConfig.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.toph.simplycompat.config; - -import me.shedaniel.autoconfig.ConfigData; -import me.shedaniel.autoconfig.annotation.Config; -import me.shedaniel.autoconfig.annotation.ConfigEntry; - -@Config(name = "weapon_attributes") -public class WeaponAttributesConfig implements ConfigData { - - @ConfigEntry.Gui.PrefixText - public float bronze_damageModifier = 3.0f; - public float copper_damageModifier = 3.0f; - public float steel_damageModifier = 3.0f; - -} \ No newline at end of file diff --git a/common/src/main/java/cc/toph/simplycompat/item/SimplyCompatToolMaterials.java b/common/src/main/java/cc/toph/simplycompat/item/SimplyCompatToolMaterials.java index 8a458cb..583b1bc 100644 --- a/common/src/main/java/cc/toph/simplycompat/item/SimplyCompatToolMaterials.java +++ b/common/src/main/java/cc/toph/simplycompat/item/SimplyCompatToolMaterials.java @@ -2,70 +2,76 @@ package cc.toph.simplycompat.item; import com.google.common.base.Suppliers; import java.util.function.Supplier; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.item.ToolMaterial; -import net.minecraft.recipe.Ingredient; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.Tier; +import net.minecraft.world.item.crafting.Ingredient; -public enum SimplyCompatToolMaterials implements ToolMaterial { +public enum SimplyCompatToolMaterials implements Tier { COPPER(1, 125, 4.5F, 1.0F, 8, Items.COPPER_INGOT), STEEL(2, 600, 6.5F, 2.5F, 12, Items.DIAMOND); - private final int miningLevel; - private final int itemDurability; - private final float miningSpeed; - private final float attackDamage; - private final int enchantability; + private final int level; + private final int uses; + private final float speed; + private final float attackDamageBonus; + private final int enchantmentValue; private final Supplier repairIngredient; SimplyCompatToolMaterials( - int miningLevel, - int itemDurability, - float miningSpeed, - float attackDamage, - int enchantability, + int level, + int uses, + float speed, + float attackDamageBonus, + int enchantmentValue, Item... repairIngredient ) { - this.miningLevel = miningLevel; - this.itemDurability = itemDurability; - this.miningSpeed = miningSpeed; - this.attackDamage = attackDamage; - this.enchantability = enchantability; - this.repairIngredient = Suppliers.memoize(() -> Ingredient.ofItems(repairIngredient)); + this.level = level; + this.uses = uses; + this.speed = speed; + this.attackDamageBonus = attackDamageBonus; + this.enchantmentValue = enchantmentValue; + this.repairIngredient = Suppliers.memoize(() -> Ingredient.of(repairIngredient)); + } + + /** + * Returns RepairIngredient ResourceLocation as a string + * @return String ResourceLocation Path (mod:item) + */ + public String getIdentifier() { + return BuiltInRegistries.ITEM.getKey( + this.repairIngredient.get().getItems()[0].getItem() + ).toString(); } @Override - public int getDurability() { - return this.itemDurability; + public int getUses() { + return uses; } @Override - public float getMiningSpeedMultiplier() { - return this.miningSpeed; + public float getSpeed() { + return speed; } @Override - public float getAttackDamage() { - return this.attackDamage; + public float getAttackDamageBonus() { + return attackDamageBonus; } @Override - public int getMiningLevel() { - return this.miningLevel; + public int getLevel() { + return level; } @Override - public int getEnchantability() { - return this.enchantability; + public int getEnchantmentValue() { + return enchantmentValue; } @Override public Ingredient getRepairIngredient() { - repairIngredient.get().getMatchingItemIds(); return this.repairIngredient.get(); } - - public void getIdenfier() { - System.out.println(this.repairIngredient.get().toJson().getAsString()); - } } diff --git a/common/src/main/java/cc/toph/simplycompat/mixin/MixinTitleScreen.java b/common/src/main/java/cc/toph/simplycompat/mixin/MixinTitleScreen.java deleted file mode 100644 index 393b694..0000000 --- a/common/src/main/java/cc/toph/simplycompat/mixin/MixinTitleScreen.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.toph.simplycompat.mixin; - -import net.minecraft.client.gui.screen.TitleScreen; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; - -@Mixin(TitleScreen.class) -public class MixinTitleScreen { - @Inject(at = @At("HEAD"), method = "init()V") - private void init(CallbackInfo info) { - System.out.println("Hello from example architectury common mixin!"); - } -} \ No newline at end of file diff --git a/common/src/main/java/cc/toph/simplycompat/registry/ItemsRegistry.java b/common/src/main/java/cc/toph/simplycompat/registry/ItemsRegistry.java index ed2de0e..20b1075 100644 --- a/common/src/main/java/cc/toph/simplycompat/registry/ItemsRegistry.java +++ b/common/src/main/java/cc/toph/simplycompat/registry/ItemsRegistry.java @@ -4,8 +4,8 @@ import cc.toph.simplycompat.SimplyCompat; import cc.toph.simplycompat.item.SimplyCompatToolMaterials; import dev.architectury.registry.registries.DeferredRegister; import dev.architectury.registry.registries.RegistrySupplier; -import net.minecraft.item.Item; -import net.minecraft.registry.RegistryKeys; +import net.minecraft.core.registries.Registries; +import net.minecraft.world.item.Item; import net.sweenus.simplyswords.config.ConfigDefaultValues; import net.sweenus.simplyswords.item.SimplySwordsSwordItem; @@ -319,14 +319,13 @@ public class ItemsRegistry { public static final DeferredRegister ITEMS = DeferredRegister.create( SimplyCompat.MOD_ID, - RegistryKeys.ITEM + Registries.ITEM ); private static RegistrySupplier registerSword( String materialPrefix, SimplyCompatToolMaterials material, - WeaponType type, - String... materialTag + WeaponType type ) { // Get the base modifier from config by constructing the key "_damageModifier" // float baseModifier = Config.getFloat( @@ -335,7 +334,7 @@ public class ItemsRegistry { // 1.0F // TODO: Change config to a data structure, or at least have one available for accessing here, Since we cant `ConfigDefaultValues.material_damageModifier` here // ); - material.getIdenfier(); // DELETE + var materialTag = material.getIdentifier(); float finalDamage = 2.0f + type.getPositiveModifier() - type.getNegativeModifier(); // float finalDamage = baseModifier + type.getPositiveModifier() - type.getNegativeModifier(); @@ -349,104 +348,89 @@ public class ItemsRegistry { public static final RegistrySupplier COPPER_CHAKRAM = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.CHAKRAM, - "minecraft:copper_ingot" + WeaponType.CHAKRAM ); public static final RegistrySupplier COPPER_CLAYMORE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.CLAYMORE, - "minecraft:copper_ingot" + WeaponType.CLAYMORE ); public static final RegistrySupplier COPPER_CUTLASS = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.CUTLASS, - "minecraft:copper_ingot" + WeaponType.CUTLASS ); public static final RegistrySupplier COPPER_GLAIVE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.GLAIVE, - "minecraft:copper_ingot" + WeaponType.GLAIVE ); public static final RegistrySupplier COPPER_GREATAXE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.GREATAXE, - "minecraft:copper_ingot" + WeaponType.GREATAXE ); public static final RegistrySupplier COPPER_GREATHAMMER = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.GREATHAMMER, - "minecraft:copper_ingot" + WeaponType.GREATHAMMER ); public static final RegistrySupplier COPPER_HALBERD = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.HALBERD, - "minecraft:copper_ingot" + WeaponType.HALBERD ); public static final RegistrySupplier COPPER_KATANA = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.KATANA, - "minecraft:copper_ingot" + WeaponType.KATANA ); public static final RegistrySupplier COPPER_LONGSWORD = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.LONGSWORD, - "minecraft:copper_ingot" + WeaponType.LONGSWORD ); public static final RegistrySupplier COPPER_RAPIER = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.RAPIER, - "minecraft:copper_ingot" + WeaponType.RAPIER ); public static final RegistrySupplier COPPER_SAI = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.SAI, - "minecraft:copper_ingot" + WeaponType.SAI ); public static final RegistrySupplier COPPER_SCYTHE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.SCYTHE, - "minecraft:copper_ingot" + WeaponType.SCYTHE ); public static final RegistrySupplier COPPER_SPEAR = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.SPEAR, - "minecraft:copper_ingot" + WeaponType.SPEAR ); public static final RegistrySupplier COPPER_TWINBLADE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.TWINBLADE, - "minecraft:copper_ingot" + WeaponType.TWINBLADE ); public static final RegistrySupplier COPPER_WARGLAIVE = registerSword( "copper", SimplyCompatToolMaterials.COPPER, - WeaponType.WARGLAIVE, - "minecraft:copper_ingot" + WeaponType.WARGLAIVE ); } diff --git a/common/src/main/resources/architectury.common.json b/common/src/main/resources/architectury.common.json deleted file mode 100644 index 1b464ea..0000000 --- a/common/src/main/resources/architectury.common.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "accessWidener": "simplycompat.accesswidener" -} \ No newline at end of file diff --git a/common/src/main/resources/assets/simplycompat/models/item/copper_longsword.json b/common/src/main/resources/assets/simplycompat/models/item/copper_longsword.json index d6abe79..204bc64 100644 --- a/common/src/main/resources/assets/simplycompat/models/item/copper_longsword.json +++ b/common/src/main/resources/assets/simplycompat/models/item/copper_longsword.json @@ -1,5 +1,5 @@ { - "parent": "simplycompat:item/copper_longsword", + "parent": "simplyswords:item/template_longsword", "textures": { "layer0": "simplycompat:item/copper_longsword" } diff --git a/common/src/main/resources/assets/simplycompat/models/item/copper_scythe.json b/common/src/main/resources/assets/simplycompat/models/item/copper_scythe.json index cd0661f..0dcfbd2 100644 --- a/common/src/main/resources/assets/simplycompat/models/item/copper_scythe.json +++ b/common/src/main/resources/assets/simplycompat/models/item/copper_scythe.json @@ -1,5 +1,5 @@ { - "parent": "simplycompat:item/copper_scythe", + "parent": "simplyswords:item/big_handheld", "textures": { "layer0": "simplycompat:item/copper_scythe" } diff --git a/common/src/main/resources/data/simplycompat/weapon_attributes/c/tags/items/swords.json b/common/src/main/resources/data/c/tags/items/swords.json similarity index 100% rename from common/src/main/resources/data/simplycompat/weapon_attributes/c/tags/items/swords.json rename to common/src/main/resources/data/c/tags/items/swords.json diff --git a/common/src/main/resources/simplycompat.accesswidener b/common/src/main/resources/simplycompat.accesswidener deleted file mode 100644 index 13268c3..0000000 --- a/common/src/main/resources/simplycompat.accesswidener +++ /dev/null @@ -1 +0,0 @@ -accessWidener v2 named \ No newline at end of file diff --git a/common/src/main/resources/simplycompat.mixins.json b/common/src/main/resources/simplycompat.mixins.json index de6444a..725dc96 100644 --- a/common/src/main/resources/simplycompat.mixins.json +++ b/common/src/main/resources/simplycompat.mixins.json @@ -4,11 +4,10 @@ "compatibilityLevel": "JAVA_17", "minVersion": "0.8", "client": [ - "MixinTitleScreen" ], "mixins": [ ], "injectors": { "defaultRequire": 1 } -} \ No newline at end of file +} diff --git a/fabric/build.gradle b/fabric/build.gradle index 5ca331b..02f0cfd 100644 --- a/fabric/build.gradle +++ b/fabric/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id 'com.github.johnrengelman.shadow' } architectury { @@ -7,71 +7,72 @@ architectury { fabric() } -loom { - accessWidenerPath = project(":common").loom.accessWidenerPath -} - configurations { - common - shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. + common { + canBeResolved = true + canBeConsumed = false + } compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentFabric.extendsFrom common + + // Files in this configuration will be bundled into your mod using the Shadow plugin. + // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. + shadowBundle { + canBeResolved = true + canBeConsumed = false + } +} + +repositories { + + maven { + url "https://www.cursemaven.com" + content { + includeGroup "curse.maven" + } + } + + maven { url "https://maven.shedaniel.me/" } } dependencies { - modImplementation "net.fabricmc:fabric-loader:${rootProject.fabric_loader_version}" - modApi "net.fabricmc.fabric-api:fabric-api:${rootProject.fabric_api_version}" - // Remove the next line if you don't want to depend on the API - modApi "dev.architectury:architectury-fabric:${rootProject.architectury_version}" + modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version" - common(project(path: ":common", configuration: "namedElements")) { transitive false } - shadowCommon(project(path: ":common", configuration: "transformProductionFabric")) { transitive false } + // Fabric API. This is technically optional, but you probably want it anyway. + modImplementation "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version" + + // Architectury API. This is optional, and you can comment it out if you don't need it. + modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version" + + modApi("me.shedaniel.cloth:cloth-config-fabric:${rootProject.cloth_config_version}") { + exclude(group: "net.fabricmc.fabric-api") + } + + modImplementation "curse.maven:simplyswords-659887:5255981" + // runtimeOnly "curse.maven:better-combat-by-daedelus-639842:5625757" + // runtimeOnly "curse.maven:playeranimator-658587:4587214" + // implementation "curse.maven:additional-additions-forge-582387:5155724" + // implementation "curse.maven:create-328085:5838779" + // implementation "curse.maven:create-industry-693815:5811638" + + common(project(path: ':common', configuration: 'namedElements')) { transitive false } + shadowBundle project(path: ':common', configuration: 'transformProductionFabric') } processResources { - inputs.property "version", project.version + inputs.property 'version', project.version - filesMatching("fabric.mod.json") { - expand "version": project.version + filesMatching('fabric.mod.json') { + expand version: project.version } } shadowJar { - exclude "architectury.common.json" - - configurations = [project.configurations.shadowCommon] - archiveClassifier = "dev-shadow" + configurations = [project.configurations.shadowBundle] + archiveClassifier = 'dev-shadow' } remapJar { - injectAccessWidener = true - input.set shadowJar.archiveFile - dependsOn shadowJar -} - -sourcesJar { - def commonSources = project(":common").sourcesJar - dependsOn commonSources - from commonSources.archiveFile.map { zipTree(it) } -} - -components.java { - withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { - skip() - } -} - -publishing { - publications { - mavenFabric(MavenPublication) { - artifactId = rootProject.archives_base_name + "-" + project.name - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } + inputFile.set shadowJar.archiveFile } diff --git a/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatExpectPlatformImpl.java b/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatExpectPlatformImpl.java deleted file mode 100644 index 9bc1857..0000000 --- a/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatExpectPlatformImpl.java +++ /dev/null @@ -1,15 +0,0 @@ -package cc.toph.simplycompat.fabric; - -import cc.toph.simplycompat.ExpectPlatform; -import java.nio.file.Path; -import net.fabricmc.loader.api.FabricLoader; - -public class SimplyCompatExpectPlatformImpl { - - /** - * This is our actual method to {@link ExpectPlatform#getConfigDirectory()}. - */ - public static Path getConfigDirectory() { - return FabricLoader.getInstance().getConfigDir(); - } -} diff --git a/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatFabric.java b/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatFabric.java new file mode 100644 index 0000000..d8a388d --- /dev/null +++ b/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatFabric.java @@ -0,0 +1,17 @@ +package cc.toph.simplycompat.fabric; + +import cc.toph.simplycompat.SimplyCompat; +import net.fabricmc.api.ModInitializer; + +public final class SimplyCompatFabric implements ModInitializer { + + @Override + public void onInitialize() { + // This code runs as soon as Minecraft is in a mod-load-ready state. + // However, some things (like resources) may still be uninitialized. + // Proceed with mild caution. + + // Run our common setup. + SimplyCompat.init(); + } +} diff --git a/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatModFabric.java b/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatModFabric.java deleted file mode 100644 index 0d52808..0000000 --- a/fabric/src/main/java/cc/toph/simplycompat/fabric/SimplyCompatModFabric.java +++ /dev/null @@ -1,11 +0,0 @@ -package cc.toph.simplycompat.fabric; - -import cc.toph.simplycompat.SimplyCompat; -import net.fabricmc.api.ModInitializer; - -public class SimplyCompatModFabric implements ModInitializer { - @Override - public void onInitialize() { - SimplyCompat.init(); - } -} diff --git a/fabric/src/main/java/cc/toph/simplycompat/fabric/client/SimplyCompatFabricClient.java b/fabric/src/main/java/cc/toph/simplycompat/fabric/client/SimplyCompatFabricClient.java new file mode 100644 index 0000000..74487ff --- /dev/null +++ b/fabric/src/main/java/cc/toph/simplycompat/fabric/client/SimplyCompatFabricClient.java @@ -0,0 +1,11 @@ +package cc.toph.simplycompat.fabric.client; + +import net.fabricmc.api.ClientModInitializer; + +public final class SimplyCompatFabricClient implements ClientModInitializer { + + @Override + public void onInitializeClient() { + // This entrypoint is suitable for setting up client-specific logic, such as rendering. + } +} diff --git a/fabric/src/main/resources/fabric.mod.json b/fabric/src/main/resources/fabric.mod.json index 7a5efbd..aa762f3 100644 --- a/fabric/src/main/resources/fabric.mod.json +++ b/fabric/src/main/resources/fabric.mod.json @@ -2,29 +2,29 @@ "schemaVersion": 1, "id": "simplycompat", "version": "${version}", - "name": "Example Mod", + "name": "Simply Compat", "description": "This is an example description! Tell everyone what your mod is about!", - "authors": [ - "Me!" - ], + "authors": ["Me!"], "contact": { "homepage": "https://fabricmc.net/", "sources": "https://github.com/FabricMC/fabric-example-mod" }, - "license": "Insert License Here", + "license": "CC0-1.0", "icon": "assets/simplycompat/icon.png", "environment": "*", "entrypoints": { - "main": [ - "cc.toph.simplycompat.fabric.SimplyCompatModFabric" - ] + "main": ["cc.toph.simplycompat.fabric.SimplyCompatFabric"], + "client": ["cc.toph.simplycompat.fabric.client.SimplyCompatFabricClient"] }, - "mixins": [ - "simplycompat.fabric.mixins.json" - ], + "mixins": ["simplycompat.mixins.json"], "depends": { - "fabric": "*", - "minecraft": ">=1.20.1", - "architectury": ">=9.1.12" + "fabricloader": ">=0.16.10", + "minecraft": "~1.20.1", + "java": ">=17", + "architectury": ">=9.2.14", + "fabric-api": "*" + }, + "suggests": { + "another-mod": "*" } -} \ No newline at end of file +} diff --git a/fabric/src/main/resources/simplycompat.fabric.mixins.json b/fabric/src/main/resources/simplycompat.fabric.mixins.json deleted file mode 100644 index c8e909c..0000000 --- a/fabric/src/main/resources/simplycompat.fabric.mixins.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "required": true, - "package": "cc.toph.simplycompat.fabric.mixin", - "compatibilityLevel": "JAVA_17", - "minVersion": "0.8", - "client": [ - ], - "mixins": [ - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file diff --git a/forge/build.gradle b/forge/build.gradle index 640e3d7..71a7c6e 100644 --- a/forge/build.gradle +++ b/forge/build.gradle @@ -1,5 +1,11 @@ plugins { - id "com.github.johnrengelman.shadow" version "7.1.2" + id 'com.github.johnrengelman.shadow' +} + +loom { + forge { + mixinConfig "simplycompat.mixins.json" + } } architectury { @@ -7,89 +13,79 @@ architectury { forge() } -loom { - accessWidenerPath = project(":common").loom.accessWidenerPath - - forge { - convertAccessWideners = true - extraAccessWideners.add loom.accessWidenerPath.get().asFile.name - - mixinConfig "simplycompat.forge.mixins.json" - mixinConfig "simplycompat.mixins.json" - } -} - -def localModsDir = project.rootProject.file('./run/mods/') -if (localModsDir.exists() && localModsDir.isDirectory()) { - def localMods = localModsDir - .listFiles({ file -> file.isFile() && file.name.endsWith('.jar') } as FileFilter) - localMods.each { mod -> - dependencies { - modLocalRuntime files(mod) - } - } -} +// def localModsDir = project.rootProject.file('./run/mods/') +// if (localModsDir.exists() && localModsDir.isDirectory()) { +// def localMods = localModsDir +// .listFiles({ file -> file.isFile() && file.name.endsWith('.jar') } as FileFilter) +// localMods.each { mod -> +// dependencies { +// modLocalRuntime files(mod) +// } +// } +// } configurations { - common - shadowCommon // Don't use shadow from the shadow plugin since it *excludes* files. + common { + canBeResolved = true + canBeConsumed = false + } compileClasspath.extendsFrom common runtimeClasspath.extendsFrom common developmentForge.extendsFrom common + + // Files in this configuration will be bundled into your mod using the Shadow plugin. + // Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files. + shadowBundle { + canBeResolved = true + canBeConsumed = false + } +} + +repositories { + + maven { + url "https://www.cursemaven.com" + content { + includeGroup "curse.maven" + } + } + + maven { url "https://maven.shedaniel.me/" } } dependencies { - forge "net.minecraftforge:forge:${rootProject.forge_version}" - // Remove the next line if you don't want to depend on the API - modApi "dev.architectury:architectury-forge:${rootProject.architectury_version}" + forge "net.minecraftforge:forge:$rootProject.forge_version" - common(project(path: ":common", configuration: "namedElements")) { transitive false } - shadowCommon(project(path: ":common", configuration: "transformProductionForge")) { transitive = false } + // Architectury API. This is optional, and you can comment it out if you don't need it. + modImplementation "dev.architectury:architectury-forge:$rootProject.architectury_api_version" + + modApi("me.shedaniel.cloth:cloth-config-forge:${rootProject.cloth_config_version}") + modCompileOnly "curse.maven:simplyswords-659887:5255981" + // modImplementation "curse.maven:simplyswords-659887:5255981" + // runtimeOnly "curse.maven:better-combat-by-daedelus-639842:5625757" + // runtimeOnly "curse.maven:playeranimator-658587:4587214" + // implementation "curse.maven:additional-additions-forge-582387:5155724" + // implementation "curse.maven:create-328085:5838779" + // implementation "curse.maven:create-industry-693815:5811638" + + + common(project(path: ':common', configuration: 'namedElements')) { transitive false } + shadowBundle project(path: ':common', configuration: 'transformProductionForge') } processResources { - inputs.property "version", project.version + inputs.property 'version', project.version - filesMatching("META-INF/mods.toml") { - expand "version": project.version + filesMatching('META-INF/mods.toml') { + expand version: project.version } } shadowJar { - exclude "fabric.mod.json" - exclude "architectury.common.json" - - configurations = [project.configurations.shadowCommon] - archiveClassifier = "dev-shadow" + configurations = [project.configurations.shadowBundle] + archiveClassifier = 'dev-shadow' } remapJar { - input.set shadowJar.archiveFile - dependsOn shadowJar -} - -sourcesJar { - def commonSources = project(":common").sourcesJar - dependsOn commonSources - from commonSources.archiveFile.map { zipTree(it) } -} - -components.java { - withVariantsFromConfiguration(project.configurations.shadowRuntimeElements) { - skip() - } -} - -publishing { - publications { - mavenForge(MavenPublication) { - artifactId = rootProject.archives_base_name + "-" + project.name - from components.java - } - } - - // See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing. - repositories { - // Add repositories to publish to here. - } + inputFile.set shadowJar.archiveFile } diff --git a/forge/gradle.properties b/forge/gradle.properties index 32f842a..a58ba14 100644 --- a/forge/gradle.properties +++ b/forge/gradle.properties @@ -1 +1 @@ -loom.platform=forge \ No newline at end of file +loom.platform = forge diff --git a/forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatForge.java b/forge/src/main/java/cc/toph/simplycompat/forge/ExampleModForge.java similarity index 65% rename from forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatForge.java rename to forge/src/main/java/cc/toph/simplycompat/forge/ExampleModForge.java index 6c5ffe1..b60d796 100644 --- a/forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatForge.java +++ b/forge/src/main/java/cc/toph/simplycompat/forge/ExampleModForge.java @@ -6,14 +6,17 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; @Mod(SimplyCompat.MOD_ID) -public class SimplyCompatForge { +public final class ExampleModForge { - public SimplyCompatForge() { - // Submit our event bus to let architectury register our content on the right time + @SuppressWarnings("removal") + public ExampleModForge() { + // Submit our event bus to let Architectury API register our content on the right time. EventBuses.registerModEventBus( SimplyCompat.MOD_ID, FMLJavaModLoadingContext.get().getModEventBus() ); + + // Run our common setup. SimplyCompat.init(); } } diff --git a/forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatExpectPlatformImpl.java b/forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatExpectPlatformImpl.java deleted file mode 100644 index 02af573..0000000 --- a/forge/src/main/java/cc/toph/simplycompat/forge/SimplyCompatExpectPlatformImpl.java +++ /dev/null @@ -1,24 +0,0 @@ -package cc.toph.simplycompat.forge; - -import cc.toph.simplycompat.ExpectPlatform; -import cc.toph.simplycompat.SimplyCompat; -import java.nio.file.Path; -import net.minecraftforge.fml.ModList; -import net.minecraftforge.fml.loading.FMLPaths; - -public class SimplyCompatExpectPlatformImpl { - - /** - * This is our actual method to {@link ExpectPlatform#getConfigDirectory()}. - */ - public static Path getConfigDirectory() { - return FMLPaths.CONFIGDIR.get(); - } - - public static String getVersion() { - return ModList.get() - .getModContainerById(SimplyCompat.MOD_ID) - .map(it -> it.getModInfo().getVersion().toString()) - .orElseThrow(); - } -} diff --git a/forge/src/main/resources/META-INF/mods.toml b/forge/src/main/resources/META-INF/mods.toml index ff87276..71ebfd3 100644 --- a/forge/src/main/resources/META-INF/mods.toml +++ b/forge/src/main/resources/META-INF/mods.toml @@ -13,8 +13,6 @@ This is an example description! Tell everyone what your mod is about! ''' #logoFile = "" -# TODO: add simply swords here - [[dependencies.simplycompat]] modId = "forge" mandatory = true @@ -32,6 +30,6 @@ side = "BOTH" [[dependencies.simplycompat]] modId = "architectury" mandatory = true -versionRange = "[9.1.12,)" +versionRange = "[9.2.14,)" ordering = "AFTER" -side = "BOTH" \ No newline at end of file +side = "BOTH" diff --git a/forge/src/main/resources/pack.mcmeta b/forge/src/main/resources/pack.mcmeta index 6d1367b..694042a 100644 --- a/forge/src/main/resources/pack.mcmeta +++ b/forge/src/main/resources/pack.mcmeta @@ -1,6 +1,7 @@ { "pack": { "description": "Simply Compat", + "forge:server_data_pack_format": 15, "pack_format": 15 } } diff --git a/forge/src/main/resources/simplycompat.forge.mixins.json b/forge/src/main/resources/simplycompat.forge.mixins.json deleted file mode 100644 index 0e7c37c..0000000 --- a/forge/src/main/resources/simplycompat.forge.mixins.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "required": true, - "package": "cc.toph.simplycompat.forge.mixin", - "compatibilityLevel": "JAVA_17", - "minVersion": "0.8", - "client": [ - ], - "mixins": [ - ], - "injectors": { - "defaultRequire": 1 - } -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 2e9d264..04557f0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,20 +1,20 @@ -org.gradle.jvmargs=-Xmx6g +# Done to increase the memory available to Gradle. +org.gradle.jvmargs=-Xmx6G +org.gradle.parallel=true -minecraft_version=1.20.1 -enabled_platforms=fabric,forge +# Mod properties +mod_version = 1.0.0 +maven_group = cc.toph.simplycompat +archives_name = simplycompat +enabled_platforms = fabric,forge -archives_base_name=simplycompat -mod_version=0.0.1 -maven_group=cc.toph - -architectury_version=9.2.14 - -fabric_loader_version=0.14.23 -fabric_api_version=0.90.4+1.20.1 - -forge_version=1.20.1-47.3.22 +# Minecraft properties +minecraft_version = 1.20.1 +# Dependencies +architectury_api_version = 9.2.14 cloth_config_version=11.1.106 -yarn_mappings=1.20.1+build.10 - - +fabric_loader_version = 0.16.10 +fabric_api_version = 0.92.3+1.20.1 +forge_version=1.20.1-47.1.1 +parchment_version = 1.20.1:2023.09.03 \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index f0811eb..0714718 100644 --- a/settings.gradle +++ b/settings.gradle @@ -2,13 +2,13 @@ pluginManagement { repositories { maven { url "https://maven.fabricmc.net/" } maven { url "https://maven.architectury.dev/" } - maven { url "https://maven.minecraftforge.net/" } + maven { url "https://files.minecraftforge.net/maven/" } gradlePluginPortal() } } -include("common") -include("fabric") -include("forge") +rootProject.name = 'simplycompat' -rootProject.name = "SimplyCompat" +include 'common' +include 'fabric' +include 'forge'