@@ -138,6 +138,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
138
138
139
139
// Add listeners to all triggers and update its transforms
140
140
for ((trigger, transforms) in triggers.asMap()) {
141
+ if (transforms.isEmpty()) continue
141
142
trigger.addListener(this ) {
142
143
// Apply the transforms for the new ones
143
144
applyTransforms(transforms)
@@ -173,7 +174,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
173
174
firstPaint = true
174
175
setup()
175
176
} else {
176
- renderAndOpen ()
177
+ triggerRerender ()
177
178
}
178
179
}
179
180
@@ -200,7 +201,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
200
201
}
201
202
}
202
203
203
- private suspend fun renderAndOpen () {
204
+ private suspend fun triggerRerender () {
204
205
// Don't update if closed
205
206
if (! openIfClosed.get() && ! isOpen()) return
206
207
@@ -228,17 +229,23 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
228
229
229
230
// If we queued up a debounced render we trigger another one!
230
231
if (debouncedRender.compareAndSet(true , false )) {
231
- renderAndOpen ()
232
+ triggerRerender ()
232
233
}
233
234
}
234
235
235
236
private fun applyTransforms (transforms : Collection <AppliedTransform <P >>): Boolean {
236
- // Ignore if the transforms are empty
237
- if (transforms.isEmpty()) return true
238
-
239
237
// Check if the player is offline or the server stopping
240
238
if (Bukkit .isStopping() || ! player.isOnline) return false
241
239
240
+ // Ignore if the transforms are empty
241
+ if (transforms.isEmpty()) {
242
+ // If there are no transforms we still need to open it!
243
+ SCOPE .launch {
244
+ triggerRerender()
245
+ }
246
+ return true
247
+ }
248
+
242
249
// Queue up the transforms
243
250
pendingTransforms.addAll(transforms)
244
251
@@ -271,7 +278,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
271
278
272
279
// After we have finished running all transforms we render and open
273
280
// the menu before ending this job.
274
- renderAndOpen ()
281
+ triggerRerender ()
275
282
}
276
283
}
277
284
} finally {
0 commit comments