Skip to content

Commit 5489a5d

Browse files
committed
Change relocate behavior
1 parent e904152 commit 5489a5d

File tree

78 files changed

+248
-224
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

78 files changed

+248
-224
lines changed

buildSrc/src/main/kotlin/sources-fat-jar.gradle.kts renamed to buildSrc/src/main/kotlin/relocate-sources.gradle.kts

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,17 @@ plugins {
44
id("com.gradleup.shadow")
55
}
66

7-
interface SourcesFatJarExtension {
8-
val relocates: ListProperty<String>
7+
interface RelocateSourcesExtension {
8+
val relocates: ListProperty<Relocate>
99
val postSources: Property<(String) -> String>
10+
11+
data class Relocate(
12+
val original: String,
13+
val relocated: String = original,
14+
)
1015
}
1116

12-
val extension = project.extensions.create<SourcesFatJarExtension>("sourcesFatJar")
17+
val extension = project.extensions.create<RelocateSourcesExtension>("relocateSources")
1318
extension.postSources.convention { it }
1419

1520
val sourcesFatJar = tasks.register("sourcesFatJar", Jar::class) {
@@ -24,13 +29,18 @@ val sourcesFatJar = tasks.register("sourcesFatJar", Jar::class) {
2429
.forComponents(configurations.runtimeClasspath.get().incoming.resolutionResult.allDependencies.filter {
2530
!it.from.id.displayName.startsWith("org.jetbrains.kotlin:kotlin-stdlib")
2631
}.map { it.from.id }).withArtifacts(JvmLibrary::class.java, SourcesArtifact::class.java).execute()
32+
33+
val relocates = extension.relocates.get().sortedByDescending { it.original.length }
2734
val replace = { str: String ->
2835
val destPrefix = "io.github.rothes.${rootProject.name.lowercase()}.lib."
29-
fun String.relocate(s: String) = replace(s, destPrefix + s)
3036
var res = str
31-
extension.relocates.get().forEach { res = res.relocate(it) }
37+
relocates.forEach { res = res.replace(it.original, destPrefix + it.relocated) }
3238
extension.postSources.get().invoke(res)
3339
}
40+
val rep = relocates.map { relocate ->
41+
fun String.toPath() = replace('.', '/')
42+
relocate.original.toPath() to "io/github/rothes/${rootProject.name.lowercase()}/lib/" + relocate.relocated.toPath()
43+
}
3444
for (component in result.resolvedComponents) {
3545
component.getArtifacts(SourcesArtifact::class.java).forEach {
3646
if (it is ResolvedArtifactResult) {
@@ -41,11 +51,13 @@ val sourcesFatJar = tasks.register("sourcesFatJar", Jar::class) {
4151
tmp.writeText(replace(file.readText()))
4252
from(tmp) {
4353
duplicatesStrategy = DuplicatesStrategy.WARN
44-
into(
45-
"io/github/rothes/${rootProject.name.lowercase()}/lib/" + path.substringBeforeLast(
46-
"/"
47-
)
48-
)
54+
var intoPath = path.substringBeforeLast("/")
55+
for ((from, dest) in rep) {
56+
if (intoPath.startsWith(from)) {
57+
intoPath = dest + intoPath.substring(from.length)
58+
}
59+
}
60+
into(intoPath)
4961
}
5062
}
5163
}
@@ -74,12 +86,11 @@ publishing {
7486

7587
tasks.shadowJar {
7688
doFirst { // Wait for configuration
77-
val pkg = "io.github.rothes.${rootProject.name.lowercase()}.lib"
78-
fun relocate(pattern: String) {
79-
relocate(pattern, "$pkg.$pattern")
80-
}
89+
val pkg = "io.github.rothes.${rootProject.name.lowercase()}.lib."
8190

82-
extension.relocates.get().forEach { relocate(it) }
91+
extension.relocates.get()
92+
.sortedByDescending { it.original.length }
93+
.forEach { relocate(it.original, pkg + it.relocated) }
8394

8495
mergeServiceFiles()
8596
}

bukkit/dep-bukkit/build.gradle.kts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
`sources-fat-jar`
2+
`relocate-sources`
33
}
44

55
repositories {
@@ -11,6 +11,7 @@ dependencies {
1111
implementation("net.kyori:adventure-platform-bukkit:4.4.1")
1212
}
1313

14-
sourcesFatJar {
15-
relocates.add("net.kyori")
14+
relocateSources {
15+
relocates.add(Relocate_sources_gradle.RelocateSourcesExtension.Relocate("net.kyori"))
16+
relocates.add(Relocate_sources_gradle.RelocateSourcesExtension.Relocate("net.kyori.adventure", "adventure"))
1617
}

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/EsuPluginBukkit.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ class EsuPluginBukkit(
8383
if (ServerCompatibility.hasMojmap)
8484
MappingsLoader
8585
}
86-
val relocator = PackageRelocator("net/kyori/" to "io/github/rothes/esu/lib/net/kyori/")
86+
val relocator = PackageRelocator(
87+
"net/kyori/adventure/" to "io/github/rothes/esu/lib/adventure/",
88+
"net/kyori/" to "io/github/rothes/esu/lib/net/kyori/"
89+
)
8790
MavenResolver.loadDependencies(
8891
listOf(
8992
"net.kyori:adventure-platform-bukkit:4.4.1",
@@ -96,7 +99,7 @@ class EsuPluginBukkit(
9699
)
97100
) { file, artifact ->
98101
if (artifact.groupId == "net.kyori")
99-
CachedRelocator.relocate(relocator, file)
102+
CachedRelocator.relocate(relocator, file, "2")
100103
else
101104
file
102105
}

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/Internals.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import io.github.rothes.esu.bukkit.user.PlayerUser
66
import io.github.rothes.esu.core.EsuBootstrap
77
import io.github.rothes.esu.core.EsuCore
88
import io.github.rothes.esu.core.util.ComponentUtils
9-
import io.github.rothes.esu.lib.net.kyori.adventure.audience.Audience
10-
import io.github.rothes.esu.lib.net.kyori.adventure.platform.bukkit.BukkitAudiences
11-
import io.github.rothes.esu.lib.net.kyori.adventure.text.Component
9+
import io.github.rothes.esu.lib.adventure.audience.Audience
10+
import io.github.rothes.esu.lib.adventure.platform.bukkit.BukkitAudiences
11+
import io.github.rothes.esu.lib.adventure.text.Component
1212
import org.bukkit.command.CommandSender
1313
import org.bukkit.entity.Player
1414
import java.util.*

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/config/BukkitEsuLocale.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import io.github.rothes.esu.bukkit.config.BukkitEsuLocale.BukkitLocaleData
55
import io.github.rothes.esu.core.EsuCore
66
import io.github.rothes.esu.core.configuration.ConfigLoader
77
import io.github.rothes.esu.core.configuration.MultiLocaleConfiguration
8-
import io.github.rothes.esu.lib.org.spongepowered.configurate.objectmapping.meta.PostProcess
8+
import io.github.rothes.esu.lib.configurate.objectmapping.meta.PostProcess
99
import org.incendo.cloud.bukkit.BukkitDefaultCaptionsProvider
1010
import org.incendo.cloud.caption.ConstantCaptionProvider
1111
import org.incendo.cloud.caption.DelegatingCaptionProvider

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/config/data/InventoryData.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ package io.github.rothes.esu.bukkit.config.data
22

33
import io.github.rothes.esu.core.configuration.ConfigurationPart
44
import io.github.rothes.esu.core.configuration.meta.NoDeserializeNull
5-
import io.github.rothes.esu.lib.org.spongepowered.configurate.objectmapping.meta.NodeKey
6-
import io.github.rothes.esu.lib.org.spongepowered.configurate.objectmapping.meta.Setting
5+
import io.github.rothes.esu.lib.configurate.objectmapping.meta.NodeKey
6+
import io.github.rothes.esu.lib.configurate.objectmapping.meta.Setting
77
import org.bukkit.Material
88
import org.bukkit.event.inventory.InventoryType
99

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/config/data/ItemData.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ import io.github.rothes.esu.core.configuration.meta.NoDeserializeNull
1313
import io.github.rothes.esu.core.user.User
1414
import io.github.rothes.esu.core.util.ComponentUtils
1515
import io.github.rothes.esu.core.util.ComponentUtils.nonItalic
16-
import io.github.rothes.esu.lib.net.kyori.adventure.text.Component
17-
import io.github.rothes.esu.lib.net.kyori.adventure.text.minimessage.MiniMessage
18-
import io.github.rothes.esu.lib.net.kyori.adventure.text.minimessage.tag.resolver.TagResolver
16+
import io.github.rothes.esu.lib.adventure.text.Component
17+
import io.github.rothes.esu.lib.adventure.text.minimessage.MiniMessage
18+
import io.github.rothes.esu.lib.adventure.text.minimessage.tag.resolver.TagResolver
1919
import io.lumine.mythic.bukkit.BukkitAdapter
2020
import io.lumine.mythic.bukkit.MythicBukkit
2121
import io.lumine.mythic.core.drops.DropMetadataImpl

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/config/serializer/AttributeSerializer.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package io.github.rothes.esu.bukkit.config.serializer
22

33
import io.github.rothes.esu.bukkit.util.version.adapter.AttributeAdapter
44
import io.github.rothes.esu.bukkit.util.version.adapter.AttributeAdapter.Companion.key_
5-
import io.github.rothes.esu.lib.org.spongepowered.configurate.serialize.ScalarSerializer
5+
import io.github.rothes.esu.lib.configurate.serialize.ScalarSerializer
66
import org.bukkit.attribute.Attribute
77
import java.lang.reflect.Type
88
import java.util.function.Predicate

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/event/UserChatEvent.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import io.github.rothes.esu.bukkit.util.extension.ListenerExt.register
77
import io.github.rothes.esu.core.util.AdventureConverter.esu
88
import io.github.rothes.esu.core.util.AdventureConverter.server
99
import io.github.rothes.esu.core.util.ComponentUtils.legacy
10-
import io.github.rothes.esu.lib.net.kyori.adventure.text.Component
10+
import io.github.rothes.esu.lib.adventure.text.Component
1111
import org.bukkit.Bukkit
1212
import org.bukkit.entity.Player
1313
import org.bukkit.event.*

bukkit/src/main/kotlin/io/github/rothes/esu/bukkit/inventory/EsuInvHolder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import io.github.rothes.esu.bukkit.util.scheduler.Scheduler
77
import io.github.rothes.esu.core.util.AdventureConverter.server
88
import io.github.rothes.esu.core.util.ComponentUtils.miniMessage
99
import io.github.rothes.esu.core.util.VarLazy
10-
import io.github.rothes.esu.lib.net.kyori.adventure.text.Component
10+
import io.github.rothes.esu.lib.adventure.text.Component
1111
import org.bukkit.Bukkit
1212
import org.bukkit.entity.HumanEntity
1313
import org.bukkit.event.inventory.InventoryAction

0 commit comments

Comments
 (0)