Skip to content

Commit

Permalink
chore: merge upstream for neo addition
Browse files Browse the repository at this point in the history
Signed-off-by: Gabriel Harris-Rouquette <[email protected]>
  • Loading branch information
gabizou committed Oct 10, 2024
2 parents 4739588 + 615a64a commit 1ec66a9
Show file tree
Hide file tree
Showing 274 changed files with 8,805 additions and 1,252 deletions.
5 changes: 4 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,7 @@ max_line_length = 120
tab_width = 4

[*mixins*.json]
indent_size = 4
indent_size = 4

[*.yaml]
indent_size = 2
2 changes: 1 addition & 1 deletion .github/workflows/check-spotless.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ jobs:
uses: SpongePowered/.github/.github/workflows/shared-check-spotless.yaml@master
with:
runtime_version: 21
extra_gradle_params: "-PenableTestPlugins=true -PenableSpongeForge=true"
extra_gradle_params: "-Pprojects=vanilla,forge,neoforge,testplugins"
secrets: inherit
8 changes: 7 additions & 1 deletion .github/workflows/common-run-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
echo "GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
echo "BUILD_NUMBER=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
- name: build with Gradle
run: ./gradlew -PenableTestPlugins=true -PenableSpongeForge=true build --stacktrace
run: ./gradlew -Pprojects=vanilla,forge,neoforge,testplugins build --stacktrace
env:
CI_SYSTEM: Github Actions
- name: Archive artifacts for build
Expand All @@ -45,6 +45,7 @@ jobs:
${{ github.workspace }}/build/libs/*.jar
${{ github.workspace }}/vanilla/build/libs/*.jar
${{ github.workspace }}/forge/build/libs/*.jar
${{ github.workspace }}/neoforge/build/libs/*.jar
- name: SpongeVanilla Production Jar
uses: "actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3" # v4.3.1
with:
Expand All @@ -55,6 +56,11 @@ jobs:
with:
name: SpongeForge Production Jar
path: "${{ github.workspace }}/forge/build/libs/*-universal.jar"
- name: SpongeNeo Production Jar
uses: "actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3" # v4.3.1
with:
name: SpongeNeo Production Jar
path: "${{ github.workspace }}/neoforge/build/libs/*-universal.jar"
- name: SpongeVanilla libraries
uses: "actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3" # v4.3.1
with:
Expand Down
3 changes: 1 addition & 2 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,7 @@ jobs:
echo "GIT_BRANCH=${GITHUB_REF##*/}" >> $GITHUB_ENV
echo "BUILD_NUMBER=${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
- name: Publish to Sponge Maven & GitHub Packages
# run: ./gradlew -s -PenableSpongeForge=true :publish :SpongeVanilla:publish :SpongeForge:publish
run: ./gradlew -s -PenableSpongeForge=true :publish :SpongeVanilla:publish
run: ./gradlew -s -Pprojects=vanilla,forge,neoforge :publish :SpongeVanilla:publish :SpongeForge:publish :SpongeNeo:publish
env:
CI_SYSTEM: Github Actions
GITHUB_USERNAME: "${{ github.actor }}"
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -85,3 +85,4 @@ buildSrc/src/api
# the test plugins themselves can be committed as examples.
testplugins.settings.gradle.kts
spongeforge.settings.gradle.kts
projects.properties
2 changes: 1 addition & 1 deletion SpongeAPI
Submodule SpongeAPI updated 37 files
+4 −14 src/main/java/org/spongepowered/api/advancement/DisplayInfo.java
+26 −0 src/main/java/org/spongepowered/api/block/entity/BlockEntity.java
+2 −2 src/main/java/org/spongepowered/api/block/entity/Jukebox.java
+3 −7 src/main/java/org/spongepowered/api/event/cause/entity/damage/DamageModifier.java
+1 −1 src/main/java/org/spongepowered/api/event/item/inventory/AffectItemStackEvent.java
+1 −1 src/main/java/org/spongepowered/api/event/item/inventory/AffectSlotEvent.java
+5 −5 src/main/java/org/spongepowered/api/item/enchantment/EnchantmentType.java
+6 −6 src/main/java/org/spongepowered/api/item/inventory/ArmorEquipable.java
+1 −1 src/main/java/org/spongepowered/api/item/inventory/Container.java
+4 −4 src/main/java/org/spongepowered/api/item/inventory/Equipable.java
+10 −10 src/main/java/org/spongepowered/api/item/inventory/Inventory.java
+4 −109 src/main/java/org/spongepowered/api/item/inventory/ItemStack.java
+172 −0 src/main/java/org/spongepowered/api/item/inventory/ItemStackLike.java
+1 −36 src/main/java/org/spongepowered/api/item/inventory/ItemStackSnapshot.java
+1 −1 src/main/java/org/spongepowered/api/item/inventory/Slot.java
+5 −3 src/main/java/org/spongepowered/api/item/inventory/equipment/EquipmentInventory.java
+3 −3 src/main/java/org/spongepowered/api/item/inventory/slot/FilteringSlot.java
+5 −5 src/main/java/org/spongepowered/api/item/inventory/slot/SidedSlot.java
+7 −6 src/main/java/org/spongepowered/api/item/inventory/transaction/InventoryTransactionResult.java
+4 −4 src/main/java/org/spongepowered/api/item/inventory/transaction/SlotTransaction.java
+3 −2 src/main/java/org/spongepowered/api/item/inventory/type/GridInventory.java
+3 −2 src/main/java/org/spongepowered/api/item/inventory/type/Inventory2D.java
+2 −2 src/main/java/org/spongepowered/api/item/inventory/type/ViewableInventory.java
+4 −4 src/main/java/org/spongepowered/api/item/merchant/TradeOffer.java
+5 −5 src/main/java/org/spongepowered/api/item/recipe/RecipeManager.java
+10 −21 src/main/java/org/spongepowered/api/item/recipe/cooking/CookingRecipe.java
+15 −33 src/main/java/org/spongepowered/api/item/recipe/cooking/CookingResult.java
+10 −46 src/main/java/org/spongepowered/api/item/recipe/crafting/Ingredient.java
+3 −2 src/main/java/org/spongepowered/api/item/recipe/crafting/RecipeInput.java
+4 −3 src/main/java/org/spongepowered/api/item/recipe/crafting/RecipeResult.java
+5 −14 src/main/java/org/spongepowered/api/item/recipe/crafting/ShapedCraftingRecipe.java
+5 −16 src/main/java/org/spongepowered/api/item/recipe/crafting/ShapelessCraftingRecipe.java
+4 −4 src/main/java/org/spongepowered/api/item/recipe/crafting/SpecialCraftingRecipe.java
+5 −16 src/main/java/org/spongepowered/api/item/recipe/single/StoneCutterRecipe.java
+5 −16 src/main/java/org/spongepowered/api/item/recipe/smithing/SmithingRecipe.java
+0 −1 src/main/java/org/spongepowered/api/world/storage/WorldProperties.java
+146 −0 src/test/java/org/spongepowered/api/util/ColorTest.java
5 changes: 5 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,11 @@ dependencies {
}
applaunchConfig(libs.log4j.core)
applaunchConfig(libs.log4j.jpl)
applaunchConfig(apiLibs.pluginSpi) {
exclude(group = "org.checkerframework", module = "checker-qual")
exclude(group = "com.google.code.gson", module = "gson")
exclude(group = "org.apache.logging.log4j", module = "log4j-api")
}

