minding2796
대표칭호 없음
minding2796 b4e0572771444b8481ec47e19202ebcc
게임버전 (JE) | 1.19 |
---|---|
게임버전 (BE) | 관련없음 |
//대충 해시맵 선언
HashMap<Player, String> CustomKillMessage = new HashMap<>();
//대충 죽인곳
Player p = Bukkit.getPlayer("대충 죽은 플레이어")
CustomKillMessage.put(p, "(이)가 [대충 아이템 이름] 에 의해 대충 죽었습니다.");
p.setHealth(0);
//대충 PlayerDeathEvent
Player p = e.getPlayer();
if(CustomKillMessage.get(p) != null){
e.setDeathMessage(p.getName()+CustomKillMessage.get(p));
CustomKillMessage.remove(p);
}
qsef1256
2022.06.221. 뭐가 안되죠
2. 코드 다 올리세요 (어느 파일에 있냐에 따라서도 작동이 달리질 수 있음)
3. 에러 있으면 그거부터 올리세요
qsef1256
2022.06.22그리고 uuid로 비교하세요, 플레이어 객체로 비교하지 말고
Libration
2022.06.22HashMap을 static으로 선언하셔야 합니다. 안 그러면 객체를 생성할 때마다 저 HashMap이 새로 생성되기 때문에 작성자분이 생각하시는 대로 잘 작동이 안될 수 있어요.
또한 윗분이 말씀하셨듯이 HashMap의 Key값은 Player가 아니라 UUID로 선언해야해요! Player로 하게 되면 나갔다 들어올 때 마다 데이터가 갱신이 되기 때문에, value값이 잘 안 불러와질 수 있습니다. 반면 UUID로 하게 되면, UUID는 일종의 플레이어 주민번호같은거라, 나갔다 들어온다고 해도 데이터 갱신이 되지 않습니다!
minding2796
2022.06.23엄청난 원인이 하나 있었음.
코드에는 문제가 없음(?)
게임룰에서 showDeathMessages가 false로 되어있었음
어이없네