개인 자료란 (JE)

  서버 커뮤니티

Profile openkufo 대표칭호 없음

openkufo ded498bef6bf43e39a1b5c7140da31e5

Profile

질문하기 Java

닉네임 바탕색 및 코드 정리

2020.12.28 조회 수 70 추천 수 0
이해도 플러그인 
게임버전 (JE) 버킷 

(다른 질문)

먼저, 질문(개발) 게시판과 스크립트 Q&A 게시판의 차이점을 몰라 이 게시판에 작성했습니다.

스크립트 Q&A 게시판에 작성하려하니 스크립트 버전을 입력하는 양식이 있었는데, 그건 무엇을 의미하는건가요?


(제목의 질문)

cch님의 Eclipse로 플러그인 제작하기 강좌를 보고

spigot-1.16.4 라이브러리를 통해 Eclipse에서 Java로 플러그인을 제작해보고 있습니다.

만든 플러그인은 /test [ID] {TRUE | FALSE} 명령어를 입력했을 때

아이디가 볼드체로 바뀌는 플러그인인데 혹시 닉네임 부분의 바탕색을 바꿀순 없는지 알고 싶습니다.


그리고 다음은 제 코드인데, 더 깔끔하게(혹은 가독성 있게 정리할 수 있는 테크닉이 있을까요?

주석은 원래 안달지만 이 게시글 올리면서 달았습니다.

public class PaulCommand implements CommandExecutor{


    @Override
    public boolean onCommand(CommandSender sender, Command command, String s, String[] chatArray) {
        String cmdName = command.getName();

        if(cmdName.equals("setname")) { // setname 명령어 입력
            setName(sender, chatArray);
            return false;
        }
        
        return false;
    }
    
    boolean setName(CommandSender sender, String[] chatArray) {
        
        Player player = (Player) sender; // 커맨드를 입력한 플레이어를 저장할 변수
        String playerName = ""; // 플레이어의 이름(ID)를 저장할 변수
        int chatArrayNum = 0;   // 커맨드에 인자가 얼마나 들어있는지 비교할 변수
        
        if(chatArray.length == 0) { // 에러 방지
            player.sendMessage("/setname [ID] {TRUE(T) | FALSE(F)} 형식으로 입력하세요");
            return false;
        }

        // 커맨드 첫 번째 인자로 아이디 입력시 접속해 있는 플레이어들의 아이디와 비교 후 저장
        for(Player p : Bukkit.getOnlinePlayers()) {
            if(chatArray[0].equals(p.getName())) {
                player = p;
                playerName = "§l" + p.getName();
                chatArrayNum++;
            }else {
                playerName = "§l" + player.getName();
            }
        }
        
        if(chatArrayNum == 1 && chatArray.length == 1) { // 에러 방지
            player.sendMessage("/setname [ID] {TRUE(T) | FALSE(F)} 형식으로 입력하세요");
            return false;
        }
        
        switch(chatArray[chatArrayNum].toUpperCase()) {
            case "TRUE":
            case "T": {
                player.setDisplayName(playerName);
                player.sendMessage("이름 두껍게 변경");
                break;
            }
            
            case "FALSE":
            case "F": {
                player.setDisplayName(player.getName());
                player.sendMessage("이름 복원");
                break;
            }
    
            default: {
                player.sendMessage("/setname [ID] {TRUE(T) | FALSE(F)} 형식으로 입력하세요");
                break;
            }
        }
        
        return false;
    }
    
}

Warning
댓글이 없습니다.

새로운 댓글을 등록해 주세요!

뉴스 및 창작물
/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1

/files/thumbnails/932/765/003/262x150.crop.jpg?20240410124459

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

노트블럭전문가

2024-04-10

0

/files/thumbnails/403/765/003/262x150.crop.jpg?20240409190538

레드스톤

마인크래프트 노트블록으로 만든 『 밤양갱 (Bam Yang Gang) 』

Sonttukk

2024-04-09

4