diff options
| author | Freya Murphy <freya@freyacat.org> | 2026-03-28 23:09:18 -0400 |
|---|---|---|
| committer | Freya Murphy <freya@freyacat.org> | 2026-03-28 23:09:18 -0400 |
| commit | 2352b5324ae1f7a37361f067de836c3da6b1f1e5 (patch) | |
| tree | 4153b8c74f84dffc9863d29c12d253a2ca857463 /bukkit/src | |
| parent | add wiki (diff) | |
| download | kenshinshideandseek2-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.kt | 4 | ||||
| -rw-r--r-- | bukkit/src/World.kt | 4 | ||||
| -rw-r--r-- | bukkit/src/event/DamageListener.kt | 33 |
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) |