From 9165e19c30cfbc168a8c3b13fe4b113ad9148f03 Mon Sep 17 00:00:00 2001 From: Articdive <13535885+Articdive@users.noreply.github.com> Date: Sun, 6 Jun 2021 14:22:32 +0200 Subject: [PATCH] Remove git submodule and gradle copy task. --- .gitmodules | 3 -- MinestomDataGenerator | 1 - build.gradle | 18 ++++------ code-generators/build.gradle | 23 ++++++------- .../java/net/minestom/codegen/Generators.java | 34 +++++++++++-------- .../codegen/attribute/AttributeGenerator.java | 30 ++++++++-------- .../codegen/blocks/BlockGenerator.java | 24 +++++-------- .../codegen/entity/EntityTypeGenerator.java | 19 ++++------- .../entity/VillagerProfessionGenerator.java | 19 +++-------- .../codegen/entity/VillagerTypeGenerator.java | 19 +++-------- .../codegen/fluid/FluidGenerator.java | 19 +++-------- .../codegen/item/EnchantmentGenerator.java | 19 +++-------- .../codegen/item/MaterialGenerator.java | 19 +++-------- .../codegen/particle/ParticleGenerator.java | 19 +++-------- .../codegen/potion/PotionEffectGenerator.java | 19 +++-------- .../codegen/potion/PotionTypeGenerator.java | 19 +++-------- .../codegen/sound/SoundEventGenerator.java | 19 +++-------- .../statistics/StatisticGenerator.java | 19 ++++------- gradle.properties | 3 +- 19 files changed, 120 insertions(+), 225 deletions(-) delete mode 100644 .gitmodules delete mode 160000 MinestomDataGenerator diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 24addd8df..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "MinestomDataGenerator"] - path = MinestomDataGenerator - url = https://github.com/Minestom/MinestomDataGenerator diff --git a/MinestomDataGenerator b/MinestomDataGenerator deleted file mode 160000 index ed814de6d..000000000 --- a/MinestomDataGenerator +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ed814de6d727a6f4fdb16a23e10d53e9fe357f85 diff --git a/build.gradle b/build.gradle index 5cb87fb49..65af022cd 100644 --- a/build.gradle +++ b/build.gradle @@ -39,6 +39,9 @@ allprojects { maven { url "https://repo.velocitypowered.com/snapshots/" } + maven { + url "https://repo.minestom.com/repository/maven-public/" + } } javadoc { options { @@ -171,6 +174,9 @@ dependencies { } } + // This is the data Minestom uses. from https://github.com/Minestom/MinestomDataGenerator + api "net.minestom:minestom-data-customizable:${rootProject.properties.get("mcVersion")}" + api "com.github.Minestom:DependencyGetter:v1.0.1" // Adventure, for user-interface @@ -200,10 +206,6 @@ configurations.all { exclude group: "org.checkerframework", module: "checker-qual" } -processResources { - dependsOn("copyData") -} - publishing { publications { mavenJava(MavenPublication) { @@ -211,11 +213,3 @@ publishing { } } } - -// UPDATE: Update the data to the required version -// This task just copies the json data from the submodule to the src/main/resources/minecraft_data folder -// TODO: Make sure to delete old data from previous versions -task copyData(type: Copy) { - from("MinestomDataGenerator/Minestom-Data/$mcVersion/") - into(new File(project.projectDir, "/src/main/resources/minecraft_data/")) -} diff --git a/code-generators/build.gradle b/code-generators/build.gradle index 8a32a67f9..555b04ef8 100644 --- a/code-generators/build.gradle +++ b/code-generators/build.gradle @@ -21,23 +21,20 @@ dependencies { implementation 'org.apache.logging.log4j:log4j-core:2.14.0' // SLF4J is the base logger for most libraries, therefore we can hook it into log4j2. implementation 'org.apache.logging.log4j:log4j-slf4j-impl:2.14.0' - // Kotlin stuff - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.kotlinVersion}" - implementation "org.jetbrains.kotlin:kotlin-reflect:${project.kotlinVersion}" + // This is the data Minestom uses. from https://github.com/Minestom/MinestomDataGenerator + implementation "net.minestom:minestom-data-customizable:${rootProject.properties.get("mcVersion")}" } run { // Update version - setArgs( - [ - // Point to gradle.properties "mcVersion" - project.rootProject.properties["mcVersion"], - // Points to src/main/resources/minecraft_data - project.rootProject.projectDir.getPath() + "${File.separatorChar}src${File.separatorChar}main${File.separatorChar}resources${File.separatorChar}minecraft_data", - // Points to src/autogenerated/java - project.rootProject.projectDir.getPath() + "${File.separatorChar}src${File.separatorChar}autogenerated${File.separatorChar}java" - ] + setArgs(List.of( + // Point to gradle.properties "mcVersion" + rootProject.properties.get("mcVersion"), + // If the source is 'classes' it will load from the dependency "net.minestom:minestom-data-customizable:version" + "resources", + // Points to src/autogenerated/java + project.rootProject.projectDir.getPath() + "${File.separatorChar}src${File.separatorChar}autogenerated${File.separatorChar}java" + ) as List ) - dependsOn(project.rootProject.tasks.getByName("copyData")) } diff --git a/code-generators/src/main/java/net/minestom/codegen/Generators.java b/code-generators/src/main/java/net/minestom/codegen/Generators.java index ab92946db..288a0da70 100644 --- a/code-generators/src/main/java/net/minestom/codegen/Generators.java +++ b/code-generators/src/main/java/net/minestom/codegen/Generators.java @@ -14,42 +14,48 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; public class Generators { private static final Logger LOGGER = LoggerFactory.getLogger(Generators.class); - public static void main(String[] args) { + public static void main(String[] args) throws FileNotFoundException { if (args.length < 3) { - LOGGER.error("Usage: "); + LOGGER.error("Usage: "); return; } String targetVersion = args[0].replace(".", "_"); - File inputFolder = new File(args[1]); + boolean resourceMode = false; + if (args[1].equals("resources")) { + resourceMode = true; + } + File inputFolder = new File(args[1]); // This will be ignored if resourceMode = true File outputFolder = new File(args[2]); // Generate blocks new BlockGenerator( - new File(inputFolder, targetVersion + "_blocks.json"), - new File(inputFolder, targetVersion + "_block_properties.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_blocks.json") : new FileInputStream(new File(inputFolder, targetVersion + "_blocks.json")), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_block_properties.json") : new FileInputStream(new File(inputFolder, targetVersion + "_block_properties.json")), outputFolder ).generate(); // Generate fluids new FluidGenerator( - new File(inputFolder, targetVersion + "_fluids.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_fluids.json") : new FileInputStream(new File(inputFolder, targetVersion + "_fluids.json")), outputFolder ).generate(); // Generate entities new EntityTypeGenerator( - new File(inputFolder, targetVersion + "_entities.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_entities.json") : new FileInputStream(new File(inputFolder, targetVersion + "_entities.json")), outputFolder ).generate(); // Generate items new MaterialGenerator( - new File(inputFolder, targetVersion + "_items.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_items.json") : new FileInputStream(new File(inputFolder, targetVersion + "_items.json")), outputFolder ).generate(); // Generate enchantments new EnchantmentGenerator( - new File(inputFolder, targetVersion + "_enchantments.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_enchantments.json") : new FileInputStream(new File(inputFolder, targetVersion + "_enchantments.json")), outputFolder ).generate(); // TODO: Generate attributes @@ -59,22 +65,22 @@ public class Generators { // ).generate(); // Generate potion effects new PotionEffectGenerator( - new File(inputFolder, targetVersion + "_potion_effects.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_potion_effects.json") : new FileInputStream(new File(inputFolder, targetVersion + "_potion_effects.json")), outputFolder ).generate(); // Generate potions new PotionTypeGenerator( - new File(inputFolder, targetVersion + "_potions.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_potions.json") : new FileInputStream(new File(inputFolder, targetVersion + "_potions.json")), outputFolder ).generate(); // Generate particles new ParticleGenerator( - new File(inputFolder, targetVersion + "_particles.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_particles.json") : new FileInputStream(new File(inputFolder, targetVersion + "_particles.json")), outputFolder ).generate(); // Generate sounds new SoundEventGenerator( - new File(inputFolder, targetVersion + "_sounds.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_sounds.json") : new FileInputStream(new File(inputFolder, targetVersion + "_sounds.json")), outputFolder ).generate(); // TODO: Generate villager professions @@ -89,7 +95,7 @@ public class Generators { // ).generate(); // Generate statistics new StatisticGenerator( - new File(inputFolder, targetVersion + "_custom_statistics.json"), + resourceMode ? Generators.class.getResourceAsStream("/" + targetVersion + "_custom_statistics.json") : new FileInputStream(new File(inputFolder, targetVersion + "_custom_statistics.json")), outputFolder ).generate(); LOGGER.info("Finished generating code"); diff --git a/code-generators/src/main/java/net/minestom/codegen/attribute/AttributeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/attribute/AttributeGenerator.java index c1c71832e..ceb54225d 100644 --- a/code-generators/src/main/java/net/minestom/codegen/attribute/AttributeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/attribute/AttributeGenerator.java @@ -4,32 +4,41 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.stream.JsonReader; -import com.squareup.javapoet.*; +import com.squareup.javapoet.ClassName; +import com.squareup.javapoet.CodeBlock; +import com.squareup.javapoet.FieldSpec; +import com.squareup.javapoet.JavaFile; +import com.squareup.javapoet.MethodSpec; +import com.squareup.javapoet.ParameterSpec; +import com.squareup.javapoet.ParameterizedTypeName; +import com.squareup.javapoet.TypeName; +import com.squareup.javapoet.TypeSpec; import net.minestom.codegen.MinestomCodeGenerator; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public final class AttributeGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(AttributeGenerator.class); - private final File attributesFile; + private final InputStream attributesFile; private final File outputFolder; - public AttributeGenerator(@NotNull File attributesFile, @NotNull File outputFolder) { + public AttributeGenerator(@Nullable InputStream attributesFile, @NotNull File outputFolder) { this.attributesFile = attributesFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!attributesFile.exists()) { + if (attributesFile == null) { LOGGER.error("Failed to find attributes.json."); LOGGER.error("Stopped code generation for attributes."); return; @@ -42,14 +51,7 @@ public final class AttributeGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registryClassName = ClassName.get("net.minestom.server.registry", "Registry"); - JsonArray attributes; - try { - attributes = GSON.fromJson(new JsonReader(new FileReader(attributesFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find attributes.json."); - LOGGER.error("Stopped code generation for attributes."); - return; - } + JsonArray attributes = GSON.fromJson(new JsonReader(new InputStreamReader(attributesFile)), JsonArray.class); List filesToWrite = new ArrayList<>(); ClassName attributeClassName = ClassName.get("net.minestom.server.attribute", "Attribute"); diff --git a/code-generators/src/main/java/net/minestom/codegen/blocks/BlockGenerator.java b/code-generators/src/main/java/net/minestom/codegen/blocks/BlockGenerator.java index a7752d71c..19842d7ec 100644 --- a/code-generators/src/main/java/net/minestom/codegen/blocks/BlockGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/blocks/BlockGenerator.java @@ -14,8 +14,8 @@ import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -23,11 +23,11 @@ import java.util.Map; public final class BlockGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(BlockGenerator.class); - private final File blocksFile; - private final File blockPropertyFile; + private final InputStream blocksFile; + private final InputStream blockPropertyFile; private final File outputFolder; - public BlockGenerator(@NotNull File blocksFile, @NotNull File blockPropertyFile, @NotNull File outputFolder) { + public BlockGenerator(@Nullable InputStream blocksFile, @Nullable InputStream blockPropertyFile, @NotNull File outputFolder) { this.blocksFile = blocksFile; this.blockPropertyFile = blockPropertyFile; this.outputFolder = outputFolder; @@ -35,12 +35,12 @@ public final class BlockGenerator extends MinestomCodeGenerator { @Override public void generate() { - if (!blocksFile.exists()) { + if (blocksFile == null) { LOGGER.error("Failed to find blocks.json."); LOGGER.error("Stopped code generation for blocks."); return; } - if (!blockPropertyFile.exists()) { + if (blockPropertyFile == null) { LOGGER.error("Failed to find block_properties.json."); LOGGER.error("Stopped code generation for block properties."); return; @@ -58,14 +58,8 @@ public final class BlockGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray blocks; - try { - blocks = GSON.fromJson(new JsonReader(new FileReader(blocksFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find blocks.json."); - LOGGER.error("Stopped code generation for blocks."); - return; - } + JsonArray blocks = GSON.fromJson(new JsonReader(new InputStreamReader(blocksFile)), JsonArray.class); + ClassName blockClassName = ClassName.get("net.minestom.server.instance.block", "Block"); ClassName blockAltClassName = ClassName.get("net.minestom.server.instance.block", "BlockAlternative"); List filesToWrite = new ArrayList<>(); diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java index a294d974f..b40560ff7 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/EntityTypeGenerator.java @@ -14,8 +14,8 @@ import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -173,17 +173,17 @@ public final class EntityTypeGenerator extends MinestomCodeGenerator { put("Player", "net.minestom.server.entity.metadata"); }}; - private final File entitiesFile; + private final InputStream entitiesFile; private final File outputFolder; - public EntityTypeGenerator(@NotNull File entitiesFile, @NotNull File outputFolder) { + public EntityTypeGenerator(@Nullable InputStream entitiesFile, @NotNull File outputFolder) { this.entitiesFile = entitiesFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!entitiesFile.exists()) { + if (entitiesFile == null) { LOGGER.error("Failed to find entities.json."); LOGGER.error("Stopped code generation for entities."); return; @@ -196,14 +196,7 @@ public final class EntityTypeGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray entities; - try { - entities = GSON.fromJson(new JsonReader(new FileReader(entitiesFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find entities.json."); - LOGGER.error("Stopped code generation for entities."); - return; - } + JsonArray entities = GSON.fromJson(new JsonReader(new InputStreamReader(entitiesFile)), JsonArray.class); ClassName entityClassName = ClassName.get("net.minestom.server.entity", "EntityType"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java index 5974d0ebb..9f7e26375 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerProfessionGenerator.java @@ -12,26 +12,24 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; import java.util.List; public final class VillagerProfessionGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(VillagerProfessionGenerator.class); - private final File villagerProfessionsFile; + private final InputStream villagerProfessionsFile; private final File outputFolder; - public VillagerProfessionGenerator(@NotNull File villagerProfessionsFile, @NotNull File outputFolder) { + public VillagerProfessionGenerator(@Nullable InputStream villagerProfessionsFile, @NotNull File outputFolder) { this.villagerProfessionsFile = villagerProfessionsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!villagerProfessionsFile.exists()) { + if (villagerProfessionsFile == null) { LOGGER.error("Failed to find villager_professions.json."); LOGGER.error("Stopped code generation for villager professions."); return; @@ -45,14 +43,7 @@ public final class VillagerProfessionGenerator extends MinestomCodeGenerator { ClassName rawVillagerProfessionDataClassName = ClassName.get("net.minestom.server.raw_data", "RawVillagerProfessionData"); ClassName registryClassName = ClassName.get("net.minestom.server.registry", "Registry"); - JsonArray villagerProfessions; - try { - villagerProfessions = GSON.fromJson(new JsonReader(new FileReader(villagerProfessionsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find villager_professions.json."); - LOGGER.error("Stopped code generation for villager professions."); - return; - } + JsonArray villagerProfessions = GSON.fromJson(new JsonReader(new InputStreamReader(villagerProfessionsFile)), JsonArray.class); ClassName villagerProfessionClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerProfession"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java index 190375301..76f20f48a 100644 --- a/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/entity/VillagerTypeGenerator.java @@ -12,25 +12,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; import java.util.List; public final class VillagerTypeGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(VillagerTypeGenerator.class); - private final File villagerTypesFile; + private final InputStream villagerTypesFile; private final File outputFolder; - public VillagerTypeGenerator(@NotNull File villagerTypesFile, @NotNull File outputFolder) { + public VillagerTypeGenerator(@Nullable InputStream villagerTypesFile, @NotNull File outputFolder) { this.villagerTypesFile = villagerTypesFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!villagerTypesFile.exists()) { + if (villagerTypesFile == null) { LOGGER.error("Failed to find villager_types.json."); LOGGER.error("Stopped code generation for villager types."); return; @@ -43,14 +41,7 @@ public final class VillagerTypeGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registryClassName = ClassName.get("net.minestom.server.registry", "Registry"); - JsonArray villagerTypes; - try { - villagerTypes = GSON.fromJson(new JsonReader(new FileReader(villagerTypesFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find villager_types.json."); - LOGGER.error("Stopped code generation for villager types."); - return; - } + JsonArray villagerTypes = GSON.fromJson(new JsonReader(new InputStreamReader(villagerTypesFile)), JsonArray.class); ClassName villagerTypeClassName = ClassName.get("net.minestom.server.entity.metadata.villager", "VillagerType"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java index 86d66e554..cb1dd49db 100644 --- a/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/fluid/FluidGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class FluidGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(FluidGenerator.class); - private final File fluidsFile; + private final InputStream fluidsFile; private final File outputFolder; - public FluidGenerator(@NotNull File fluidsFile, @NotNull File outputFolder) { + public FluidGenerator(@Nullable InputStream fluidsFile, @NotNull File outputFolder) { this.fluidsFile = fluidsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!fluidsFile.exists()) { + if (fluidsFile == null) { LOGGER.error("Failed to find fluids.json."); LOGGER.error("Stopped code generation for fluids."); return; @@ -42,14 +40,7 @@ public final class FluidGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray fluids; - try { - fluids = GSON.fromJson(new JsonReader(new FileReader(fluidsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find fluids.json."); - LOGGER.error("Stopped code generation for fluids."); - return; - } + JsonArray fluids = GSON.fromJson(new JsonReader(new InputStreamReader(fluidsFile)), JsonArray.class); ClassName fluidClassName = ClassName.get("net.minestom.server.fluid", "Fluid"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/item/EnchantmentGenerator.java b/code-generators/src/main/java/net/minestom/codegen/item/EnchantmentGenerator.java index 5919c5ce1..5e6ef0eb8 100644 --- a/code-generators/src/main/java/net/minestom/codegen/item/EnchantmentGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/item/EnchantmentGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class EnchantmentGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(EnchantmentGenerator.class); - private final File enchantmentsFile; + private final InputStream enchantmentsFile; private final File outputFolder; - public EnchantmentGenerator(@NotNull File enchantmentsFile, @NotNull File outputFolder) { + public EnchantmentGenerator(@Nullable InputStream enchantmentsFile, @NotNull File outputFolder) { this.enchantmentsFile = enchantmentsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!enchantmentsFile.exists()) { + if (enchantmentsFile == null) { LOGGER.error("Failed to find enchantments.json."); LOGGER.error("Stopped code generation for enchantments."); return; @@ -42,14 +40,7 @@ public final class EnchantmentGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray enchantments; - try { - enchantments = GSON.fromJson(new JsonReader(new FileReader(enchantmentsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find enchantments.json."); - LOGGER.error("Stopped code generation for enchantments."); - return; - } + JsonArray enchantments = GSON.fromJson(new JsonReader(new InputStreamReader(enchantmentsFile)), JsonArray.class); ClassName enchantmentClassName = ClassName.get("net.minestom.server.item", "Enchantment"); // Enchantment diff --git a/code-generators/src/main/java/net/minestom/codegen/item/MaterialGenerator.java b/code-generators/src/main/java/net/minestom/codegen/item/MaterialGenerator.java index a0366cb2e..2b87632b0 100644 --- a/code-generators/src/main/java/net/minestom/codegen/item/MaterialGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/item/MaterialGenerator.java @@ -12,25 +12,23 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; import java.util.function.Supplier; public final class MaterialGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(MaterialGenerator.class); - private final File itemsFile; + private final InputStream itemsFile; private final File outputFolder; - public MaterialGenerator(@NotNull File itemsFile, @NotNull File outputFolder) { + public MaterialGenerator(@Nullable InputStream itemsFile, @NotNull File outputFolder) { this.itemsFile = itemsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!itemsFile.exists()) { + if (itemsFile == null) { LOGGER.error("Failed to find items.json."); LOGGER.error("Stopped code generation for items."); return; @@ -45,14 +43,7 @@ public final class MaterialGenerator extends MinestomCodeGenerator { ClassName blockCN = ClassName.get("net.minestom.server.instance.block", "Block"); ParameterizedTypeName blocksCNSupplier = ParameterizedTypeName.get(ClassName.get(Supplier.class), blockCN); - JsonArray items; - try { - items = GSON.fromJson(new JsonReader(new FileReader(itemsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find items.json."); - LOGGER.error("Stopped code generation for items."); - return; - } + JsonArray items = GSON.fromJson(new JsonReader(new InputStreamReader(itemsFile)), JsonArray.class); ClassName itemClassName = ClassName.get("net.minestom.server.item", "Material"); // Item diff --git a/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java b/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java index af59f09cd..85dcd20b8 100644 --- a/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/particle/ParticleGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class ParticleGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(ParticleGenerator.class); - private final File particlesFile; + private final InputStream particlesFile; private final File outputFolder; - public ParticleGenerator(@NotNull File particlesFile, @NotNull File outputFolder) { + public ParticleGenerator(@Nullable InputStream particlesFile, @NotNull File outputFolder) { this.particlesFile = particlesFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!particlesFile.exists()) { + if (particlesFile == null) { LOGGER.error("Failed to find particles.json."); LOGGER.error("Stopped code generation for particles."); return; @@ -42,14 +40,7 @@ public final class ParticleGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray particles; - try { - particles = GSON.fromJson(new JsonReader(new FileReader(particlesFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find particles.json."); - LOGGER.error("Stopped code generation for particles."); - return; - } + JsonArray particles = GSON.fromJson(new JsonReader(new InputStreamReader(particlesFile)), JsonArray.class); ClassName particleClassName = ClassName.get("net.minestom.server.particle", "Particle"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/potion/PotionEffectGenerator.java b/code-generators/src/main/java/net/minestom/codegen/potion/PotionEffectGenerator.java index fdfa2a95d..4116f8620 100644 --- a/code-generators/src/main/java/net/minestom/codegen/potion/PotionEffectGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/potion/PotionEffectGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class PotionEffectGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(PotionEffectGenerator.class); - private final File potionEffectsFile; + private final InputStream potionEffectsFile; private final File outputFolder; - public PotionEffectGenerator(@NotNull File potionEffectsFile, @NotNull File outputFolder) { + public PotionEffectGenerator(@Nullable InputStream potionEffectsFile, @NotNull File outputFolder) { this.potionEffectsFile = potionEffectsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!potionEffectsFile.exists()) { + if (potionEffectsFile == null) { LOGGER.error("Failed to find potionEffects.json."); LOGGER.error("Stopped code generation for potion effects."); return; @@ -42,14 +40,7 @@ public final class PotionEffectGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray potionEffects; - try { - potionEffects = GSON.fromJson(new JsonReader(new FileReader(potionEffectsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find potionEffects.json."); - LOGGER.error("Stopped code generation for potion effects."); - return; - } + JsonArray potionEffects = GSON.fromJson(new JsonReader(new InputStreamReader(potionEffectsFile)), JsonArray.class); ClassName potionEffectClassName = ClassName.get("net.minestom.server.potion", "PotionEffect"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/potion/PotionTypeGenerator.java b/code-generators/src/main/java/net/minestom/codegen/potion/PotionTypeGenerator.java index 29ba63fb3..8d93b6c45 100644 --- a/code-generators/src/main/java/net/minestom/codegen/potion/PotionTypeGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/potion/PotionTypeGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class PotionTypeGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(PotionTypeGenerator.class); - private final File potionsFile; + private final InputStream potionsFile; private final File outputFolder; - public PotionTypeGenerator(@NotNull File potionsFile, @NotNull File outputFolder) { + public PotionTypeGenerator(@Nullable InputStream potionsFile, @NotNull File outputFolder) { this.potionsFile = potionsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!potionsFile.exists()) { + if (potionsFile == null) { LOGGER.error("Failed to find potions.json."); LOGGER.error("Stopped code generation for potions."); return; @@ -42,14 +40,7 @@ public final class PotionTypeGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray potions; - try { - potions = GSON.fromJson(new JsonReader(new FileReader(potionsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find potions.json."); - LOGGER.error("Stopped code generation for potions."); - return; - } + JsonArray potions = GSON.fromJson(new JsonReader(new InputStreamReader(potionsFile)), JsonArray.class); ClassName potionTypeClassName = ClassName.get("net.minestom.server.potion", "PotionType"); // Particle diff --git a/code-generators/src/main/java/net/minestom/codegen/sound/SoundEventGenerator.java b/code-generators/src/main/java/net/minestom/codegen/sound/SoundEventGenerator.java index c56f71935..5619cee63 100644 --- a/code-generators/src/main/java/net/minestom/codegen/sound/SoundEventGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/sound/SoundEventGenerator.java @@ -12,24 +12,22 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.*; import java.util.Collections; public final class SoundEventGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(SoundEventGenerator.class); - private final File soundsFile; + private final InputStream soundsFile; private final File outputFolder; - public SoundEventGenerator(@NotNull File itemsFile, @NotNull File outputFolder) { + public SoundEventGenerator(@Nullable InputStream itemsFile, @NotNull File outputFolder) { this.soundsFile = itemsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!soundsFile.exists()) { + if (soundsFile == null) { LOGGER.error("Failed to find sounds.json."); LOGGER.error("Stopped code generation for sounds."); return; @@ -42,14 +40,7 @@ public final class SoundEventGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray sounds; - try { - sounds = GSON.fromJson(new JsonReader(new FileReader(soundsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find sounds.json."); - LOGGER.error("Stopped code generation for sounds."); - return; - } + JsonArray sounds = GSON.fromJson(new JsonReader(new InputStreamReader(soundsFile)), JsonArray.class); ClassName soundClassName = ClassName.get("net.minestom.server.sound", "SoundEvent"); // Sound TypeSpec.Builder soundClass = TypeSpec.enumBuilder(soundClassName) diff --git a/code-generators/src/main/java/net/minestom/codegen/statistics/StatisticGenerator.java b/code-generators/src/main/java/net/minestom/codegen/statistics/StatisticGenerator.java index dfdc7e5da..84e79f353 100644 --- a/code-generators/src/main/java/net/minestom/codegen/statistics/StatisticGenerator.java +++ b/code-generators/src/main/java/net/minestom/codegen/statistics/StatisticGenerator.java @@ -13,23 +13,23 @@ import org.slf4j.LoggerFactory; import javax.lang.model.element.Modifier; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; +import java.io.InputStream; +import java.io.InputStreamReader; import java.util.Collections; public final class StatisticGenerator extends MinestomCodeGenerator { private static final Logger LOGGER = LoggerFactory.getLogger(StatisticGenerator.class); - private final File statisticsFile; + private final InputStream statisticsFile; private final File outputFolder; - public StatisticGenerator(@NotNull File statisticsFile, @NotNull File outputFolder) { + public StatisticGenerator(@Nullable InputStream statisticsFile, @NotNull File outputFolder) { this.statisticsFile = statisticsFile; this.outputFolder = outputFolder; } @Override public void generate() { - if (!statisticsFile.exists()) { + if (statisticsFile == null) { LOGGER.error("Failed to find statistics.json."); LOGGER.error("Stopped code generation for statistics."); return; @@ -42,14 +42,7 @@ public final class StatisticGenerator extends MinestomCodeGenerator { ClassName namespaceIDClassName = ClassName.get("net.minestom.server.utils", "NamespaceID"); ClassName registriesClassName = ClassName.get("net.minestom.server.registry", "Registries"); - JsonArray statistics; - try { - statistics = GSON.fromJson(new JsonReader(new FileReader(statisticsFile)), JsonArray.class); - } catch (FileNotFoundException e) { - LOGGER.error("Failed to find statistics.json."); - LOGGER.error("Stopped code generation for statistics."); - return; - } + JsonArray statistics = GSON.fromJson(new JsonReader(new InputStreamReader(statisticsFile)), JsonArray.class); ClassName statisticClassName = ClassName.get("net.minestom.server.statistic", "StatisticType"); // Particle diff --git a/gradle.properties b/gradle.properties index 6020b7d45..e23cbd53c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,6 @@ -# Update with every release +# Update this version with every release. It is purely used for the code generator and data dependency. mcVersion = 1.16.5 + asmVersion=9.0 mixinVersion=0.8.1 hephaistosVersion=v1.1.8