[Spigot] 스폰되는 몬스터의 체력 또는 이동속도를 조정하는 방법

2022. 4. 21. 16:50·Games/Minecraft
이 게시글에서는 Kotlin 으로 플러그인을 작성하고 있습니다.
 

우선 https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/entity/EntitySpawnEvent.html 문서에 해당하는 EntitySpawnEvent 클래스를 @EventHandler 어노테이션과 함께 바인드합니다.

@EventHandler
fun onSpawnEntity(e: EntitySpawnEvent)

 

여기서는 생성되는 모든 몬스터의 체력과 이동속도를 증가시켜볼 것입니다.

이벤트가 발생되어 바인드한 함수가 호출될 경우 인가 받는 EntitySpawnEvent 객체가 살아있는 몬스터가 맞는지 확인하기 위해 LivingEntity 와 TypeCheck 를 진행하여 확인합니다.

if (e.entity is LivingEntity)

 

몬스터의 체력과 이동속도를 조정하는 코드를 삽입합니다.

val livingEnt = e.entity as LivingEntity
val maxHealth = livingEnt.getAttribute(Attribute.GENERIC_MAX_HEALTH)!!.value
val value = maxHealth * 2.0

livingEnt.getAttribute(Attribute.GENERIC_MAX_HEALTH)!!.baseValue = value
livingEnt.getAttribute(Attribute.GENERIC_MOVEMENT_SPEED)!!.baseValue *= 0.05
livingEnt.health = value

e.entity 를 LivingEntity 로 Casting 해주고, 현재 체력을 가져와서 2배를 올려주고, 이동속도는 5% 만큼 향상시키는 코드를 작성해보았습니다.

 

만약 특정 엔티티만 적용하고 싶다면 LivingEntity 가 아닌 https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/entity/Zombie.html Zombie 클래스와 같은 클래스로 TypeCheck 를 진행하시면 됩니다.

 

사용된 imports

import org.bukkit.attribute.Attribute
import org.bukkit.entity.LivingEntity
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.entity.EntitySpawnEvent

 

 
 
반응형
저작자표시 비영리 (새창열림)
'Games/Minecraft' 카테고리의 다른 글
  • 마인크래프트 서버 생태계는 방대하다
  • [CommandHelper/Function] AutoQuiz(자동 퀴즈) 기능
  • [CommandHelper/Function] 플레이어가 죽었을 때 특정 아이템을 떨구는 기능
  • [CommandHelper/Function] 특정 거리안의 플레이어 찾기
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    java
    minecraft
    c#
    spring
    후기
    Algorithm
    갤럭시
    codingtest
    bronze1
    Silver5
    백준
    Plugin
    error
    Spring Boot
    Kotlin
    bronze2
    코딩테스트
    알고리즘
    Windows
    github
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
[Spigot] 스폰되는 몬스터의 체력 또는 이동속도를 조정하는 방법
상단으로

티스토리툴바