Skip to content

Commit

Permalink
Update to 1.19.1 Pre-release 1
Browse files Browse the repository at this point in the history
ArgumentTypes.register now needs be called in listener of RegistryBootstrappedEvent
  • Loading branch information
acrylic-style committed Jun 22, 2022
1 parent 4406204 commit 7454a78
Show file tree
Hide file tree
Showing 12 changed files with 98 additions and 54 deletions.
2 changes: 1 addition & 1 deletion Blueberry-API/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ dependencies {
api("com.mojang:brigadier:1.0.18")
api("com.mojang:datafixerupper:5.0.28")
api("com.mojang:javabridge:1.2.24")
api("com.mojang:authlib:3.6.42")
api("com.mojang:authlib:3.7.43")
api("it.unimi.dsi:fastutil:8.5.6")
api("io.netty:netty-all:4.1.77.Final")
api("org.apache.commons:commons-lang3:3.12.0")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

import net.blueberrymc.client.command.ClientBlueberryCommand;
import net.blueberrymc.client.commands.ClientCommandManager;
import net.blueberrymc.command.argument.ArgumentTypes;
import net.blueberrymc.command.argument.ModIdArgument;
import net.blueberrymc.common.Blueberry;
import net.blueberrymc.common.Side;
import net.blueberrymc.common.bml.config.CompoundVisualConfig;
Expand All @@ -16,7 +14,6 @@
import net.blueberrymc.registry.BlueberryRegistries;
import net.blueberrymc.util.NameGetter;
import net.blueberrymc.world.item.SimpleBlueberryItem;
import net.minecraft.commands.synchronization.SingletonArgumentInfo;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
Expand All @@ -41,14 +38,26 @@ public class InternalBlueberryMod extends BlueberryMod {

@Override
public void onLoad() {
// debug
getLogger().debug("ClassLoader: " + InternalBlueberryMod.class.getClassLoader().getClass().getTypeName());

// discord rich presence
Blueberry.getUtil().updateDiscordStatus("Initializing the game", getStateList().getCurrentState().getName());

// config
onReload();
this.setVisualConfig(VisualConfigManager.createFromClass(InternalBlueberryModConfig.class));

// events & side-specific code
InternalBlueberryModListener listener = new InternalBlueberryModListener(this);
Blueberry.getEventManager().registerEvents(this, listener);
Blueberry.safeRunOnClient(() -> new VoidSafeExecutor() {
@Override
public void execute() {
// config
InternalBlueberryMod.this.getVisualConfig().onSave(InternalBlueberryMod.this::saveConfig);

// start scheduler
Blueberry.getUtil().getClientSchedulerOptional().ifPresent(scheduler ->
CLIENT_TIMER.scheduleAtFixedRate(new TimerTask() {
@Override
Expand All @@ -57,11 +66,20 @@ public void run() {
}
}, 1, 1)
).ifNotPresent(CLIENT_TIMER::cancel);
Blueberry.getEventManager().registerEvents(InternalBlueberryMod.this, new InternalBlueberryModListener(InternalBlueberryMod.this).createClient());

// register events
Blueberry.getEventManager().registerEvents(InternalBlueberryMod.this, listener.createClient());

// register /cblueberry client command
ClientCommandManager.register("cblueberry", new ClientBlueberryCommand());
}
});
Blueberry.runOnServer(() -> Blueberry.getEventManager().registerEvents(this, new InternalBlueberryModListener(this).createServer()));
Blueberry.runOnServer(() -> {
// register events
Blueberry.getEventManager().registerEvents(this, listener.createServer());
});

// start scheduler
AbstractBlueberryScheduler serverScheduler = Blueberry.getUtil().getServerScheduler();
SERVER_TIMER.scheduleAtFixedRate(new TimerTask() {
@Override
Expand All @@ -82,7 +100,6 @@ public void run() {
@Override
public void onPreInit() {
Blueberry.getUtil().updateDiscordStatus("Initializing the game", getStateList().getCurrentState().getName());
registerArgumentTypes();
registerFluids();
registerBlocks();
registerItems();
Expand Down Expand Up @@ -152,10 +169,6 @@ private void registerBlocks() {
private void registerFluids() {
}

private void registerArgumentTypes() {
ArgumentTypes.register("blueberry:modid", ModIdArgument.class, SingletonArgumentInfo.contextFree(ModIdArgument::modId));
}

@Override
public boolean onReload() {
// pre-reload
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,26 @@
package net.blueberrymc.common.bml;

import net.blueberrymc.client.event.render.gui.ScreenChangedEvent;
import net.blueberrymc.command.argument.ArgumentTypes;
import net.blueberrymc.command.argument.ModIdArgument;
import net.blueberrymc.common.Blueberry;
import net.blueberrymc.common.bml.event.EventHandler;
import net.blueberrymc.common.bml.event.Listener;
import net.blueberrymc.common.event.lifecycle.RegistryBootstrappedEvent;
import net.minecraft.commands.synchronization.SingletonArgumentInfo;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;

public record InternalBlueberryModListener(@NotNull InternalBlueberryMod mod) {
public record InternalBlueberryModListener(@NotNull InternalBlueberryMod mod) implements Listener {
@EventHandler
public static void onRegistryBootstrap(@NotNull RegistryBootstrappedEvent e) {
registerArgumentTypes();
}

private static void registerArgumentTypes() {
ArgumentTypes.register("blueberry:modid", ModIdArgument.class, SingletonArgumentInfo.contextFree(ModIdArgument::modId));
}

@Contract(value = " -> new", pure = true)
@NotNull
public Server createServer() {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package net.blueberrymc.common.event.lifecycle;

import net.blueberrymc.common.bml.event.Event;

public class RegistryBootstrappedEvent extends Event {
private static final RegistryBootstrappedEvent INSTANCE = new RegistryBootstrappedEvent();

private RegistryBootstrappedEvent() {
}

public static void fire() {
callEvent(INSTANCE);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Subject: [PATCH] Get our version instead of magmacube's


diff --git a/src/main/java/net/minecraft/DetectedVersion.java b/src/main/java/net/minecraft/DetectedVersion.java
index fb72e225f98cf4ead2d903a645965489ab3d121d..dcc312cb575a49d7339bd605ebe986f531a3a696 100644
index 89d5e1af7d0f8c96a20dc5239ab7a946325dadd2..37a07e2b3834d0d8df3bdc7a51f96b35f54ca0d9 100644
--- a/src/main/java/net/minecraft/DetectedVersion.java
+++ b/src/main/java/net/minecraft/DetectedVersion.java
@@ -26,7 +26,7 @@ public class DetectedVersion implements WorldVersion {
Expand Down Expand Up @@ -36,10 +36,10 @@ index fb72e225f98cf4ead2d903a645965489ab3d121d..dcc312cb575a49d7339bd605ebe986f5

public static WorldVersion tryDetectVersion() {
diff --git a/src/main/java/net/minecraft/client/Minecraft.java b/src/main/java/net/minecraft/client/Minecraft.java
index b1f602e434dcf90c1a6e27958d48b05732dfefee..39ac42c69f34a2acb2c2975b6f37675751944c50 100644
index f3e70e1c14b6f40e12149630fab7403f4f9cf092..a072b7833bb19a4c36e3864a0607e340b4948740 100644
--- a/src/main/java/net/minecraft/client/Minecraft.java
+++ b/src/main/java/net/minecraft/client/Minecraft.java
@@ -709,7 +709,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -723,7 +723,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
}

public String getLaunchedVersion() {
Expand Down
46 changes: 35 additions & 11 deletions MagmaCube-Patches/0004-Mods-support.patch
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ index da5ac7b22dd629ec1fffcdabc35743c161c5d611..89ff780da13eb16eb1a06fa4652c8604

public void setDetail(String s, String s2) {
diff --git a/src/main/java/net/minecraft/client/Minecraft.java b/src/main/java/net/minecraft/client/Minecraft.java
index 39ac42c69f34a2acb2c2975b6f37675751944c50..2c9ffb158155991c907a040fb2e9cebf17ff1b02 100644
index a072b7833bb19a4c36e3864a0607e340b4948740..a380300a103db76a57d85c5d3f796c9dff575688 100644
--- a/src/main/java/net/minecraft/client/Minecraft.java
+++ b/src/main/java/net/minecraft/client/Minecraft.java
@@ -453,7 +453,9 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -458,7 +458,9 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.mainRenderTarget = new MainTarget(this.window.getWidth(), this.window.getHeight());
this.mainRenderTarget.setClearColor(0.0F, 0.0F, 0.0F, 0.0F);
this.mainRenderTarget.clear(ON_OSX);
Expand All @@ -112,43 +112,53 @@ index 39ac42c69f34a2acb2c2975b6f37675751944c50..2c9ffb158155991c907a040fb2e9cebf
this.resourcePackRepository.reload();
this.options.loadSelectedResourcePacks(this.resourcePackRepository);
this.languageManager = new LanguageManager(this.options.languageCode);
@@ -467,6 +469,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -472,6 +474,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.splashManager = new SplashManager(this.user);
this.resourceManager.registerReloadListener(this.splashManager);
this.musicManager = new MusicManager(this);
+ net.blueberrymc.client.EarlyLoadingScreen.getInstance().blockUntilFinish(); // Blueberry
this.fontManager = new FontManager(this.textureManager);
this.font = this.fontManager.createFont();
this.resourceManager.registerReloadListener(this.fontManager.getReloadListener());
@@ -485,6 +488,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -490,6 +493,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.blockEntityRenderDispatcher = new BlockEntityRenderDispatcher(this.font, this.entityModels, this::getBlockRenderer, this::getItemRenderer, this::getEntityRenderDispatcher);
this.resourceManager.registerReloadListener(this.blockEntityRenderDispatcher);
BlockEntityWithoutLevelRenderer blockEntityWithoutLevelRenderer = new BlockEntityWithoutLevelRenderer(this.blockEntityRenderDispatcher, this.entityModels);
+ BlockEntityWithoutLevelRenderer.instance = blockEntityWithoutLevelRenderer; // Blueberry
this.resourceManager.registerReloadListener(blockEntityWithoutLevelRenderer);
this.itemRenderer = new ItemRenderer(this.textureManager, this.modelManager, this.itemColors, blockEntityWithoutLevelRenderer);
this.resourceManager.registerReloadListener(this.itemRenderer);
@@ -537,6 +541,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -543,6 +547,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.reportingContext = ReportingContext.create(ReportEnvironment.local(), this.userApiService);
LoadingOverlay.registerTextures(this);
List<PackResources> list = this.resourcePackRepository.openAllSelected();
+ net.blueberrymc.common.Blueberry.getModLoader().callInit(); // Blueberry
this.reloadStateTracker.startReload(ResourceLoadStateTracker.ReloadReason.INITIAL, list);
this.setOverlay(new LoadingOverlay(this, this.resourceManager.createReload(Util.backgroundExecutor(), this, RESOURCE_RELOAD_INITIAL_TASK, list), (optional) -> Util.ifElse(optional, this::rollbackResourcePacks, () -> {
if (SharedConstants.IS_RUNNING_IN_IDE) {
@@ -546,9 +551,9 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -552,8 +557,9 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.reloadStateTracker.finishReload();
}), false));
if (s != null) {
- ConnectScreen.startConnecting(new TitleScreen(), this, new ServerAddress(s, i), (ServerData)null);
+ this.setScreen(new net.blueberrymc.common.bml.client.gui.screens.ModLoadingProblemScreen(() -> ConnectScreen.startConnecting(new TitleScreen(), this, new ServerAddress(s, i), (ServerData)null))); // Blueberry
} else if (this.shouldShowBanNotice()) {
+ this.setScreen(new net.blueberrymc.common.bml.client.gui.screens.ModLoadingProblemScreen(() -> { // Blueberry
this.setScreen(BanNoticeScreen.create((flag) -> {
if (flag) {
Util.getPlatform().openUri("https://aka.ms/mcjavamoderation");
@@ -561,8 +567,9 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements

this.setScreen(new TitleScreen(true));
}, this.multiplayerBan()));
+ })); // Blueberry
} else {
- this.setScreen(new TitleScreen(true));
+ this.setScreen(new net.blueberrymc.common.bml.client.gui.screens.ModLoadingProblemScreen(new TitleScreen())); // Blueberry
}

}
@@ -725,9 +730,10 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -739,9 +746,10 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
}

public static void crash(CrashReport crashReport) {
Expand All @@ -160,31 +170,31 @@ index 39ac42c69f34a2acb2c2975b6f37675751944c50..2c9ffb158155991c907a040fb2e9cebf
if (crashReport.getSaveFile() != null) {
Bootstrap.realStdoutPrintln("#@!@# Game crashed! Crash report saved to: #@!@# " + crashReport.getSaveFile());
System.exit(-1);
@@ -880,6 +886,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -894,6 +902,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements

this.screen = screen;
BufferUploader.reset();
+ net.blueberrymc.client.event.ClientEventFactory.callScreenChangedEvent(this.screen); // Blueberry
if (screen != null) {
this.mouseHandler.releaseMouse();
KeyMapping.releaseAll();
@@ -895,6 +902,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -909,6 +918,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements

public void setOverlay(@Nullable Overlay overlay) {
this.overlay = overlay;
+ net.blueberrymc.client.event.ClientEventFactory.callOverlayChangedEvent(overlay); // Blueberry
}

public void destroy() {
@@ -919,6 +927,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -933,6 +943,7 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.screen.removed();
}

+ net.blueberrymc.common.Blueberry.shutdown();
this.close();
} finally {
Util.timeSource = System::nanoTime;
@@ -1703,6 +1712,10 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
@@ -1717,6 +1728,10 @@ public class Minecraft extends ReentrantBlockableEventLoop<Runnable> implements
this.pendingConnection.tick();
}

Expand Down Expand Up @@ -716,6 +726,20 @@ index 43f39473c5ef3de9e53e6722bea6a0a58382526e..f5254cecd40e9d643cb59316e929560a
void handleStatusResponse(ClientboundStatusResponsePacket var1);

void handlePongResponse(ClientboundPongResponsePacket var1);
diff --git a/src/main/java/net/minecraft/server/Bootstrap.java b/src/main/java/net/minecraft/server/Bootstrap.java
index 02f7c1a286a7b04be87bfca8bd7f2dbd186b0879..6c2ed40b1bdd9e566bcc48093f732d8965e83efe 100644
--- a/src/main/java/net/minecraft/server/Bootstrap.java
+++ b/src/main/java/net/minecraft/server/Bootstrap.java
@@ -52,7 +52,8 @@ public class Bootstrap {
EntitySelectorOptions.bootStrap();
DispenseItemBehavior.bootStrap();
CauldronInteraction.bootStrap();
- Registry.freezeBuiltins();
+ //Registry.freezeBuiltins(); // Blueberry - don't freeze registries
+ net.blueberrymc.common.event.lifecycle.RegistryBootstrappedEvent.fire(); // Blueberry
wrapStreams();
}
}
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
index 3ef4b97f18968f75213c7d3ce9276d91b46e26c9..3dddac41cf3163217f932217c90e6f21a69c8a68 100644
--- a/src/main/java/net/minecraft/server/Main.java
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ index 545dd6362633a1fabf73cbcc68e87bd90df23b17..e2ba61d1ecf81c74bd7be2a4cccd0daf
return ImmutableSet.of(this.namespace);
}
diff --git a/src/main/java/net/minecraft/server/packs/resources/MultiPackResourceManager.java b/src/main/java/net/minecraft/server/packs/resources/MultiPackResourceManager.java
index 2faeab1ffca93dae4357b353dfd671100615926b..a4e414c694239c5e136c4d60b6318e4667d73314 100644
index 62e8b49a734836c9ba3511b31ab5c37c93c8c568..a1e674d1e9a63e2ac4c97c15c9e40fc59f1ed3e6 100644
--- a/src/main/java/net/minecraft/server/packs/resources/MultiPackResourceManager.java
+++ b/src/main/java/net/minecraft/server/packs/resources/MultiPackResourceManager.java
@@ -22,7 +22,7 @@ public class MultiPackResourceManager implements CloseableResourceManager {
Expand All @@ -28,7 +28,7 @@ index 2faeab1ffca93dae4357b353dfd671100615926b..a4e414c694239c5e136c4d60b6318e46
- this.packs = List.copyOf(list);
+ this.packs = new java.util.ArrayList<>(list); // Blueberry
Map<String, FallbackResourceManager> map = new HashMap();
List<String> list2 = list.stream().flatMap((packResourcesx) -> packResourcesx.getNamespaces(packType).stream()).toList();
List<String> list2 = list.stream().flatMap((packResourcesx) -> packResourcesx.getNamespaces(packType).stream()).distinct().toList();

@@ -106,4 +106,6 @@ public class MultiPackResourceManager implements CloseableResourceManager {
public void close() {
Expand Down
20 changes: 0 additions & 20 deletions MagmaCube-Patches/0019-Prevent-freezing-builtin-registries.patch

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ const val LOG4J_VERSION = "2.17.1"
const val LWJGL_VERSION = "3.3.1"
@Suppress("unused") // see .github/workflows/build.yml
const val MAJOR_VERSION = "1.19"
const val MINECRAFT_VERSION = "22w24a"
const val CLIENT_JAR_URL = "https://piston-data.mojang.com/v1/objects/dc26b29eb345cbb60e3939af0b7c78fa52a60daa/client.jar"
const val SERVER_JAR_URL = "https://piston-data.mojang.com/v1/objects/fdad42550c3f0bcdc52680dcebd5b712d32bc5d7/server.jar"
const val CLIENT_MAPPING_URL = "https://piston-data.mojang.com/v1/objects/e30571a5d3b123b42dcf141570ed0737434e8c4c/client.txt"
const val MINECRAFT_VERSION = "1.19.1-pre1"
const val CLIENT_JAR_URL = "https://piston-data.mojang.com/v1/objects/6031a555a696b88b6dd39dd6ef034d70e7115a3c/client.jar"
const val SERVER_JAR_URL = "https://piston-data.mojang.com/v1/objects/a4d30a572176e81e115d36ec71bd2e67798ed14e/server.jar"
const val CLIENT_MAPPING_URL = "https://piston-data.mojang.com/v1/objects/b8b77a71ae0e9498d7fce7ebb8b6496718589eea/client.txt"
const val MAPPING_VERSION = "22w05a"
const val KOTLIN_VERSION = "1.6.10"

Expand All @@ -26,7 +26,7 @@ val SERVER_LIBRARIES_LIST = listOf(
"com.mojang:brigadier:1.0.18",
"com.mojang:datafixerupper:5.0.28",
"com.mojang:javabridge:1.2.24",
"com.mojang:authlib:3.6.42",
"com.mojang:authlib:3.7.43",
"com.mojang:logging:1.0.0",
"net.java.dev.jna:jna:5.9.0",
"net.java.dev.jna:jna-platform:5.9.0",
Expand Down

0 comments on commit 7454a78

Please sign in to comment.