ImF
대표칭호 없음
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.16.5 |
게임버전 (BE) | 관련없음 |
플러그인 강좌들 보면서 따라하는데
public class EventListener implements Listener{ HashMap<UUID, Integer> mapInt = new HashMap<UUID, Integer>(); @EventHandler public void join(PlayerJoinEvent e) { UUID uuid = e.getPlayer().getUniqueId(); if (mapInt.containsKey(uuid)) { mapInt.put(uuid, mapInt.get(uuid) + 1); } else { mapInt.put(uuid, 1); } int count = mapInt.get(uuid); e.setJoinMessage(count + "번째 입장했습니다!"); } }
저 MapInt 변수를 저장하려고 다른 클래스에서 상속받으면 Integer 부분이 null이 되버려요
public class CommandCk extends EventListener implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, org.bukkit.command.Command command, String label, String[] args) { Player player = (Player) sender; UUID uuid = player.getUniqueId(); sender.sendMessage(""+mapInt.get(uuid)); return false; } }
이렇게 명령어 하나 만들어서 출력 해보면 계속 null만 왜그럴까요?
뭔가 방법이 잘못 된거나요?
작은거인
2023.07.04플러그인을 배우실떄는 자바 기초 문법을 먼저 배우시는것을 추천드려요!
클래스를 상속한다고 그 값이 전부 같아지는건 아니에요...
명이
2023.07.04상속은 값을 전달하지 않습니다.
위임(delegation)을 통해 EventListener 인스턴스의 값을 사용해보세요.
0reo
2023.07.04이벤트 클래스에서 생성자를쓰든 멀해서 인스턴스를 가져오셔야해용