diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-05-28 21:32:59 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-05-28 21:34:16 +0800 |
| commit | f644c84c664c9bc64e08d100e799caee6750e796 (patch) | |
| tree | ce49adc1884259899dddae338449b1582476ddcb /runtime/src/main/java/me/shedaniel/rei/impl/common | |
| parent | e82ab958bc7d13e556d7426b7a1862ec76e23eba (diff) | |
| parent | c16a70a0f43a96b6dd2afa86b4fe35f501530aa2 (diff) | |
| download | RoughlyEnoughItems-f644c84c664c9bc64e08d100e799caee6750e796.tar.gz RoughlyEnoughItems-f644c84c664c9bc64e08d100e799caee6750e796.tar.bz2 RoughlyEnoughItems-f644c84c664c9bc64e08d100e799caee6750e796.zip | |
Merge remote-tracking branch 'origin/6.x' into 6.x-1.17
# Conflicts:
# runtime/src/main/java/me/shedaniel/rei/impl/client/ClientHelperImpl.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigManagerImpl.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/ScreenOverlayImpl.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DelegateScreen.java
# runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/TransformingScreen.java
# settings.gradle
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()) { |
