瀏覽代碼

Create multi-project structure

Lortseam 4 年之前
父節點
當前提交
b5757c0d72
共有 84 個文件被更改,包括 161 次插入159 次删除
  1. 37 120
      build.gradle
  2. 10 0
      example/build.gradle
  3. 3 3
      example/src/main/java/me/lortseam/completeconfig/example/ExampleMod.java
  4. 2 2
      example/src/main/java/me/lortseam/completeconfig/example/ModMenuIntegration.java
  5. 1 1
      example/src/main/java/me/lortseam/completeconfig/example/Settings.java
  6. 23 0
      example/src/main/resources/assets/example/lang/en_us.json
  7. 4 4
      example/src/main/resources/fabric.mod.json
  8. 75 0
      lib/build.gradle
  9. 0 0
      lib/src/main/java/me/lortseam/completeconfig/CompleteConfig.java
  10. 0 0
      lib/src/main/java/me/lortseam/completeconfig/api/ConfigContainer.java
  11. 0 0
      lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntries.java
  12. 0 0
      lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntry.java
  13. 0 0
      lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntryListener.java
  14. 0 0
      lib/src/main/java/me/lortseam/completeconfig/api/ConfigGroup.java
  15. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/BooleanEntry.java
  16. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/BoundedEntry.java
  17. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/Collection.java
  18. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/CollectionSet.java
  19. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/ColorEntry.java
  20. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/Config.java
  21. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/DataSet.java
  22. 1 2
      lib/src/main/java/me/lortseam/completeconfig/data/Entry.java
  23. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/EntryBase.java
  24. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/EntrySet.java
  25. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/EnumEntry.java
  26. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/Listener.java
  27. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/Node.java
  28. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/entry/AnnotatedEntryOrigin.java
  29. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/entry/EntryOrigin.java
  30. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/entry/Transformation.java
  31. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/entry/Transformer.java
  32. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/structure/DataPart.java
  33. 1 2
      lib/src/main/java/me/lortseam/completeconfig/data/structure/ParentDataPart.java
  34. 0 0
      lib/src/main/java/me/lortseam/completeconfig/data/text/TranslationIdentifier.java
  35. 0 0
      lib/src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationParameterException.java
  36. 0 0
      lib/src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationTargetException.java
  37. 0 0
      lib/src/main/java/me/lortseam/completeconfig/exception/IllegalModifierException.java
  38. 0 0
      lib/src/main/java/me/lortseam/completeconfig/exception/IllegalReturnTypeException.java
  39. 0 0
      lib/src/main/java/me/lortseam/completeconfig/extensions/CompleteConfigExtension.java
  40. 0 0
      lib/src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ClothBasicMathExtension.java
  41. 0 0
      lib/src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ColorSerializer.java
  42. 0 0
      lib/src/main/java/me/lortseam/completeconfig/gui/ConfigScreenBuilder.java
  43. 0 0
      lib/src/main/java/me/lortseam/completeconfig/gui/cloth/ClothConfigScreenBuilder.java
  44. 0 0
      lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProvider.java
  45. 0 0
      lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProviderRegistration.java
  46. 1 2
      lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiRegistry.java
  47. 0 0
      lib/src/main/java/me/lortseam/completeconfig/io/ConfigSource.java
  48. 0 0
      lib/src/main/java/me/lortseam/completeconfig/io/TextColorSerializer.java
  49. 0 0
      lib/src/main/java/me/lortseam/completeconfig/util/TypeUtils.java
  50. 0 0
      lib/src/main/resources/assets/completeconfig/lang/de_de.json
  51. 0 0
      lib/src/main/resources/assets/completeconfig/lang/en_us.json
  52. 0 0
      lib/src/main/resources/fabric.mod.json
  53. 0 0
      lib/src/test/java/me/lortseam/completeconfig/ConfigTest.java
  54. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingContainerWithEntry.java
  55. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingGroupWithEntry.java
  56. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingContainerWithEntry.java
  57. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticClass.java
  58. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticContainerWithEntry.java
  59. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithContainerWithEntry.java
  60. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithEntry.java
  61. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithField.java
  62. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithGroupWithEntry.java
  63. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithNonAnnotatedContainerWithEntry.java
  64. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithStaticEntry.java
  65. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/EmptyContainer.java
  66. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEmptyContainer.java
  67. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEntry.java
  68. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithIgnoredField.java
  69. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithTransientField.java
  70. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithContainerWithEntry.java
  71. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithEntry.java
  72. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithStaticEntry.java
  73. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/groups/EmptyGroup.java
  74. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/groups/GroupWithEntry.java
  75. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/listeners/CustomListener.java
  76. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/listeners/EmptyListener.java
  77. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/listeners/ForceUpdateListener.java
  78. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/listeners/OutsideListener.java
  79. 0 0
      lib/src/test/java/me/lortseam/completeconfig/data/listeners/SetterListener.java
  80. 0 0
      lib/src/test/java/me/lortseam/completeconfig/extension/FabricLoaderExtension.java
  81. 0 0
      lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
  82. 0 0
      lib/src/test/resources/junit-platform.properties
  83. 3 0
      settings.gradle
  84. 0 23
      src/testMod/resources/assets/completeconfig-testmod/lang/en_us.json

