Skip to content

Commit 973e01c

Browse files
committed
fix: Trigger rendering even if there are no panes
1 parent e0a34c5 commit 973e01c

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

interfaces/src/main/kotlin/com/noxcrew/interfaces/view/AbstractInterfaceView.kt

+14-7
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
138138

139139
// Add listeners to all triggers and update its transforms
140140
for ((trigger, transforms) in triggers.asMap()) {
141+
if (transforms.isEmpty()) continue
141142
trigger.addListener(this) {
142143
// Apply the transforms for the new ones
143144
applyTransforms(transforms)
@@ -173,7 +174,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
173174
firstPaint = true
174175
setup()
175176
} else {
176-
renderAndOpen()
177+
triggerRerender()
177178
}
178179
}
179180

@@ -200,7 +201,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
200201
}
201202
}
202203

203-
private suspend fun renderAndOpen() {
204+
private suspend fun triggerRerender() {
204205
// Don't update if closed
205206
if (!openIfClosed.get() && !isOpen()) return
206207

@@ -228,17 +229,23 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
228229

229230
// If we queued up a debounced render we trigger another one!
230231
if (debouncedRender.compareAndSet(true, false)) {
231-
renderAndOpen()
232+
triggerRerender()
232233
}
233234
}
234235

235236
private fun applyTransforms(transforms: Collection<AppliedTransform<P>>): Boolean {
236-
// Ignore if the transforms are empty
237-
if (transforms.isEmpty()) return true
238-
239237
// Check if the player is offline or the server stopping
240238
if (Bukkit.isStopping() || !player.isOnline) return false
241239

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+
242249
// Queue up the transforms
243250
pendingTransforms.addAll(transforms)
244251

@@ -271,7 +278,7 @@ public abstract class AbstractInterfaceView<I : InterfacesInventory, T : Interfa
271278

272279
// After we have finished running all transforms we render and open
273280
// the menu before ending this job.
274-
renderAndOpen()
281+
triggerRerender()
275282
}
276283
}
277284
} finally {

0 commit comments

Comments
 (0)