diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-06-10 18:17:56 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-06-10 18:17:56 +0800 |
| commit | 40733b679fc63216290259d09c9ee64cc74be5fc (patch) | |
| tree | 5cd037a63b095ff4db69253cf7e5c082481dc662 /src/main/java/me | |
| parent | 28adfa726bcdb27eea4ffa39962c881d5c3d929b (diff) | |
| download | RoughlyEnoughItems-40733b679fc63216290259d09c9ee64cc74be5fc.tar.gz RoughlyEnoughItems-40733b679fc63216290259d09c9ee64cc74be5fc.tar.bz2 RoughlyEnoughItems-40733b679fc63216290259d09c9ee64cc74be5fc.zip | |
single thread recipe sync & fix bug
Fix #105
Diffstat (limited to 'src/main/java/me')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java | 5 | ||||
| -rw-r--r-- | src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java | 2 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java index e967bf32c..e8d8b5c6b 100644 --- a/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java +++ b/src/main/java/me/shedaniel/rei/RoughlyEnoughItemsCore.java @@ -43,6 +43,8 @@ import java.util.List; import java.util.Map; import java.util.Optional; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; public class RoughlyEnoughItemsCore implements ClientModInitializer { @@ -53,6 +55,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { private static final ItemRegistry ITEM_REGISTRY = new ItemRegistryImpl(); private static final DisplayHelper DISPLAY_HELPER = new DisplayHelperImpl(); private static final Map<Identifier, REIPluginEntry> plugins = Maps.newHashMap(); + private static final ExecutorService SYNC_RECIPES = Executors.newSingleThreadScheduledExecutor(r -> new Thread(r, "REI-SyncRecipes")); private static ConfigManagerImpl configManager; static { @@ -208,7 +211,7 @@ public class RoughlyEnoughItemsCore implements ClientModInitializer { private void registerClothEvents() { ClothClientHooks.SYNC_RECIPES.register((minecraftClient, recipeManager, synchronizeRecipesS2CPacket) -> { if (RoughlyEnoughItemsCore.getConfigManager().getConfig().registerRecipesInAnotherThread) - CompletableFuture.runAsync(() -> ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(recipeManager)); + CompletableFuture.runAsync(() -> ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(recipeManager), SYNC_RECIPES); else ((RecipeHelperImpl) RoughlyEnoughItemsCore.getRecipeHelper()).recipesLoaded(recipeManager); }); diff --git a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java index 4d0ec388a..adc503287 100644 --- a/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java +++ b/src/main/java/me/shedaniel/rei/gui/RecipeViewingScreen.java @@ -289,7 +289,7 @@ public class RecipeViewingScreen extends Screen { int displayWidth = selectedCategory.getDisplayWidth(displaySupplier.get()); final Rectangle displayBounds = new Rectangle((int) getBounds().getCenterX() - displayWidth / 2, getBounds().y + 40 + recipeHeight * i + 7 * i, displayWidth, recipeHeight); widgets.addAll(selectedCategory.setupDisplay(displaySupplier, displayBounds)); - if (supplier.isPresent()) + if (supplier.isPresent() && supplier.get().get(displayBounds) != null) widgets.add(new SpeedCraftingButtonWidget(supplier.get().get(displayBounds), supplier.get().getButtonText(), functional, displaySupplier)); } if (choosePageActivated) |
