mirror of
https://github.com/barkeser2002/BarisKeserTools-MC.git
synced 2026-09-25 05:59:58 +03:00
Cross-version uyumluluk (1.8.8 - 1.21+ Paper/Spigot/Purpur/Folia): - VersionAdapter: surum/marka tespiti, reflection tabanli PDC, NamespacedKey, partikul, ses, dunya yuksekligi (getMinHeight) ve hedef blok yardimcilari - Msg: Adventure Component -> legacy String donusumu; 1.8+ uyumlu mesaj, action bar ve title gonderimi (Paper/Spigot/eski API fallback zinciri) - BossBarCompat: 1.9+ BossBar reflection sarmalayicisi, 1.8'de no-op - Bytecode hedefi Java 8 (release=8); Paper API 1.16.5 (Java 8 uyumlu) - Adventure kutuphanesi fatJar ile gomuldu (eski sunucularda yok) - plugin.yml api-version kaldirildi; softdepend eklendi Lav gorselleri & bug fixleri: - Yukselen lav icin partikul/ses efektleri (spawnLavaRiseEffect) - Kademeli yakinlik uyarilari, dramatik lav baslangici - ignoreCancelled + eliminatedPlayers ile cift olum hatasi giderildi - Surum guvenli materyal/yukseklik (getMaxHeight, REPLACEABLE_BY_LAVA) - TNTPrimeEvent kaldirildi (yeni API); BlockIgniteEvent ile cakmak destegi CI/CD (.github/workflows/release.yml): - build -> matrix sunucu testleri (Paper 1.16.5-1.21.8 + Spigot 1.8.8/1.12.2) - Tum testler gecince GitHub Release + Modrinth yayini - Bytecode Java 8 dogrulamasi
61 lines
2.0 KiB
Kotlin
61 lines
2.0 KiB
Kotlin
plugins {
|
||
id("java")
|
||
}
|
||
|
||
group = "tr.com"
|
||
version = "1.3.8"
|
||
|
||
repositories {
|
||
mavenCentral()
|
||
maven("https://repo.papermc.io/repository/maven-public/")
|
||
}
|
||
|
||
dependencies {
|
||
// Paper API 1.16.5 (compile-time) — Java 8 uyumlu son Paper API sürümü.
|
||
// Modern (1.17+) API'lere kod zaten reflection ile eriştiğinden, bu sürüm
|
||
// doğrudan çağrılan tüm sembolleri (Component, TNTPrimeEvent, Damageable…) karşılar
|
||
// ve üretilen JAR'ın 1.8.8 (Java 8) sunucularda da yüklenmesini sağlar.
|
||
compileOnly("com.destroystokyo.paper:paper-api:1.16.5-R0.1-SNAPSHOT")
|
||
|
||
// Adventure kütüphanesi: 1.12.2-1.15 Paper/Spigot sunucularda bundled gelmez.
|
||
// Bu bağımlılıklar fatJar göreviyle JAR'a gömülür; Paper 1.16+ sunucularda
|
||
// plugin classloader önceliği sayesinde Paper'ın kendi Adventure'ı kullanılır.
|
||
implementation("net.kyori:adventure-api:4.14.0")
|
||
implementation("net.kyori:adventure-text-serializer-legacy:4.14.0")
|
||
implementation("net.kyori:adventure-text-serializer-gson:4.14.0")
|
||
}
|
||
|
||
java {
|
||
// Derleyici JDK 17, ancak bytecode hedefi Java 8'dir.
|
||
// Böylece üretilen JAR, 1.8.8 (Java 8) sunucularından 1.21+ (Java 21)
|
||
// sunucularına kadar her yerde yüklenebilir.
|
||
toolchain.languageVersion.set(JavaLanguageVersion.of(17))
|
||
}
|
||
|
||
tasks.withType<JavaCompile> {
|
||
options.release.set(8)
|
||
options.encoding = "UTF-8"
|
||
}
|
||
|
||
// Tüm bağımlılıkları içeren tek JAR üret (fat/uber jar)
|
||
tasks.register<Jar>("fatJar") {
|
||
archiveClassifier.set("")
|
||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||
manifest.from(tasks.jar.get().manifest)
|
||
|
||
from(sourceSets.main.get().output)
|
||
// implementation kapsamındaki bağımlılıkları (Adventure) ekle
|
||
from({
|
||
configurations.runtimeClasspath.get()
|
||
.filter { it.name.endsWith(".jar") }
|
||
.map { zipTree(it) }
|
||
})
|
||
|
||
// META-INF imzalarını çıkar (çakışma önlemi)
|
||
exclude("META-INF/*.SF", "META-INF/*.DSA", "META-INF/*.RSA")
|
||
}
|
||
|
||
tasks.build {
|
||
dependsOn(tasks["fatJar"])
|
||
}
|