
오늘은 가장 기초적이면서 성취감을 끌어올릴 수 있도록 화폐를 만들어보도록 하겠습니다.
1. 패키지 와 클래스 만들기
- src/main/java 순으로 트리를 클릭해보면 프로젝트를 만들며 지정해줬던 happy.joseonfarm을 확인해볼 수 있습니다.
- 오른쪽 클릭 -> 새로 만들기 -> 패키지를 클릭해서 item 이라는 패키지를 만들어줘볼게요.

- 패키지(바구니)를 만들었으니 클래스(아이템)를 만들어보겠습니다.
- 만들어준 패키지 오른쪽 클릭 -> java 클래스를 선택해서 "ModItems" 이라고 작명을 해줘볼게요
- 이때 Minecraft Class가 아니라 java 클래스이니 유의해주세요

2. 클래스 개발하기
- 코드의 이해를 돕기위해 // 주석을 통해 설명을 적어두었습니다.
package happy.joseonfarm.item;
import happy.joseonfarm.Joseonfarm; // 메인 클래스 경로 확인!
import net.minecraft.world.item.Item;
import net.minecraftforge.eventbus.api.IEventBus;
import net.minecraftforge.registries.DeferredRegister;
import net.minecraftforge.registries.ForgeRegistries;
import net.minecraftforge.registries.RegistryObject;
public class ModItems {
// 1. 레지스트리 생성 (Spring의 ApplicationContext 같은 존재)
// "지금부터 아이템들을 이 객체에 담아두었다가, 게임 켜질 때 한 번에 등록하겠다"는 뜻입니다.
public static final DeferredRegister<Item> ITEMS =
DeferredRegister.create(ForgeRegistries.ITEMS, "joseonfarm"); // "joseonfarm"은 아까 정한 MOD ID
// 2. 엽전(YEOPJEON) 아이템 등록
// "yeopjeon"이라는 ID로 빈 껍데기 아이템을 등록합니다.
public static final RegistryObject<Item> YEOPJEON = ITEMS.register("yeopjeon",
() -> new Item(new Item.Properties()));
// 3. 이벤트 버스 등록 메서드
public static void register(IEventBus eventBus) {
ITEMS.register(eventBus);
}
}
- 이제 아래와 같이 Joseonfarm 클래스에 우리가 만든 ModItem을 연결해주세요
// JoseonFarm.java 파일 내부
public JoseonFarm() {
IEventBus modEventBus = FMLJavaModLoadingContext.get().getModEventBus();
// ▼▼▼ 이 코드를 추가해주세요! ▼▼▼
ModItems.register(modEventBus);
// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
modEventBus.addListener(this::commonSetup);
// ... 기존 코드들 ...
}
3. 테스트
- 이제 runClient를 통해 실행을 시켜보세요.
- 게임이 켜지면 [Singleplayer] -> [Create New World] -> [Game Mode: Creative] 로 월드를 하나 파서 들어갑니다.
- 아직 크리에이티브 탭(인벤토리)에는 안 보일 겁니다. (설정을 안 해서요)
- 채팅창(T키)을 열고 명령어를 쳐보세요.
- /give @s joseonfarm:yeopjeon
- 인벤토리에 item.joseonfarm.yeopjeon 라는 보라색/검은색 체크무니 아이템이 있다면 성공입니다.

- 텍스처가 없어서 깨져 보이는 게 정상입니다. 아이템이 들어왔다면 성공입니다!
4. 엽전 텍스처 입히기
- Ctrl + Alt + Shift + S 를 눌러 프로젝트 구조 설정 팝업을 엽니다.
- 보라색 Resource Folders 를 클릭합니다.
- 중앙 빨간색 네모 안에 구조처럼 폴더를 생성해줍니다.
- models의 item은 JSON 파일을 넣게 될 폴더입니다.
- textures의 item은 이미지 파일을 넣게 될 폴더입니다.
- 프로젝트 구조 설정 창에서 생성하지 않으면 이상하게 생성되더라구요 참고하세요

- AI를 사용해 엽전 픽셀을 만들어줍니다. ( 제 경우 제미나이를 활용해 만들었습니다.)
- 실제 다운로드할 경우 1024 x 1024 사이즈입니다.
- png파일 오른쪽 클릭 후 그림판을 열어 Ctrl + W, 16 x 16 픽셀 다른이름 저장을 진행해주세요

- models.item 경로 아래 yeopjeon.json 파일을 아래와 같이 작성한 후 저장해주세요.
{
"parent": "item/generated",
"textures": {
"layer0": "joseonfarm:item/yeopjeon"
}
}
5. 텍스쳐 테스트
- 아래 사진처럼 엽전이 보여진다면 성공입니다!

6. 아이템 이름 지어주기
- 멋진 아이템을 만들었지만 아직 마우스를 대보면 위 사진과 같이 영어로 표시되는걸 확인 할 수 있습니다.
- src/main/resources/assets/joseonfarm/ 아래 lang 폴더를 만들어주세요.
- ko_kr.json 파일을 생성한 후 아래와 같이 입력해주세요.
{
"item.joseonfarm.yeopjeon": "엽전",
"itemGroup.joseonfarm_tab": "조선농장"
}
- en_us.json 파일도 생성해주세요. ( 한국어만 필요하면 된다구 생각하지만 마인크래프트는 기본 언어가 영어이기때문에 이게 없으면 영문판 유저는 깨져보여요 ㅠㅠ)
{
"item.joseonfarm.yeopjeon": "Yeopjeon",
"itemGroup.joseonfarm_tab": "Joseon Farm"
}
7. 다음 게시글
- 현재까지의 아이템 만들어 실습은 잠시 진행을 멈추고 서버 구축부터 필수 모드 세팅 후 속도를 더 내보도록 할 예정입니다.
- 서버 구성 카테고리를 참고해주세요.
'마인크래프트 > 개발일지' 카테고리의 다른 글
| 마인크래프트를 같이 개발해보자 [JE] - Day 01 (0) | 2026.01.21 |
|---|