[JAVA] Konstruktion der Minecraft Mod-Entwicklungsumgebung (IntelliJ IDEA + Minecraft Forge 1.15.2) + Hello World Mod-Erstellung

Überblick

Umgebung

Erstellen Sie eine Entwicklungsumgebung auf IntelliJ IDEA

Java 8-Installation

Java 11 oder höher wird in dieser Entwicklungsumgebung nicht unterstützt, daher muss Java 8 im Voraus installiert werden.

Referenz: Java 8 \ (OpenJDK: AdoptOpenJDK ) unter macOS mit Homebrew \ -Qiita installieren

Laden Sie Mdk (Mod Development Kit) herunter

Laden Sie Mdk (Mod Development Kit) von Minecraft Forge 1.15.2-31.1.0, der derzeit empfohlenen Umgebung (Stand 16. Februar 2020), von Minecraft Forge herunter. Machen.

minecraft-forge-01.png

Extrahieren Sie die heruntergeladene Schmiede-1.15.2-31.1.0-mdk.zip.

$ unzip forge-1.15.2-31.1.0-mdk.zip 
Archive:  forge-1.15.2-31.1.0-mdk.zip
  inflating: gradlew                 
  inflating: gradlew.bat             
  inflating: CREDITS.txt             
  inflating: LICENSE.txt             
  inflating: changelog.txt           
   creating: gradle/
   creating: gradle/wrapper/
  inflating: gradle/wrapper/gradle-wrapper.properties  
  inflating: gradle/wrapper/gradle-wrapper.jar  
  inflating: .gitignore              
   creating: src/
   creating: src/main/
   creating: src/main/java/
   creating: src/main/java/com/
   creating: src/main/java/com/example/
   creating: src/main/java/com/example/examplemod/
  inflating: src/main/java/com/example/examplemod/ExampleMod.java  
   creating: src/main/resources/
  inflating: src/main/resources/pack.mcmeta  
   creating: src/main/resources/META-INF/
  inflating: src/main/resources/META-INF/mods.toml  
  inflating: build.gradle            
  inflating: README.txt              
  inflating: gradle.properties       

README.txt enthält Anweisungen zum Einrichten.

If you prefer to use IntelliJ:

  1. Open IDEA, and import project.
  2. Select your build.gradle file and have it import.
  3. Run the following command: "gradlew genIntellijRuns" (./gradlew genIntellijRuns if you are on Mac/Linux)
  4. Refresh the Gradle Project in IDEA if required.

Referenz: MinecraftForge / mdk unter 1 \ .15 \ .x · MinecraftForge / MinecraftForge · GitHub

Projekt mit IntelliJ IDEA importieren

Erstellen Sie ein Projekt, indem Sie den Ordner angeben, der von Import Project with IntelliJ IDEA extrahiert wurde.

minecraft-forge-02.png

Wenn die folgende Meldung ausgegeben wird, wurde die entsprechende Java-Version nicht festgelegt.

> Failed to apply plugin [id 'net.minecraftforge.gradle']
   > Found java version null. Minimum required is 1.8.0_101. Versions 11.0.0 and newer are not supported yet.

IntelliJ-Einstellungen Einstellungen> Erstellen, Ausführen, Bereitstellen> Build-Tools> Gradle> Gradle JVM erfordert die Angabe von Java 8 oder höher.

./gradlew genIntellijRuns

Führen Sie ./gradlew genIntellijRuns aus, z. B. im IntelliJ IDEA Terminal.

$ ./gradlew genIntellijRuns

Da auch hier Java 8 oder höher verwendet wird, stellen Sie es nach Bedarf ein. Referenz: Java 8 \ (OpenJDK: AdoptOpenJDK ) unter macOS mit Homebrew \ -Qiita installieren

Starten Sie Minecraft Forge for Development

Minecraft wird gestartet, wenn Sie Aufgaben> fg_runs> runClient im Gradle-Tool-Fenster in der oberen rechten Ecke von IntelliJ IDEA oder ./gradlew runClient vom Terminal usw. ausführen.

minecraft-forge-03.png

Wenn Sie auf "Mods" klicken, können Sie sehen, dass der in Mdk enthaltene Beispiel-Mod geladen ist.

minecraft-forge-04.png

Über Beispiel Mod

Mdk enthält den Quellcode von Example Mod als Beispiel für die Mod-Entwicklung.

Quellcodeliste.

