마인크래프트 서버 접속기 만들기[4]

2013. 3. 30. 18:33·Game/Minecraft
반응형

안녕하세요. 이번에는 서버 택스쳐팩을 무조건 받게 해보겠습니다.



2013/03/30 - [마인크래프트/개발] - 마인크래프트 서버 접속기 만들기[1]


2013/03/30 - [마인크래프트/개발] - 마인크래프트 서버 접속기 만들기[2]


2013/03/30 - [마인크래프트/개발] - 마인크래프트 서버 접속기 만들기[3]

이번에는 어디부터 건드려야할지 모르겠네요.


순정 minecraft.jar 안에 보면 lang폴더가 있습니다.

그곳에 ko_KR.lang를 열면 한글번역들이 보입니다.


찾다보면 multiplayer.texturePrompt.line1=이 서버는 사용자 지정 텍스쳐 팩 사용을 권장하고 있습니다 가 보이네요.


택스쳐팩담당하는부분을찾으려면 이곳을 수정하면 되겠죠.


 multiplayer.texturePrompt.line1를 찾아봅시다.


먼저 이클립스의 Seach -> Seach (또는 Ctrl+H)


그리고 multiplayer.texturePrompt.line2 를 넣고 Seach를 눌러봅니다.




뭔가 있네요. ㄱㅊ?


더븙클릭하면 NetClientHandler.java가 뜹니다. ㅎㄷㄷ


이곳을 보면


this.mc.displayGuiScreen(new GuiYesNo(new NetClientWebTextures(this, var3), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line1"), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line2"), 0));


이게 보입니다. 이게 중요한 놈들이죠..


이번에는 GuiYesNo의 정체를 밝히러 GuiYesNo.java로 갑시다. ㅎㄷㄷ


    public GuiYesNo(GuiScreen par1GuiScreen, String par2Str, String par3Str, int par4)

    {

        this.parentScreen = par1GuiScreen;

        this.message1 = par2Str;

        this.message2 = par3Str;

        this.worldNumber = par4;

        StringTranslate var5 = StringTranslate.getInstance();

        this.buttonText1 = var5.translateKey("gui.yes");

        this.buttonText2 = var5.translateKey("gui.no");

    }


이게 4개짜리놈이죠.


첫번째는 Yes해줄때 return될 창인듯..


쨌든 Yes(0)버튼누르면


this.parentScreen.confirmClicked(par1GuiButton.id == 0, this.worldNumber);


이곳으로 가는듯..


No이면 그냥 닫는듯 합니다.

parentScreen은 NetClientWebTextures 임.



2,3 번째줄은 글씨네요.

4번째는.. 흠.. 몰라요.


어쩄든 다시 NetClientWebTextures를 찾으러

NetClientWebTextures.java로 갑시다.


    public void confirmClicked(boolean par1, int par2)

    {

        this.mc = Minecraft.getMinecraft();


        if (this.mc.getServerData() != null)

        {

            this.mc.getServerData().setAcceptsTextures(par1);

            ServerList.func_78852_b(this.mc.getServerData());

        }


        if (par1)

        {

            this.mc.texturePackList.requestDownloadOfTexture(this.texturePackName);

        }


        this.mc.displayGuiScreen((GuiScreen)null);

    }


이게 있죠?


예를 실행시키면 됩니다.


다시 뒤로가서


Yes누르면 


new NetClientWebTextures(this, var3) 에 가는겁니다.

그러니


this.mc.displayGuiScreen(new GuiYesNo(new NetClientWebTextures(this, var3), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line1"), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line2"), 0));


예를


this.mc.displayGuiScreen(new NetClientWebTextures(this, var3));


이렇게 바꿔주면 될겁니다.


이제 테스트를 위해 테스트섭 열고




(전 서버운영중이라 25566으로 염, 그러니 저는 전에 설정한 서버주소들을 수정해야합니다.)




응? 왜안되지?



이렇게 또다시 삽질이 시작되고...


YesNo 다시넣으니 택팩이 뜨는걸봐서는..

소스를 잘못수정한듯 하다.





약 1시간의 노가다끝에


방법을 찾았습니다. ㅠㅠㅠㅠ


this.mc.displayGuiScreen(new NetClientWebTextures(this, var3));


이걸

                 this.parentScreen = new NetClientWebTextures(this, var3);

                this.parentScreen.confirmClicked(true, 0);


이걸로 바꾸자..

ㅠㅠ

아 그리고 맨 위에 



public class NetClientHandler extends NetHandler

{



바로 아래쯤에

