3030
3131public final class DiscordBridgePlugin extends JavaPlugin {
3232
33- private static final Pattern INBOUND_PLACEHOLDER = Pattern .compile ("%(label|role|username|message)%" );
34- private static final String INBOUND_TEMPLATE = "%label% %role% %username%: %message%" ;
33+ private static final Pattern INBOUND_PLACEHOLDER = Pattern .compile ("%(label|username|message)%" );
3534 private static final String DISCORD_LABEL = "[Discord]" ;
3635
3736 private static final Color LABEL_COLOR = Color .decode ("#5865F2" );
@@ -132,30 +131,26 @@ private void onPlayerChat(@NotNull PlayerChatEvent event) {
132131 }
133132
134133 DiscordConfig discordConfig = cfg .getDiscordConfig ();
135- if (discordConfig .isUseWebhookForChat ()) {
136- botConnection .sendWebhookMessage (discordConfig .getWebhookUrl (), event .getSender ().getUsername (), cleaned );
137- } else {
138- MessagesConfig messages = cfg .getMessagesConfig ();
139- String payload = messages .getGameToDiscord ()
140- .replace ("%player%" , event .getSender ().getUsername ())
141- .replace ("%message%" , cleaned );
142-
143- sendToDiscord (payload , cfg );
134+ String webhookUrl = discordConfig .getWebhookUrl ();
135+ if (webhookUrl .isEmpty ()) {
136+ getLogger ().at (Level .WARNING ).log ("Webhook URL not configured; skipping chat message to Discord." );
137+ return ;
144138 }
139+ botConnection .sendWebhookMessage (webhookUrl , event .getSender ().getUsername (), cleaned );
145140 }
146141
147142 private void onPlayerConnect (@ NotNull PlayerConnectEvent event ) {
148143 DiscordBridgeConfig cfg = config .get ();
149144 EventsConfig events = cfg .getEventsConfig ();
150145 MessagesConfig messages = cfg .getMessagesConfig ();
151- sendEventMessage (events .isPlayerJoin (), messages . getPlayerJoin (), events .isPlayerJoinEmbed (), events .getPlayerJoinEmbedColor (), events . getPlayerJoinEmbedContentType (), "%player%" , event .getPlayerRef ().getUsername ());
146+ sendEventMessage (events .isPlayerJoin (), events . getPlayerJoinMessage (), events .isPlayerJoinEmbed (), events .getPlayerJoinEmbedColor (), "%player%" , event .getPlayerRef ().getUsername ());
152147 }
153148
154149 private void onPlayerDisconnect (@ NotNull PlayerDisconnectEvent event ) {
155150 DiscordBridgeConfig cfg = config .get ();
156151 EventsConfig events = cfg .getEventsConfig ();
157152 MessagesConfig messages = cfg .getMessagesConfig ();
158- sendEventMessage (events .isPlayerLeave (), messages . getPlayerLeave (), events .isPlayerLeaveEmbed (), events .getPlayerLeaveEmbedColor (), events . getPlayerLeaveEmbedContentType (), "%player%" , event .getPlayerRef ().getUsername ());
153+ sendEventMessage (events .isPlayerLeave (), events . getPlayerLeaveMessage (), events .isPlayerLeaveEmbed (), events .getPlayerLeaveEmbedColor (), "%player%" , event .getPlayerRef ().getUsername ());
159154 }
160155
161156 private void onPlayerEnterWorld (@ NotNull AddPlayerToWorldEvent event ) {
@@ -170,8 +165,7 @@ private void onPlayerEnterWorld(@NotNull AddPlayerToWorldEvent event) {
170165 return ;
171166 }
172167
173- MessagesConfig messages = cfg .getMessagesConfig ();
174- sendEventMessage (true , messages .getWorldEnter (), events .isWorldEnterEmbed (), events .getWorldEnterEmbedColor (), events .getWorldEnterEmbedContentType (),
168+ sendEventMessage (true , events .getWorldEnterMessage (), events .isWorldEnterEmbed (), events .getWorldEnterEmbedColor (),
175169 "%player%" , playerRef .getUsername (),
176170 "%world%" , event .getWorld ().getName ()
177171 );
@@ -191,8 +185,7 @@ private void onPlayerLeaveWorld(@NotNull DrainPlayerFromWorldEvent event) {
191185
192186 World world = event .getWorld ();
193187 String worldName = world .getName ();
194- MessagesConfig messages = cfg .getMessagesConfig ();
195- sendEventMessage (true , messages .getWorldLeave (), events .isWorldLeaveEmbed (), events .getWorldLeaveEmbedColor (), events .getWorldLeaveEmbedContentType (),
188+ sendEventMessage (true , events .getWorldLeaveMessage (), events .isWorldLeaveEmbed (), events .getWorldLeaveEmbedColor (),
196189 "%player%" , playerRef .getUsername (),
197190 "%world%" , worldName
198191 );
@@ -218,12 +211,13 @@ private void relayDiscordMessage(@NotNull DiscordMessage message) {
218211 return ;
219212 }
220213
221- Message formatted = buildInboundMessage (message , content , cfg . getMessagesConfig (). getDiscordToGame () );
214+ Message formatted = buildInboundMessage (message , content );
222215 universe .sendMessage (formatted );
223216 }
224217
225218 @ NotNull
226- private static Message buildInboundMessage (@ NotNull DiscordMessage discordMessage , @ NotNull String content , @ NotNull String template ) {
219+ private static Message buildInboundMessage (@ NotNull DiscordMessage discordMessage , @ NotNull String content ) {
220+ String template = "%label% %username%: %message%" ;
227221
228222 Message root = Message .empty ();
229223 Matcher matcher = INBOUND_PLACEHOLDER .matcher (template );
@@ -237,7 +231,6 @@ private static Message buildInboundMessage(@NotNull DiscordMessage discordMessag
237231
238232 switch (matcher .group (1 )) {
239233 case "label" -> appendLabel (root );
240- case "role" -> appendRole (root , discordMessage );
241234 case "username" -> appendUsername (root , discordMessage );
242235 case "message" -> {
243236 appendMessageContent (root , content );
@@ -265,15 +258,6 @@ private static void appendLabel(@NotNull Message root) {
265258 appendTextSegment (root , DISCORD_LABEL , LABEL_COLOR );
266259 }
267260
268- private static void appendRole (@ NotNull Message root , @ NotNull DiscordMessage discordMessage ) {
269- if (discordMessage .topRoleName () == null || discordMessage .topRoleName ().isBlank ()) {
270- return ;
271- }
272-
273- Color color = discordMessage .roleColor () != null ? discordMessage .roleColor () : DEFAULT_ROLE_COLOR ;
274- appendTextSegment (root , "[" + discordMessage .topRoleName () + "]" , color );
275- }
276-
277261 private static void appendUsername (@ NotNull Message root , @ NotNull DiscordMessage discordMessage ) {
278262 Color color = discordMessage .displayColor () != null ? discordMessage .displayColor () : DEFAULT_ROLE_COLOR ;
279263 appendTextSegment (root , discordMessage .authorName (), color );
@@ -315,7 +299,7 @@ private void sendServerStartMessage() {
315299 EventsConfig events = cfg .getEventsConfig ();
316300 MessagesConfig messages = cfg .getMessagesConfig ();
317301
318- sendEventMessage (events .isServerStart (), messages . getServerStart (), events .isServerStartEmbed (), events .getServerStartEmbedColor (), events . getServerStartEmbedContentType ());
302+ sendEventMessage (events .isServerStart (), events . getServerStartMessage (), events .isServerStartEmbed (), events .getServerStartEmbedColor ());
319303 }
320304
321305 private void sendServerStopMessage () {
@@ -327,7 +311,7 @@ private void sendServerStopMessage() {
327311 EventsConfig events = cfg .getEventsConfig ();
328312 MessagesConfig messages = cfg .getMessagesConfig ();
329313
330- sendEventMessage (events .isServerStop (), messages . getServerStop (), events .isServerStopEmbed (), events .getServerStopEmbedColor (), events . getServerStopEmbedContentType ());
314+ sendEventMessage (events .isServerStop (), events . getServerStopMessage (), events .isServerStopEmbed (), events .getServerStopEmbedColor ());
331315 }
332316
333317 /**
@@ -337,10 +321,9 @@ private void sendServerStopMessage() {
337321 * @param template the message template
338322 * @param embedEnabled whether to send as embed
339323 * @param embedColor the embed color hex
340- * @param embedContentType "description" or "title"
341324 * @param replacements pairs of placeholder and value (e.g., "%player%", "Steve")
342325 */
343- private void sendEventMessage (boolean enabled , @ NotNull String template , boolean embedEnabled , @ NotNull String embedColor , @ NotNull String embedContentType , @ NotNull String ... replacements ) {
326+ private void sendEventMessage (boolean enabled , @ NotNull String template , boolean embedEnabled , @ NotNull String embedColor , @ NotNull String ... replacements ) {
344327 if (!enabled ) {
345328 return ;
346329 }
@@ -354,7 +337,7 @@ private void sendEventMessage(boolean enabled, @NotNull String template, boolean
354337 if (botConnection == null || !botConnection .isReady ()) {
355338 return ;
356339 }
357- botConnection .sendEmbed (message , embedColor , embedContentType );
340+ botConnection .sendEmbed (message , embedColor );
358341 } else {
359342 sendToDiscord (message , config .get ());
360343 }
0 commit comments