+ 37 - 120
build.gradle

@@ -1,134 +1,51 @@
 plugins {
-	id 'fabric-loom' version '0.5-SNAPSHOT'
-	id 'com.github.johnrengelman.shadow' version '6.1.0'
-	id 'maven-publish'
+    id 'fabric-loom' version '0.5-SNAPSHOT' apply false
 }
 
-sourceCompatibility = JavaVersion.VERSION_1_8
-targetCompatibility = JavaVersion.VERSION_1_8
+subprojects {
+    apply plugin: "fabric-loom"
 
-archivesBaseName = project.archives_base_name
-version = project.mod_version
-group = project.maven_group
+    sourceCompatibility = JavaVersion.VERSION_1_8
+    targetCompatibility = JavaVersion.VERSION_1_8
 
-sourceSets {
-	testMod {
-		compileClasspath += main.compileClasspath
-		runtimeClasspath += main.runtimeClasspath
-		annotationProcessorPath += main.annotationProcessorPath
-	}
-}
-
-repositories {
-	maven {
-		url "https://maven.shedaniel.me/"
-	}
-	maven {
-		url "https://maven.terraformersmc.com/"
-	}
-}
-
-dependencies {
-	// --- Main ---
-	minecraft("com.mojang:minecraft:${project.minecraft_version}")
-	mappings("net.fabricmc:yarn:${project.yarn_mappings}:v2")
-	modImplementation("net.fabricmc:fabric-loader:${project.loader_version}")
-
-	modApi("me.shedaniel.cloth:cloth-config-fabric:${project.cloth_config_version}") {
-		exclude(group: "net.fabricmc.fabric-api")
-	}
-
-	// Using modApi because api does not include dependency inside Maven pom file (see https://github.com/FabricMC/fabric-loom/issues/200)
-	modApi("org.spongepowered:configurate-hocon:${project.configurate_version}")
-	shadow("org.spongepowered:configurate-hocon:${project.configurate_version}")
+    group = rootProject.maven_group
+    archivesBaseName = "${rootProject.archives_base_name}-${project.name}"
+    version = rootProject.mod_version
 
-	compileOnly("org.projectlombok:lombok:${project.lombok_version}")
-	annotationProcessor("org.projectlombok:lombok:${project.lombok_version}")
+    processResources {
+        inputs.property "version", project.version
 
-	// --- Test ---
-	testImplementation("org.junit.jupiter:junit-jupiter:${project.junit_version}")
-	testImplementation("org.assertj:assertj-core:${project.assertj_version}")
-	testImplementation("org.mockito:mockito-inline:${project.mockito_version}")
-	testImplementation("org.mockito:mockito-junit-jupiter:${project.mockito_junit_version}")
-	testImplementation("io.github.hakky54:logcaptor:${project.logcaptor_version}")
-	testImplementation("com.google.jimfs:jimfs:${project.jimfs_version}")
+        filesMatching("fabric.mod.json") {
+            expand "version": project.version
+        }
+    }
 
-	// --- Test Mod ---
-	testModImplementation(sourceSets.main.output)
-	modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
-}
-
-processResources {
-	inputs.property "version", project.version
-
-	filesMatching("fabric.mod.json") {
-		expand "version": project.version
-	}
-}
+    tasks.withType(JavaCompile).configureEach {
+        // ensure that the encoding is set to UTF-8, no matter what the system default is
+        // this fixes some edge cases with special characters not displaying correctly
+        // see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
+        it.options.encoding = "UTF-8"
+    }
 
-tasks.withType(JavaCompile).configureEach {
-	// ensure that the encoding is set to UTF-8, no matter what the system default is
-	// this fixes some edge cases with special characters not displaying correctly
-	// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
-	it.options.encoding = "UTF-8"
-}
+    repositories {
+        maven {
+            url "https://maven.shedaniel.me/"
+        }
+    }
 
-java {
-	// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
-	// if it is present.
-	withSourcesJar()
-}
+    dependencies {
+        minecraft("com.mojang:minecraft:${rootProject.minecraft_version}")
+        mappings("net.fabricmc:yarn:${rootProject.yarn_mappings}:v2")
+        modImplementation("net.fabricmc:fabric-loader:${rootProject.loader_version}")
 
-jar {
-	from "LICENSE"
-}
-
-shadowJar {
-	configurations = [project.configurations.shadow]
-	archiveClassifier = "shadow"
-}
-
-remapJar {
-	dependsOn(shadowJar)
-	input.set(shadowJar.archiveFile)
-}
-
-test {
-	useJUnitPlatform()
-}
-
-javadoc {
-	options {
-		source = "8"
-		encoding = "UTF-8"
-		charSet = "UTF-8"
-		memberLevel = JavadocMemberLevel.PROTECTED
-		// Disable the crazy super-strict doclint tool in Java 8
-		addStringOption("Xdoclint:none", "-quiet")
-	}
-	source = sourceSets.main.allJava
-	failOnError false
-}
-
-task javadocJar(type: Jar) {
-	dependsOn javadoc
-	from javadoc.destinationDir
-	archiveClassifier = "javadoc"
-}
+        modApi("me.shedaniel.cloth:cloth-config-fabric:${rootProject.cloth_config_version}") {
+            exclude(group: "net.fabricmc.fabric-api")
+        }
 
-build.dependsOn javadocJar
+        // Using modApi because api does not include dependency inside Maven pom file (see https://github.com/FabricMC/fabric-loom/issues/200)
+        modApi("org.spongepowered:configurate-hocon:${rootProject.configurate_version}")
 
-// configure the maven publication
-publishing {
-	publications {
-		mavenJava(MavenPublication) {
-			artifact(remapJar) {
-				builtBy remapJar
-			}
-			artifact(sourcesJar) {
-				builtBy remapSourcesJar
-			}
-			artifact javadocJar
-		}
-	}
+        compileOnly("org.projectlombok:lombok:${rootProject.lombok_version}")
+        annotationProcessor("org.projectlombok:lombok:${rootProject.lombok_version}")
+    }
 }

+ 10 - 0
example/build.gradle

@@ -0,0 +1,10 @@
+repositories {
+    maven {
+        url "https://maven.terraformersmc.com/"
+    }
+}
+
+dependencies {
+    implementation(project(":lib"))
+    modImplementation("com.terraformersmc:modmenu:${project.modmenu_version}")
+}

+ 3 - 3
src/testMod/java/me/lortseam/completeconfig/testmod/TestMod.java → example/src/main/java/me/lortseam/completeconfig/example/ExampleMod.java

@@ -1,12 +1,12 @@
-package me.lortseam.completeconfig.testmod;
+package me.lortseam.completeconfig.example;
 
 import lombok.Getter;
 import me.lortseam.completeconfig.data.Config;
 import net.fabricmc.api.ModInitializer;
 
-public class TestMod implements ModInitializer {
+public class ExampleMod implements ModInitializer {
 
-    public static final String MOD_ID = "testmod";
+    public static final String MOD_ID = "example";
     @Getter
     private static Config config;
 

+ 2 - 2
src/testMod/java/me/lortseam/completeconfig/testmod/ModMenuIntegration.java → example/src/main/java/me/lortseam/completeconfig/example/ModMenuIntegration.java

@@ -1,4 +1,4 @@
-package me.lortseam.completeconfig.testmod;
+package me.lortseam.completeconfig.example;
 
 import com.terraformersmc.modmenu.api.ConfigScreenFactory;
 import com.terraformersmc.modmenu.api.ModMenuApi;
@@ -11,7 +11,7 @@ public final class ModMenuIntegration implements ModMenuApi {
 
     @Override
     public ConfigScreenFactory<?> getModConfigScreenFactory() {
-        return parent -> screenBuilder.build(parent, TestMod.getConfig());
+        return parent -> screenBuilder.build(parent, ExampleMod.getConfig());
     }
 
 }

+ 1 - 1
src/testMod/java/me/lortseam/completeconfig/testmod/Settings.java → example/src/main/java/me/lortseam/completeconfig/example/Settings.java

@@ -1,4 +1,4 @@
-package me.lortseam.completeconfig.testmod;
+package me.lortseam.completeconfig.example;
 
 import me.lortseam.completeconfig.api.ConfigContainer;
 import me.lortseam.completeconfig.api.ConfigEntries;

+ 23 - 0
example/src/main/resources/assets/example/lang/en_us.json

@@ -0,0 +1,23 @@
+{
+  "config.example.dataTypes": "Data types",
+  "config.example.dataTypes.bool": "Boolean",
+  "config.example.dataTypes.integer": "Integer",
+  "config.example.dataTypes.boundedInt": "Bounded Integer",
+  "config.example.dataTypes.aLong": "Long",
+  "config.example.dataTypes.boundedLong": "Bounded Long",
+  "config.example.dataTypes.aFloat": "Float",
+  "config.example.dataTypes.aDouble": "Double",
+  "config.example.dataTypes.string": "String",
+  "config.example.dataTypes.anEnum": "Enum",
+  "config.example.dataTypes.anEnum.foo": "Foo",
+  "config.example.dataTypes.anEnum.bar": "Bar",
+  "config.example.dataTypes.anEnum.baz": "Baz",
+  "config.example.dataTypes.list": "List",
+  "config.example.dataTypes.color": "Color",
+  "config.example.tooltips": "Tooltips",
+  "config.example.tooltips.defaultOneLine.tooltip": "A tooltip with a single line",
+  "config.example.tooltips.defaultMultiLine.tooltip.0": "A tooltip with multiple lines, this is the first line...",
+  "config.example.tooltips.defaultMultiLine.tooltip.1": "... and this is the second one",
+  "config.example.customTooltipLine1": "A tooltip specified with custom keys, line 1...",
+  "config.example.customTooltipLine2": "... and line 2"
+}

+ 4 - 4
src/testMod/resources/fabric.mod.json → example/src/main/resources/fabric.mod.json

@@ -1,8 +1,8 @@
 {
   "schemaVersion": 1,
-  "id": "testmod",
+  "id": "example",
   "version": "${version}",
-  "name": "CompleteConfig Test Mod",
+  "name": "CompleteConfig Example Mod",
   "authors": [
     "Lortseam"
   ],
@@ -10,10 +10,10 @@
   "environment": "*",
   "entrypoints": {
     "main": [
-      "me.lortseam.completeconfig.testmod.TestMod"
+      "me.lortseam.completeconfig.example.ExampleMod"
     ],
     "modmenu": [
-      "me.lortseam.completeconfig.testmod.ModMenuIntegration"
+      "me.lortseam.completeconfig.example.ModMenuIntegration"
     ]
   },
   "depends": {

+ 75 - 0
lib/build.gradle

@@ -0,0 +1,75 @@
+plugins {
+	id 'com.github.johnrengelman.shadow' version '6.1.0'
+	id 'maven-publish'
+}
+
+dependencies {
+	shadow("org.spongepowered:configurate-hocon:${rootProject.configurate_version}")
+
+	testImplementation("org.junit.jupiter:junit-jupiter:${rootProject.junit_version}")
+	testImplementation("org.assertj:assertj-core:${rootProject.assertj_version}")
+	testImplementation("org.mockito:mockito-inline:${rootProject.mockito_version}")
+	testImplementation("org.mockito:mockito-junit-jupiter:${rootProject.mockito_junit_version}")
+	testImplementation("io.github.hakky54:logcaptor:${rootProject.logcaptor_version}")
+	testImplementation("com.google.jimfs:jimfs:${rootProject.jimfs_version}")
+}
+
+java {
+	// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
+	// if it is present.
+	withSourcesJar()
+}
+
+jar {
+	from "LICENSE"
+}
+
+shadowJar {
+	configurations = [project.configurations.shadow]
+	archiveClassifier = "shadow"
+}
+
+remapJar {
+	dependsOn(shadowJar)
+	input.set(shadowJar.archiveFile)
+}
+
+test {
+	useJUnitPlatform()
+}
+
+javadoc {
+	options {
+		source = "8"
+		encoding = "UTF-8"
+		charSet = "UTF-8"
+		memberLevel = JavadocMemberLevel.PROTECTED
+		// Disable the crazy super-strict doclint tool in Java 8
+		addStringOption("Xdoclint:none", "-quiet")
+	}
+	source = sourceSets.main.allJava
+	failOnError false
+}
+
+task javadocJar(type: Jar) {
+	dependsOn javadoc
+	from javadoc.destinationDir
+	archiveClassifier = "javadoc"
+}
+
+build.dependsOn javadocJar
+
+// configure the maven publication
+publishing {
+	publications {
+		mavenJava(MavenPublication) {
+			artifact(remapJar) {
+				builtBy remapJar
+			}
+			artifact(sourcesJar) {
+				builtBy remapSourcesJar
+			}
+			artifact javadocJar
+		}
+	}
+}

+ 0 - 0
src/main/java/me/lortseam/completeconfig/CompleteConfig.java → lib/src/main/java/me/lortseam/completeconfig/CompleteConfig.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/api/ConfigContainer.java → lib/src/main/java/me/lortseam/completeconfig/api/ConfigContainer.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/api/ConfigEntries.java → lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntries.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/api/ConfigEntry.java → lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntry.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/api/ConfigEntryListener.java → lib/src/main/java/me/lortseam/completeconfig/api/ConfigEntryListener.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/api/ConfigGroup.java → lib/src/main/java/me/lortseam/completeconfig/api/ConfigGroup.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/BooleanEntry.java → lib/src/main/java/me/lortseam/completeconfig/data/BooleanEntry.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/BoundedEntry.java → lib/src/main/java/me/lortseam/completeconfig/data/BoundedEntry.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/Collection.java → lib/src/main/java/me/lortseam/completeconfig/data/Collection.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/CollectionSet.java → lib/src/main/java/me/lortseam/completeconfig/data/CollectionSet.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/ColorEntry.java → lib/src/main/java/me/lortseam/completeconfig/data/ColorEntry.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/Config.java → lib/src/main/java/me/lortseam/completeconfig/data/Config.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/DataSet.java → lib/src/main/java/me/lortseam/completeconfig/data/DataSet.java


+ 1 - 2
src/main/java/me/lortseam/completeconfig/data/Entry.java → lib/src/main/java/me/lortseam/completeconfig/data/Entry.java

@@ -1,6 +1,5 @@
 package me.lortseam.completeconfig.data;
 
-import com.google.common.base.Predicates;
 import com.google.common.collect.BiMap;
 import com.google.common.collect.HashBiMap;
 import com.google.common.collect.Lists;
@@ -263,7 +262,7 @@ public class Entry<T> extends EntryBase<T> implements DataPart {
         }
 
         Entry<T> build(ConfigContainer parentObject, TranslationIdentifier parentTranslation) {
-            Entry<T> entry = transformations.stream().filter(transformation -> transformation.test(this)).findFirst().orElse(Transformation.by(Predicates.alwaysTrue()).transforms(Entry::new)).transform(this, parentObject, parentTranslation);
+            Entry<T> entry = transformations.stream().filter(transformation -> transformation.test(this)).findFirst().orElse(Transformation.by(e -> true).transforms(Entry::new)).transform(this, parentObject, parentTranslation);
             for (Consumer<Entry<T>> interaction : interactions) {
                 interaction.accept(entry);
             }

+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/EntryBase.java → lib/src/main/java/me/lortseam/completeconfig/data/EntryBase.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/EntrySet.java → lib/src/main/java/me/lortseam/completeconfig/data/EntrySet.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/EnumEntry.java → lib/src/main/java/me/lortseam/completeconfig/data/EnumEntry.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/Listener.java → lib/src/main/java/me/lortseam/completeconfig/data/Listener.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/Node.java → lib/src/main/java/me/lortseam/completeconfig/data/Node.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/entry/AnnotatedEntryOrigin.java → lib/src/main/java/me/lortseam/completeconfig/data/entry/AnnotatedEntryOrigin.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/entry/EntryOrigin.java → lib/src/main/java/me/lortseam/completeconfig/data/entry/EntryOrigin.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/entry/Transformation.java → lib/src/main/java/me/lortseam/completeconfig/data/entry/Transformation.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/entry/Transformer.java → lib/src/main/java/me/lortseam/completeconfig/data/entry/Transformer.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/structure/DataPart.java → lib/src/main/java/me/lortseam/completeconfig/data/structure/DataPart.java


+ 1 - 2
src/main/java/me/lortseam/completeconfig/data/structure/ParentDataPart.java → lib/src/main/java/me/lortseam/completeconfig/data/structure/ParentDataPart.java

@@ -1,6 +1,5 @@
 package me.lortseam.completeconfig.data.structure;
 
-import com.google.common.base.Predicates;
 import org.spongepowered.configurate.CommentedConfigurationNode;
 
 import java.util.function.BiConsumer;
@@ -17,7 +16,7 @@ public interface ParentDataPart<C extends DataPart> extends DataPart {
 
     @Override
     default void fetch(CommentedConfigurationNode node) {
-        propagateToChildren(Predicates.alwaysTrue(), DataPart::fetch, node);
+        propagateToChildren(childNode -> true, DataPart::fetch, node);
     }
 
     default void propagateToChildren(Predicate<CommentedConfigurationNode> childNodeCondition, BiConsumer<C, CommentedConfigurationNode> function, CommentedConfigurationNode node) {

+ 0 - 0
src/main/java/me/lortseam/completeconfig/data/text/TranslationIdentifier.java → lib/src/main/java/me/lortseam/completeconfig/data/text/TranslationIdentifier.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationParameterException.java → lib/src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationParameterException.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationTargetException.java → lib/src/main/java/me/lortseam/completeconfig/exception/IllegalAnnotationTargetException.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/exception/IllegalModifierException.java → lib/src/main/java/me/lortseam/completeconfig/exception/IllegalModifierException.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/exception/IllegalReturnTypeException.java → lib/src/main/java/me/lortseam/completeconfig/exception/IllegalReturnTypeException.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/extensions/CompleteConfigExtension.java → lib/src/main/java/me/lortseam/completeconfig/extensions/CompleteConfigExtension.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ClothBasicMathExtension.java → lib/src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ClothBasicMathExtension.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ColorSerializer.java → lib/src/main/java/me/lortseam/completeconfig/extensions/clothbasicmath/ColorSerializer.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/gui/ConfigScreenBuilder.java → lib/src/main/java/me/lortseam/completeconfig/gui/ConfigScreenBuilder.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/gui/cloth/ClothConfigScreenBuilder.java → lib/src/main/java/me/lortseam/completeconfig/gui/cloth/ClothConfigScreenBuilder.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProvider.java → lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProvider.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProviderRegistration.java → lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiProviderRegistration.java


+ 1 - 2
src/main/java/me/lortseam/completeconfig/gui/cloth/GuiRegistry.java → lib/src/main/java/me/lortseam/completeconfig/gui/cloth/GuiRegistry.java

@@ -1,6 +1,5 @@
 package me.lortseam.completeconfig.gui.cloth;
 
-import com.google.common.base.Predicates;
 import com.google.common.collect.Lists;
 import com.google.common.collect.MoreCollectors;
 import com.google.common.reflect.TypeToken;
@@ -59,7 +58,7 @@ public final class GuiRegistry {
         if (types.length == 0) {
             throw new IllegalArgumentException("Types must not be empty");
         }
-        registerProvider(provider, Predicates.alwaysTrue(), types);
+        registerProvider(provider, entry -> true, types);
     }
 
     public void registerBoundedProvider(GuiProvider<? extends BoundedEntry<?>> provider, boolean slider, Type... types) {

+ 0 - 0
src/main/java/me/lortseam/completeconfig/io/ConfigSource.java → lib/src/main/java/me/lortseam/completeconfig/io/ConfigSource.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/io/TextColorSerializer.java → lib/src/main/java/me/lortseam/completeconfig/io/TextColorSerializer.java


+ 0 - 0
src/main/java/me/lortseam/completeconfig/util/TypeUtils.java → lib/src/main/java/me/lortseam/completeconfig/util/TypeUtils.java


+ 0 - 0
src/main/resources/assets/completeconfig/lang/de_de.json → lib/src/main/resources/assets/completeconfig/lang/de_de.json


+ 0 - 0
src/main/resources/assets/completeconfig/lang/en_us.json → lib/src/main/resources/assets/completeconfig/lang/en_us.json


+ 0 - 0
src/main/resources/fabric.mod.json → lib/src/main/resources/fabric.mod.json


+ 0 - 0
src/test/java/me/lortseam/completeconfig/ConfigTest.java → lib/src/test/java/me/lortseam/completeconfig/ConfigTest.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingGroupWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingGroupWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticClass.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticClass.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithField.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithField.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithGroupWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithGroupWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithNonAnnotatedContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithNonAnnotatedContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithStaticEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/ContainerWithStaticEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EmptyContainer.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/EmptyContainer.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEmptyContainer.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEmptyContainer.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithIgnoredField.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithIgnoredField.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithTransientField.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithTransientField.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithStaticEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/containers/SubclassOfContainerWithStaticEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/groups/EmptyGroup.java → lib/src/test/java/me/lortseam/completeconfig/data/groups/EmptyGroup.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/groups/GroupWithEntry.java → lib/src/test/java/me/lortseam/completeconfig/data/groups/GroupWithEntry.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/CustomListener.java → lib/src/test/java/me/lortseam/completeconfig/data/listeners/CustomListener.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/EmptyListener.java → lib/src/test/java/me/lortseam/completeconfig/data/listeners/EmptyListener.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/ForceUpdateListener.java → lib/src/test/java/me/lortseam/completeconfig/data/listeners/ForceUpdateListener.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/OutsideListener.java → lib/src/test/java/me/lortseam/completeconfig/data/listeners/OutsideListener.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/SetterListener.java → lib/src/test/java/me/lortseam/completeconfig/data/listeners/SetterListener.java


+ 0 - 0
src/test/java/me/lortseam/completeconfig/extension/FabricLoaderExtension.java → lib/src/test/java/me/lortseam/completeconfig/extension/FabricLoaderExtension.java


+ 0 - 0
src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension → lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension


+ 0 - 0
src/test/resources/junit-platform.properties → lib/src/test/resources/junit-platform.properties


+ 3 - 0
settings.gradle

@@ -9,4 +9,7 @@ pluginManagement {
     }
 }
 
+include("lib")
+include("example")
+
 rootProject.name = 'completeconfig'

+ 0 - 23
src/testMod/resources/assets/completeconfig-testmod/lang/en_us.json

@@ -1,23 +0,0 @@
-{
-  "config.testmod.dataTypes": "Data types",
-  "config.testmod.dataTypes.bool": "Boolean",
-  "config.testmod.dataTypes.integer": "Integer",
-  "config.testmod.dataTypes.boundedInt": "Bounded Integer",
-  "config.testmod.dataTypes.aLong": "Long",
-  "config.testmod.dataTypes.boundedLong": "Bounded Long",
-  "config.testmod.dataTypes.aFloat": "Float",
-  "config.testmod.dataTypes.aDouble": "Double",
-  "config.testmod.dataTypes.string": "String",
-  "config.testmod.dataTypes.anEnum": "Enum",
-  "config.testmod.dataTypes.anEnum.foo": "Foo",
-  "config.testmod.dataTypes.anEnum.bar": "Bar",
-  "config.testmod.dataTypes.anEnum.baz": "Baz",
-  "config.testmod.dataTypes.list": "List",
-  "config.testmod.dataTypes.color": "Color",
-  "config.testmod.tooltips": "Tooltips",
-  "config.testmod.tooltips.defaultOneLine.tooltip": "A tooltip with a single line",
-  "config.testmod.tooltips.defaultMultiLine.tooltip.0": "A tooltip with multiple lines, this is the first line...",
-  "config.testmod.tooltips.defaultMultiLine.tooltip.1": "... and this is the second one",
-  "config.testmod.customTooltipLine1": "A tooltip specified with custom keys, line 1...",
-  "config.testmod.customTooltipLine2": "... and line 2"
-}