Привет, я в моддинге относительно недавно и вот возникла задача - отменить сброс погоды после сна игрока. Свои попытки разделю на три варианта.
Весь день курю эту вроде бы небольшую манипуляцию с ванильным кодом.
Я взял MCP от 1.12, впихнул MCP-SRG и маппинги как у Forge. Нашёл нужный класс, сделал правки, получил пару обфусцированных классов. Вставил их в Jar, игра запускается (благо о нужных аргументах для отключения проверок знаем) но краш при входе в мир. Правка - вырезать к чертям кусок кода (проверка и выполнение метода сброса погоды):
Java:
protected void wakeAllPlayers()
{
this.allPlayersSleeping = false;
for (EntityPlayer entityplayer : this.playerEntities.stream().filter(EntityPlayer::isPlayerSleeping).collect(Collectors.toList()))
{
entityplayer.wakeUpPlayer(false, false, true);
}
if (this.getGameRules().getBoolean("doWeatherCycle"))
{
this.resetRainAndThunder();
}
//Вырезать кусок кода вверху
}
Взять и через @overwrite перезаписать сам метод сброса погоды (resetRainAndThunder) сделав мод с миксином. Формально, такой костыль работает, но не работает команда /weather clean.
Весь день курю эту вроде бы небольшую манипуляцию с ванильным кодом.