mirror of
https://github.com/NoiTheCat/BirthdayBot.git
synced 2024-11-21 21:54:36 +00:00
Add bb.when command
This commit is contained in:
parent
de86ebae96
commit
76afc03ce4
3 changed files with 52 additions and 3 deletions
|
@ -4,7 +4,7 @@
|
|||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>BirthdayBot</RootNamespace>
|
||||
<TargetFramework>netcoreapp2.0</TargetFramework>
|
||||
<Version>1.3.1</Version>
|
||||
<Version>1.3.2</Version>
|
||||
<Authors>Noiiko</Authors>
|
||||
<Company />
|
||||
<Description>Discord bot for birthday reminders.</Description>
|
||||
|
|
|
@ -43,7 +43,9 @@ Friend Class HelpInfoCommands
|
|||
$"{cpfx}zone (zone)`" + vbLf +
|
||||
$" » Sets your local time zone. See `{CommandPrefix}help-tzdata`." + vbLf +
|
||||
$"{cpfx}remove`" + vbLf +
|
||||
$" » Removes your birthday information from this bot."
|
||||
$" » Removes your birthday information from this bot." + vbLf +
|
||||
$"{cpfx}when (user)`" + vbLf +
|
||||
$" » Displays birthday information of the given user."
|
||||
}
|
||||
Dim cmdModField As New EmbedFieldBuilder With {
|
||||
.Name = "Moderator-only commands",
|
||||
|
|
|
@ -9,7 +9,8 @@ Class UserCommands
|
|||
Return New List(Of (String, CommandHandler)) From {
|
||||
("set", AddressOf CmdSet),
|
||||
("zone", AddressOf CmdZone),
|
||||
("remove", AddressOf CmdRemove)
|
||||
("remove", AddressOf CmdRemove),
|
||||
("when", AddressOf CmdWhen)
|
||||
}
|
||||
End Get
|
||||
End Property
|
||||
|
@ -162,4 +163,50 @@ Class UserCommands
|
|||
Await reqChannel.SendMessageAsync(":white_check_mark: Your information has been removed.")
|
||||
End If
|
||||
End Function
|
||||
|
||||
Private Async Function CmdWhen(param As String(), reqChannel As SocketTextChannel, reqUser As SocketGuildUser) As Task
|
||||
' Requires a parameter
|
||||
If param.Count = 1 Then
|
||||
Await reqChannel.SendMessageAsync(GenericError)
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim search = param(1)
|
||||
If param.Count = 3 Then
|
||||
' param maxes out at 3 values. param(2) might contain part of the search string (if name has a space)
|
||||
search += " " + param(2)
|
||||
End If
|
||||
|
||||
Dim searchTarget As SocketGuildUser = Nothing
|
||||
|
||||
Dim searchId As ULong = 0
|
||||
If Not TryGetUserId(search, searchId) Then ' ID lookup
|
||||
' name lookup without discriminator
|
||||
For Each searchuser In reqChannel.Guild.Users
|
||||
If String.Equals(search, searchuser.Username, StringComparison.OrdinalIgnoreCase) Then
|
||||
searchTarget = searchuser
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
searchTarget = reqChannel.Guild.GetUser(searchId)
|
||||
End If
|
||||
If searchTarget Is Nothing Then
|
||||
Await reqChannel.SendMessageAsync(BadUserError)
|
||||
Return
|
||||
End If
|
||||
|
||||
Dim users = Instance.GuildCache(reqChannel.Guild.Id).Users
|
||||
Dim searchTargetData = users.FirstOrDefault(Function(u) u.UserId = searchTarget.Id)
|
||||
If searchTargetData Is Nothing Then
|
||||
Await reqChannel.SendMessageAsync("The given user does not exist or has not set a birthday.")
|
||||
Return
|
||||
End If
|
||||
|
||||
With searchTargetData
|
||||
Await reqChannel.SendMessageAsync(FormatName(searchTarget, False) + ": " +
|
||||
$"`{ .BirthDay.ToString("00")}-{Common.MonthNames(.BirthMonth)}`" +
|
||||
If(.TimeZone Is Nothing, "", $" - `{ .TimeZone}`"))
|
||||
End With
|
||||
End Function
|
||||
End Class
|
||||
|
|
Loading…
Reference in a new issue