플러그인

플러그인 에서 가상 블럭 생성

logdev 2020.04.08 조회 수 68 추천 수 0

falling block외엔 가상 블럭을 만드는 방법이 아예 없나요? 제가 쓴 코드입니다.

package me.logdev.anaconda;


import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;


public class Event implements Listener {

    int num1 = 1;

    @EventHandler
    public void onPlayerClicks(PlayerInteractEvent event) {
        Player player = event.getPlayer();
        Action action = event.getAction();

        if(action == (Action.RIGHT_CLICK_AIR) || action == (Action.RIGHT_CLICK_BLOCK)){
            @SuppressWarnings("all")
            FallingBlock fallingBlock = player.getWorld().spawnFallingBlock(player.getLocation(), player.getInventory().getItemInMainHand().getType(), player.getInventory().getItemInMainHand().getData().getData());
            fallingBlock.setInvulnerable(true);
            fallingBlock.setGravity(false);
            fallingBlock.setDropItem(false);
            fallingBlock.setTicksLived(-2147483648);
            ArmorStand as = (ArmorStand) player.getWorld().spawnEntity(player.getLocation(), EntityType.ARMOR_STAND);
            as.setVisible(false);
            as.setCustomName(String.valueOf(num1));
            as.addPassenger(fallingBlock);
            num1 += 1;







        }

    }

}

 이렇게 작성해서 fallingblock을 띄우는 것까지 성공했습니다. 이것 외엔 블럭을 아예 띄우는 방법이 없나요?


6개의 댓글

분열
2020.04.08
1. deprecate된 메소드
player.sendBlockChange(위치, 머터리얼값, 바이트);
2. 패킷사용 (protocollib, packetwrapper)
//WrapperPlayServerBlockChange 래퍼 생성후 플레이어에게 전달.
3. deprecate 안된 메소드 (1.12.2에선 안됨)
//BlockData내에 sendBlockChange메소드가 있다고 함


logdev
2020.04.08
@분열

그러니까 sendBlockChange 라는 메소드를 쓰면 가상블록을 만들수 있다는 건가요?

logdev
2020.04.08
@logdev

시도해본 결과 그 자리에 있는 블록을 바꾸는 것입니다...

PatrickKR
2020.04.08
@logdev

제생각에는 아머스탠드를 띄우고 그 머리에 블록을 씌우는게 가장 안정적인 방법이라 생각됩니다.

분열
2020.04.08
@logdev

sendblockchange는 플레이어에게만 보이는 블럭을 보내는 방식이라 상호작용(좌/우클)이나 재접속시 사라지게 됩니다. 

block을 set하는 방식이 아니라서 실제 블럭이 설치되는건 아닐텐데요..?

아글
27 일 전
@PatrickKR

혹시 아머스탠드를 띄우고 아머스탠드에 블록 씌우는 구문 뭔지 아시나요?

질문

개발에 관련하여 궁금한 것들을 질문하는 공간입니다.

조회 수 제목 글쓴이
1942 [1] [뉴플래닛] 유저와 함께 성장하는 서버, 그곳에는 저희가 있습니다! 14 루타카
806 [2] [HK] 마인크래프트 개발 디스코드 - 컨텐츠를 만들고 서버 어드민이 되어보자! 5 DC
440 [3] [베개서버] [신생] 인생약탈 서버가 상위버전에서 활보 중이라구요? 2 오리야
158 모델링 공방 : 커뮤니티 개편 기념 공모전 개최!! U 박동백
929 새로워진 한마포 창작자로 수익과 함께 활동해보세요! 10 프리루트
340 유저 커뮤니티 개설 신청을 다시 받기 시작했습니다! 6 프리루트
786 일부 SNS 로그인 지원 중단 및 안내 가이드 (카카오, 트위터) 14 프리루트
851 한디포 이용 가이드! 처음 온 분은 읽어둡시다! 20 초스터
660 한디포 이용 규칙 25 초스터
17 [플러그인] 매펠 서버를 열었는데 리로드시 튕김현상이 나타납니다 1 달키우
48 [모드] 픽셀몬모드 전포스폰월드 설정이 가능한가요 ? Hippo
97 [시스템] 24시간 무료로 디코봇 돌릴수 잇는게 있나요? 5 Hunter
58 [프로그래밍 일반] 회원가입 시스템 5 JSD-ITHAN
61 [모드] 1.12.2 아머러워크샵 오류? 1 bitonmy
60 [플러그인] 럭펌 오류 2 bitonmy
31 [플러그인] 마인크래프트 플러그인 질문 3 minecfain
27 [모드] 황혼의 숲 모드 적용된 맵만 안들어가집니다.. 1 마인크짱
58 [플러그인] 플레이어의 종료 사유를 받아오고싶습니다. 1 BlessU_
67 [프로그래밍 일반] Html에서 다운로드 기능을 어떻게 구현하나요? 12 JSD-ITHAN
43 [스크립트] 유저 교환 만들기 2 bass9030
35 [모드] 도구 아이템을 어떻게 만드나요 2 Rhseung
39 [플러그인] 플러그인 개발 외주를 받아볼까 생각중입니다. sleepylapis
34 [플러그인] 타겟멀티스펠 질문 GKWM
68 [플러그인] 플러그인 에서 가상 블럭 생성 6 logdev

개발자 최신글
사진이 없습니다.

반성하기

반성문

JuYul

2020-06-06

3

사진이 없습니다.

반성하기

반성문

이한주

2020-06-06

3