logdev
대표칭호 없음
이해도 | 플러그인 |
---|---|
게임버전 (JE) | 버킷 |
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을 띄우는 것까지 성공했습니다. 이것 외엔 블럭을 아예 띄우는 방법이 없나요?
분열
2020.04.08logdev
2020.04.08그러니까 sendBlockChange 라는 메소드를 쓰면 가상블록을 만들수 있다는 건가요?
logdev
2020.04.08시도해본 결과 그 자리에 있는 블록을 바꾸는 것입니다...
PatrickKR
2020.04.08제생각에는 아머스탠드를 띄우고 그 머리에 블록을 씌우는게 가장 안정적인 방법이라 생각됩니다.
아글
2020.05.10혹시 아머스탠드를 띄우고 아머스탠드에 블록 씌우는 구문 뭔지 아시나요?
분열
2020.04.08sendblockchange는 플레이어에게만 보이는 블럭을 보내는 방식이라 상호작용(좌/우클)이나 재접속시 사라지게 됩니다.
block을 set하는 방식이 아니라서 실제 블럭이 설치되는건 아닐텐데요..?