From 9c3af97abfd2fdba34b3625eddb59ec59e32d0af Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 26 Mar 2025 13:42:24 -0700 Subject: [PATCH 1/2] new header and divider elements --- server/player/form/element.go | 47 +++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/server/player/form/element.go b/server/player/form/element.go index d7f041788..ed1b06345 100644 --- a/server/player/form/element.go +++ b/server/player/form/element.go @@ -37,6 +37,51 @@ func (Label) ReadOnly() bool { return true } +// Header represents a static header on a form. It serves only to display a large box of text, and users cannot +// submit values to it. +type Header struct { + // Text is the text held by the header. The text may contain Minecraft formatting codes. + Text string +} + +// NewHeader creates and returns a new Header with the values passed. +func NewHeader(text string) Header { + return Header{Text: text} +} + +// MarshalJSON ... +func (h Header) MarshalJSON() ([]byte, error) { + return json.Marshal(map[string]any{ + "type": "header", + "text": h.Text, + }) +} + +func (Header) ReadOnly() bool { + return true +} + +// Divider represents a static divider on a form. It serves only to display a section divider, and users cannot +// submit values to it. +type Divider struct{} + +// NewDivider creates and returns a new divider. +func NewDivider() Divider { + return Divider{} +} + +// MarshalJSON ... +func (d Divider) MarshalJSON() ([]byte, error) { + return json.Marshal(map[string]any{ + "type": "divider", + "text": "", + }) +} + +func (Divider) ReadOnly() bool { + return true +} + // Input represents a text input box element. Submitters may write any text in these boxes with no specific // length. type Input struct { @@ -253,6 +298,8 @@ func (b Button) MarshalJSON() ([]byte, error) { } func (Label) elem() {} +func (Header) elem() {} +func (Divider) elem() {} func (Input) elem() {} func (Toggle) elem() {} func (Slider) elem() {} From 07c04b48d23f9968acc16762a3721e13356e486f Mon Sep 17 00:00:00 2001 From: Jon Date: Wed, 26 Mar 2025 13:44:09 -0700 Subject: [PATCH 2/2] fix doc --- server/player/form/element.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/player/form/element.go b/server/player/form/element.go index ed1b06345..941fdf22c 100644 --- a/server/player/form/element.go +++ b/server/player/form/element.go @@ -65,7 +65,7 @@ func (Header) ReadOnly() bool { // submit values to it. type Divider struct{} -// NewDivider creates and returns a new divider. +// NewDivider creates and returns a new Divider. func NewDivider() Divider { return Divider{} }