allow for matching by member display name

This commit is contained in:
Fiona 2020-06-22 21:06:25 +10:00
parent 2de6d399ce
commit 5ba0dd0273

View File

@ -188,10 +188,11 @@ namespace PluralKit.Bot
{ {
var input = PeekArgument(); var input = PeekArgument();
// Member references can have one or two forms, depending on // Member references can have one of three forms, depending on
// whether you're in a system or not: // whether you're in a system or not:
// - A member hid // - A member hid
// - A textual name of a member *in your own system* // - A textual name of a member *in your own system*
// - a textual display name of a member *in your own system*
// First, if we have a system, try finding by member name in system // First, if we have a system, try finding by member name in system
if (_senderSystem != null && await _data.GetMemberByName(_senderSystem, input) is PKMember memberByName) if (_senderSystem != null && await _data.GetMemberByName(_senderSystem, input) is PKMember memberByName)
@ -201,6 +202,10 @@ namespace PluralKit.Bot
if (await _data.GetMemberByHid(input) is PKMember memberByHid) if (await _data.GetMemberByHid(input) is PKMember memberByHid)
return memberByHid; return memberByHid;
// And if that again fails, we try finding a member with a display name matching the argument from the system
if (_senderSystem != null && await _data.GetMemberByDisplayName(_senderSystem, input) is PKMember memberByDisplayName)
return memberByDisplayName;
// We didn't find anything, so we return null. // We didn't find anything, so we return null.
return null; return null;
} }