From 2206c3a3990b76a2c58e9532b39e418a252026b2 Mon Sep 17 00:00:00 2001 From: Noikoio Date: Mon, 13 May 2019 23:16:33 -0700 Subject: [PATCH] Escape formatting strings when building announcement name list --- BirthdayBot/BackgroundWorker.vb | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/BirthdayBot/BackgroundWorker.vb b/BirthdayBot/BackgroundWorker.vb index 61d59e6..31f3403 100644 --- a/BirthdayBot/BackgroundWorker.vb +++ b/BirthdayBot/BackgroundWorker.vb @@ -203,10 +203,22 @@ Class BackgroundWorker Private Function BirthdayAnnounceFormatName(member As SocketGuildUser) As String ' TODO add option for using pings instead, add handling for it here + Dim escapeFormattingCharacters = Function(input As String) As String + Dim result As New StringBuilder + For Each c As Char In input + If c = "\" Or c = "_" Or c = "~" Or c = "*" Then + result.Append("\") + End If + result.Append(c) + Next + Return result.ToString() + End Function + + Dim username = escapeFormattingCharacters(member.Username) If member.Nickname IsNot Nothing Then - Return $"**{member.Nickname}** ({member.Username}#{member.Discriminator})" + Return $"**{escapeFormattingCharacters(member.Nickname)}** ({username}#{member.Discriminator})" End If - Return $"**{member.Username}**#{member.Discriminator}" + Return $"**{username}**#{member.Discriminator}" End Function '''