Files
BarisKeserTools-MC/build.gradle.kts
T
Barış Keser 65440f8d2a feat: 1.8.8-1.21.x tam surum uyumlulugu + Purpur destegi + CI/CD test pipeline
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
2026-06-06 18:36:56 +03:00

61 lines
2.0 KiB
Kotlin
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"])
}