두복희
대표칭호 없음
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
@EventHandler public void onPlayerRespawn(PlayerRespawnEvent event) { if (event.isBedSpawn() || event.isAnchorSpawn()) return; event.setRespawnLocation(getSpawnLocation(event.getPlayer().getName())); }
@EventHandler public void onPlayerJoin(PlayerJoinEvent event) { event.setJoinMessage(null); Player player = event.getPlayer(); if (!player.hasPlayedBefore()) { player.teleport(getSpawnLocation(player.getName())); } }
private Location getSpawnLocation(String name) { int seed = getName().hashCode(); Random random = new Random(seed ^ 0x19940423); World world = Bukkit.getWorlds().get(0); WorldBorder border = world.getWorldBorder(); double size = border.getSize() / 2.0; double x = random.nextDouble() * size - size / 2.0; double z = random.nextDouble() * size - size / 2.0; Location block = world.getHighestBlockAt(NumberConversions.floor(x), NumberConversions.floor(z)).getLocation(); return block.add(0.5,1.0,0.5); }
위 코드들은 마인크래프트 서버에 처음 접속했을때 정해진 랜덤한 x y z 좌표로 이동하게 하고
만약 플레이어가 리스폰 할때 침대에 리스폰이 설정되있지 않으면 처음 접속했을때 지정되었던 원래 좌표로 이동하게 하는
플러그인입니다. 근데 제가 원한건 서버에 들어가는 사람마다 다른 랜덤한 위치가 지정되어 각자 다른 리스폰 지점을 만드는걸
원했는데 막상 적용해보니까 모두다 같은 리스폰 지점으로 태어나는것입니다.접속하는 사람마다 다른 리스폰 지점을 지정하려면
이구문에서 뭘 더 바꿔야하고 추가해야하나요??
플러그인 고수님들이 좀 도와주세요 ㅠㅠ
NoEul
2023.07.29코코냐
2023.07.29함수에 이미 이름을 넘겼는데 왜 getName을 또 호출하죠..?
두복희
2023.07.29어느부분에 함수가 이름을 넘겼어요?
코코냐
2023.07.29player.teleport(getSpawnLocation(player.getName()));