Merge remote-tracking branch 'origin/master' into feature/floodgate-merge

# Conflicts:
#	core/src/main/java/org/geysermc/geyser/session/GeyserSession.java
This commit is contained in:
Tim203 2024-03-18 16:38:52 +01:00
commit 120b367a41
No known key found for this signature in database
48 changed files with 12785 additions and 232 deletions

View file

@ -24,11 +24,17 @@
*/
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import org.gradle.api.DefaultTask
import org.gradle.api.Project
import org.gradle.api.artifacts.MinimalExternalModuleDependency
import org.gradle.api.artifacts.ProjectDependency
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.options.Option
import org.gradle.api.tasks.TaskAction
import org.gradle.kotlin.dsl.named
import java.io.File
import java.net.URL
fun Project.relocate(pattern: String) {
tasks.named<ShadowJar>("shadowJar") {
@ -69,5 +75,45 @@ fun Project.provided(dependency: MinimalExternalModuleDependency) =
fun Project.provided(provider: Provider<MinimalExternalModuleDependency>) =
provided(provider.get())
open class DownloadFilesTask : DefaultTask() {
@Input
var urls: List<String> = listOf()
@Input
var destinationDir: String = ""
@Option(option="suffix", description="suffix")
@Input
var suffix: String = ""
@Input
var suffixedFiles: List<String> = listOf()
@TaskAction
fun downloadAndAddSuffix() {
urls.forEach { fileUrl ->
val fileName = fileUrl.substringAfterLast("/")
val baseName = fileName.substringBeforeLast(".")
val extension = fileName.substringAfterLast(".", "")
val shouldSuffix = fileName in suffixedFiles
val suffixedFileName = if (shouldSuffix && extension.isNotEmpty()) "$baseName.$suffix.$extension" else fileName
val outputFile = File(destinationDir, suffixedFileName)
if (!outputFile.parentFile.exists()) {
outputFile.parentFile.mkdirs()
}
URL(fileUrl).openStream().use { input ->
outputFile.outputStream().use { output ->
input.copyTo(output)
}
}
println("Downloaded: $suffixedFileName")
}
}
}
private fun calcExclusion(section: String, bit: Int, excludedOn: Int): String =
if (excludedOn and bit > 0) section else ""
if (excludedOn and bit > 0) section else ""