From e798ed18ddf1c5c63fac092e357c3a26b52a21a8 Mon Sep 17 00:00:00 2001 From: TwistedAsylumMC Date: Sun, 17 Nov 2024 17:50:27 +0000 Subject: [PATCH] session/handler_npc_request.go: Missing file --- server/session/handler_npc_request.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 server/session/handler_npc_request.go diff --git a/server/session/handler_npc_request.go b/server/session/handler_npc_request.go new file mode 100644 index 000000000..e95b106a5 --- /dev/null +++ b/server/session/handler_npc_request.go @@ -0,0 +1,26 @@ +package session + +import ( + "fmt" + "github.com/df-mc/dragonfly/server/player/dialogue" + "github.com/sandertv/gophertunnel/minecraft/protocol/packet" +) + +// NPCRequestHandler handles the NPCRequest packet. +type NPCRequestHandler struct { + dialogue dialogue.Dialogue + entityRuntimeID uint64 +} + +// Handle ... +func (h *NPCRequestHandler) Handle(p packet.Packet, s *Session) error { + pk := p.(*packet.NPCRequest) + if pk.RequestType == packet.NPCRequestActionExecuteAction { + if err := h.dialogue.Submit(uint(pk.ActionType), s.c); err != nil { + return fmt.Errorf("error submitting dialogue: %w", err) + } + } else if pk.RequestType == packet.NPCRequestActionExecuteClosingCommands { + h.dialogue.Close(s.c) + } + return nil +}