Hallo Leute,
ich programmiere gerade mit IntelliJ an MCreator herum. Das ist eine App, mit der man sich Minecraft-Mods erstellen kann. Da es dort noch keine Bannervorlagen gibt, möchte ich diese gerne hinzufügen. Es gab auch schonmal eine Pull-Request dafür, diese lässt sich hier finden. Da Bannervorlagen ein nützliches Mod-Element für MCreator wären, programmiere ich dieses gerade ein. Dazu kopiere ich mir die Inhalte aus der alten Pull-Request in das MCreator-Projekt in IntelliJ herein. Die gute Sache ist, dass das Erstellen und Speichern dieses Mod-Elements schon funktioniert, aber die schlechte Sache dabei ist, dass noch einige Fehler auftreten wie "Cannot find Symbol" (siehe Bild). Und immer, wenn ich im Code einen dieser Fehler korrigiert habe, kommen zwei neue Fehler. Das nervt mich auch ein bisschen.
Hier noch das Bild mit den Fehlern:
Und hier die Fehler in der Konsole als Code mit Spoiler, falls das Bild nicht so gut lesbar sein sollte:
Ich kann schon verstehen, was der Fehler bedeutet, nachdem ChatGPT es mir erklärt hat. Ich könnte die Fehler theoretisch auch versuchen, alleine zu beheben, aber da ich noch neu in der Java-Programmierung bin, möchte ich lieber, dass jemand erfahrenes mir hierbei hilft.
Die Fehler treten übrigens nur in diesen Dateien auf:
Hier noch der fehlerhafte Quellcode:
BannerPatterns.java.ftl:
Bannerpattern_Tag_Provider.java.ftl:
Außerdem werden die Texturen für Banner und Schild im falschen Verzeichnis abgespeichert. Bei der Korrektur davon brauche ich auch Hilfe.
Liebe Grüße und einen Guten Rutsch,
Atten007 😊
ich programmiere gerade mit IntelliJ an MCreator herum. Das ist eine App, mit der man sich Minecraft-Mods erstellen kann. Da es dort noch keine Bannervorlagen gibt, möchte ich diese gerne hinzufügen. Es gab auch schonmal eine Pull-Request dafür, diese lässt sich hier finden. Da Bannervorlagen ein nützliches Mod-Element für MCreator wären, programmiere ich dieses gerade ein. Dazu kopiere ich mir die Inhalte aus der alten Pull-Request in das MCreator-Projekt in IntelliJ herein. Die gute Sache ist, dass das Erstellen und Speichern dieses Mod-Elements schon funktioniert, aber die schlechte Sache dabei ist, dass noch einige Fehler auftreten wie "Cannot find Symbol" (siehe Bild). Und immer, wenn ich im Code einen dieser Fehler korrigiert habe, kommen zwei neue Fehler. Das nervt mich auch ein bisschen.
Hier noch das Bild mit den Fehlern:
Und hier die Fehler in der Konsole als Code mit Spoiler, falls das Bild nicht so gut lesbar sein sollte:
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerPatterns.java:9[/U]: error: cannot find symbol
import net.minecraftforge.common.BannerPattern;
^
symbol: class BannerPattern
location: package net.minecraftforge.common
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerPatterns.java:16[/U]: error: cannot find symbol
public static final DeferredRegister<BannerPattern> REGISTRY = DeferredRegister.create(BannerPattern.class, BannertestMod.MODID);
^
symbol: class BannerPattern
location: class BannertestModBannerPatterns
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerPatterns.java:17[/U]: error: cannot find symbol
public static final RegistryObject<BannerPattern> TEST = REGISTRY.register("test", () -> new BannerPattern(new ResourceLocation(BannertestMod.MODID, "test")));
^
symbol: class BannerPattern
location: class BannertestModBannerPatterns
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerPatterns.java:16[/U]: error: cannot find symbol
public static final DeferredRegister<BannerPattern> REGISTRY = DeferredRegister.create(BannerPattern.class, BannertestMod.MODID);
^
symbol: class BannerPattern
location: class BannertestModBannerPatterns
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerPatterns.java:17[/U]: error: cannot find symbol
public static final RegistryObject<BannerPattern> TEST = REGISTRY.register("test", () -> new BannerPattern(new ResourceLocation(BannertestMod.MODID, "test")));
^
symbol: class BannerPattern
location: class BannertestModBannerPatterns
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModItems.java:18[/U]: error: cannot find symbol
public static final RegistryObject<Item> TEST = REGISTRY.register("test", () -> new BannerPatternItem(BannertestModBannerPatterns.TEST_PATTERN_TAG, new Item.Properties().stacksTo(1).tab(null)));
^
symbol: variable TEST_PATTERN_TAG
location: class BannertestModBannerPatterns
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModItems.java:18[/U]: error: cannot find symbol
public static final RegistryObject<Item> TEST = REGISTRY.register("test", () -> new BannerPatternItem(BannertestModBannerPatterns.TEST_PATTERN_TAG, new Item.Properties().stacksTo(1).tab(null)));
^
symbol: method tab(<null>)
location: class Properties
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerTagProvider.java:16[/U]: error: BannertestModBannerTagProvider is not abstract and does not override abstract method addTags(Provider) in TagsProvider public class BannertestModBannerTagProvider extends TagsProvider<BannerPattern> {
^
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerTagProvider.java:18[/U]: error: cannot find symbol super(dataGenerator, Registry.BANNER_PATTERN, BannertestMod.MODID, existingFileHelper);
^
symbol: variable BANNER_PATTERN
location: interface Registry
[U]/Users/mika/MCreatorWorkspaces/bannertest/src/main/java/net/mcreator/bannertest/init/BannertestModBannerTagProvider.java:22[/U]: error: cannot find symbol this.tag(BannertestModBannerPatterns.TEST_PATTERN_TAG).add(BannertestModBannerPatterns.TEST.get());
^
symbol: variable TEST_PATTERN_TAG
location: class BannertestModBannerPatterns
Ich kann schon verstehen, was der Fehler bedeutet, nachdem ChatGPT es mir erklärt hat. Ich könnte die Fehler theoretisch auch versuchen, alleine zu beheben, aber da ich noch neu in der Java-Programmierung bin, möchte ich lieber, dass jemand erfahrenes mir hierbei hilft.
Die Fehler treten übrigens nur in diesen Dateien auf:
- BannerTagProvider.java
- BannerPatterns.java
Hier noch der fehlerhafte Quellcode:
BannerPatterns.java.ftl:
Java:
package ${package}.init;
import net.minecraft.world.item.BannerPattern;
public abstract class ${JavaModName}BannerPatterns {
<#list bannerpatterns as bannerpattern>
public static final BannerPattern ${bannerpattern.getModElement().getRegistryNameUpper()} = addBanner("${bannerpattern.getModElement().getRegistryName()}");
</#list>
public static BannerPattern addBanner(String name) {
return BannerPattern.create(name.toUpperCase(), name, "${modid}." + name, true);
}
}
Bannerpattern_Tag_Provider.java.ftl:
Java:
package ${package}.init;
public class ${JavaModName}BannerTagProvider extends TagsProvider<BannerPattern> {
public ${JavaModName}BannerTagProvider(DataGenerator dataGenerator, ExistingFileHelper existingFileHelper) {
super(dataGenerator, Registry.BANNER_PATTERN, ${JavaModName}.MODID, existingFileHelper);
}
protected void addTags() {
<#list bannerpatterns as bannerpattern>
this.tag(${JavaModName}BannerPatterns.${bannerpattern.getModElement().getRegistryNameUpper()}_PATTERN_TAG).add(${JavaModName}BannerPatterns.${bannerpattern.getModElement().getRegistryNameUpper()}.get());
</#list>
}
}
Außerdem werden die Texturen für Banner und Schild im falschen Verzeichnis abgespeichert. Bei der Korrektur davon brauche ich auch Hilfe.
Liebe Grüße und einen Guten Rutsch,
Atten007 😊
Zuletzt bearbeitet: