개인 자료란 (JE)

  서버 커뮤니티

Profile d1092 대표칭호 없음
Profile

질문하기 플러그인

이 코드가 왜 작동이 안될까요

2023.02.07 조회 수 102 추천 수 0
이해도 초보자 
게임버전 (JE) 1.19, 1.19.1, 1.19.2 
게임버전 (BE) 관련없음 

/opopaa 라고 친 다음 엔티티를 죽이면 성공이라고 뜨게 하고 싶었는데 작동이 안됩니다 저 명령어를 안치면 작동 안하게요!


명령어 클래스

public class command implements CommandExecutor {

    public int ia = 0;

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { 
 
        if(sender instanceof Player) {

            Player player = (Player)sender;
            player.sendMessage("작동되었습니다");
            ia = 1;

        }
        return false;
    }
}

이벤트 클래스

public class event implements Listener {

    @EventHandler

    public void mugu(EntityDeathEvent e) {

        Player p = e.getEntity().getKiller();
        command c = new command();

        if (c.o == 1) {

            p.sendMessage("성공하셨습니다!");
        }
    }
}

7개의 댓글

Dalsu
2023.02.07

일단 변수 i를 초기화해주는 부분을 안만드셨습니다. 그리고 자바의 객체지향 개념을 더 공부하고 오시는게 좋을것 같아요.

d1092
2023.02.07
@Dalsu

초기화는 다른 명령어로 할려고 합니다

 

명이
2023.02.08

위 코드의 잘못된점 6가지:

1. 클래스명은 대문자로

2. 커맨드 등록시에 만드신 인스턴스가 아닌 이벤트가 실행될때 만드신 인스턴스는 같은 인스턴스가 아니기 때문에 필드값의 공유가 되지 않습니다.

3. 그리고 대체 command 클래스에는 o가 어디있는거죠...

4. 제발 메서드명은 의미있는 이름으로 지어주세요.

5. onCommand에서 false를 하시면, plugin.yml에 작성해두신 커맨드의 usage가 플레이어에게 전달됩니다.

6. @EventHandler와 메서드 정의 사이 한줄의 공백은 무엇을 위한것일까요?


결정적으로

제발 플러그인으로 자바 입문하지 마세요

자바 하나 배우기도 벅찬데, 둘다 배우는건 나쁜 선택입니다.

기본기를 쌓으시고 플러그인 개발을 시작해주세요.

d1092
2023.02.08
@명이

그럼 자바를 공부할때 도움이 되는 사이트? 책? 이런 것이 있을까요?

yusin12
2023.02.28
@d1092

근처에 잘하는 친구가 있다면, 그 친구한테 배우는게 가장 좋구!

 

학생이시라면 구글이나 유튜브 독학이 가장 좋아요!

 

성인이시라면...의지가 강하시면 독학이 아주 좋아요!, 센스도 같이 따라오기 때문이에요!

만약 의지가 부족하시다면... 일단는 접어야해요! 학원은 진도 따라가기도 어렵고! 멍하니 있다가 끝나는 경우도 있어요!

 

위에 분들에 말 처럼! 플러그인 때문에 자바를 입문하는건 좋은 선택이 아니에요!!

정말로 만들고 싶다면 2개월 만이라두 자바 공부만 해봐요!

0reo
2023.02.08
public static Set<Player> set = new HashSet<>();

@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if (sender instanceof Player player) {
        player.sendMessage("할말");
        set.add(player);
    }
    return false;
}

커맨드

@EventHandler
public void onKill(EntityDeathEvent e) {
    if (커맨드클래스명.set.contains(e.getEntity().getKiller())) {
        e.getEntity().getKiller().sendMessage("할말");
    }
}

리스너

0reo
2023.02.08
@0reo

자바 기초 공부하실 생각 1도없으시면 걍 하지마세요 정신건강에 해롭습니다

뉴스 및 창작물
/files/thumbnails/761/908/003/262x150.crop.jpg?20241025153749

건축

서울 숭례문(崇禮門) 4

KHC

2024-10-25

2

/files/thumbnails/578/899/003/262x150.crop.jpg?20241010142350

건축

경주 월정교 1

KHC

2024-10-10

2

/files/thumbnails/219/899/003/262x150.crop.jpg?20241009200950

건축

송전탑+도시 2

dbasd12

2024-10-09

2

/files/thumbnails/246/898/003/262x150.crop.jpg?20241008102328

레드스톤

단다단 - 오토노케(オトノケ) | 마인크래프트 노트블럭 커버

노트블럭전문가

2024-10-08

1

/files/thumbnails/348/896/003/262x150.crop.jpg?20241006103035

디도스/봇테러등등을 낚는 방법 4

물귀신

2024-10-06

3