@@ -87,10 +87,12 @@ protected static function dispatchDiscordWebhook($event_id) {
87
87
$ embed ->setTimestamp ($ event ->getEventDateTime ());
88
88
89
89
$ user = $ event ->getUser ();
90
- $ author = new DiscordEmbedAuthor (
91
- $ user ->getName (), $ user ->getURI (), $ user ->getAvatarURI (null )
92
- );
93
- $ embed ->setAuthor ($ author );
90
+ if (!is_null ($ user )) {
91
+ $ author = new DiscordEmbedAuthor (
92
+ $ user ->getName (), $ user ->getURI (), $ user ->getAvatarURI (null )
93
+ );
94
+ $ embed ->setAuthor ($ author );
95
+ }
94
96
95
97
$ data = json_decode ($ event ->getMetadata (), true );
96
98
if (is_scalar ($ data )) {
@@ -101,10 +103,31 @@ protected static function dispatchDiscordWebhook($event_id) {
101
103
} else {
102
104
103
105
foreach ($ data as $ key => $ value ) {
106
+
107
+ $ f_key = substr ($ key , 0 , DiscordEmbedField::MAX_NAME - 3 );
108
+ if (strlen ($ key ) > DiscordEmbedField::MAX_NAME - 3 )
109
+ $ f_key .= '... ' ;
110
+
104
111
if (is_scalar ($ value )) {
105
- $ field = new DiscordEmbedField ($ key , $ value , true );
106
- $ embed ->addField ($ field );
112
+
113
+ if (is_string ($ value )) {
114
+ $ f_value = substr ($ value , 0 , DiscordEmbedField::MAX_VALUE - 3 );
115
+ if (strlen ($ value ) > DiscordEmbedField::MAX_VALUE - 3 )
116
+ $ f_value .= '... ' ;
117
+ } else {
118
+ $ f_value = $ value ;
119
+ }
120
+
121
+ $ field = new DiscordEmbedField ($ f_key , $ f_value , true );
122
+
123
+ } else {
124
+
125
+ $ field = new DiscordEmbedField ($ f_key , gettype ($ value ), true );
126
+
107
127
}
128
+ $ embed ->addField ($ field );
129
+
130
+ if ($ embed ->fieldCount () >= DiscordEmbed::MAX_FIELDS ) break ;
108
131
}
109
132
110
133
}
0 commit comments