개인 자료란 (JE)

  서버 커뮤니티

Profile 프리 대표칭호 없음

BabyMandarinDuck c9790e9be5ed4d70b2e2270970bc8049

Profile

강좌 자바 에디션(JE) 플러그인 개발

플러그인의 PlayerMoveEvent와 스크립트의 on any move를 쓰지않고 걸은 블럭수를 측정해보자!

2020.02.15 조회 수 1541 추천 수 1
분야 스크립트 
게임버전 모든버전 

1. 개요

마인크래프트 플러그인이나 스크립트를 개발할대 있어서 플레이어의 움직임을 감지하는 이벤트인 PlayerMoveEvent는 상당히 많은양의 렉을 초래합니다

그래서 이 이벤트를 사용하지않고 Spigot api의 Statistic 클래스를 이용하여 플레이어가 걸은 블럭수를 측정하는 방법을 알려드리도록하겠습니다

스피갓 공식 소스 홈페이지인 https://hub.spigotmc.org/ 를 참고하여찾았습니다

해당 구문은 Skript-Mirror를 이용하시면 Skript에서도 손쉽게 따라하실 수 있습니다


2. 필요한 클래스


3. 필요한 라이브러리

  • 없음


4. 코드 작성

메소드

public int getWalkBlock(Player player) {
    int totalblock;
    int fly = player.getStatistic(Statistic.valueOf("FLY_ONE_CM"));
    int fall = player.getStatistic(Statistic.valueOf("FALL_ONE_CM"));
    int walk = player.getStatistic(Statistic.valueOf("WALK_ONE_CM"));
    int sneak = player.getStatistic(Statistic.valueOf("SNEAK_ONE_CM"));
    int sprint = player.getStatistic(Statistic.valueOf("SPRINT_ONE_CM"));
    totalblock = fly + fall + walk + sneak + sprint;
    return totalblock/100;
}

플레이어의 전체 블럭수를  측정하는 메소드입니다

fly fall walk sneak sprint 를 전부 더해준이유는 각 통계값이 따로따로 저장되기때문에

전부 더해줘야만 걸은 블럭수가 나오기 때문입니다

또한 마지막 리턴값에 100을 나눠준 이유는 100을 나눠야 "블럭수"로 나오기때문입니다

아마 cm단위까지 측정이 되는듯합니다

이제 해당 메소드를 이용하여 플레이어가 걸은 블럭수를 측정하는 방법에 대해 알아봅시다

대강 눈치채셨죠?


적용

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
	Player player = (Player) sender;
	int totalblocks = (new GetWalkedBlock()).getWalkBlock(player);
	player.sendMessage(ChatColor.GOLD + "10초동안 걸으면 걸은 블럭수가 표시됩니다");
	//대충 10초 딜레이 만들어주는 구문
	int currentblocks = totalblocks - (new GetWalkedBlock()).getWalkBlock(player);
	return false;
}

위에서 만들어준 메소드를 이용하여 이런식으로 만들어주었습니다

딜레이주는 구문은 따로 메소드가 더 필요하므로 넣지않고 주석으로만 표시했습니다

이 구문은 예시로 만들었으며 , 명령어를 입력하고 10초동안 걸으면 걸은 블럭수가 표시되는 구문입니다


자바배운지 1주가 조금넘어가는 초보입니다. 피드백은 언제나 환영입니다

1.12.2와 상위버전에 초점을 맞추어 제작되었습니다





2개의 댓글

DDang_
2020.02.16

강의 감사합니다

haejeok
2021.10.26

와 엄청 참신한거같네여

뉴스 및 창작물
/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 4

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 4

물귀신

2024-10-06

3

/files/thumbnails/839/895/003/262x150.crop.jpg?20241006021227

SRV레코드는 보안도메인이 아닙니다. [서버오픈시 필독]

물귀신

2024-10-05

4

/files/thumbnails/648/892/003/262x150.crop.jpg?20241002184058

아티클

마인크래프트 라이브 2024 후기: 무성의가 느껴졌던 '절망편' 라이브

라비

2024-10-02

4