diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 16f780f..d24e762 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -20,7 +20,7 @@ jobs: distribution: 'zulu' cache: gradle - name: "Build with Gradle" - run: ./gradlew shadowJar + run: ./gradlew buildPlugin - name: "Copy jar to staging" run: mkdir staging && cp build/libs/*.jar staging/ - name: "Build & test" diff --git a/build.gradle.kts b/build.gradle.kts index 7c4b0ab..f0cfc19 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,7 +4,7 @@ plugins { } group = "cn.lunadeer" -version = "1.44.4-beta" +version = "1.44.6-beta" java { toolchain.languageVersion.set(JavaLanguageVersion.of(21)) @@ -15,7 +15,7 @@ tasks.withType { options.encoding = "UTF-8" } -subprojects { +allprojects { apply(plugin = "java") apply(plugin = "com.github.johnrengelman.shadow") @@ -37,19 +37,34 @@ subprojects { implementation("org.yaml:snakeyaml:2.0") } - - tasks.withType { + tasks.processResources { // replace @version@ in plugin.yml with project version filesMatching("**/plugin.yml") { filter { - it.replace("@version@", project.version.toString()) + it.replace("@version@", rootProject.version.toString()) } } } - tasks.withType { + tasks.shadowJar { archiveClassifier.set("") archiveVersion.set(project.version.toString()) dependsOn(tasks.withType()) } +} + +dependencies { + implementation(project(":core")) + implementation(project(":v1_20_1")) + implementation(project(":v1_21")) +} + +tasks.shadowJar { + archiveClassifier.set("") + archiveVersion.set(project.version.toString()) +} + +tasks.register("buildPlugin") { + dependsOn(tasks.getByName("clean")) + dependsOn(tasks.getByName("shadowJar")) } \ No newline at end of file diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 26e4a71..0f4ac39 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -11,16 +11,6 @@ tasks.withType { options.encoding = "UTF-8" } -repositories { - mavenCentral() - mavenLocal() - maven("https://oss.sonatype.org/content/groups/public") - maven("https://repo.papermc.io/repository/maven-public/") - maven("https://jitpack.io") - maven("https://repo.mikeprimm.com/") - maven("https://ssl.lunadeer.cn:14454/repository/maven-snapshots/") -} - dependencies { compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") } diff --git a/core/src/main/java/cn/lunadeer/dominion/events/RegisterEvents.java b/core/src/main/java/cn/lunadeer/dominion/events/RegisterEvents.java index 66f90ef..5a251de 100644 --- a/core/src/main/java/cn/lunadeer/dominion/events/RegisterEvents.java +++ b/core/src/main/java/cn/lunadeer/dominion/events/RegisterEvents.java @@ -18,11 +18,13 @@ public class RegisterEvents { try { switch (version) { case v1_21: + XLogger.debug("Load API version: 1.21"); registerEvents("cn.lunadeer.dominion.events_v1_21.PlayerEvents"); registerEvents("cn.lunadeer.dominion.events_v1_21.EnvironmentEvents"); registerEvents("cn.lunadeer.dominion.events_v1_21.SelectPointEvents"); break; case v1_20_1: + XLogger.debug("Load API version: 1.20.1"); registerEvents("cn.lunadeer.dominion.events_v1_20_1.PlayerEvents"); registerEvents("cn.lunadeer.dominion.events_v1_20_1.EnvironmentEvents"); registerEvents("cn.lunadeer.dominion.events_v1_20_1.SelectPointEvents"); diff --git a/v1_20_1/build.gradle.kts b/v1_20_1/build.gradle.kts index 8d4eee1..7e0454c 100644 --- a/v1_20_1/build.gradle.kts +++ b/v1_20_1/build.gradle.kts @@ -11,10 +11,6 @@ tasks.withType { options.encoding = "UTF-8" } -repositories { - maven("https://repo.papermc.io/repository/maven-public/") -} - dependencies { compileOnly(project(":core")) compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") diff --git a/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/EnvironmentEvents.java b/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/EnvironmentEvents.java index dcb7114..d95e18f 100644 --- a/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/EnvironmentEvents.java +++ b/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/EnvironmentEvents.java @@ -162,10 +162,11 @@ public class EnvironmentEvents implements Listener { @EventHandler(priority = EventPriority.HIGHEST) // tnt_explode - armor stand public void onArmorStandExplodedByTnt(EntityDamageByEntityEvent event) { Entity entity = event.getEntity(); + Entity harmer = event.getDamager(); if (entity.getType() != EntityType.ARMOR_STAND) { return; } - if (entity.getType() != EntityType.MINECART_TNT && entity.getType() != EntityType.PRIMED_TNT) { + if (harmer.getType() != EntityType.MINECART_TNT && harmer.getType() != EntityType.PRIMED_TNT) { return; } DominionDTO dom = Cache.instance.getDominionByLoc(entity.getLocation()); diff --git a/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/PlayerEvents.java b/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/PlayerEvents.java index 6d7bcad..ed0773d 100644 --- a/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/PlayerEvents.java +++ b/v1_20_1/src/main/java/cn/lunadeer/dominion/events_v1_20_1/PlayerEvents.java @@ -359,7 +359,7 @@ public class PlayerEvents implements Listener { if (block == null) { return; } - if (!Tag.DOORS.isTagged(block.getType())) { + if (!Tag.DOORS.isTagged(block.getType()) && !Tag.TRAPDOORS.isTagged(block.getType())) { return; } Player player = event.getPlayer(); diff --git a/v1_21/build.gradle.kts b/v1_21/build.gradle.kts index 7e9f05b..7a133f2 100644 --- a/v1_21/build.gradle.kts +++ b/v1_21/build.gradle.kts @@ -11,10 +11,6 @@ tasks.withType { options.encoding = "UTF-8" } -repositories { - maven("https://repo.papermc.io/repository/maven-public/") -} - dependencies { compileOnly(project(":core")) compileOnly("io.papermc.paper:paper-api:1.21-R0.1-SNAPSHOT") diff --git a/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/EnvironmentEvents.java b/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/EnvironmentEvents.java index a0761fd..0878e15 100644 --- a/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/EnvironmentEvents.java +++ b/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/EnvironmentEvents.java @@ -162,10 +162,11 @@ public class EnvironmentEvents implements Listener { @EventHandler(priority = EventPriority.HIGHEST) // tnt_explode - armor stand public void onArmorStandExplodedByTnt(EntityDamageByEntityEvent event) { Entity entity = event.getEntity(); + Entity harmer = event.getDamager(); if (entity.getType() != EntityType.ARMOR_STAND) { return; } - if (entity.getType() != EntityType.TNT_MINECART && entity.getType() != EntityType.TNT) { + if (harmer.getType() != EntityType.TNT_MINECART && harmer.getType() != EntityType.TNT) { return; } DominionDTO dom = Cache.instance.getDominionByLoc(entity.getLocation()); diff --git a/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/PlayerEvents.java b/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/PlayerEvents.java index 0bc6bae..def9b37 100644 --- a/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/PlayerEvents.java +++ b/v1_21/src/main/java/cn/lunadeer/dominion/events_v1_21/PlayerEvents.java @@ -52,8 +52,8 @@ public class PlayerEvents implements Listener { } DominionDTO dom = Cache.instance.getPlayerCurrentDominion(bukkitPlayer); if (!checkFlag(dom, Flag.ANCHOR, bukkitPlayer, null)) { - if (bukkitPlayer.getBedSpawnLocation() != null) { - event.setRespawnLocation(bukkitPlayer.getBedSpawnLocation()); + if (bukkitPlayer.getRespawnLocation() != null) { + event.setRespawnLocation(bukkitPlayer.getRespawnLocation()); } else { event.setRespawnLocation(bukkitPlayer.getWorld().getSpawnLocation()); } @@ -355,7 +355,7 @@ public class PlayerEvents implements Listener { if (block == null) { return; } - if (!Tag.DOORS.isTagged(block.getType())) { + if (!Tag.DOORS.isTagged(block.getType()) && !Tag.TRAPDOORS.isTagged(block.getType())) { return; } Player player = event.getPlayer(); @@ -617,7 +617,7 @@ public class PlayerEvents implements Listener { Teleport.doTeleportSafely(player, to).thenAccept((success) -> { if (!success) { Notification.warn(player, "传送失败,你将被传送到复活点"); - Location bed = player.getBedSpawnLocation(); + Location bed = player.getRespawnLocation(); if (bed == null) { bed = player.getWorld().getSpawnLocation(); }