TerraOceanPlugin/KotlinPlugin/src/main/kotlin/com/terraocean/plugin/afk/AFKRecorder.kt

34 lines
1.0 KiB
Kotlin

package com.terraocean.plugin.afk
import com.terraocean.plugin.bridge.reportPlayerActivity
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerMoveEvent
//activityRequirement is the time it takes for a player to be considered inactive.
const val activityRequirement = 1000 * 30
var lastMovement = HashMap<String, Long>()
var lastRecord = HashMap<String, Long>()
class AFKRecorder: Listener {
@EventHandler
fun onPlayerMovement(e: PlayerMoveEvent) {
val playerID = e.player.uniqueId.toString()
val time = System.currentTimeMillis()
lastMovement[playerID]?.let{ lastActive ->
if (time <= lastActive + activityRequirement) {
return@let
}
reportPlayerActivity(e.player.name, lastActive-lastRecord[playerID]!!)
lastRecord[playerID] = time
}
if (lastRecord[playerID] == null) {
lastRecord[playerID] = time
}
lastMovement[playerID] = time
}
}