From e3393fdc4ce6a308d7c82389064d2bcee7e29124 Mon Sep 17 00:00:00 2001 From: user Date: Fri, 31 Mar 2023 15:10:37 +0900 Subject: [PATCH] . --- build.gradle.kts | 6 ++++-- src/main/kotlin/group/pvpconnect/combat_f/Main.kt | 10 +++++----- .../group/pvpconnect/combat_f/cmd/CombatCmd.kt | 6 +++--- .../group/pvpconnect/combat_f/data/CombatData.kt | 13 +++++++++++++ .../group/pvpconnect/combat_f/event/CombatEvent.kt | 8 +++----- 5 files changed, 28 insertions(+), 15 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 90be113..a6d9ddc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ plugins { kotlin("jvm") version "1.8.0" - id("io.papermc.paperweight.userdev") version "1.5.3" +// id("io.papermc.paperweight.userdev") version "1.5.3" } group = "group.pvpconnect" @@ -8,6 +8,7 @@ version = "1.0-SNAPSHOT" repositories { mavenCentral() + maven("https://repo.papermc.io/repository/maven-public/") } java { @@ -16,7 +17,8 @@ java { dependencies { testImplementation(kotlin("test")) - paperweight.paperDevBundle("1.19.2-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.19.2-R0.1-SNAPSHOT") +// paperweight.paperDevBundle("1.19.2-R0.1-SNAPSHOT") implementation("io.github.monun:kommand-api:3.1.3") } diff --git a/src/main/kotlin/group/pvpconnect/combat_f/Main.kt b/src/main/kotlin/group/pvpconnect/combat_f/Main.kt index 26852c5..0ccdfc4 100644 --- a/src/main/kotlin/group/pvpconnect/combat_f/Main.kt +++ b/src/main/kotlin/group/pvpconnect/combat_f/Main.kt @@ -3,20 +3,21 @@ package group.pvpconnect.combat_f import group.pvpconnect.combat_f.cmd.CombatCmd import group.pvpconnect.combat_f.data.CombatData import group.pvpconnect.combat_f.event.CombatEvent +import net.kyori.adventure.text.Component import org.bukkit.Bukkit import org.bukkit.ChatColor import org.bukkit.plugin.java.JavaPlugin import org.bukkit.scheduler.BukkitTask -import java.util.UUID +import java.util.* @Suppress("unused") class Main:JavaPlugin() { // 첫번째 전투 여부, 두번째 전투자 UUID, 남은 시간? var list:HashMap> = HashMap() - lateinit var schedule:BukkitTask + private lateinit var schedule:BukkitTask lateinit var instance: Main - val combatData by lazy { CombatData(this) } + private val combatData by lazy { CombatData(this) } override fun onLoad() { instance = this @@ -38,8 +39,7 @@ class Main:JavaPlugin() { Bukkit.getOnlinePlayers().forEach{ if(list[it.uniqueId] == null) return@forEach if(!list[it.uniqueId]!!.first) return@forEach - - it.sendActionBar("${ChatColor.WHITE}${Bukkit.getPlayer(list[it.uniqueId]!!.second!!)!!.name}${ChatColor.RED}님과 전투중입니다! ${ChatColor.WHITE}${list[it.uniqueId]!!.third!! /1000 + combatData.instance.getTime() - System.currentTimeMillis()/1000}${ChatColor.RED}초 뒤 전투모드가 끝납니다!") + it.sendActionBar(Component.text("${ChatColor.WHITE}${Bukkit.getPlayer(list[it.uniqueId]!!.second!!)!!.name}${ChatColor.RED}님과 전투중입니다! ${ChatColor.WHITE}${list[it.uniqueId]!!.third!! /1000 + combatData.instance.getTime() - System.currentTimeMillis()/1000}${ChatColor.RED}초 뒤 전투모드가 끝납니다!")) } },1L,1L) } diff --git a/src/main/kotlin/group/pvpconnect/combat_f/cmd/CombatCmd.kt b/src/main/kotlin/group/pvpconnect/combat_f/cmd/CombatCmd.kt index c542bbb..34f09bb 100644 --- a/src/main/kotlin/group/pvpconnect/combat_f/cmd/CombatCmd.kt +++ b/src/main/kotlin/group/pvpconnect/combat_f/cmd/CombatCmd.kt @@ -19,7 +19,7 @@ class CombatCmd(plugin:Plugin, val cd:CombatData) { val world: World by it val bool = cd.instance.getUseWorld(world.name) cd.instance.setUseWorld(world.name,!bool) - sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}${world.name}의 컴뱃 모드 사용이 ${if(bool)"활성화 되었습니다!" else "비활성화 되었습니다!"}") + sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}${world.name}의 컴뱃 모드 사용이 ${if(!bool)"활성화 되었습니다!" else "비활성화 되었습니다!"}") } } } @@ -29,7 +29,7 @@ class CombatCmd(plugin:Plugin, val cd:CombatData) { val world:World by it val bool = cd.instance.getCanSeeWorld(world.name) cd.instance.setCanSeeWorld(world.name,!bool) - sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}${world.name}의 컴뱃중 다른 사람 볼수있음이 ${if(bool)"활성화 되었습니다!" else "비활성화 되었습니다!"}") + sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}${world.name}의 컴뱃중 다른 사람 볼수있음이 ${if(!bool)"활성화 되었습니다!" else "비활성화 되었습니다!"}") } } } @@ -40,7 +40,7 @@ class CombatCmd(plugin:Plugin, val cd:CombatData) { val otime = cd.instance.getTime() val ctime = int cd.instance.setTime(ctime) - sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}컴뱃타임이 ${otime}에서 ${ctime}으로 변경되었습니다!") + sender.sendMessage("${ChatColor.BOLD}${ChatColor.GOLD}[${ChatColor.GREEN}✓${ChatColor.GOLD}] ${ChatColor.WHITE}컴뱃타임이 ${otime}초에서 ${ctime}초으로 변경되었습니다!") } } } diff --git a/src/main/kotlin/group/pvpconnect/combat_f/data/CombatData.kt b/src/main/kotlin/group/pvpconnect/combat_f/data/CombatData.kt index 9e81813..4326db0 100644 --- a/src/main/kotlin/group/pvpconnect/combat_f/data/CombatData.kt +++ b/src/main/kotlin/group/pvpconnect/combat_f/data/CombatData.kt @@ -11,10 +11,19 @@ class CombatData(val plugin:Plugin) { private val file get() = File(plugin.dataFolder, "data.yml") private val yaml = YamlConfiguration.loadConfiguration(file) + /** Return use that World CombatSystem. + * @return return use that World CombatSystem. + * @param world get world name + */ fun getUseWorld(world:String):Boolean{ return yaml.getBoolean("${world}.use") } + /** + * Set use CombatSystem that World. + * @param world world name + * @param use use Boolean + */ fun setUseWorld(world:String,use:Boolean){ yaml.set("${world}.use",use) } @@ -35,4 +44,8 @@ class CombatData(val plugin:Plugin) { return yaml.getInt("time") } + fun save(){ + yaml.save(file) + } + } \ No newline at end of file diff --git a/src/main/kotlin/group/pvpconnect/combat_f/event/CombatEvent.kt b/src/main/kotlin/group/pvpconnect/combat_f/event/CombatEvent.kt index 2aa08c0..b557de5 100644 --- a/src/main/kotlin/group/pvpconnect/combat_f/event/CombatEvent.kt +++ b/src/main/kotlin/group/pvpconnect/combat_f/event/CombatEvent.kt @@ -2,18 +2,15 @@ package group.pvpconnect.combat_f.event import group.pvpconnect.combat_f.Main import group.pvpconnect.combat_f.data.CombatData -import net.kyori.adventure.text.Component import org.bukkit.Bukkit import org.bukkit.entity.EntityType -import org.bukkit.entity.Player import org.bukkit.event.EventHandler -import org.bukkit.event.EventPriority import org.bukkit.event.Listener import org.bukkit.event.entity.EntityDamageByEntityEvent import org.bukkit.event.entity.PlayerDeathEvent -import org.bukkit.event.player.PlayerCommandPreprocessEvent import org.bukkit.event.player.PlayerQuitEvent +@Suppress("unused") class CombatEvent(private val plugin:Main, private val combatData: CombatData):Listener { init { @@ -22,15 +19,16 @@ class CombatEvent(private val plugin:Main, private val combatData: CombatData):L @EventHandler fun onDamage(e:EntityDamageByEntityEvent){ + if(!combatData.instance.getUseWorld(e.entity.world.name)) return if(e.entityType != EntityType.PLAYER) return if(e.damager.type != EntityType.PLAYER) return - val list = plugin.instance.list[e.entity.uniqueId] plugin.instance.list[e.entity.uniqueId] = Triple(true,e.damager.uniqueId,System.currentTimeMillis()) plugin.instance.list[e.damager.uniqueId] = Triple(true,e.entity.uniqueId,System.currentTimeMillis()) } @EventHandler fun onOtherDamage(e:EntityDamageByEntityEvent){ + if(!combatData.instance.getUseWorld(e.entity.world.name)) return if(e.entityType != EntityType.PLAYER) return if(e.damager.type != EntityType.PLAYER) return val list = plugin.instance.list[e.entity.uniqueId] ?: return