diff --git a/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputFeature.java b/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputFeature.java index 19bd692e8..14d7e7b0d 100644 --- a/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputFeature.java +++ b/inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputFeature.java @@ -117,7 +117,7 @@ private void handleClick(PlatformView view) { final ItemStack ingredientItem = requireNonNull(clickedInventory.getItem(INGREDIENT_SLOT)); final ItemMeta ingredientMeta = requireNonNull(ingredientItem.getItemMeta()); ingredientMeta.setDisplayName(text); - context.updateState(anvilInput.internalId(), text); + context.updateState(anvilInput, text); ingredientItem.setItemMeta(ingredientMeta); if (config.closeOnSelect) { @@ -189,7 +189,7 @@ private void handleClose(PlatformView view) { if (item == null || item.getType() == Material.AIR) return; final String input = requireNonNull(item.getItemMeta()).getDisplayName(); - context.updateState(anvilInput.internalId(), input); + context.updateState(anvilInput, input); }); } } diff --git a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/state/StateValueHost.java b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/state/StateValueHost.java index 829afb1a8..63f35d797 100644 --- a/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/state/StateValueHost.java +++ b/inventory-framework-api/src/main/java/me/devnatan/inventoryframework/state/StateValueHost.java @@ -61,11 +61,11 @@ public interface StateValueHost { *
This is an internal inventory-framework API that should not be used from outside of
* this library. No compatibility guarantees are provided.
*
- * @param id The state id.
+ * @param state The target state to update.
* @param value The new state value.
*/
@ApiStatus.Internal
- void updateState(long id, Object value);
+ void updateState(State> state, Object value);
@ApiStatus.Internal
void watchState(long id, StateWatcher listener);
diff --git a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/component/PaginationImpl.java b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/component/PaginationImpl.java
index 65145c540..20bb5cdea 100644
--- a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/component/PaginationImpl.java
+++ b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/component/PaginationImpl.java
@@ -438,7 +438,7 @@ public void updated(@NotNull IFSlotRenderContext context) {
*/
private void simulateStateUpdate() {
debug("[Pagination] State update simulation triggered on %d", getState().internalId());
- host.updateState(getState().internalId(), this);
+ host.updateState(getState(), this);
}
@Override
diff --git a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/BaseMutableState.java b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/BaseMutableState.java
index 138cf9408..256b7af26 100644
--- a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/BaseMutableState.java
+++ b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/BaseMutableState.java
@@ -14,6 +14,6 @@ public BaseMutableState(long id, StateValueFactory valueFactory) {
@Override
public final void set(T value, @NotNull StateValueHost host) {
- host.updateState(internalId(), value);
+ host.updateState(this, value);
}
}
diff --git a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/DefaultStateValueHost.java b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/DefaultStateValueHost.java
index 63a42039a..e050121d6 100644
--- a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/DefaultStateValueHost.java
+++ b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/DefaultStateValueHost.java
@@ -60,13 +60,13 @@ public void initializeState(long id, @NotNull StateValue value) {
}
@Override
- public void updateState(long id, Object value) {
- final StateValue stateValue = getUninitializedStateValue(id);
+ public void updateState(State> state, Object value) {
+ final StateValue stateValue = getInternalStateValue(state);
final Object oldValue = stateValue.get();
stateValue.set(value);
final Object newValue = stateValue.get();
- IFDebug.debug("State %s updated (oldValue = %s, newValue = %s)", id, oldValue, newValue);
+ IFDebug.debug("State %s updated (oldValue = %s, newValue = %s)", state.internalId(), oldValue, newValue);
callListeners(stateValue, listener -> listener.stateValueSet(this, stateValue, oldValue, newValue));
}
diff --git a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/MutableGenericStateImpl.java b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/MutableGenericStateImpl.java
index 86a93b5b9..59cf0a979 100644
--- a/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/MutableGenericStateImpl.java
+++ b/inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/MutableGenericStateImpl.java
@@ -16,6 +16,6 @@ public MutableGenericStateImpl(long id, @NotNull StateValueFactory valueFactory)
@Override
public void set(T value, @NotNull StateValueHost host) {
- host.updateState(internalId(), value);
+ host.updateState(this, value);
}
}
diff --git a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
index 82abcb5f2..ec8d1a354 100644
--- a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
+++ b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java
@@ -132,8 +132,8 @@ public final StateValue getUninitializedStateValue(long stateId) {
}
@Override
- public final void updateState(long id, Object value) {
- getParent().updateState(id, value);
+ public final void updateState(State> state, Object value) {
+ getParent().updateState(state, value);
}
@Override
diff --git a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotContext.java b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotContext.java
index a054ee899..fe0888379 100644
--- a/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotContext.java
+++ b/inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotContext.java
@@ -128,8 +128,8 @@ public final void initializeState(long id, @NotNull StateValue value) {
}
@Override
- public final void updateState(long id, Object value) {
- getParent().updateState(id, value);
+ public final void updateState(State> state, Object value) {
+ getParent().updateState(state, value);
}
@Override
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
index 9bd36a459..fb4c1a8bf 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/CloseContext.kt
@@ -88,10 +88,10 @@ class CloseContext
override fun getUninitializedStateValue(stateId: Long): StateValue = getParent().getUninitializedStateValue(stateId)
override fun updateState(
- id: Long,
+ state: State<*>,
value: Any,
) {
- getParent().updateState(id, value)
+ getParent().updateState(state, value)
}
override fun toString(): String =
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotContext.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotContext.kt
index 57de2b87e..8f20d470d 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotContext.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/context/SlotContext.kt
@@ -98,10 +98,10 @@ abstract class SlotContext
}
override fun updateState(
- id: Long,
+ state: State<*>,
value: Any,
) {
- getParent().updateState(id, value)
+ getParent().updateState(state, value)
}
override fun watchState(
diff --git a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/pipeline/GlobalClickInterceptor.kt b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/pipeline/GlobalClickInterceptor.kt
index c06c2b327..9d5f6bed5 100644
--- a/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/pipeline/GlobalClickInterceptor.kt
+++ b/inventory-framework-platform-minestom/src/main/kotlin/me/devnatan/inventoryframework/pipeline/GlobalClickInterceptor.kt
@@ -20,8 +20,7 @@ class GlobalClickInterceptor : PipelineInterceptor