Skip to content

Commit 0d21eac

Browse files
committed
fix: minestom compilation issues
1 parent 9e3d98c commit 0d21eac

6 files changed

Lines changed: 39 additions & 26 deletions

File tree

inventory-framework-core/src/main/java/me/devnatan/inventoryframework/component/DefaultComponentBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.util.LinkedHashSet;
66
import java.util.Map;
77
import java.util.Set;
8+
import java.util.UUID;
89
import java.util.function.BooleanSupplier;
910
import java.util.function.Function;
1011
import java.util.function.Predicate;
@@ -18,6 +19,9 @@
1819
public abstract class DefaultComponentBuilder<S extends ComponentBuilder<S, C>, C extends IFContext>
1920
implements ComponentBuilder<S, C> {
2021

22+
protected static final Function<IFContext, String> RANDOM_KEY_FACTORY =
23+
__ -> UUID.randomUUID().toString();
24+
2125
protected Function<? extends IFContext, String> keyFactory;
2226
protected Ref<Component> reference;
2327
protected Map<String, Object> data;

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/component/BukkitItemComponentBuilder.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@
2222
public final class BukkitItemComponentBuilder extends DefaultComponentBuilder<BukkitItemComponentBuilder, Context>
2323
implements ItemComponentBuilder<BukkitItemComponentBuilder, Context>, ComponentFactory {
2424

25-
private static final Function<IFContext, String> RANDOM_KEY_FACTORY =
26-
__ -> UUID.randomUUID().toString();
27-
2825
private final VirtualView root;
2926
private int slot;
3027
private ItemStack item;

inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/component/MinestomItemComponentBuilder.kt

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import me.devnatan.inventoryframework.Ref
44
import me.devnatan.inventoryframework.ViewContainer
55
import me.devnatan.inventoryframework.VirtualView
66
import me.devnatan.inventoryframework.context.Context
7+
import me.devnatan.inventoryframework.context.IFContext
78
import me.devnatan.inventoryframework.context.IFRenderContext
89
import me.devnatan.inventoryframework.context.IFSlotClickContext
910
import me.devnatan.inventoryframework.context.IFSlotContext
@@ -16,13 +17,14 @@ import me.devnatan.inventoryframework.utils.SlotConverter
1617
import net.minestom.server.item.ItemStack
1718
import java.util.UUID
1819
import java.util.function.Consumer
20+
import java.util.function.Function
1921
import java.util.function.Predicate
2022
import java.util.function.Supplier
2123

2224
class MinestomItemComponentBuilder
2325
private constructor(
2426
private val root: VirtualView,
25-
key: String?,
27+
keyFactory: Function<out IFContext, String>?,
2628
slot: Int,
2729
item: ItemStack?,
2830
renderHandler: Consumer<in IFSlotRenderContext>?,
@@ -37,7 +39,7 @@ class MinestomItemComponentBuilder
3739
isManagedExternally: Boolean,
3840
displayCondition: Predicate<Context>?,
3941
) : DefaultComponentBuilder<MinestomItemComponentBuilder, Context>(
40-
key,
42+
keyFactory,
4143
reference,
4244
data,
4345
cancelOnClick,
@@ -59,7 +61,7 @@ class MinestomItemComponentBuilder
5961
root: VirtualView,
6062
) : this(
6163
root = root,
62-
key = null,
64+
keyFactory = null,
6365
slot = -1,
6466
item = null,
6567
renderHandler = null,
@@ -207,29 +209,33 @@ class MinestomItemComponentBuilder
207209
return this
208210
}
209211

210-
override fun create(): Component =
211-
ItemComponent(
212-
key ?: UUID.randomUUID().toString(),
213-
root,
214-
slot,
215-
item,
216-
cancelOnClick,
217-
closeOnClick,
218-
displayCondition,
219-
renderHandler,
220-
updateHandler,
221-
clickHandler,
222-
watchingStates,
223-
isManagedExternally,
224-
updateOnClick,
225-
false,
226-
reference,
212+
override fun create(): Component {
213+
val componentKeyProvider =
214+
if (keyFactory == null) RANDOM_KEY_FACTORY else keyFactory
215+
216+
return ItemComponent(
217+
/* keyFactory = */ componentKeyProvider,
218+
/* root = */ root,
219+
/* position = */ slot,
220+
/* stack = */ item,
221+
/* cancelOnClick = */ cancelOnClick,
222+
/* closeOnClick = */ closeOnClick,
223+
/* displayCondition = */ displayCondition,
224+
/* renderHandler = */ renderHandler,
225+
/* updateHandler = */ updateHandler,
226+
/* clickHandler = */ clickHandler,
227+
/* watching = */ watchingStates,
228+
/* isManagedExternally = */ isManagedExternally,
229+
/* updateOnClick = */ updateOnClick,
230+
/* isVisible = */ false,
231+
/* reference = */ reference,
227232
)
233+
}
228234

229235
override fun copy(): MinestomItemComponentBuilder =
230236
MinestomItemComponentBuilder(
231237
root = root,
232-
key = key,
238+
keyFactory = keyFactory,
233239
slot = slot,
234240
item = item,
235241
renderHandler = renderHandler,

inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotRenderContext.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,19 @@ package me.devnatan.inventoryframework.context
33
import me.devnatan.inventoryframework.MinestomViewer
44
import me.devnatan.inventoryframework.RootView
55
import me.devnatan.inventoryframework.Viewer
6+
import me.devnatan.inventoryframework.component.Component
67
import net.minestom.server.entity.Player
78
import net.minestom.server.item.ItemStack
89
import org.jetbrains.annotations.ApiStatus
10+
import org.jetbrains.annotations.UnknownNullability
911

1012
class SlotRenderContext
1113
@ApiStatus.Internal
1214
constructor(
1315
slot: Int,
1416
parent: IFRenderContext,
1517
private val viewer: Viewer?,
18+
private val _component: Component,
1619
) : SlotContext(slot, parent),
1720
IFSlotRenderContext {
1821
override val player: Player = (viewer as MinestomViewer).player
@@ -48,6 +51,8 @@ class SlotRenderContext
4851

4952
override fun isOnEntityContainer(): Boolean = container.isEntityContainer
5053

54+
override fun getComponent(): @UnknownNullability Component = _component
55+
5156
override fun getViewer(): Viewer? = viewer
5257

5358
override fun closeForPlayer() {

inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/internal/MinestomElementFactory.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,8 @@ class MinestomElementFactory : ElementFactory() {
164164
slot: Int,
165165
parent: IFRenderContext,
166166
viewer: Viewer?,
167-
): IFSlotRenderContext = SlotRenderContext(slot, parent, viewer)
167+
component: Component,
168+
): IFSlotRenderContext = SlotRenderContext(slot, parent, viewer, component)
168169

169170
override fun createCloseContext(
170171
viewer: Viewer,

inventory-framework-test/src/main/java/me/devnatan/inventoryframework/internal/MockElementFactory.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public IFSlotRenderContext createSlotRenderContext(
9292
when(mock.getParent()).thenReturn(parent);
9393
when(mock.getViewer()).thenReturn(viewer);
9494
when(mock.getContainer()).then(ignored -> parent.getContainer());
95-
when(mock.getComponent()).then(component);
95+
when(mock.getComponent()).thenReturn(component);
9696
return mock;
9797
}
9898

0 commit comments

Comments
 (0)