.
This commit is contained in:
parent
28799cadeb
commit
e3393fdc4c
@ -1,6 +1,6 @@
|
|||||||
plugins {
|
plugins {
|
||||||
kotlin("jvm") version "1.8.0"
|
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"
|
group = "group.pvpconnect"
|
||||||
@ -8,6 +8,7 @@ version = "1.0-SNAPSHOT"
|
|||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
maven("https://repo.papermc.io/repository/maven-public/")
|
||||||
}
|
}
|
||||||
|
|
||||||
java {
|
java {
|
||||||
@ -16,7 +17,8 @@ java {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
testImplementation(kotlin("test"))
|
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")
|
implementation("io.github.monun:kommand-api:3.1.3")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,20 +3,21 @@ package group.pvpconnect.combat_f
|
|||||||
import group.pvpconnect.combat_f.cmd.CombatCmd
|
import group.pvpconnect.combat_f.cmd.CombatCmd
|
||||||
import group.pvpconnect.combat_f.data.CombatData
|
import group.pvpconnect.combat_f.data.CombatData
|
||||||
import group.pvpconnect.combat_f.event.CombatEvent
|
import group.pvpconnect.combat_f.event.CombatEvent
|
||||||
|
import net.kyori.adventure.text.Component
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.ChatColor
|
import org.bukkit.ChatColor
|
||||||
import org.bukkit.plugin.java.JavaPlugin
|
import org.bukkit.plugin.java.JavaPlugin
|
||||||
import org.bukkit.scheduler.BukkitTask
|
import org.bukkit.scheduler.BukkitTask
|
||||||
import java.util.UUID
|
import java.util.*
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
class Main:JavaPlugin() {
|
class Main:JavaPlugin() {
|
||||||
// 첫번째 전투 여부, 두번째 전투자 UUID, 남은 시간?
|
// 첫번째 전투 여부, 두번째 전투자 UUID, 남은 시간?
|
||||||
var list:HashMap<UUID,Triple<Boolean,UUID?,Long?>> = HashMap()
|
var list:HashMap<UUID,Triple<Boolean,UUID?,Long?>> = HashMap()
|
||||||
lateinit var schedule:BukkitTask
|
private lateinit var schedule:BukkitTask
|
||||||
lateinit var instance: Main
|
lateinit var instance: Main
|
||||||
|
|
||||||
val combatData by lazy { CombatData(this) }
|
private val combatData by lazy { CombatData(this) }
|
||||||
|
|
||||||
override fun onLoad() {
|
override fun onLoad() {
|
||||||
instance = this
|
instance = this
|
||||||
@ -38,8 +39,7 @@ class Main:JavaPlugin() {
|
|||||||
Bukkit.getOnlinePlayers().forEach{
|
Bukkit.getOnlinePlayers().forEach{
|
||||||
if(list[it.uniqueId] == null) return@forEach
|
if(list[it.uniqueId] == null) return@forEach
|
||||||
if(!list[it.uniqueId]!!.first) return@forEach
|
if(!list[it.uniqueId]!!.first) return@forEach
|
||||||
|
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}초 뒤 전투모드가 끝납니다!"))
|
||||||
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}초 뒤 전투모드가 끝납니다!")
|
|
||||||
}
|
}
|
||||||
},1L,1L)
|
},1L,1L)
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@ class CombatCmd(plugin:Plugin, val cd:CombatData) {
|
|||||||
val world: World by it
|
val world: World by it
|
||||||
val bool = cd.instance.getUseWorld(world.name)
|
val bool = cd.instance.getUseWorld(world.name)
|
||||||
cd.instance.setUseWorld(world.name,!bool)
|
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 world:World by it
|
||||||
val bool = cd.instance.getCanSeeWorld(world.name)
|
val bool = cd.instance.getCanSeeWorld(world.name)
|
||||||
cd.instance.setCanSeeWorld(world.name,!bool)
|
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 otime = cd.instance.getTime()
|
||||||
val ctime = int
|
val ctime = int
|
||||||
cd.instance.setTime(ctime)
|
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}초으로 변경되었습니다!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,10 +11,19 @@ class CombatData(val plugin:Plugin) {
|
|||||||
private val file get() = File(plugin.dataFolder, "data.yml")
|
private val file get() = File(plugin.dataFolder, "data.yml")
|
||||||
private val yaml = YamlConfiguration.loadConfiguration(file)
|
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{
|
fun getUseWorld(world:String):Boolean{
|
||||||
return yaml.getBoolean("${world}.use")
|
return yaml.getBoolean("${world}.use")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set use CombatSystem that World.
|
||||||
|
* @param world world name
|
||||||
|
* @param use use Boolean
|
||||||
|
*/
|
||||||
fun setUseWorld(world:String,use:Boolean){
|
fun setUseWorld(world:String,use:Boolean){
|
||||||
yaml.set("${world}.use",use)
|
yaml.set("${world}.use",use)
|
||||||
}
|
}
|
||||||
@ -35,4 +44,8 @@ class CombatData(val plugin:Plugin) {
|
|||||||
return yaml.getInt("time")
|
return yaml.getInt("time")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun save(){
|
||||||
|
yaml.save(file)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -2,18 +2,15 @@ package group.pvpconnect.combat_f.event
|
|||||||
|
|
||||||
import group.pvpconnect.combat_f.Main
|
import group.pvpconnect.combat_f.Main
|
||||||
import group.pvpconnect.combat_f.data.CombatData
|
import group.pvpconnect.combat_f.data.CombatData
|
||||||
import net.kyori.adventure.text.Component
|
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import org.bukkit.entity.EntityType
|
import org.bukkit.entity.EntityType
|
||||||
import org.bukkit.entity.Player
|
|
||||||
import org.bukkit.event.EventHandler
|
import org.bukkit.event.EventHandler
|
||||||
import org.bukkit.event.EventPriority
|
|
||||||
import org.bukkit.event.Listener
|
import org.bukkit.event.Listener
|
||||||
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
import org.bukkit.event.entity.EntityDamageByEntityEvent
|
||||||
import org.bukkit.event.entity.PlayerDeathEvent
|
import org.bukkit.event.entity.PlayerDeathEvent
|
||||||
import org.bukkit.event.player.PlayerCommandPreprocessEvent
|
|
||||||
import org.bukkit.event.player.PlayerQuitEvent
|
import org.bukkit.event.player.PlayerQuitEvent
|
||||||
|
|
||||||
|
@Suppress("unused")
|
||||||
class CombatEvent(private val plugin:Main, private val combatData: CombatData):Listener {
|
class CombatEvent(private val plugin:Main, private val combatData: CombatData):Listener {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -22,15 +19,16 @@ class CombatEvent(private val plugin:Main, private val combatData: CombatData):L
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onDamage(e:EntityDamageByEntityEvent){
|
fun onDamage(e:EntityDamageByEntityEvent){
|
||||||
|
if(!combatData.instance.getUseWorld(e.entity.world.name)) return
|
||||||
if(e.entityType != EntityType.PLAYER) return
|
if(e.entityType != EntityType.PLAYER) return
|
||||||
if(e.damager.type != 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.entity.uniqueId] = Triple(true,e.damager.uniqueId,System.currentTimeMillis())
|
||||||
plugin.instance.list[e.damager.uniqueId] = Triple(true,e.entity.uniqueId,System.currentTimeMillis())
|
plugin.instance.list[e.damager.uniqueId] = Triple(true,e.entity.uniqueId,System.currentTimeMillis())
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
fun onOtherDamage(e:EntityDamageByEntityEvent){
|
fun onOtherDamage(e:EntityDamageByEntityEvent){
|
||||||
|
if(!combatData.instance.getUseWorld(e.entity.world.name)) return
|
||||||
if(e.entityType != EntityType.PLAYER) return
|
if(e.entityType != EntityType.PLAYER) return
|
||||||
if(e.damager.type != EntityType.PLAYER) return
|
if(e.damager.type != EntityType.PLAYER) return
|
||||||
val list = plugin.instance.list[e.entity.uniqueId] ?: return
|
val list = plugin.instance.list[e.entity.uniqueId] ?: return
|
||||||
|
Loading…
Reference in New Issue
Block a user