Commit for Offline

This commit is contained in:
faiz36 2024-05-29 00:38:02 +09:00
parent a9788a7ec8
commit 8612e6a9e3
2 changed files with 37 additions and 3 deletions

View File

@ -3,6 +3,7 @@ package me.faiz.combat_f
import me.faiz.combat_f.cmd.MainCommand
import me.faiz.combat_f.data.MainData
import me.faiz.combat_f.listener.MainListener
import org.bukkit.Bukkit
import org.bukkit.plugin.java.JavaPlugin
import java.util.*
import kotlin.collections.ArrayList
@ -10,6 +11,7 @@ import kotlin.collections.HashMap
class Main : JavaPlugin() {
// Player UUID, A Pair of Attacker UUID and Current time
var clist:HashMap<UUID,Pair<UUID,Long>> = HashMap()
init {
@ -20,6 +22,14 @@ class Main : JavaPlugin() {
private val maindata by lazy { MainData(this) }
private val scheduler = this.server.scheduler.runTaskTimerAsynchronously(this,Runnable{
clist.forEach {
val wuid = Bukkit.getPlayer(it.key)!!.world.uid
if(it.value.second/1000 + maindata.getTimeWorld(wuid.toString()) <= System.currentTimeMillis()/1000){
clist.remove(it.key)
}
}
},1L,1L)
override fun onDisable() {
maindata.save()
}

View File

@ -3,6 +3,7 @@ package me.faiz.combat_f.listener
import io.papermc.paper.event.player.AsyncChatEvent
import me.faiz.combat_f.Main
import me.faiz.combat_f.data.MainData
import net.kyori.adventure.text.Component
import org.bukkit.Bukkit
import org.bukkit.entity.EntityType
import org.bukkit.event.EventHandler
@ -32,8 +33,31 @@ class MainListener(private val main: Main, private val data: MainData) : Listene
if (data.getHitOtherWorld(e.entity.world.uid.toString())){
main.clist[e.entity.uniqueId] = Pair(e.damager.uniqueId,System.currentTimeMillis())
main.clist[e.damager.uniqueId] = Pair(e.entity.uniqueId,System.currentTimeMillis())
}else if (entityD != damagerD){
//TODO: IMPLEMENTS
return
}
if (entityD!!.first == e.damager.uniqueId){
main.clist[e.entity.uniqueId] = Pair(e.damager.uniqueId,System.currentTimeMillis())
main.clist[e.damager.uniqueId] = Pair(e.entity.uniqueId,System.currentTimeMillis())
return
}else{
e.isCancelled = true
e.damager.sendMessage(Component.text("해당 플레이어는 전투중입니다."))
return
}
}else if(main.clist.contains(e.damager.uniqueId)){
if (data.getHitOtherWorld(e.entity.world.uid.toString())){
main.clist[e.entity.uniqueId] = Pair(e.damager.uniqueId,System.currentTimeMillis())
main.clist[e.damager.uniqueId] = Pair(e.entity.uniqueId,System.currentTimeMillis())
return
}
if(damagerD!!.first == e.entity.uniqueId){
main.clist[e.entity.uniqueId] = Pair(e.damager.uniqueId,System.currentTimeMillis())
main.clist[e.damager.uniqueId] = Pair(e.entity.uniqueId,System.currentTimeMillis())
return
}else{
e.isCancelled = true
e.damager.sendMessage(Component.text("이미 ${Bukkit.getPlayer(damagerD.first)!!.name}과 전투중입니다!"))
return
}
}
}