Minecraft 1.14.4 Forge Mod의 작성 그 2 【기본적인 파일의 배치】
14955 단어 minecraftminecraftmodding
소개
Minecraft 1.12.2 때에 비해 쓰기가 크게 바뀌는 인상을 받았습니다.
기본 파일을 배치하고 Minecraft가 Mod를로드하는 곳으로 이동합니다.
2019/10/29 아래 예외가 발생하기 때문에 pack.mcmeta 수정
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 5 column 6 path $.pack.pack_format
💻 개발 환경
여기서 환경은 다음과 같이 합니다.
Caused by: com.google.gson.stream.MalformedJsonException: Expected name at line 5 column 6 path $.pack.pack_format
여기서 환경은 다음과 같이 합니다.
패키지 만들기
우선은 패키지(폴더)를 작성해 둡니다.
패키지 이름을 지정하는 방법에는 일반적인 결정 방법이 있습니다.
이에 따라 이름을 결정했을 때 패키지를 만들면 다음과 같습니다.
품목
값
GroupId
kr.yuyu
ArtifactId
biwako_mod
C:\Users\HIRO\IdeaProjects\biwako_mod
└─src
└─main
├─java
│ └─jp
│ └─yuyu
│ └─biwako_mod
└─resources
└─assets
└─biwako_mod
pack.mcmeta
리소스 팩의 세부 사항을 설명하는 파일입니다.
전회 떨어뜨려 온 Mdk, forge-1.14.4-28.1.0-mdk.zip
속에 샘플이 들어 있기 때문에 그것을 참고로 써 보겠습니다.resources
폴더에 파일을 만듭니다.
1.7 이전에는 "pack_format": 1로, 1.8 이후부터는 "pack_format": 2로, 1.11 이후부터 1.12까지는 "pack_format": 3으로, 1.13 이후는 "pack_format":4로 해야 합니다.
리소스 팩 / 만드는 법 - Minecraft Japan Wiki - Atwiki
이번에는 Minecraft 1.14.4이므로 "pack_format":4
입니다.
└─resources
│ *pack.mcmeta
│
└─assets
└─biwako_mod
pack.mcmeta{
"pack": {
"description": "Biwako Mod resources",
"pack_format": 4
}
}
mods.toml
Mod 정보를 기재하는 파일입니다.
Minecraft 1.12.2에서는 mcmod.info
이었던 것이군요.
마찬가지로 forge-1.14.4-28.1.0-mdk.zip
안에 샘플이 들어 있기 때문에 그것을 참고로 써 보겠습니다.
resources/META-INF
폴더를 만들고 그 안에 mods.toml
를 넣습니다.
또한 로고 파일을 resources
폴더에 넣고 파일 경로를 지정합니다.
└─resources
│ pack.mcmeta
│ *logo.png
│
├─assets
│ └─biwako_mod
│
└─*META-INF
*mods.toml
mods.moml# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the forge version
loaderVersion="[28,)" #mandatory (28 is current forge version)
# A list of mods - how many allowed here is determined by the individual mod loader
[[mods]] #mandatory
# The modid of the mod
modId="biwako_mod" #mandatory
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
version="1.0.0"
# A display name for the mod
displayName="Biwako Mod" #mandatory
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://github.com/Hiroya-W/biwakoMC" #optional
# A file name (in the root of the mod JAR) containing a logo for display
logoFile="logo.png" #optional
# A text field displayed in the mod UI
authors="Hiroya_W" #optional
# The description text for the mod (multi line!) (#mandatory)
description='''
Biwako is the largest lake in Japan.
'''
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
[[dependencies.biwako_mod]] #optional
# the modid of the dependency
modId="forge" #mandatory
# Does this dependency have to exist - if not, ordering below must be specified
mandatory=true #mandatory
# The version range of the dependency
versionRange="[28,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
side="BOTH"
# Here's another dependency
[[dependencies.biwako_mod]]
modId="minecraft"
mandatory=true
versionRange="[1.14.4]"
ordering="NONE"
side="BOTH"
메인 클래스
만들기
BiwakoMod.java
를 다음 위치에 배치합니다.
└─src
└─main
├─java
│ └─jp
│ └─yuyu
│ └─biwako_mod
│ *BiwakoMod.java
히나형
└─resources
│ *pack.mcmeta
│
└─assets
└─biwako_mod
{
"pack": {
"description": "Biwako Mod resources",
"pack_format": 4
}
}
Mod 정보를 기재하는 파일입니다.
Minecraft 1.12.2에서는
mcmod.info
이었던 것이군요.마찬가지로
forge-1.14.4-28.1.0-mdk.zip
안에 샘플이 들어 있기 때문에 그것을 참고로 써 보겠습니다.resources/META-INF
폴더를 만들고 그 안에 mods.toml
를 넣습니다.또한 로고 파일을
resources
폴더에 넣고 파일 경로를 지정합니다.└─resources
│ pack.mcmeta
│ *logo.png
│
├─assets
│ └─biwako_mod
│
└─*META-INF
*mods.toml
mods.moml
# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml
modLoader="javafml" #mandatory
# A version range to match for said mod loader - for regular FML @Mod it will be the forge version
loaderVersion="[28,)" #mandatory (28 is current forge version)
# A list of mods - how many allowed here is determined by the individual mod loader
[[mods]] #mandatory
# The modid of the mod
modId="biwako_mod" #mandatory
# The version number of the mod - there's a few well known ${} variables useable here or just hardcode it
version="1.0.0"
# A display name for the mod
displayName="Biwako Mod" #mandatory
# A URL for the "homepage" for this mod, displayed in the mod UI
displayURL="https://github.com/Hiroya-W/biwakoMC" #optional
# A file name (in the root of the mod JAR) containing a logo for display
logoFile="logo.png" #optional
# A text field displayed in the mod UI
authors="Hiroya_W" #optional
# The description text for the mod (multi line!) (#mandatory)
description='''
Biwako is the largest lake in Japan.
'''
# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional.
[[dependencies.biwako_mod]] #optional
# the modid of the dependency
modId="forge" #mandatory
# Does this dependency have to exist - if not, ordering below must be specified
mandatory=true #mandatory
# The version range of the dependency
versionRange="[28,)" #mandatory
# An ordering relationship for the dependency - BEFORE or AFTER required if the relationship is not mandatory
ordering="NONE"
# Side this dependency is applied on - BOTH, CLIENT or SERVER
side="BOTH"
# Here's another dependency
[[dependencies.biwako_mod]]
modId="minecraft"
mandatory=true
versionRange="[1.14.4]"
ordering="NONE"
side="BOTH"
메인 클래스
만들기
BiwakoMod.java
를 다음 위치에 배치합니다.
└─src
└─main
├─java
│ └─jp
│ └─yuyu
│ └─biwako_mod
│ *BiwakoMod.java
히나형
└─src
└─main
├─java
│ └─jp
│ └─yuyu
│ └─biwako_mod
│ *BiwakoMod.java
@Mod
어노테이션에는 MOD_ID
이름만 기술한다.그래서 1.12.2에서
MOD_NAME
MOD_VERSION
어노테이션이있는 클래스의 생성자에 초기화 처리의 리스너를 등록한다.mods.toml
메소드가 1.12.2의 @Mod
메소드에 상당한다. setup
는 클라이언트 측에서만 실행되는 초기화 프로세스를 설명한다.1.12.2의
preInit
에 해당한다. 자세한 것은 【Forge】1.13.2에서의 자작한 Entity와 EntityRender의 등록 방법 에 상세하게 쓰여졌습니다.
그리고, 아마 이것이 메인 클래스의 편지지가 된다.
BiwakoMod.java
package jp.yuyu.biwako_mod;
import net.minecraft.block.Block;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
// The value here should match an entry in the META-INF/mods.toml file
@Mod(BiwakoMod.MOD_ID)
public class BiwakoMod
{
public static final String MOD_ID = "biwako_mod";
// Directly reference a log4j logger.
private static final Logger LOGGER = LogManager.getLogger();
public BiwakoMod() {
// Register the setup method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
// Register the doClientStuff method for modloading
FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);
// Register ourselves for server and other game events we are interested in
MinecraftForge.EVENT_BUS.register(this);
}
private void setup(final FMLCommonSetupEvent event)
{
// some preinit code
LOGGER.info("HELLO FROM PREINIT");
}
private void doClientStuff(final FMLClientSetupEvent event) {
// do something that can only be done on the client
LOGGER.info("HELLO FROM Client Setup");
}
// You can use EventBusSubscriber to automatically subscribe events on the contained class (this is subscribing to the MOD
// Event bus for receiving Registry Events)
@Mod.EventBusSubscriber(bus=Mod.EventBusSubscriber.Bus.MOD)
public static class RegistryEvents {
@SubscribeEvent
public static void onBlocksRegistry(final RegistryEvent.Register<Block> blockRegistryEvent) {
// register a new block here
LOGGER.info("HELLO from Register Block");
}
}
}
Minecraft 시작
Github 에서 프로젝트를 게시하고 있습니다.
Reference
이 문제에 관하여(Minecraft 1.14.4 Forge Mod의 작성 그 2 【기본적인 파일의 배치】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Hiroya_W/items/f54fb5b85b408c4e5a38
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Minecraft 1.14.4 Forge Mod의 작성 그 2 【기본적인 파일의 배치】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Hiroya_W/items/f54fb5b85b408c4e5a38텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)