Skip to content

Commit 64e86b4

Browse files
authored
feat: allow earlier state update (#720)
1 parent caa7cde commit 64e86b4

11 files changed

Lines changed: 19 additions & 20 deletions

File tree

inventory-framework-anvil-input/src/main/java/me/devnatan/inventoryframework/AnvilInputFeature.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ private void handleClick(PlatformView view) {
117117
final ItemStack ingredientItem = requireNonNull(clickedInventory.getItem(INGREDIENT_SLOT));
118118
final ItemMeta ingredientMeta = requireNonNull(ingredientItem.getItemMeta());
119119
ingredientMeta.setDisplayName(text);
120-
context.updateState(anvilInput.internalId(), text);
120+
context.updateState(anvilInput, text);
121121
ingredientItem.setItemMeta(ingredientMeta);
122122

123123
if (config.closeOnSelect) {
@@ -189,7 +189,7 @@ private void handleClose(PlatformView view) {
189189
if (item == null || item.getType() == Material.AIR) return;
190190

191191
final String input = requireNonNull(item.getItemMeta()).getDisplayName();
192-
context.updateState(anvilInput.internalId(), input);
192+
context.updateState(anvilInput, input);
193193
});
194194
}
195195
}

inventory-framework-api/src/main/java/me/devnatan/inventoryframework/state/StateValueHost.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ public interface StateValueHost {
6161
* <p><b><i>This is an internal inventory-framework API that should not be used from outside of
6262
* this library. No compatibility guarantees are provided.</i></b>
6363
*
64-
* @param id The state id.
64+
* @param state The target state to update.
6565
* @param value The new state value.
6666
*/
6767
@ApiStatus.Internal
68-
void updateState(long id, Object value);
68+
void updateState(State<?> state, Object value);
6969

7070
@ApiStatus.Internal
7171
void watchState(long id, StateWatcher listener);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ public void updated(@NotNull IFSlotRenderContext context) {
438438
*/
439439
private void simulateStateUpdate() {
440440
debug("[Pagination] State update simulation triggered on %d", getState().internalId());
441-
host.updateState(getState().internalId(), this);
441+
host.updateState(getState(), this);
442442
}
443443

444444
@Override

inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/BaseMutableState.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ public BaseMutableState(long id, StateValueFactory valueFactory) {
1414

1515
@Override
1616
public final void set(T value, @NotNull StateValueHost host) {
17-
host.updateState(internalId(), value);
17+
host.updateState(this, value);
1818
}
1919
}

inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/DefaultStateValueHost.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,13 @@ public void initializeState(long id, @NotNull StateValue value) {
6060
}
6161

6262
@Override
63-
public void updateState(long id, Object value) {
64-
final StateValue stateValue = getUninitializedStateValue(id);
63+
public void updateState(State<?> state, Object value) {
64+
final StateValue stateValue = getInternalStateValue(state);
6565
final Object oldValue = stateValue.get();
6666
stateValue.set(value);
6767

6868
final Object newValue = stateValue.get();
69-
IFDebug.debug("State %s updated (oldValue = %s, newValue = %s)", id, oldValue, newValue);
69+
IFDebug.debug("State %s updated (oldValue = %s, newValue = %s)", state.internalId(), oldValue, newValue);
7070
callListeners(stateValue, listener -> listener.stateValueSet(this, stateValue, oldValue, newValue));
7171
}
7272

inventory-framework-core/src/main/java/me/devnatan/inventoryframework/state/MutableGenericStateImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ public MutableGenericStateImpl(long id, @NotNull StateValueFactory valueFactory)
1616

1717
@Override
1818
public void set(T value, @NotNull StateValueHost host) {
19-
host.updateState(internalId(), value);
19+
host.updateState(this, value);
2020
}
2121
}

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/CloseContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,8 @@ public final StateValue getUninitializedStateValue(long stateId) {
132132
}
133133

134134
@Override
135-
public final void updateState(long id, Object value) {
136-
getParent().updateState(id, value);
135+
public final void updateState(State<?> state, Object value) {
136+
getParent().updateState(state, value);
137137
}
138138

139139
@Override

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/context/SlotContext.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ public final void initializeState(long id, @NotNull StateValue value) {
128128
}
129129

130130
@Override
131-
public final void updateState(long id, Object value) {
132-
getParent().updateState(id, value);
131+
public final void updateState(State<?> state, Object value) {
132+
getParent().updateState(state, value);
133133
}
134134

135135
@Override

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ class CloseContext
8888
override fun getUninitializedStateValue(stateId: Long): StateValue = getParent().getUninitializedStateValue(stateId)
8989

9090
override fun updateState(
91-
id: Long,
91+
state: State<*>,
9292
value: Any,
9393
) {
94-
getParent().updateState(id, value)
94+
getParent().updateState(state, value)
9595
}
9696

9797
override fun toString(): String =

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,10 +98,10 @@ abstract class SlotContext
9898
}
9999

100100
override fun updateState(
101-
id: Long,
101+
state: State<*>,
102102
value: Any,
103103
) {
104-
getParent().updateState(id, value)
104+
getParent().updateState(state, value)
105105
}
106106

107107
override fun watchState(

0 commit comments

Comments
 (0)