Мне нужно изменить главное меню Minecraft с помощью Minecraft Forge. Мне удалось изменить базовый код, чтобы скопировать файл сохранения в папку Saves, а затем загрузить это сохранение. Но когда я его компилирую, это не сработает. Я предполагаю, что это потому, что его базовый класс, который я редактировал, и он не входит в состав компиляции. Я также понимаю, что я не должен редактировать базовые очки, но он не будет мешать никому, поэтому все должно быть в порядке. Есть ли способ компилировать базовые очки, которые были отредактированы, или, возможно, другой способ редактирования главного меню. Я читал о прерывании загрузки графического интерфейса и замене его собственным, но я не нашел хорошего способа сделать это.Главное меню Forge override
Ниже приведен код, слегка урезанная: net.minecraft.client.gui.GuiMainMenu.java
private void addSingleplayerMultiplayerButtons(int p_73969_1_, int p_73969_2_)
{
this.buttonList.add(new GuiButton(15, this.width/2 - 100, p_73969_1_, I18n.format("Quickplay", new Object[0])));
}
protected void actionPerformed(GuiButton p_146284_1_)
{
if (p_146284_1_.id == 15)
{
// Clone and create new map
File srcFolder = new File(System.getProperty("user.dir") + "\\quickMap");
File destFolder = new File(System.getProperty("user.dir") + "\\saves\\tempQuickMap");
//make sure source exists
if(!srcFolder.exists()){
//System.out.println("Directory does not exist.");
//just exit
//System.exit(0);
}else{
try{
copyFolder(srcFolder,destFolder);
}catch(IOException e){
e.printStackTrace();
//error, just exit
//System.exit(0);
}
}
//System.out.println("Done");
// Cloning done
if (this.mc.getSaveLoader().canLoadWorld("tempQuickMap"))
{
FMLClientHandler.instance().tryLoadExistingWorldMainMenu(this, "tempQuickMap", "Quickplay map");
}
}
}
Эй! Не редактируйте вещи, начиная с 'net.minecraft. *' Или 'net.minecraftforge. *'! Вместо этого используйте ASM! –
Я нахожусь в 1.7.x, и я не думаю, что смогу использовать ASM с этой версией. Это API для «редактирования базовых классов без редактирования базовых классов», ey? Тем не менее, ни один из других модов, которые я буду использовать, будет мешать редактированию базового класса, так что это не будет проблемой :) –