Skip to content

Commit 0fb5128

Browse files
committed
Show an error message when recipes are not synced from the server
1 parent b120e37 commit 0fb5128

File tree

3 files changed

+21
-1
lines changed

3 files changed

+21
-1
lines changed

Common/src/main/resources/assets/jei/lang/en_us.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,7 @@
311311
"jei.message.config.folder": "Or click here to open the JEI config folder instead",
312312
"jei.message.copy.recipe.id.success": "The following recipe ID was copied to the clipboard: %s",
313313
"jei.message.copy.recipe.id.failure": "Failed to copy the recipe ID to the clipboard because the ID is unknown",
314+
"jei.message.missing.recipes.from.server": "JEI is missing recipes. Please install JEI on the server to sync recipes to the client.\nSince Minecraft 1.21.2, recipes are stored on the server and not the client.",
314315

315316
"_comment": "Key Names",
316317
"jei.key.combo.shift": "SHIFT + %s",

Library/src/main/java/mezz/jei/library/plugins/vanilla/VanillaPlugin.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,11 @@ public void registerVanillaCategoryExtensions(IVanillaCategoryExtensionRegistrat
242242

243243
@Override
244244
public void registerRecipes(IRecipeRegistration registration) {
245+
RecipeMap clientSyncedRecipes = Internal.getClientSyncedRecipes();
246+
if (clientSyncedRecipes.values().isEmpty()) {
247+
return;
248+
}
249+
245250
ErrorUtil.checkNotNull(craftingCategory, "craftingCategory");
246251
ErrorUtil.checkNotNull(stonecuttingCategory, "stonecuttingCategory");
247252
ErrorUtil.checkNotNull(furnaceCategory, "furnaceCategory");
@@ -254,7 +259,6 @@ public void registerRecipes(IRecipeRegistration registration) {
254259
IVanillaRecipeFactory vanillaRecipeFactory = registration.getVanillaRecipeFactory();
255260
IJeiHelpers jeiHelpers = registration.getJeiHelpers();
256261

257-
RecipeMap clientSyncedRecipes = Internal.getClientSyncedRecipes();
258262
VanillaRecipes vanillaRecipes = new VanillaRecipes(clientSyncedRecipes);
259263

260264
var craftingRecipes = vanillaRecipes.getCraftingRecipes(craftingCategory);

Library/src/main/java/mezz/jei/library/startup/JeiStarter.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,10 @@
1515
import mezz.jei.common.config.file.FileWatcher;
1616
import mezz.jei.common.config.file.IConfigSchemaBuilder;
1717
import mezz.jei.common.platform.Services;
18+
import mezz.jei.common.util.ChatUtil;
1819
import mezz.jei.common.util.ErrorUtil;
1920
import mezz.jei.common.util.RegistryUtil;
21+
import mezz.jei.common.util.Translator;
2022
import mezz.jei.core.util.LoggedTimer;
2123
import mezz.jei.library.color.ColorHelper;
2224
import mezz.jei.library.config.ColorNameConfig;
@@ -35,8 +37,11 @@
3537
import mezz.jei.library.recipes.RecipeManager;
3638
import mezz.jei.library.runtime.JeiHelpers;
3739
import mezz.jei.library.runtime.JeiRuntime;
40+
import net.minecraft.ChatFormatting;
3841
import net.minecraft.client.Minecraft;
42+
import net.minecraft.client.player.LocalPlayer;
3943
import net.minecraft.core.RegistryAccess;
44+
import net.minecraft.world.item.crafting.RecipeMap;
4045
import org.apache.logging.log4j.LogManager;
4146
import org.apache.logging.log4j.Logger;
4247

@@ -184,6 +189,16 @@ public void start() {
184189
Internal.setRuntime(jeiRuntime);
185190

186191
totalTime.stop();
192+
193+
RecipeMap clientSyncedRecipes = Internal.getClientSyncedRecipes();
194+
if (clientSyncedRecipes.values().isEmpty()) {
195+
String message = Translator.translateToLocal("jei.message.missing.recipes.from.server");
196+
LocalPlayer player = minecraft.player;
197+
if (player != null) {
198+
ChatUtil.writeChatMessage(player, message, ChatFormatting.RED);
199+
}
200+
LOGGER.error(message);
201+
}
187202
}
188203

189204
public void stop() {

0 commit comments

Comments
 (0)