본문 바로가기
Game Dev/MineCraft - Mod

플레이어 로그인 이벤트 발생시 채팅띄우기 및 채팅 번역

by [방울] 2014. 12. 1.

 

 

 

 

이번엔 심심풀이로 플레이어가 로그인하면 채팅메시지로 무언갈 알려주는걸 추가해보도록 하겠습니다.

단언컨데 모드는 다국어 지원이 되어야 좋은 평을 받을 수 있습니다!

 

그러므로 다국어 지원이 되도록 모든 언어들을 지정해줘야겠죠

일단 bellcraft.core 패키지에 Events 클래스를 만들어줍니다.

 

Events.java

 

package bellcraft.core;

import net.minecraft.util.ChatComponentTranslation;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedInEvent;

public class Events {
	
	@SubscribeEvent
	public void PlayerLoggedIn(PlayerLoggedInEvent event) // 플레이어 로그인 이벤트 발생시
	{
		event.player.addChatMessage(new ChatComponentTranslation("Text.WelcomeBellCraft"));
	}
}

 

이때 "Text.WelcomBellCraft"는 무엇이냐!

저 문장을 언어파일(Ko_KR.lang 또는 en_US.lang 등)에 등록시켜주고 출력값을 지정해주면 ChatComponentTranslation 메소드에 의해서 해당값이 출력되도록 해줍니다.

딱봐도 번역줄것같은 메소드잖아요?!

따라서 채팅출력시 번역을 시켜서 출력시키고 싶으면 저런식으로 등록해주시고, 언어파일에는 아래와같이

Text.WelcomeBellCraft=방울크래프트에 오신것을 환영합니다!

라고 등록시켜주시면 됩니다.

만약 언어파일에 출력값을 지정해주시지 않을경우 채팅에 Text.WelcomeBellCraft 라고 그대로 나가게됩니다.

 

 

그 다음 bellcraft.core 패키지의 BellCraft 클래스에 Initialize 메소드에 다음과같이 이벤트를 등록시켜줍니다.

 

		MinecraftForge.EVENT_BUS.register(new Events());
		FMLCommonHandler.instance().bus().register(new Events()); 

 

 

 

잘되네요.

 

강좌끝!

다른 이벤트를 사용하시고 싶으시면 net.minecraftforge.event 패키지에서 직접 찾아보세요~~

댓글