Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// "Publish" (only to local projects) a resources variant for other projects to consume
configurations.consumable("resourcesVariant") {
// Similar to mainSourceElements
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category::class, Category.VERIFICATION))
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling::class, Bundling.EXTERNAL))
attribute(VerificationType.VERIFICATION_TYPE_ATTRIBUTE, objects.named(VerificationType::class, "resources"))
}
outgoing.artifact(tasks.named("processResources"))
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ tasks.named<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar>("shadowJ
include(project(":worldedit-libs:core"))
include(project(":worldedit-libs:${project.name.replace("worldedit-", "")}"))
include(project(":worldedit-core"))
include(project(":worldedit-core-mc"))
include(dependency(jchronic))
linBusDeps.forEach {
include(dependency(it))
Expand Down
4 changes: 0 additions & 4 deletions build-logic/src/main/kotlin/buildlogic/GradleExtras.kt
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,5 @@ fun RepositoryHandler.addEngineHubRepository() {
maven {
name = "EngineHub (Non-Mirrored)"
url = URI.create("https://repo.enginehub.org/libs-release/")
metadataSources {
mavenPom()
artifact()
}
}
}
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ errorprone-core = { module = "com.google.errorprone:error_prone_core", version.r
errorprone-annotations = { module = "com.google.errorprone:error_prone_annotations", version.ref = "errorprone" }

# https://maven.fabricmc.net/net/fabricmc/sponge-mixin/
fabric-mixin = "net.fabricmc:sponge-mixin:0.17.0+mixin.0.8.7"
fabric-mixin = "net.fabricmc:sponge-mixin:0.17.1+mixin.0.8.7"

paperweight = "io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin:2.0.0-beta.21"

Expand Down
69 changes: 47 additions & 22 deletions gradle/shared-scripts/repo-reconfiguration.settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
// This file is responsible for reconfiguring repositories to use EngineHub's mirrors
// In addition, it configures content filtering to speed up dependency resolution

import org.gradle.api.artifacts.dsl.RepositoryHandler
import org.gradle.api.artifacts.repositories.UrlArtifactRepository
import org.gradle.api.logging.Logging
import java.net.URI

data class RepositoryReconfiguration(
val newUri: URI,
val contentConfiguration: (MavenRepositoryContentDescriptor.() -> Unit)? = null,
val contentConfiguration: (MavenArtifactRepository.() -> Unit)? = null,
) {
constructor(newUri: String, contentConfiguration: (MavenRepositoryContentDescriptor.() -> Unit)? = null) :
constructor(newUri: String, contentConfiguration: (MavenArtifactRepository.() -> Unit)? = null) :
this(URI.create(newUri), contentConfiguration)
}

Expand All @@ -30,67 +27,97 @@ object Isolated {
private val REPO_RECONFIGURATIONS = listOf(
"https://repo.maven.apache.org/maven2/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/maven-central-proxy/") {
releasesOnly()
mavenContent {
releasesOnly()
}
},
"https://plugins.gradle.org/m2" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/plugin-portal-proxy/") {
releasesOnly()
mavenContent {
releasesOnly()
}
},
"https://libraries.minecraft.net/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/minecraft/") {
releasesOnly()
mavenContent {
releasesOnly()
}
},
"https://maven.neoforged.net/releases/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/neoforged/") {
mavenContent {
releasesOnly()
includeGroupAndSubgroups("net.minecraftforge")
includeGroupAndSubgroups("net.neoforged")
includeGroupAndSubgroups("net.neoforged")
}
},
"https://maven.minecraftforge.net/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/forge/") {
mavenContent {
releasesOnly()
includeGroupAndSubgroups("net.minecraftforge")
includeGroupAndSubgroups("net.minecraftforge")
}
},
"https://maven.parchmentmc.org/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/parchment/") {
mavenContent {
releasesOnly()
includeGroup("org.parchmentmc.data")
includeGroup("org.parchmentmc.data")
}
},
"https://repo.papermc.io/repository/maven-public/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/papermc-proxy/") {
mavenContent {
includeGroupAndSubgroups("io.papermc")
includeGroupAndSubgroups("com.velocitypowered")
includeGroupAndSubgroups("ca.spottedleaf")
includeGroupAndSubgroups("me.lucko")
includeModule("net.md-5", "bungeecord-chat")
includeModule("net.md-5", "bungeecord-chat")
}
},
"https://maven.fabricmc.net/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/fabricmc/") {
mavenContent {
releasesOnly()
includeGroupAndSubgroups("fabric-loom")
includeGroupAndSubgroups("net.fabricmc")
excludeModule("net.fabricmc", "yarn")
excludeModule("net.fabricmc", "yarn")
}
},
"https://maven.fabricmc.net/#yarn-only" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/fabricmc-yarn/") {
mavenContent {
releasesOnly()
includeModule("net.fabricmc", "yarn")
includeModule("net.fabricmc", "yarn")
}
},
"https://repo.spongepowered.org/repository/maven-releases/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/spongepowered-releases/") {
mavenContent {
releasesOnly()
includeGroupAndSubgroups("org.spongepowered")
includeGroupAndSubgroups("org.spongepowered")
}
},
"https://repo.spongepowered.org/repository/maven-snapshots/" to
RepositoryReconfiguration("https://repo.enginehub.org/internal/spongepowered-snapshots/") {
mavenContent {
snapshotsOnly()
includeGroupAndSubgroups("org.spongepowered")
includeGroupAndSubgroups("org.spongepowered")
}
},
"https://repo.enginehub.org/libs-release/" to
RepositoryReconfiguration("https://repo.enginehub.org/libs-release/") {
releasesOnly()
includeGroupAndSubgroups("com.sk89q")
includeGroupAndSubgroups("org.enginehub")
mavenContent {
releasesOnly()
includeGroupAndSubgroups("com.sk89q")
includeGroupAndSubgroups("org.enginehub")
}

metadataSources {
gradleMetadata()
mavenPom()
artifact()
}
},
).associate { (k, v) -> URI.create(k) to v }
private val LOGGER = Logging.getLogger("enginehub-reconfiguring-repositories")
Expand Down Expand Up @@ -119,9 +146,7 @@ object Isolated {
if (!(repo is MavenArtifactRepository)) {
error("Cannot configure content on non-Maven repository: ${repo.name} ${repo.url}")
}
repo.mavenContent {
reconfiguration.contentConfiguration.invoke(this)
}
repo.run(reconfiguration.contentConfiguration)
}
}
}
Expand Down
7 changes: 1 addition & 6 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,6 @@ dependencyResolutionManagement {
maven {
name = "EngineHub (Non-Mirrored)"
url = URI.create("https://repo.enginehub.org/libs-release/")
metadataSources {
gradleMetadata()
mavenPom()
artifact()
}
}
ivy {
url = uri("https://repo.enginehub.org/language-files/")
Expand Down Expand Up @@ -87,7 +82,7 @@ listOf("1.21.4", "1.21.5", "1.21.6", "1.21.9", "1.21.11", "26.1").forEach {
include("worldedit-bukkit:adapters:adapter-$it")
}

listOf("bukkit", "core", "fabric", "neoforge", "sponge", "cli").forEach {
listOf("bukkit", "core", "core-mc", "fabric", "neoforge", "sponge", "cli").forEach {
include("worldedit-libs:$it")
include("worldedit-$it")
}
Expand Down
16 changes: 16 additions & 0 deletions worldedit-core-mc/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Diff Setup

Diffing against old `worldedit-fabric` or `worldedit-neoforge` code is best done with the following setup:
1. Add the following to `.git/info/attributes`:
```
worldedit-core-mc/src/main/java/com/sk89q/worldedit/coremc/**/*.java diff=core-mc
worldedit-fabric/src/main/java/com/sk89q/worldedit/fabric/**/*.java diff=core-mc
worldedit-neoforge/src/main/java/com/sk89q/worldedit/neoforge/**/*.java diff=core-mc
```
2. Run `git config diff.core-mc.textconv ./worldedit-core-mc/textconv-core-mc.py`.
3. Run `git config diff.renames copy`

This will give you diffs that replace platform-specific names with `platform$`,
providing a clearer picture of the core logic changes without noise from the renames.

Make sure to remove the `.gitattributes` changes after you're done to avoid affecting future diffs.
45 changes: 45 additions & 0 deletions worldedit-core-mc/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
import buildlogic.CuiProtocolCommonIsNotFabricSpecificRule
import buildlogic.addEngineHubRepository

plugins {
alias(libs.plugins.fabric.loom)
`java-library`
id("buildlogic.core-and-platform")
id("buildlogic.expose-resources")
}

description = "The Minecraft-specific implementation of WorldEdit's core module." +
" This code is shared by all platforms that rely on access without an API."

repositories {
addEngineHubRepository()
}

dependencies {
api(project(":worldedit-core"))
api(project(":worldedit-libs:core-mc"))

minecraft(libs.fabric.minecraft)

// Provided by platforms.
compileOnly(libs.fabric.mixin)

implementation(libs.cuiProtocol.common)
components {
withModule<CuiProtocolCommonIsNotFabricSpecificRule>(libs.cuiProtocol.common.get().module)
}

// Silence some warnings, since apparently this isn't on the compile classpath like it should be.
compileOnly(libs.errorprone.annotations)
}

base {
archivesName.set("${project.name}-mc${libs.fabric.minecraft.get().version}")
}

publishing {
publications.named<MavenPublication>("maven") {
artifactId = base.archivesName.get()
from(components["java"])
}
}
Loading
Loading