diff --git a/.gitignore b/.gitignore
index ccb0c56..42e44b7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,6 +14,5 @@ libs/
.idea/
classes/
.metadata
-.vscode
.settings
*.launch
\ No newline at end of file
diff --git a/.prettierrc.yaml b/.prettierrc.yaml
new file mode 100644
index 0000000..779ada8
--- /dev/null
+++ b/.prettierrc.yaml
@@ -0,0 +1,8 @@
+trailingComma: "none"
+useTabs: false
+tabWidth: 2
+semi: true
+singleQuote: false
+printWidth: 100
+arrowParens: "always"
+singleAttributePerLine: false
diff --git a/.vscode/java-formatter.xml b/.vscode/java-formatter.xml
new file mode 100644
index 0000000..c0370f9
--- /dev/null
+++ b/.vscode/java-formatter.xml
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..8829ec9
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,37 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "java",
+ "name": "Minecraft Client (:forge)",
+ "request": "launch",
+ "cwd": "${workspaceFolder}/forge/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.5/19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0/asm-commons-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.5/64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe/asm-util-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.5/490bacc77de7cbc0be1a30bb3471072d705be4a4/asm-analysis-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.5/fd33c8b6373abaa675be407082fdfda35021254a/asm-tree-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.5/dc6ea1875f4d64fbc85e1691c95b96a3d8569c90/asm-9.5.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",
+ "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"
+ },
+ {
+ "type": "java",
+ "name": "Minecraft Server (:forge)",
+ "request": "launch",
+ "cwd": "${workspaceFolder}/forge/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.5/19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0/asm-commons-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.5/64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe/asm-util-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.5/490bacc77de7cbc0be1a30bb3471072d705be4a4/asm-analysis-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.5/fd33c8b6373abaa675be407082fdfda35021254a/asm-tree-9.5.jar:/home/toph/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.5/dc6ea1875f4d64fbc85e1691c95b96a3d8569c90/asm-9.5.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",
+ "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"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..369acc1
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,23 @@
+{
+ "java.compile.nullAnalysis.mode": "automatic",
+ "editor.formatOnSave": true,
+ "java.format.settings.url": ".vscode/java-formatter.xml",
+ "[java]": {
+ "editor.insertSpaces": false,
+ "editor.tabSize": 2,
+ "editor.detectIndentation": false
+ },
+ "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx2G -Xms100m -Xlog:disable",
+ "java.configuration.updateBuildConfiguration": "interactive",
+ "java.jdt.ls.java.home": "/home/toph/.asdf/installs/java/openjdk-17",
+ "explorer.fileNesting.patterns": {
+ "gradlew": "build.gradle, gradle.properties, gradlew.bat, settings.gradle",
+ ".gitignore": ".gitattributes, .tool-versions, LICENSE.txt, README.md, .prettierrc.yaml"
+ },
+ "workbench.iconTheme": "material-icon-theme",
+ "editor.fontSize": 15,
+ "editor.cursorStyle": "block",
+ "editor.fontLigatures": true,
+ "editor.fontFamily": "'Monocraft Nerd Font', 'monospace', monospace",
+ "prettier-plugin-java-vscode.prettierConfigPath": "${workspaceFolder}/.prettierrc.yaml"
+}
diff --git a/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java b/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java
index 1e237cb..ccea463 100644
--- a/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java
+++ b/common/src/main/java/cc/toph/simplycompat/ExpectPlatform.java
@@ -1,26 +1,26 @@
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();
- }
+
+ /**
+ * 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();
+ }
}