@@ -213,9 +213,10 @@ public void handleLegacyNBT(NBTTagCompound nbt) {
213213 /** Uses Cleanroom MUI */
214214 public IWidget initUI (GuiData data , PanelSyncManager manager ) {
215215 IPanelHandler panel = manager .panel ("filter_panel" , (syncManager , syncHandler ) -> {
216- var filter = hasFilter () ? getFilter () : BaseFilter .ERROR_FILTER ;
217- filter .setMaxTransferSize (getMaxTransferSize ());
218- return filter .createPopupPanel (syncManager );
216+ if (hasFilter ()) {
217+ return getFilter ().createPopupPanel (syncManager );
218+ }
219+ return BaseFilter .ERROR_FILTER .createPopupPanel (syncManager );
219220 }, true );
220221
221222 return Flow .row ().coverChildrenHeight ()
@@ -225,7 +226,7 @@ public IWidget initUI(GuiData data, PanelSyncManager manager) {
225226 .filter (this ::isItemValid )
226227 .singletonSlotGroup (101 )
227228 .changeListener ((newItem , onlyAmountChanged , client , init ) -> {
228- if (!isItemValid (newItem ) && panel .isPanelOpen ()) {
229+ if (!isItemValid (newItem ) || ( newItem . isEmpty () && panel .isPanelOpen () )) {
229230 panel .closePanel ();
230231 }
231232 }))
@@ -238,6 +239,7 @@ public IWidget initUI(GuiData data, PanelSyncManager manager) {
238239 .setEnabledIf (w -> hasFilter ())
239240 .onMousePressed (i -> {
240241 if (!panel .isPanelOpen ()) {
242+ setMaxTransferSize (getMaxTransferSize ());
241243 panel .openPanel ();
242244 } else {
243245 panel .closePanel ();
0 commit comments