- Версия(и) Minecraft
- 1.12.2
Заметил, что для тестирования большую часть времени использую один мир, который сгенерил еще в самом начале.
Поэтому решил автоматизировать процесс входа в мир.
Код предельно простой, просто повторяет действия пользователя для входа в последний мир
Есть небольшой баг: при попытке выйти в главное меню вы перезайдете в мир, фиксится легко, вставкой флага, отмечающего, что уже заходили
Спасибо @Dahaka за kotlin-версию
Поэтому решил автоматизировать процесс входа в мир.
Код предельно простой, просто повторяет действия пользователя для входа в последний мир
Scala:
@SubscribeEvent
def onMainMenu(event: GuiOpenEvent): Unit =
event.getGui match {
case guiMainMenu: GuiMainMenu => mc.displayGuiScreen(new GuiWorldSelection(guiMainMenu))
case selection: GuiWorldSelection =>
val guiListWorldSelection = new GuiListWorldSelection(selection, mc, 100, 100, 32, 100 - 64, 36)
Try(guiListWorldSelection.getListEntry(0).joinWorld())
case _ =>
}
Java:
@SubscribeEvent
public void loadLastWorld(GuiOpenEvent event) {
Minecraft mc = Minecraft.getMinecraft();
if (event.getGui() instanceof GuiMainMenu) {
mc.displayGuiScreen(new GuiWorldSelection((GuiMainMenu)event.getGui()));
}else if (event.getGui() instanceof GuiWorldSelection ) {
GuiListWorldSelection guiListWorldSelection = new GuiListWorldSelection((GuiWorldSelection)event.getGui(), mc, 100, 100, 32, 100 - 64, 36);
try{
guiListWorldSelection.getListEntry(0).joinWorld();
}catch(Exception ignore){}
}
}
Kotlin:
@SubscribeEvent
fun loadLastWorld(e: GuiOpenEvent) = when (e.gui) {
is GuiMainMenu -> mc.displayGuiScreen(GuiWorldSelection(e.gui as GuiMainMenu))
is GuiWorldSelection -> try {
GuiListWorldSelection(e.gui as GuiWorldSelection), mc, 100, 100, 32, 100 - 64, 36).getListEntry(0).joinWorld()
} catch (ignore: Throwable) {}
}