Cheese_Skull ce81f69374424858a1b11328fc1235ab
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
안녕하세요.
이곳의 많은 분들의 도움을 얻어 조카들과 즐겁게 모드 서버를 만들어 즐기다가
문뜩 간단한 모드는 제가 한번 만들어 보고 싶어서 이것저것 손대보고 있습니다.
지금 연습하고있는건 마인크레프트 타이틀 화면에서 싱글플레이 버튼을 없어지게 하는 모드를 만들어 보고 있는데요
이게 생각보다 쉽지않아서 질문을 좀 드리고자 합니다
프로그렘은 무료프로그램인 비주얼 스튜디오 코드 사용중이고
minecraft_version=1.20.1
yarn_mappings=1.20.1+build.1
loader_version=0.16.5
fabric_version=0.92.2+1.20.1
fabric-loom' version '1.7.1
자바는 18로 하고있습니다~!
build.gradle에는
plugins {
id 'fabric-loom' version '1.7.1'
id 'maven-publish'
}
version = project.mod_version
group = project.maven_group
base {
archivesName = project.archives_base_name
}
repositories {
mavenCentral()
maven { url = 'https://maven.fabricmc.net/' }
}
loom {
splitEnvironmentSourceSets()
mods {
"modid" {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
}
}
dependencies {
minecraft "com.mojang:minecraft:${project.minecraft_version}"
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
}
processResources {
inputs.property "version", project.version
filesMatching("fabric.mod.json") {
expand "version": project.version
}
}
tasks.withType(JavaCompile).configureEach {
it.options.release = 18
}
java {
withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_18
targetCompatibility = JavaVersion.VERSION_18
}
jar {
from("LICENSE") {
rename { "${it}_${project.base.archivesName.get()}"}
}
}
publishing {
publications {
create("mavenJava", MavenPublication) {
artifactId = project.archives_base_name
from components.java
}
}
repositories {
}
}
이렇게 셋팅하고
src/main/java/com/example에 myfabricmod 디렉토리를 만들고 MyFabricMod.java 클레스를 만들었습니다.
내용은
package com.example.myfabricmod;
import net.fabricmc.api.ModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.screen.v1.Screens;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.widget.ButtonWidget;
import net.minecraft.text.Text;
import java.util.List;
public class MyFabricMod implements ModInitializer {
@Override
public void onInitialize() {
ClientLifecycleEvents.CLIENT_STARTED.register(client -> {
MinecraftClient mc = MinecraftClient.getInstance();
mc.execute(() -> {
Screen currentScreen = mc.currentScreen; // 현재 화면 가져오기
if (currentScreen != null) {
List<ButtonWidget> buttons = Screens.getButtons(currentScreen); // 버튼 목록 가져오기
for (ButtonWidget button : buttons) {
if (button.getMessage().getString().equals("Singleplayer")) {
button.visible = false; // 버튼을 숨깁니다.
}
}
}
});
});
}
}
처음에는 이곳저곳 강의 보면서 천천히 해보다가 계속 빌드가 안되길레
쳇 지피티의 도움받아 수정을 몇번 했더니 import는 점점 늘어나고 뭐가뭔지 더 이해가 안되고 빌드는 계속 안되고 있는 상황입니다..
보시고 자그마한 조언한줄 해주시면 정말 감사드리겠습니다.
노을넴
2024.09.28물은역시삼다수
2024.09.28아 알겠습니다! 감사합니다!!!
코코냐
2024.09.28마크 자체가 소스가 제대로 풀려있지 않기 때문에, GPT에는 제대로 코드 학습이 되어있지 않습니다.
문서를 보면서 처음부터 다시 작성하셔야합니다.
물은역시삼다수
2024.09.28아 그렇군요 감사합니다!