diff options
| author | shedaniel <daniel@shedaniel.me> | 2021-11-14 03:20:23 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2021-11-14 03:20:23 +0800 |
| commit | f04d72b96e5c562d4de7f5f5e5521942de5df49a (patch) | |
| tree | 2740c71c1b3b641757f0d1627e53546250e08845 /api/src/main/java/me | |
| parent | 760f20e8bdf63ee4af47bb408cdac18e6dd7a591 (diff) | |
| download | RoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.tar.gz RoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.tar.bz2 RoughlyEnoughItems-f04d72b96e5c562d4de7f5f5e5521942de5df49a.zip | |
Removed deprecated APIs, 1.18-pre1
Diffstat (limited to 'api/src/main/java/me')
18 files changed, 138 insertions, 368 deletions
diff --git a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java index 1af65d4ad..2c3cff511 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/REIRuntime.java @@ -24,22 +24,18 @@ package me.shedaniel.rei.api.client; import me.shedaniel.math.Rectangle; -import me.shedaniel.rei.api.client.config.ConfigObject; import me.shedaniel.rei.api.client.gui.config.SearchFieldLocation; import me.shedaniel.rei.api.client.gui.widgets.TextField; import me.shedaniel.rei.api.client.gui.widgets.Tooltip; import me.shedaniel.rei.api.client.overlay.ScreenOverlay; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; -import me.shedaniel.rei.api.client.registry.screen.ScreenRegistry; import me.shedaniel.rei.api.common.plugins.PluginManager; import me.shedaniel.rei.api.common.registry.Reloadable; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; -import net.minecraft.client.Minecraft; import net.minecraft.client.gui.screens.Screen; import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.resources.ResourceLocation; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.util.Optional; @@ -84,12 +80,6 @@ public interface REIRuntime extends Reloadable<REIClientPlugin> { SearchFieldLocation getContextualSearchFieldLocation(); - @ApiStatus.ScheduledForRemoval - @Deprecated - default Rectangle calculateEntryListArea() { - return calculateEntryListArea(ScreenRegistry.getInstance().getOverlayBounds(ConfigObject.getInstance().getDisplayPanelLocation(), Minecraft.getInstance().screen)); - } - Rectangle calculateEntryListArea(Rectangle bounds); Rectangle calculateFavoritesListArea(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java index 8d35049c2..13ba8edf5 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/config/ConfigObject.java @@ -27,7 +27,6 @@ import me.shedaniel.clothconfig2.api.ModifierKeyCode; import me.shedaniel.rei.api.client.config.entry.EntryStackProvider; import me.shedaniel.rei.api.client.favorites.FavoriteEntry; import me.shedaniel.rei.api.client.gui.config.*; -import me.shedaniel.rei.api.common.entry.EntryStack; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import org.jetbrains.annotations.ApiStatus; @@ -145,10 +144,7 @@ public interface ConfigObject { @ApiStatus.Experimental List<FavoriteEntry> getFavoriteEntries(); - @ApiStatus.ScheduledForRemoval - @Deprecated - List<EntryStack<?>> getFilteredStacks(); - + @ApiStatus.Experimental List<EntryStackProvider<?>> getFilteredStackProviders(); @ApiStatus.Experimental diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java index 493f2ddd3..82e3ca72d 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntry.java @@ -34,7 +34,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.util.Collection; @@ -71,13 +70,7 @@ public abstract class FavoriteEntry implements RegionEntry<FavoriteEntry> { } public static FavoriteEntry fromEntryStack(EntryStack<?> stack) { - return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgsResult(stack), null); - } - - @ApiStatus.ScheduledForRemoval - @Deprecated - public static boolean isEntryInvalid(@Nullable FavoriteEntry entry) { - return entry == null || entry.isInvalid(); + return delegateResult(() -> FavoriteEntryType.registry().get(FavoriteEntryType.ENTRY_STACK).fromArgs(stack), null); } @Override diff --git a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java index a317787fc..82e7b961a 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/favorites/FavoriteEntryType.java @@ -24,7 +24,6 @@ package me.shedaniel.rei.api.client.favorites; import com.mojang.serialization.DataResult; -import com.mojang.serialization.Lifecycle; import me.shedaniel.rei.api.client.plugins.REIClientPlugin; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.plugins.PluginManager; @@ -50,25 +49,9 @@ public interface FavoriteEntryType<T extends FavoriteEntry> { return PluginManager.getClientInstance().get(FavoriteEntryType.Registry.class); } - @ApiStatus.ScheduledForRemoval - @Deprecated - default T read(CompoundTag object) { - throw new UnsupportedOperationException("Implementation of FavoriteEntryType must override #read or #readResult"); - } - - default DataResult<T> readResult(CompoundTag object) { - return DataResult.success(read(object), Lifecycle.stable()); - } + DataResult<T> read(CompoundTag object); - @ApiStatus.ScheduledForRemoval - @Deprecated - default T fromArgs(Object... args) { - throw new UnsupportedOperationException("Implementation of FavoriteEntryType must override #fromArgs or #fromArgsResult"); - } - - default DataResult<T> fromArgsResult(Object... args) { - return DataResult.success(fromArgs(args), Lifecycle.stable()); - } + DataResult<T> fromArgs(Object... args); CompoundTag save(T entry, CompoundTag tag); @@ -76,8 +59,7 @@ public interface FavoriteEntryType<T extends FavoriteEntry> { interface Registry extends Reloadable<REIClientPlugin> { void register(ResourceLocation id, FavoriteEntryType<?> type); - @Nullable - <A extends FavoriteEntry> FavoriteEntryType<A> get(ResourceLocation id); + @Nullable <A extends FavoriteEntry> FavoriteEntryType<A> get(ResourceLocation id); @Nullable ResourceLocation getId(FavoriteEntryType<?> type); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java index b5ccc97f2..d38919ee4 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStack.java @@ -26,19 +26,13 @@ package me.shedaniel.rei.api.client.gui.drag; import com.mojang.blaze3d.vertex.PoseStack; import me.shedaniel.math.Rectangle; import me.shedaniel.rei.api.common.entry.EntryStack; -import org.jetbrains.annotations.ApiStatus; public interface DraggableStack { EntryStack<?> getStack(); void drag(); - @Deprecated - @ApiStatus.ScheduledForRemoval - default void release(boolean consumed) {} - default void release(DraggedAcceptorResult result) { - release(result != DraggedAcceptorResult.PASS); } default void render(PoseStack matrices, Rectangle bounds, int mouseX, int mouseY, float delta) { diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java index d893eccd4..0d0f98fd7 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitor.java @@ -27,10 +27,8 @@ import me.shedaniel.math.Rectangle; import net.minecraft.client.gui.screens.Screen; import net.minecraft.world.phys.shapes.Shapes; import net.minecraft.world.phys.shapes.VoxelShape; -import org.jetbrains.annotations.ApiStatus; import java.util.Objects; -import java.util.Optional; import java.util.function.Supplier; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -52,10 +50,10 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag } @Override - public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<T> context, DraggableStack stack) { + public DraggedAcceptorResult acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) { for (DraggableStackVisitor<T> visitor : visitors.get()) { if (visitor.isHandingScreen(context.getScreen())) { - DraggedAcceptorResult result = Objects.requireNonNull(visitor.acceptDraggedStackWithResult(context, stack)); + DraggedAcceptorResult result = Objects.requireNonNull(visitor.acceptDraggedStack(context, stack)); if (result != DraggedAcceptorResult.PASS) return result; } } @@ -71,32 +69,6 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag }; } - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval - default Optional<Acceptor> visitDraggedStack(DraggingContext<T> context, DraggableStack stack) { - return Optional.empty(); - } - - /** - * Accepts a dragged stack, implementations of this function should check if the {@code context} is within - * boundaries of the accepting boundaries. - * - * @param context the context of the current dragged stack on the overlay - * @param stack the stack being dragged - * @return whether the stack is accepted by the visitor - */ - @ApiStatus.ScheduledForRemoval - @Deprecated - default boolean acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) { - Optional<Acceptor> acceptor = visitDraggedStack(context, stack); - if (acceptor.isPresent()) { - acceptor.get().accept(stack); - return true; - } else { - return false; - } - } - /** * Accepts a dragged stack, implementations of this function should check if the {@code context} is within * boundaries of the accepting boundaries. @@ -105,8 +77,8 @@ public interface DraggableStackVisitor<T extends Screen> extends Comparable<Drag * @param stack the stack being dragged * @return the result of the visitor */ - default DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<T> context, DraggableStack stack) { - return acceptDraggedStack(context, stack) ? DraggedAcceptorResult.CONSUMED : DraggedAcceptorResult.PASS; + default DraggedAcceptorResult acceptDraggedStack(DraggingContext<T> context, DraggableStack stack) { + return DraggedAcceptorResult.PASS; } /** diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java index 4234b2b6b..cbe00cc1a 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/drag/DraggableStackVisitorWidget.java @@ -24,9 +24,7 @@ package me.shedaniel.rei.api.client.gui.drag; import net.minecraft.client.gui.screens.Screen; -import org.jetbrains.annotations.ApiStatus; -import java.util.Optional; import java.util.function.Function; import java.util.stream.Stream; import java.util.stream.StreamSupport; @@ -39,9 +37,9 @@ public interface DraggableStackVisitorWidget { static DraggableStackVisitorWidget from(Function<DraggingContext<Screen>, Iterable<DraggableStackVisitorWidget>> providers) { return new DraggableStackVisitorWidget() { @Override - public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) { + public DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) { return StreamSupport.stream(providers.apply(context).spliterator(), false) - .map(visitor -> visitor.acceptDraggedStackWithResult(context, stack)) + .map(visitor -> visitor.acceptDraggedStack(context, stack)) .filter(result -> result != DraggedAcceptorResult.PASS) .findFirst() .orElse(DraggedAcceptorResult.PASS); @@ -55,32 +53,6 @@ public interface DraggableStackVisitorWidget { }; } - @ApiStatus.ScheduledForRemoval - @Deprecated(forRemoval = true) - default Optional<DraggableStackVisitor.Acceptor> visitDraggedStack(DraggingContext<Screen> context, DraggableStack stack) { - return Optional.empty(); - } - - /** - * Accepts a dragged stack, implementations of this function should check if the {@code context} is within - * boundaries of the widget. - * - * @param context the context of the current dragged stack on the overlay - * @param stack the stack being dragged - * @return whether the stack is accepted by the widget - */ - @ApiStatus.ScheduledForRemoval - @Deprecated - default boolean acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) { - Optional<DraggableStackVisitor.Acceptor> acceptor = visitDraggedStack(context, stack); - if (acceptor.isPresent()) { - acceptor.get().accept(stack); - return true; - } else { - return false; - } - } - /** * Accepts a dragged stack, implementations of this function should check if the {@code context} is within * boundaries of the widget. @@ -89,8 +61,8 @@ public interface DraggableStackVisitorWidget { * @param stack the stack being dragged * @return the result of the visitor */ - default DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) { - return acceptDraggedStack(context, stack) ? DraggedAcceptorResult.CONSUMED : DraggedAcceptorResult.PASS; + default DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) { + return DraggedAcceptorResult.PASS; } /** @@ -112,8 +84,8 @@ public interface DraggableStackVisitorWidget { static DraggableStackVisitor<Screen> toVisitor(DraggableStackVisitorWidget widget, double priority) { return new DraggableStackVisitor<>() { @Override - public DraggedAcceptorResult acceptDraggedStackWithResult(DraggingContext<Screen> context, DraggableStack stack) { - return widget.acceptDraggedStackWithResult(context, stack); + public DraggedAcceptorResult acceptDraggedStack(DraggingContext<Screen> context, DraggableStack stack) { + return widget.acceptDraggedStack(context, stack); } @Override diff --git a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java index 919644e09..370caa671 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/gui/widgets/Tooltip.java @@ -87,10 +87,6 @@ public interface Tooltip { int getY(); - @Deprecated - @ApiStatus.ScheduledForRemoval - List<Component> getText(); - List<Entry> entries(); List<TooltipComponent> components(); diff --git a/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java b/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java index 9b8a7582c..2157d54e3 100644 --- a/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java +++ b/api/src/main/java/me/shedaniel/rei/api/client/view/ViewSearchBuilder.java @@ -27,7 +27,6 @@ import me.shedaniel.rei.api.client.ClientHelper; import me.shedaniel.rei.api.client.registry.category.CategoryRegistry; import me.shedaniel.rei.api.client.registry.display.DisplayCategory; import me.shedaniel.rei.api.common.category.CategoryIdentifier; -import me.shedaniel.rei.api.common.display.Display; import me.shedaniel.rei.api.common.entry.EntryStack; import me.shedaniel.rei.api.common.util.CollectionUtils; import me.shedaniel.rei.impl.ClientInternals; @@ -35,7 +34,10 @@ import me.shedaniel.rei.impl.display.DisplaySpec; import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; public interface ViewSearchBuilder { static ViewSearchBuilder builder() { @@ -65,16 +67,6 @@ public interface ViewSearchBuilder { @Nullable CategoryIdentifier<?> getPreferredOpenedCategory(); - @Deprecated - @ApiStatus.ScheduledForRemoval - default Map<DisplayCategory<?>, List<Display>> buildMap() { - Map<DisplayCategory<?>, List<Display>> map = new HashMap<>(); - for (Map.Entry<DisplayCategory<?>, List<DisplaySpec>> entry : buildMapInternal().entrySet()) { - map.put(entry.getKey(), CollectionUtils.map(entry.getValue(), DisplaySpec::provideInternalDisplay)); - } - return map; - } - @ApiStatus.Internal Map<DisplayCategory<?>, List<DisplaySpec>> buildMapInternal(); diff --git a/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java b/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java index ef4444661..108b293ac 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/plugins/REIPlugin.java @@ -35,7 +35,6 @@ import org.jetbrains.annotations.ApiStatus; import java.util.Collection; import java.util.Collections; -import java.util.Objects; /** * Base interface for a REI plugin. @@ -99,29 +98,11 @@ public interface REIPlugin<P extends REIPlugin<?>> extends Comparable<REIPlugin< } @ApiStatus.OverrideOnly - @Deprecated - @ApiStatus.ScheduledForRemoval - default void preRegister() { - } - - @ApiStatus.OverrideOnly default void preStage(PluginManager<P> manager, ReloadStage stage) { - if (stage == ReloadStage.START && Objects.equals(manager, PluginManager.getInstance())) { - preRegister(); - } - } - - @ApiStatus.OverrideOnly - @Deprecated - @ApiStatus.ScheduledForRemoval - default void postRegister() { } @ApiStatus.OverrideOnly default void postStage(PluginManager<P> manager, ReloadStage stage) { - if (stage == ReloadStage.END && (this instanceof REIServerPlugin ? Objects.equals(manager, PluginManager.getServerInstance()) : !Objects.equals(manager, PluginManager.getInstance()))) { - preRegister(); - } } @Override diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java index b5ed1de67..cde2c2231 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfo.java @@ -23,7 +23,6 @@ package me.shedaniel.rei.api.common.transfer.info; -import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; import me.shedaniel.rei.api.common.display.DisplaySerializerRegistry; import me.shedaniel.rei.api.common.entry.EntryStack; @@ -43,7 +42,6 @@ import net.minecraft.world.item.ItemStack; import java.util.Collections; import java.util.List; -import java.util.Optional; /** * Provider of information for {@link AbstractContainerMenu}, for the default REI {@link me.shedaniel.rei.api.client.registry.transfer.TransferHandler}. @@ -55,12 +53,7 @@ import java.util.Optional; * @see me.shedaniel.rei.api.common.transfer.info.simple.SimplePlayerInventoryMenuInfo * @see me.shedaniel.rei.api.common.transfer.info.simple.SimpleGridMenuInfo */ -public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> extends MenuInfoProvider<T, D> { - @Override - default Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> categoryId, Class<T> menuClass) { - return Optional.of(this); - } - +public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> { /** * Returns a {@link RecipeFinderPopulator}, used to populate a {@link RecipeFinder} with * available ingredients. @@ -136,18 +129,13 @@ public interface MenuInfo<T extends AbstractContainerMenu, D extends Display> ex * @return the {@link CompoundTag} serialized */ default CompoundTag save(MenuSerializationContext<T, ?, D> context, D display) { - // TODO Remove this, replace with getDisplay() return DisplaySerializerRegistry.getInstance().save(display, new CompoundTag()); } /** - * Deserializes the {@link Display} from {@link CompoundTag}, sent from the client for further info of the transfer. + * Returns the {@link Display} for this menu info. * - * @param context the context of the transfer - * @param tag the nbt tag to deserialize from - * @return the {@link Display} deserialized + * @return the {@link Display} */ - default D read(MenuSerializationContext<T, ?, D> context, CompoundTag tag) { - return DisplaySerializerRegistry.getInstance().read(context.getCategoryIdentifier(), tag); - } + D getDisplay(); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java index 904c59dd4..2d25603fd 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoProvider.java @@ -25,12 +25,11 @@ package me.shedaniel.rei.api.common.transfer.info; import me.shedaniel.rei.api.common.category.CategoryIdentifier; import me.shedaniel.rei.api.common.display.Display; +import me.shedaniel.rei.api.common.transfer.info.simple.SimpleMenuInfoProvider; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.inventory.AbstractContainerMenu; -import org.jetbrains.annotations.ApiStatus; import java.util.Optional; @@ -39,43 +38,11 @@ import java.util.Optional; * * @param <T> the type of the menu * @param <D> the type of display + * @see SimpleMenuInfoProvider */ -@FunctionalInterface public interface MenuInfoProvider<T extends AbstractContainerMenu, D extends Display> { @Environment(EnvType.CLIENT) - default Optional<MenuInfo<T, D>> provideClient(D display, T menu) { - return provide((CategoryIdentifier<D>) display.getCategoryIdentifier(), (Class<T>) menu.getClass()); - } + Optional<MenuInfo<T, D>> provideClient(D display, MenuSerializationContext<T, ?, D> context, T menu); - default Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> display, T menu, MenuSerializationProviderContext<T, ?, D> context, CompoundTag networkTag) { - Optional<MenuInfo<T, D>> menuInfo = provide(display, (Class<T>) menu.getClass()); - if (menuInfo.isPresent()) { - menuInfo.get().read(new MenuSerializationContext<T, Player, D>() { - @Override - public MenuInfo<T, D> getContainerInfo() { - return menuInfo.get(); - } - - @Override - public T getMenu() { - return context.getMenu(); - } - - @Override - public Player getPlayerEntity() { - return context.getPlayerEntity(); - } - - @Override - public CategoryIdentifier<D> getCategoryIdentifier() { - return context.getCategoryIdentifier(); - } - }, networkTag); - } - return menuInfo; - } - - @Deprecated - @ApiStatus.ScheduledForRemoval - Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> categoryId, Class<T> menuClass); + Optional<MenuInfo<T, D>> provide(CategoryIdentifier<D> category, T menu, MenuSerializationContext<T, ?, D> context, CompoundTag networkTag); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java index fdb83fb30..31b79e8c2 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuInfoRegistry.java @@ -32,7 +32,6 @@ import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.inventory.AbstractContainerMenu; -import org.jetbrains.annotations.ApiStatus; import org.jetbrains.annotations.Nullable; import java.util.function.Predicate; @@ -50,16 +49,10 @@ public interface MenuInfoRegistry extends Reloadable<REIServerPlugin> { <D extends Display> void registerGeneric(Predicate<CategoryIdentifier<?>> categoryPredicate, MenuInfoProvider<?, D> menuInfo); @Nullable - @ApiStatus.ScheduledForRemoval - @Deprecated - <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, Class<C> menuClass); - - @Nullable @Environment(EnvType.CLIENT) - <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> getClient(D display, C menu); + <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> getClient(D display, MenuSerializationContext<C, ?, D> context, C menu); - @Nullable - <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, C menu, MenuSerializationProviderContext<C, ?, D> context, CompoundTag tag); + @Nullable <C extends AbstractContainerMenu, D extends Display> MenuInfo<C, D> get(CategoryIdentifier<D> category, C menu, MenuSerializationContext<C, ?, D> context, CompoundTag tag); int infoSize(); } diff --git a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java index b3ed73d5f..ba7b77edf 100644 --- a/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java +++ b/api/src/main/java/me/shedaniel/rei/api/common/transfer/info/MenuSerializationContext.java @@ -34,15 +34,34 @@ import net.minecraft.world.inventory.AbstractContainerMenu; * @param <T> the type of {@link AbstractContainerMenu} * @param <P> the type of {@link Player}, server sided contexts may pass {@link net.minecraft.server.level.ServerPlayer} instead */ -public interface MenuSerializationContext<T extends AbstractContainerMenu, P extends Player, D extends Display> extends MenuSerializationProviderContext<T, P, D> { - @Override +public interface MenuSerializationContext<T extends AbstractContainerMenu, P extends Player, D extends Display> { T getMenu(); - @Override P getPlayerEntity(); - MenuInfo<T, D> getContainerInfo(); - - @Override CategoryIdentifier<D> getCategoryIdentifier(); + + default MenuInfoContext<T, P, D> withDisplay(D display) { + return new MenuInfoContext<T, P, D>() { + @Override + public D getDisplay() { + return display; + } + + @Override + public T getMenu() { + return MenuSerializationContext.this.getMenu(); + } + + @Overri |
