fancydialogs: Add DialogButtonClickedEvent

This commit is contained in:
Oliver
2025-06-19 14:51:24 +02:00
parent b8f57fda38
commit c496283b79
2 changed files with 43 additions and 0 deletions

View File

@@ -0,0 +1,40 @@
package com.fancyinnovations.fancydialogs.api.events;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
public class DialogButtonClickedEvent extends Event {
private static final HandlerList handlerList = new HandlerList();
private final Player player;
private final String dialogId;
private final String buttonId;
public DialogButtonClickedEvent(@NotNull Player player, @NotNull String dialogId, @NotNull String buttonId) {
super(!Bukkit.isPrimaryThread());
this.player = player;
this.dialogId = dialogId;
this.buttonId = buttonId;
}
public Player getPlayer() {
return player;
}
public String getDialogId() {
return dialogId;
}
public String getButtonId() {
return buttonId;
}
@Override
public @NotNull HandlerList getHandlers() {
return handlerList;
}
}

View File

@@ -4,6 +4,7 @@ import com.fancyinnovations.fancydialogs.FancyDialogsPlugin;
import com.fancyinnovations.fancydialogs.actions.DialogAction;
import com.fancyinnovations.fancydialogs.api.Dialog;
import com.fancyinnovations.fancydialogs.api.data.DialogButton;
import com.fancyinnovations.fancydialogs.api.events.DialogButtonClickedEvent;
import de.oliver.fancysitula.api.packets.FS_ServerboundCustomClickActionPacket;
import de.oliver.fancysitula.api.packets.FS_ServerboundPacket;
import de.oliver.fancysitula.api.utils.FS_PacketListener;
@@ -39,6 +40,8 @@ public class CustomClickActionPacketListener {
String dialogId = packet.getPayload().get("dialog_id");
String buttonId = packet.getPayload().get("button_id");
new DialogButtonClickedEvent(event.player(), dialogId, buttonId).callEvent();
Dialog dialog = FancyDialogsPlugin.get().getDialogRegistry().get(dialogId);
if (dialog == null) {
FancyDialogsPlugin.get().getFancyLogger().warn("Received action for unknown dialog: " + dialogId);