개인 자료란 (JE)

  서버 커뮤니티

Profile 물은역시삼다수 대표칭호 없음

Cheese_Skull ce81f69374424858a1b11328fc1235ab

Profile

질문하기 모드

안녕하세요! 모드 만들어보기 위해 연습을 해보고 있는데요!

2024.09.28 조회 수 80 추천 수 0
이해도 입문자 
게임버전 (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는 점점 늘어나고 뭐가뭔지 더 이해가 안되고 빌드는 계속 안되고 있는 상황입니다..


보시고 자그마한 조언한줄 해주시면 정말 감사드리겠습니다.

4개의 댓글

노을넴
2024.09.28
  1. 프로그램은 IntelliJ IDEA 같은 통합 개발 환경을 사용하세욘
  2. 코드를 첨부할때는 파일을 통째로 올리거나 코드블럭을 사용하세욘
@노을넴

아 알겠습니다! 감사합니다!!!

코코냐
2024.09.28

마크 자체가 소스가 제대로 풀려있지 않기 때문에, GPT에는 제대로 코드 학습이 되어있지 않습니다.

문서를 보면서 처음부터 다시 작성하셔야합니다.

@코코냐

아 그렇군요 감사합니다!