aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl/common
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2021-05-28 21:32:59 +0800
committershedaniel <daniel@shedaniel.me>2021-05-28 21:34:16 +0800
commitf644c84c664c9bc64e08d100e799caee6750e796 (patch)
treece49adc1884259899dddae338449b1582476ddcb /runtime/src/main/java/me/shedaniel/rei/impl/common
parente82ab958bc7d13e556d7426b7a1862ec76e23eba (diff)
parentc16a70a0f43a96b6dd2afa86b4fe35f501530aa2 (diff)
downloadRoughlyEnoughItems-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')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/display/DisplaySerializerRegistryImpl.java30
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/plugins/PluginManagerImpl.java8
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/transfer/MenuInfoRegistryImpl.java2
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()) {