add(mixins.get().implementationConfigurationName, "org.spongepowered:spongeapi:$apiVersion")

Expand Down
21 changes: 16 additions & 5 deletions forge/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,9 @@ dependencies {

val service = serviceLibrariesConfig.name
service(apiLibs.pluginSpi)
service(project(transformersProject.path))
service(project(transformersProject.path)) {
exclude(group = "cpw.mods", module = "modlauncher")
}
service(platform(apiLibs.configurate.bom))
service(apiLibs.configurate.core) {
exclude(group = "org.checkerframework", module = "checker-qual")
Expand Down Expand Up @@ -288,14 +290,21 @@ tasks {
archiveClassifier.set("lang")
manifest {
from(forgeManifest)
attributes("FMLModType" to "LANGPROVIDER")
attributes(
"Automatic-Module-Name" to "spongeforge.lang",
"FMLModType" to "LANGPROVIDER"
)
}
from(forgeLang.output)
}

val forgeServicesJar by registering(Jar::class) {
archiveClassifier.set("services")
manifest.from(forgeManifest)

manifest {
from(forgeManifest)
attributes("Automatic-Module-Name" to "spongeforge.services")
}

from(commonProject.sourceSets.named("applaunch").map { it.output })
from(forgeAppLaunch.output)
Expand Down Expand Up @@ -358,9 +367,11 @@ tasks {
exclude("META-INF/INDEX.LIST", "META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA", "**/module-info.class")

manifest {
attributes("Automatic-Module-Name" to "spongeforge.services")
attributes("Multi-Release" to true)
from(forgeManifest)
attributes(
"Automatic-Module-Name" to "spongeforge.services",
"Multi-Release" to true
)
}

from(commonProject.sourceSets.named("applaunch").map { it.output })
Expand Down
2 changes: 1 addition & 1 deletion forge/gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@ description=The SpongeAPI implementation for MinecraftForge
forgeVersion=52.0.3
loom.platform=forge
fabric.loom.dontRemap=true
mixinConfigs=mixins.spongeforge.accessors.json,mixins.spongeforge.api.json,mixins.spongeforge.inventory.json,mixins.spongeforge.core.json,mixins.spongeforge.tracker.json
mixinConfigs=mixins.spongeforge.accessors.json,mixins.spongeforge.api.json,mixins.spongeforge.inventory.json,mixins.spongeforge.inventory.shared.json,mixins.spongeforge.core.json,mixins.spongeforge.core.shared.json,mixins.spongeforge.tracker.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,10 @@ public List<? extends IConfigurable> getConfigList(final String... key) {
}

private IModInfo.Ordering loadToOrdering(final PluginDependency.LoadOrder order) {
if (order == PluginDependency.LoadOrder.AFTER) {
return IModInfo.Ordering.AFTER;
}

return IModInfo.Ordering.NONE;
return switch (order) {
case UNDEFINED -> IModInfo.Ordering.NONE;
case BEFORE -> IModInfo.Ordering.BEFORE;
case AFTER -> IModInfo.Ordering.AFTER;
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,6 @@ public List<? extends IConfigurable> getConfigList(final String... key) {
}

if ("dependencies".equals(query)) {

// TODO Should we inject a dependency on SpongeForge?
final Set<PluginDependency> dependencies = metadata.dependencies();
if (dependencies.isEmpty()) {
return Collections.emptyList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@
import net.minecraftforge.forgespi.locating.IModLocator;
import net.minecraftforge.forgespi.locating.ModFileFactory;
import org.spongepowered.common.applaunch.AppLaunch;
import org.spongepowered.common.applaunch.metadata.PluginMetadataFixer;
import org.spongepowered.common.applaunch.plugin.PluginPlatformConstants;
import org.spongepowered.forge.applaunch.loading.metadata.PluginFileConfigurable;
import org.spongepowered.forge.applaunch.loading.metadata.PluginMetadataUtils;
import org.spongepowered.plugin.metadata.builtin.MetadataContainer;
import org.spongepowered.plugin.metadata.builtin.MetadataParser;

Expand All @@ -46,19 +46,19 @@
import java.nio.file.Path;
import java.util.List;

public final class ModFileParsers {
public final class PluginFileParser {
private static Constructor<ModJarMetadata> modJarMetadataConstructor;

static {
try {
ModFileParsers.modJarMetadataConstructor = ModJarMetadata.class.getDeclaredConstructor();
ModFileParsers.modJarMetadataConstructor.setAccessible(true);
PluginFileParser.modJarMetadataConstructor = ModJarMetadata.class.getDeclaredConstructor();
PluginFileParser.modJarMetadataConstructor.setAccessible(true);
} catch (final Exception e) {
throw new RuntimeException(e);
}
}

public static IModFileInfo parsePluginMetadata(final IModFile iModFile) {
private static IModFileInfo parsePluginMetadata(final IModFile iModFile) {
final ModFile modFile = (ModFile) iModFile;
AppLaunch.logger().debug("Considering plugin file candidate {}", modFile.getFilePath());

Expand All @@ -74,7 +74,7 @@ public static IModFileInfo parsePluginMetadata(final IModFile iModFile) {
container = MetadataParser.read(reader);
}

final PluginFileConfigurable config = new PluginFileConfigurable(PluginMetadataUtils.fixPluginIds(container));
final PluginFileConfigurable config = new PluginFileConfigurable(PluginMetadataFixer.fixPluginIds(container));
return new ModFileInfo(modFile, config, (info) -> {}, List.of());
} catch (final Exception e) {
AppLaunch.logger().warn("Could not read metadata for plugin file '{}'", modFile, e);
Expand All @@ -92,11 +92,11 @@ private static ModJarMetadata newModJarMetadata() {

public static ModFile newPluginInstance(final IModLocator locator, final Path... path) {
ModJarMetadata mjm = newModJarMetadata();
ModFile modFile = (ModFile) ModFileFactory.FACTORY.build(SecureJar.from(jar -> mjm, path), locator, ModFileParsers::parsePluginMetadata);
ModFile modFile = (ModFile) ModFileFactory.FACTORY.build(SecureJar.from(jar -> mjm, path), locator, PluginFileParser::parsePluginMetadata);
mjm.setModFile(modFile);
return modFile;
}

private ModFileParsers() {
private PluginFileParser() {
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@

import net.minecraftforge.fml.loading.moddiscovery.AbstractModProvider;
import net.minecraftforge.forgespi.locating.IModLocator;
import org.spongepowered.forge.applaunch.loading.moddiscovery.ModFileParsers;
import org.spongepowered.forge.applaunch.loading.moddiscovery.PluginFileParser;

import java.nio.file.Path;
import java.util.ArrayList;
Expand All @@ -41,14 +41,14 @@ public final class EnvironmentPluginLocator extends AbstractModProvider implemen
public List<ModFileOrException> scanMods() {
final List<ModFileOrException> modFiles = new ArrayList<>();
for (final Path[] paths : EnvironmentPluginLocator.getPluginsPaths()) {
modFiles.add(new ModFileOrException(ModFileParsers.newPluginInstance(this, paths), null));
modFiles.add(new ModFileOrException(PluginFileParser.newPluginInstance(this, paths), null));
}
return modFiles;
}

@Override
protected ModFileOrException createMod(Path path) {
return new ModFileOrException(ModFileParsers.newPluginInstance(this, path), null);
return new ModFileOrException(PluginFileParser.newPluginInstance(this, path), null);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.spongepowered.common.applaunch.AppLaunch;
import org.spongepowered.forge.applaunch.loading.moddiscovery.ModFileParsers;
import org.spongepowered.forge.applaunch.loading.moddiscovery.PluginFileParser;

import java.nio.file.Files;
import java.nio.file.Path;
Expand All @@ -54,18 +54,18 @@ public List<ModFileOrException> scanMods() {

for (final Path pluginDirectory : pluginDirectories) {
PluginsDirectoryLocator.LOGGER.debug("Scanning plugins directory '{}' for plugins", pluginDirectory);
this.scanForModsIn(pluginDirectory).map((f) -> new ModFileOrException(f, null)).forEach(modFiles::add);
this.scanForPluginsIn(pluginDirectory).map((f) -> new ModFileOrException(f, null)).forEach(modFiles::add);
}

return modFiles;
}

private Stream<ModFile> scanForModsIn(final Path pluginsDirectory) {
private Stream<ModFile> scanForPluginsIn(final Path pluginsDirectory) {
final List<Path> excluded = ModDirTransformerDiscoverer.allExcluded();
return LamdbaExceptionUtils.uncheck(() -> Files.list(pluginsDirectory))
.filter((p) -> !excluded.contains(p) && StringUtils.toLowerCase(p.getFileName().toString()).endsWith(".jar"))
.sorted(Comparator.comparing((path) -> StringUtils.toLowerCase(path.getFileName().toString())))
.map((p) -> ModFileParsers.newPluginInstance(this, p))
.map((p) -> PluginFileParser.newPluginInstance(this, p))
.filter(ModFile::identifyMods);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,6 @@ public void setPluginDirectories(final List<Path> pluginDirectories) {
// NOOP
}

// TODO: Zidane, how will this work with SF?
@Override
public String metadataFilePath() {
return null;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,25 +31,20 @@
import com.google.inject.Stage;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.loading.FMLLoader;
import net.minecraftforge.fml.loading.moddiscovery.ModInfo;
import org.spongepowered.common.applaunch.plugin.PluginPlatform;
import org.spongepowered.common.inject.SpongeCommonModule;
import org.spongepowered.common.inject.SpongeModule;
import org.spongepowered.common.launch.Launch;
import org.spongepowered.common.launch.mapping.SpongeMappingManager;
import org.spongepowered.forge.applaunch.loading.metadata.PluginMetadataUtils;
import org.spongepowered.forge.launch.inject.SpongeForgeModule;
import org.spongepowered.forge.launch.plugin.ForgePluginManager;
import org.spongepowered.plugin.PluginContainer;
import org.spongepowered.plugin.metadata.PluginMetadata;

import java.util.List;

public final class ForgeLaunch extends Launch {

private final ForgePluginManager pluginManager;
private PluginContainer spongeForgePlugin;
private final ForgeMappingManager mappings = new ForgeMappingManager();

public ForgeLaunch(final PluginPlatform platform) {
super(platform);
Expand All @@ -66,11 +61,6 @@ public ForgePluginManager pluginManager() {
return this.pluginManager;
}

@Override
public SpongeMappingManager mappingManager() {
return this.mappings;
}

@Override
public Stage injectionStage() {
return FMLLoader.isProduction() ? Stage.PRODUCTION : Stage.DEVELOPMENT;
Expand Down Expand Up @@ -98,8 +88,4 @@ public PluginContainer platformPlugin() {

return this.spongeForgePlugin;
}

public PluginMetadata metadataForMod(final ModInfo info) {
return PluginMetadataUtils.modToPlugin(info);
}
}
Loading

0 comments on commit 1ec66a9

Please sign in to comment.