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() } }