1010import net .minecraft .network .chat .HoverEvent ;
1111import net .minecraft .network .chat .Style ;
1212import net .minecraft .network .chat .TextColor ;
13+ import net .minecraft .world .item .ItemStack ;
14+
15+ import java .util .UUID ;
1316
1417@ CustomType (name = "TextStyle" )
1518public class StyleWrapper {
@@ -94,12 +97,37 @@ public ComponentWrapper getHoverText() {
9497 if (event == null ) {
9598 return ComponentWrapper .EMPTY ;
9699 }
97- if (event .action () == HoverEvent .Action .SHOW_TEXT ) {
98- HoverEvent .ShowText showText = (HoverEvent .ShowText ) event ;
99- return new ComponentWrapper (showText .value ());
100- } else {
101- return ComponentWrapper .EMPTY ;
100+
101+ return switch (event .action ()) {
102+ case SHOW_TEXT -> new ComponentWrapper (((HoverEvent .ShowText ) event ).value ());
103+ default -> ComponentWrapper .EMPTY ;
104+ };
105+ }
106+
107+ @ Getter (name = "hoverItem" )
108+ public ItemStackWrapper getHoverItem () {
109+ HoverEvent event = inner .getHoverEvent ();
110+ if (event == null ) {
111+ return new ItemStackWrapper (ItemStack .EMPTY );
112+ }
113+
114+ return switch (event .action ()) {
115+ case SHOW_ITEM -> new ItemStackWrapper (((HoverEvent .ShowItem ) event ).item ());
116+ default -> new ItemStackWrapper (ItemStack .EMPTY );
117+ };
118+ }
119+
120+ @ Getter (name = "hoverEntity" )
121+ public UUIDWrapper getHoverEntity () {
122+ HoverEvent event = inner .getHoverEvent ();
123+ if (event == null ) {
124+ return null ;
102125 }
126+
127+ return switch (event .action ()) {
128+ case SHOW_ENTITY -> new UUIDWrapper (((HoverEvent .ShowEntity ) event ).entity ().uuid );
129+ default -> null ;
130+ };
103131 }
104132
105133 @ Getter (name = "clickCommand" )
@@ -110,8 +138,11 @@ public String getClickCommand() {
110138 }
111139
112140 return switch (event .action ()) {
141+ case OPEN_URL -> ((ClickEvent .OpenUrl ) event ).uri ().toString ();
142+ case OPEN_FILE -> ((ClickEvent .OpenFile ) event ).path ();
113143 case RUN_COMMAND -> ((ClickEvent .RunCommand ) event ).command ();
114144 case SUGGEST_COMMAND -> ((ClickEvent .SuggestCommand ) event ).command ();
145+ case COPY_TO_CLIPBOARD -> ((ClickEvent .CopyToClipboard ) event ).value ();
115146 default -> "" ;
116147 };
117148 }
0 commit comments