34 lines
945 B
Kotlin
34 lines
945 B
Kotlin
package cc.maxmc.servux.util
|
|
|
|
import org.bukkit.World
|
|
import org.bukkit.entity.Player
|
|
import org.bukkit.util.BlockVector
|
|
import org.bukkit.util.Vector
|
|
import kotlin.math.abs
|
|
|
|
class PlayerDimensionPosition(player: Player) {
|
|
lateinit var world: World
|
|
lateinit var pos: BlockVector
|
|
|
|
init {
|
|
setPosition(player)
|
|
}
|
|
|
|
fun dimensionChanged(player: Player): Boolean {
|
|
return world != player.world
|
|
}
|
|
|
|
fun needsUpdate(player: Player, distanceThreshold: Int): Boolean {
|
|
if (player.world != world) {
|
|
return true
|
|
}
|
|
val pos: Vector = player.location.toVector().toBlockVector()
|
|
return abs(pos.x - this.pos.x) > distanceThreshold || abs(pos.y - this.pos.y) > distanceThreshold || abs(
|
|
pos.z - this.pos.z) > distanceThreshold
|
|
}
|
|
|
|
fun setPosition(player: Player) {
|
|
world = player.world
|
|
pos = player.location.toVector().toBlockVector()
|
|
}
|
|
} |