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'