    protected GuiScreen parentScreen;


이걸 추가해줍니다.


그러면 바로 다운로드가 되는것을 볼수 있습니다.




적용된 모습입니다.. 좀 옛날거라 이런듯..


그런데 문제가 생겼네요.





이거 바꿔주면 말짱 도루묵...


그래서 다음엔 이걸 수정해보겠습니다.




-----------------------------

추가. 이딴거 다 필없습니다.


                if (this.mc.texturePackList.getAcceptsTextures())

                {

                    this.mc.texturePackList.requestDownloadOfTexture(var3);

                }

                else if (this.mc.texturePackList.func_77300_f())

                {

                this.parentScreen = new NetClientWebTextures(this, var3);

                this.parentScreen.confirmClicked(true, 0);

                //this.mc.displayGuiScreen(new NetClientWebTextures(this, var3));

                //this.mc.displayGuiScreen(new GuiYesNo(new NetClientWebTextures(this, var3), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line1"), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line2"), 0));

                }


이 if문 자체가 


    public boolean func_77300_f()

    {

        if (!this.mc.gameSettings.serverTextures)

        {

            return false;

        }

        else

        {

            ServerData var1 = this.mc.getServerData();

            return var1 == null ? true : var1.func_78840_c();

        }

    }


    public boolean getAcceptsTextures()

    {

        if (!this.mc.gameSettings.serverTextures)

        {

            return false;

        }

        else

        {

            ServerData var1 = this.mc.getServerData();

            return var1 == null ? false : var1.getAcceptsTextures();

        }

    }


이거라서 그냥 똑같네요. 걍 


                if (this.mc.texturePackList.getAcceptsTextures())

                {

                    this.mc.texturePackList.requestDownloadOfTexture(var3);

                }

                else if (this.mc.texturePackList.func_77300_f())

                {

                this.mc.texturePackList.requestDownloadOfTexture(var3);

                //this.parentScreen = new NetClientWebTextures(this, var3);

                //this.parentScreen.confirmClicked(true, 0);

                //

                //this.mc.displayGuiScreen(new NetClientWebTextures(this, var3));

                //this.mc.displayGuiScreen(new GuiYesNo(new NetClientWebTextures(this, var3), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line1"), StringTranslate.getInstance().translateKey("multiplayer.texturePrompt.line2"), 0));

                }



이걸로 쓰면 되네요. ;;

반응형
저작자표시 비영리 동일조건 (새창열림)
'Game/Minecraft' 카테고리의 다른 글
  • 마인크래프트 서버 접속기 만들기[6]
  • 마인크래프트 서버 접속기 만들기[5]
  • 마인크래프트 서버 접속기 만들기[3]
  • 마인크래프트 서버 접속기 만들기[2]
ryush00
ryush00
IT 관련 글이 올라와요
    반응형
  • ryush00
    말똥이의 블로그
    ryush00
  • 전체
    오늘
    어제
    • 모든 글 (225) N
      • 블로그 (13)
        • 공지 사항 (5)
        • 블로그 운영 팁 (6)
        • 기타 (2)
      • IT (69)
        • 정보글 (51)
        • 리뷰 (8)
        • 심층 분석 (5)
        • NAS (5)
      • Game (44)
        • Minecraft (40)
        • 게임 정보글 (4)
      • Dev (53)
        • PHP (1)
        • HTML & CSS (0)
        • Ruby (3)
        • DB (2)
        • 클라우드 (2)
        • 행사 (0)
        • 삽질 방지 (20)
      • 마인리스트 (10)
      • 이모저모 (21)
        • 나의 생각 (7)
        • 나의 일상 (4)
        • 유용한 것들 (3)
        • 노하우 (6)
      • 휴지통 (0)
      • 안전 (0)
        • 베리어프리 (0)
        • 교통 안전 (0)
  • 블로그 메뉴

    • 전체글
    • 공지사항
  • 링크

    • 마인리스트
  • 공지사항

    • 저작권 안내
  • 인기 글

  • 태그

    블로그
    구글 지도 반출
    마인리스트
    문제해결
    NAS
    안드로이드
    티스토리
    아이폰
    애플
    Ruby on Rails
    MySQL
    CloudFlare
    토렌트
    티스토리 초대장
    howto
    클라우드플레어
    java
    맥
    php
    마인크래프트
    해킹
    시놀로지
    개발
    bukkit
    구글 지도
    apk
    오류
    spigot
    삽질
    ruby
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ryush00
마인크래프트 서버 접속기 만들기[4]
상단으로

티스토리툴바