Skip to content

Commit 26a5fd8

Browse files
committed
Adapt to OnlyIn removal
NeoForge 21.7.3 has removed OnlyIn from production. This fixes the crash on startup when Architectury API is used on this version.
1 parent eb06bdf commit 26a5fd8

File tree

4 files changed

+31
-23
lines changed

4 files changed

+31
-23
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ fabric_api_version=0.128.1+1.21.7
1919
mod_menu_version=15.0.0-beta.1
2020

2121
forge_version=51.0.0
22-
neoforge_version=21.7.1-beta
22+
neoforge_version=21.7.3-beta
2323

2424
# Set to empty if not snapshots
2525
neoforge_pr=

neoforge/src/main/java/dev/architectury/hooks/client/forge/ClientExtensionsRegistryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
import java.util.List;
3131
import java.util.function.Consumer;
3232

33-
@EventBusSubscriber(modid = ArchitecturyConstants.MOD_ID, bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
33+
@EventBusSubscriber(modid = ArchitecturyConstants.MOD_ID, value = Dist.CLIENT)
3434
public class ClientExtensionsRegistryImpl {
3535
private static final List<Consumer<@Nullable RegisterClientExtensionsEvent>> CALLBACKS = new ArrayList<>();
3636
private static boolean called = false;

neoforge/src/main/java/dev/architectury/networking/forge/NetworkManagerImpl.java

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import dev.architectury.utils.Env;
3131
import net.minecraft.client.Minecraft;
3232
import net.minecraft.core.RegistryAccess;
33-
import net.minecraft.core.registries.BuiltInRegistries;
3433
import net.minecraft.network.RegistryFriendlyByteBuf;
3534
import net.minecraft.network.codec.StreamCodec;
3635
import net.minecraft.network.protocol.Packet;
@@ -49,6 +48,9 @@
4948
import net.neoforged.neoforge.network.handling.IPayloadContext;
5049
import org.slf4j.Logger;
5150

51+
import static dev.architectury.networking.forge.client.ClientNetworkManagerImpl.getClientPlayer;
52+
import static dev.architectury.networking.forge.client.ClientNetworkManagerImpl.getClientRegistryAccess;
53+
5254
public class NetworkManagerImpl {
5355
private static final Logger LOGGER = LogUtils.getLogger();
5456

@@ -134,24 +136,4 @@ public static boolean canPlayerReceive(ServerPlayer player, ResourceLocation id)
134136
public static Packet<ClientGamePacketListener> createAddEntityPacket(Entity entity, ServerEntity serverEntity) {
135137
return SpawnEntityPacket.create(entity, serverEntity);
136138
}
137-
138-
@OnlyIn(Dist.CLIENT)
139-
public static Player getClientPlayer() {
140-
return Minecraft.getInstance().player;
141-
}
142-
143-
@OnlyIn(Dist.CLIENT)
144-
public static RegistryAccess getClientRegistryAccess() {
145-
if (Minecraft.getInstance().level != null) {
146-
return Minecraft.getInstance().level.registryAccess();
147-
} else if (Minecraft.getInstance().getConnection() != null) {
148-
return Minecraft.getInstance().getConnection().registryAccess();
149-
} else if (Minecraft.getInstance().gameMode != null) {
150-
// Sometimes the packet is sent way too fast and is between the connection and the level, better safe than sorry
151-
return Minecraft.getInstance().gameMode.connection.registryAccess();
152-
}
153-
154-
// Fail-safe
155-
return RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY);
156-
}
157139
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package dev.architectury.networking.forge.client;
2+
3+
import net.minecraft.client.Minecraft;
4+
import net.minecraft.core.RegistryAccess;
5+
import net.minecraft.core.registries.BuiltInRegistries;
6+
import net.minecraft.world.entity.player.Player;
7+
8+
public class ClientNetworkManagerImpl {
9+
public static Player getClientPlayer() {
10+
return Minecraft.getInstance().player;
11+
}
12+
13+
public static RegistryAccess getClientRegistryAccess() {
14+
if (Minecraft.getInstance().level != null) {
15+
return Minecraft.getInstance().level.registryAccess();
16+
} else if (Minecraft.getInstance().getConnection() != null) {
17+
return Minecraft.getInstance().getConnection().registryAccess();
18+
} else if (Minecraft.getInstance().gameMode != null) {
19+
// Sometimes the packet is sent way too fast and is between the connection and the level, better safe than sorry
20+
return Minecraft.getInstance().gameMode.connection.registryAccess();
21+
}
22+
23+
// Fail-safe
24+
return RegistryAccess.fromRegistryOfRegistries(BuiltInRegistries.REGISTRY);
25+
}
26+
}

0 commit comments

Comments
 (0)