Skip to content

Commit a2f9bf3

Browse files
committed
remove Key from custom callback
1 parent d53107d commit a2f9bf3

File tree

6 files changed

+17
-16
lines changed

6 files changed

+17
-16
lines changed

paper-api/src/main/java/io/papermc/paper/event/player/PlayerCustomClickEvent.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
/**
1717
* This event is fired for any custom click events.
1818
* @see net.kyori.adventure.text.event.ClickEvent#custom(Key, BinaryTagHolder)
19-
* @see io.papermc.paper.registry.data.dialog.action.DialogAction#customClick(Key, DialogActionCallback, ClickCallback.Options)
19+
* @see io.papermc.paper.registry.data.dialog.action.DialogAction#customClick(DialogActionCallback, ClickCallback.Options)
2020
*/
2121
@ApiStatus.Experimental
2222
@ApiStatus.NonExtendable

paper-api/src/main/java/io/papermc/paper/registry/data/dialog/action/DialogAction.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,20 +45,21 @@ static StaticAction staticAction(final ClickEvent value) {
4545
* @param additions additional data to be sent with the action, or null if not needed
4646
* @return a new custom all action instance
4747
*/
48+
@Contract(pure = true, value = "_, _ -> new")
4849
static CustomClickAction customClick(final Key id, final @Nullable BinaryTagHolder additions) {
4950
return new CustomClickActionImpl(id, additions);
5051
}
5152

5253
/**
5354
* Creates a new custom click action that executes a custom action.
5455
*
55-
* @param id the identifier of the custom action
5656
* @param callback the custom action to execute
5757
* @param options the options for the custom action
5858
* @return a new custom all action instance
5959
*/
60-
static CustomClickAction customClick(final Key id, final DialogActionCallback callback, final ClickCallback.Options options) {
61-
return DialogActionProvider.INSTANCE.orElseThrow().register(id, callback, options);
60+
@Contract(pure = true, value = "_, _ -> new")
61+
static CustomClickAction customClick(final DialogActionCallback callback, final ClickCallback.Options options) {
62+
return DialogActionProvider.INSTANCE.orElseThrow().register(callback, options);
6263
}
6364

6465
/**

paper-api/src/main/java/io/papermc/paper/registry/data/dialog/action/DialogActionProvider.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@
22

33
import java.util.Optional;
44
import java.util.ServiceLoader;
5-
import net.kyori.adventure.key.Key;
65
import net.kyori.adventure.text.event.ClickCallback;
76

87
interface DialogActionProvider {
98

109
Optional<DialogActionProvider> INSTANCE = ServiceLoader.load(DialogActionProvider.class).findFirst();
1110

12-
DialogAction.CustomClickAction register(Key key, DialogActionCallback callback, ClickCallback.Options options);
11+
DialogAction.CustomClickAction register(DialogActionCallback callback, ClickCallback.Options options);
1312
}

paper-server/src/main/java/io/papermc/paper/adventure/providers/ClickCallbackProviderImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
@SuppressWarnings("UnstableApiUsage") // permitted provider
2626
public class ClickCallbackProviderImpl implements ClickCallback.Provider {
2727
private static final Key ADVENTURE_CLICK_CALLBACK_KEY = Key.key("paper", "click_callback");
28+
public static final Key DIALOG_CLICK_CALLBACK_KEY = Key.key("paper", "dialog_click_callback");
2829
public static final String ID_KEY = "id";
2930

3031
public static final AdventureClick ADVENTURE_CLICK_MANAGER = new AdventureClick();
@@ -61,9 +62,11 @@ void doRunCallback(final @NotNull Audience audience, final Key key, final Tag ta
6162
}
6263
}
6364

64-
public record DialogClickKey(Key key, UUID uuid) {}
65+
public static final class DialogClickManager extends CallbackManager<DialogActionCallback, UUID> {
6566

66-
public static final class DialogClickManager extends CallbackManager<DialogActionCallback, DialogClickKey> {
67+
public DialogClickManager() {
68+
super(PaperAdventure.asVanilla(DIALOG_CLICK_CALLBACK_KEY)::equals);
69+
}
6770

6871
@Override
6972
void doRunCallback(final @NotNull Audience audience, final Key key, final Tag tag) {
@@ -72,7 +75,7 @@ void doRunCallback(final @NotNull Audience audience, final Key key, final Tag ta
7275
if (id.isEmpty()) {
7376
return;
7477
}
75-
this.tryConsumeCallback(new DialogClickKey(key, id.get()), callback -> {
78+
this.tryConsumeCallback(id.get(), callback -> {
7679
callback.accept(PaperDialogResponseView.createUnvalidatedResponse(t), audience);
7780
});
7881
});

paper-server/src/main/java/io/papermc/paper/registry/data/dialog/action/PaperDialogActionProvider.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import io.papermc.paper.adventure.PaperAdventure;
44
import io.papermc.paper.adventure.providers.ClickCallbackProviderImpl;
55
import java.util.UUID;
6-
import net.kyori.adventure.key.Key;
76
import net.kyori.adventure.nbt.api.BinaryTagHolder;
87
import net.kyori.adventure.text.event.ClickCallback;
98
import net.minecraft.core.UUIDUtil;
@@ -12,11 +11,10 @@
1211
public class PaperDialogActionProvider implements DialogActionProvider {
1312

1413
@Override
15-
public DialogAction.CustomClickAction register(final Key key, final DialogActionCallback callback, final ClickCallback.Options options) {
16-
final ClickCallbackProviderImpl.DialogClickKey callbackKey = new ClickCallbackProviderImpl.DialogClickKey(key, UUID.randomUUID());
17-
ClickCallbackProviderImpl.DIALOG_CLICK_MANAGER.addCallback(callbackKey, callback, options);
14+
public DialogAction.CustomClickAction register(final DialogActionCallback callback, final ClickCallback.Options options) {
15+
final UUID id = ClickCallbackProviderImpl.DIALOG_CLICK_MANAGER.addCallback(UUID.randomUUID(), callback, options);
1816
final CompoundTag tag = new CompoundTag();
19-
tag.store(ClickCallbackProviderImpl.ID_KEY, UUIDUtil.CODEC, callbackKey.uuid());
20-
return DialogAction.customClick(key, BinaryTagHolder.encode(tag, PaperAdventure.NBT_CODEC));
17+
tag.store(ClickCallbackProviderImpl.ID_KEY, UUIDUtil.CODEC, id);
18+
return DialogAction.customClick(ClickCallbackProviderImpl.DIALOG_CLICK_CALLBACK_KEY, BinaryTagHolder.encode(tag, PaperAdventure.NBT_CODEC));
2119
}
2220
}

test-plugin/src/main/java/io/papermc/testplugin/TestPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void onChat(ChatEvent event) {
4242
.afterAction(DialogBase.DialogAfterAction.CLOSE)
4343
.build()
4444
).dialogSpecialty(DialogSpecialty.confirmation(
45-
ActionButton.builder(text("yes")).action(DialogAction.customClick(Key.key("hello:there"), callback, ClickCallback.Options.builder().uses(1).build())).build(),
45+
ActionButton.builder(text("yes")).action(DialogAction.customClick(callback, ClickCallback.Options.builder().uses(1).build())).build(),
4646
ActionButton.builder(text("no")).build()
4747
))
4848
);

0 commit comments

Comments
 (0)