Sie können den Inhalt des Quellcodes auch unter [MinecraftForge / mdk unter 1 \ .15 \ .x · MinecraftForge / MinecraftForge · GitHub] überprüfen (https://github.com/MinecraftForge/MinecraftForge/tree/1.15.x/mdk). Möglich.

Erstellen eines Hello World Mod

Erstellen Sie einen Mod, der eine einfache Hello World in der entwickelten Entwicklungsumgebung realisiert.

Quellcodeliste

src/main/java/com/example/HelloWorldMod.java

Schreibe eine Java-Klasse, die die Hauptverarbeitung des Mods durchführt.

package com.example;

import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.ITextComponent;
import net.minecraft.util.text.StringTextComponent;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;

@Mod("helloworldmod") // META-INF/mods.modId beschrieben in toml
public class HelloWorldMod {

  public HelloWorldMod() {
    // MinecraftForge.EVENT_Ein Objekt mit einer Handlermethode für Ereignisse, die von BUS verarbeitet werden(this)Registrieren
    MinecraftForge.EVENT_BUS.register(this);
  }

  /**
   *Eine Event-Handler-Methode, die ausgeführt wird, wenn sich der Player anmeldet.
   *Der Methodenname kann beliebig sein.
   *
   * @param event PlayerLoggedInEvent-Objekt
   */
  @SubscribeEvent
  public void onPlayerLoggedIn(PlayerEvent.PlayerLoggedInEvent event) {
    PlayerEntity player = event.getPlayer();
    BlockPos pos = player.getPosition();
    String message =
      "Hello, World!\n"
        + "[name]=[" + player.getName().getFormattedText() + "]\n"
        + "[pos]=[" + pos.getX() + "," + pos.getY() + "," + pos.getZ() + "]";
    ITextComponent text = new StringTextComponent(message);
    player.sendMessage(text);
  }
}

src/main/resources/pack.mcmeta

Informationsbeschreibungsdatei für Ressourcenpakete. Ohne diese Datei tritt ein Fehler wie "Fehler beim Laden eines gültigen ResourcePackInfo" auf. Hier werden nur die Mindestinhalte beschrieben.

{
  "pack": {
    "description": "Hello World mod resources",
    "pack_format": 5
  }
}

src/main/resources/META-INF/mods.toml

Mod Informationsbeschreibungsdatei. Hier werden nur die Mindestinhalte beschrieben.

modLoader="javafml"
loaderVersion="[31,)"

[[mods]]
modId="helloworldmod"
version="1.2.3"
displayName="Hello World Mod"
description='''
This is the ...
Hello World mod.
'''

build.gradle

Konfigurationsdatei für Gradle erstellen. Hier werden nur die Mindestinhalte beschrieben.

buildscript {
  repositories {
    maven { url = 'https://files.minecraftforge.net/maven' }
    jcenter()
    mavenCentral()
  }
  dependencies {
    classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '3.+', changing: true
  }
}
apply plugin: 'net.minecraftforge.gradle'

version = '1.2.3'
group = 'com.example.helloworld'
archivesBaseName = 'helloworldmod'

sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8'

minecraft {
  mappings channel: 'snapshot', version: '20190719-1.14.3'
  runs {
    client {
      workingDirectory project.file('run')
      property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP'
      property 'forge.logging.console.level', 'debug'
      mods {
        helloworldmod {
          source sourceSets.main
        }
      }
    }
  }
}

dependencies {
  minecraft 'net.minecraftforge:forge:1.15.2-31.1.0'
}

Generieren Sie eine JAR-Datei zur Verteilung

Führen Sie Aufgaben> Erstellen> Erstellen im Gradle-Tool-Fenster in der oberen rechten Ecke von IntelliJ IDEA aus oder führen Sie ./gradlew Build vom Terminal aus usw.

$ ./gradlew build

Die JAR-Datei für die Verteilung wird in das Verzeichnis build / libs ausgegeben.

$ ls build/libs/
helloworldmod-1.2.3.jar

Laufen Sie mit Minecraft Forge

Starten Sie den regulären Minecraft Java Edition Minecraft Launcher und konfigurieren Sie die Konfiguration für Minecraft Forge 1.15.2-31.1.0.

minecraft-forge-05.png

Platziere die erstellte JAR-Datei mit der von dir festgelegten Konfiguration im Mods-Verzeichnis des Spieleverzeichnisses und starte Minecraft Forge 1.15.2-31.1.0.

minecraft-forge-08.png

Sie können sehen, dass Hello World Mod geladen ist.

minecraft-forge-06.png

Wenn Sie die Welt betreten, wird Hello World in der Chat-Spalte angezeigt.

minecraft-forge-07.png

Referenzmaterial

Recommended Posts

Konstruktion der Minecraft Mod-Entwicklungsumgebung (IntelliJ IDEA + Minecraft Forge 1.15.2) + Hello World Mod-Erstellung
Erstellen einer Entwicklungsumgebung mit IntelliJ IDEA + Maven + Tomcat 9
Versuchen Sie, mit Minecraft Forge 1.15.1 zu modifizieren. ① [Gebäudeentwicklungsumgebung] [Mehrere Versionen werden unterstützt] [IntelliJ IDEA]
Minimale Java-Umgebungskonstruktion und Hello World
Zusammenfassung der Fehler beim Erstellen der Minecraft MOD-Entwicklungsumgebung
Einführung in Slay the Spire Mod Development (2) Konstruktion der Entwicklungsumgebung
Java Entwicklungsumgebung Konstruktion
JavaFX-Anwendungsentwicklung mit IntelliJ IDEA und Gradle ~ Von der Umgebungskonstruktion bis zum Beispielcode ~
Erstellen Sie mit IntelliJ IDEA eine Entwicklungsumgebung "Spring Thorough Introduction"
Aufbau der Rails6-Entwicklungsumgebung [Mac]
Zusammenfassung der Fehler beim Erstellen der Minecraft MOD-Entwicklungsumgebung
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [6. Rezept hinzufügen]
Einführung in die Entwicklung der Spire Mod-Entwicklung (3) Definition der Originalkarte
Konstruktion der Minecraft Mod-Entwicklungsumgebung (IntelliJ IDEA + Minecraft Forge 1.15.2) + Hello World Mod-Erstellung
Entwicklung von Flink mit der DataStream-API
[Rails 6] API-Entwicklung mit GraphQL (Query)
minecraft1.14.4 MOD-Entwicklungsmemorandum 1 [Originalrezept]
Zusammenfassung der Fehler beim Erstellen der Minecraft MOD-Entwicklungsumgebung
Entwicklung von DSL mit ANTLR 4.7.1
Umgebungskonstruktion für die Entwicklung von Servlet-Anwendungen
[Unity] Konstruktionsverfahren für die Android-Entwicklungsumgebung
(Intellij) Hallo Welt mit Spring Boot
Spring5 MVC-Webanwendungsentwicklung mit Visual Studio-Code Hello World Creation
Spring Boot2-Webanwendungsentwicklung mit Visual Studio Code Hello World-Erstellung