summaryrefslogtreecommitdiff
path: root/bukkit/src
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2026-03-28 23:09:18 -0400
committerFreya Murphy <freya@freyacat.org>2026-03-28 23:09:18 -0400
commit2352b5324ae1f7a37361f067de836c3da6b1f1e5 (patch)
tree4153b8c74f84dffc9863d29c12d253a2ca857463 /bukkit/src
parentadd wiki (diff)
downloadkenshinshideandseek2-2.0.0-alpha2.tar.gz
kenshinshideandseek2-2.0.0-alpha2.tar.bz2
kenshinshideandseek2-2.0.0-alpha2.zip
2.0.0-alpha2v2.0.0-alpha2
- Added command /hs map blockhunt disguise - Auto complete block names in blockhunt commands - Fixed void generating chunks in non map save worlds - Fixed onDamage having no attacker - Fixed onDamage not respawning seeker properly - Fixed config deserialize not handeling nulls - Fixed config deserialize looking at more properties then it should
Diffstat (limited to 'bukkit/src')
-rw-r--r--bukkit/src/Shim.kt4
-rw-r--r--bukkit/src/World.kt4
-rw-r--r--bukkit/src/event/DamageListener.kt33
3 files changed, 16 insertions, 25 deletions
diff --git a/bukkit/src/Shim.kt b/bukkit/src/Shim.kt
index 4e53344..0dc5a0e 100644
--- a/bukkit/src/Shim.kt
+++ b/bukkit/src/Shim.kt
@@ -16,6 +16,7 @@ import java.io.InputStream
import java.util.UUID
import kotlin.jvm.optionals.getOrNull
import org.bukkit.ChatColor
+import org.bukkit.Material
import org.bukkit.World as BukkitWorld
import org.bukkit.WorldCreator
import org.bukkit.WorldType
@@ -70,6 +71,9 @@ class BukkitKhsShim(val plugin: KhsPlugin) : KhsShim {
}
.map { it.name }
+ override val blocks: List<String>
+ get() = Material.values().map { it.toString().uppercase() }
+
override val sqliteDatabasePath: String
get() {
val legacy = File(plugin.dataFolder.path, "database.db")
diff --git a/bukkit/src/World.kt b/bukkit/src/World.kt
index afda77a..e9eb1b1 100644
--- a/bukkit/src/World.kt
+++ b/bukkit/src/World.kt
@@ -93,7 +93,9 @@ class BukkitKhsWorldLoader(val plugin: KhsPlugin, val worldName: String) : KhsWo
get() = File(plugin.server.worldContainer, "temp_hs_$name")
override fun load() {
- plugin.server.createWorld(WorldCreator(name).generator(VoidGenerator()))
+ var creator = WorldCreator(name)
+ if (worldName.startsWith("hs_")) creator = creator.generator(VoidGenerator())
+ plugin.server.createWorld(creator)
val world = plugin.server.getWorld(name)
if (world == null) {
plugin.shim.logger.error("could not load world: $name")
diff --git a/bukkit/src/event/DamageListener.kt b/bukkit/src/event/DamageListener.kt
index 81d5d12..667cfab 100644
--- a/bukkit/src/event/DamageListener.kt
+++ b/bukkit/src/event/DamageListener.kt
@@ -18,37 +18,22 @@ class DamageListener(val plugin: KhsPlugin) : Listener {
plugin.server.pluginManager.registerEvents(this, plugin)
}
- @EventHandler(priority = EventPriority.HIGHEST)
- fun onEntityDamageByEntity(event: EntityDamageByEntityEvent) {
- val bukkitPlayer = (event.entity as? BukkitPlayer) ?: return
-
- // get attacker
- val damager = event.damager
- val attackerEntity: BukkitPlayer? =
- when {
- damager is Projectile -> damager.shooter as? BukkitPlayer
- else -> damager as? BukkitPlayer
- }
-
- if (attackerEntity == null) {
- onEntityDamage(event)
- return
+ private fun getAttacker(event: EntityDamageEvent): BukkitPlayer? {
+ val damager = (event as? EntityDamageByEntityEvent)?.damager ?: return null
+ return when {
+ damager is Projectile -> damager.shooter as? BukkitPlayer
+ else -> damager as? BukkitPlayer
}
-
- val khsPlayer = BukkitKhsPlayer(plugin.shim, bukkitPlayer)
- val khsAttacker = BukkitKhsPlayer(plugin.shim, attackerEntity)
- val khsEvent = DamageEvent(plugin.khs, khsPlayer, khsAttacker, event.damage)
- onDamage(khsEvent)
-
- if (khsEvent.cancelled) event.setCancelled(true)
}
- @EventHandler(priority = EventPriority.HIGH)
+ @EventHandler(priority = EventPriority.HIGHEST)
fun onEntityDamage(event: EntityDamageEvent) {
val bukkitPlayer = (event.entity as? BukkitPlayer) ?: return
+ val attackerPlayer = getAttacker(event)
val khsPlayer = BukkitKhsPlayer(plugin.shim, bukkitPlayer)
- val khsEvent = DamageEvent(plugin.khs, khsPlayer, null, event.damage)
+ val khsAttacker = attackerPlayer?.let { BukkitKhsPlayer(plugin.shim, it) }
+ val khsEvent = DamageEvent(plugin.khs, khsPlayer, khsAttacker, event.damage)
onDamage(khsEvent)
if (khsEvent.cancelled) event.setCancelled(true)