diff options
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/common')
3 files changed, 17 insertions, 23 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/display/DisplaySerializerRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/display/DisplaySerializerRegistryImpl.java index 68cbf4c30..513941a5b 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/display/DisplaySerializerRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/display/DisplaySerializerRegistryImpl.java @@ -32,41 +32,37 @@ import net.minecraft.nbt.CompoundTag; import java.util.HashMap; import java.util.Map; -import java.util.Optional; +import java.util.Objects; public class DisplaySerializerRegistryImpl implements DisplaySerializerRegistry { - private final Map<CategoryIdentifier<?>, Holder<?>> serializers = new HashMap<>(); + private final Map<CategoryIdentifier<?>, DisplaySerializer<?>> serializers = new HashMap<>(); @Override public <D extends Display> void register(CategoryIdentifier<? extends D> categoryId, DisplaySerializer<D> serializer) { - Holder<D> holder = (Holder<D>) serializers.computeIfAbsent(categoryId, id -> new Holder<>()); - holder.serializer = Optional.of(serializer); + serializers.put(categoryId, serializer); } @Override public <D extends Display> void registerNotSerializable(CategoryIdentifier<D> categoryId) { - serializers.computeIfAbsent(categoryId, id -> new Holder<>()).serializer = Optional.empty(); - } - - @Override - public <D extends Display> boolean hasRegistered(CategoryIdentifier<D> categoryId) { - return serializers.containsKey(categoryId); + serializers.remove(categoryId); } @Override public <D extends Display> boolean hasSerializer(CategoryIdentifier<D> categoryId) { - Holder<?> holder = serializers.get(categoryId); - return holder != null && holder.serializer.isPresent(); + return serializers.containsKey(categoryId); } @Override - public <D extends Display> CompoundTag save(CategoryIdentifier<? extends D> categoryId, D display, CompoundTag tag) { - return ((DisplaySerializer<D>) serializers.get(categoryId).serializer.get()).save(tag, display); + public <D extends Display> CompoundTag save(D display, CompoundTag tag) { + CategoryIdentifier<?> categoryId = display.getCategoryIdentifier(); + return Objects.requireNonNull((DisplaySerializer<D>) serializers.get(categoryId), "Category " + categoryId + " does not have a display serializer!") + .save(tag, display); } @Override public <D extends Display> D read(CategoryIdentifier<? extends D> categoryId, CompoundTag tag) { - return ((DisplaySerializer<D>) serializers.get(categoryId).serializer.get()).read(tag); + return Objects.requireNonNull((DisplaySerializer<D>) serializers.get(categoryId), "Category " + categoryId + " does not have a display serializer!") + .read(tag); } @Override @@ -78,8 +74,4 @@ public class DisplaySerializerRegistryImpl implements DisplaySerializerRegistry public void acceptPlugin(REIPlugin<?> plugin) { plugin.registerDisplaySerializer(this); } - - private static class Holder<D extends Display> { - private Optional<DisplaySerializer<D>> serializer = Optional.empty(); - } } diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java index 684be988e..0c43edeee 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java @@ -140,10 +140,10 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager< private void pluginSection(MutablePair<Stopwatch, String> sectionData, String sectionName, List<P> list, Consumer<P> consumer) { for (P plugin : list) { - try (SectionClosable section = section(sectionData, sectionName + " for " + plugin.getPluginName())) { + try (SectionClosable section = section(sectionData, sectionName + " for " + plugin.getPluginProviderName())) { consumer.accept(plugin); } catch (Throwable throwable) { - RoughlyEnoughItemsCore.LOGGER.error(plugin.getPluginName() + " plugin failed to " + sectionName + "!", throwable); + RoughlyEnoughItemsCore.LOGGER.error(plugin.getPluginProviderName() + " plugin failed to " + sectionName + "!", throwable); } } } @@ -165,8 +165,8 @@ public class PluginManagerImpl<P extends REIPlugin<?>> implements PluginManager< } List<P> plugins = new ArrayList<>(getPlugins().toList()); - plugins.sort(Comparator.comparingInt(P::getPriority).reversed()); - RoughlyEnoughItemsCore.LOGGER.info("Reloading Plugin Manager [%s], registered %d plugins: %s", pluginClass.getSimpleName(), plugins.size(), CollectionUtils.mapAndJoinToString(plugins, REIPlugin::getPluginName, ", ")); + plugins.sort(Comparator.comparingDouble(P::getPriority).reversed()); + RoughlyEnoughItemsCore.LOGGER.info("Reloading Plugin Manager [%s], registered %d plugins: %s", pluginClass.getSimpleName(), plugins.size(), CollectionUtils.mapAndJoinToString(plugins, REIPlugin::getPluginProviderName, ", ")); Collections.reverse(plugins); pluginSection(sectionData, "pre-register", plugins, REIPlugin::preRegister); diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/MenuInfoRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/MenuInfoRegistryImpl.java index 4a556f37f..bf84c1808 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/MenuInfoRegistryImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/MenuInfoRegistryImpl.java @@ -32,6 +32,7 @@ import me.shedaniel.rei.api.common.transfer.info.MenuInfo; import me.shedaniel.rei.api.common.transfer.info.MenuInfoProvider; import me.shedaniel.rei.api.common.transfer.info.MenuInfoRegistry; import net.minecraft.world.inventory.AbstractContainerMenu; +import org.jetbrains.annotations.Nullable; import java.util.List; import java.util.Map; @@ -55,6 +56,7 @@ public class MenuInfoRegistryImpl implements MenuInfoRegistry { } @Override + @Nullable public <T extends AbstractContainerMenu, D extends Display> MenuInfo<T, D> get(CategoryIdentifier<D> category, Class<T> menuClass) { Map<Class<? extends AbstractContainerMenu>, List<MenuInfoProvider<?, ?>>> infoMap = map.get(category); if (infoMap != null && !infoMap.isEmpty()) { |
