@@ -1560,20 +1560,43 @@ class RustPlus extends RustPlusLib {
15601560
15611561 // Process each player
15621562 for ( const name of playerNames ) {
1563- // Try to find member by display name, nickname, or username (case insensitive)
1564- const member = guild . members . cache . find ( m => {
1565- const displayName = m . displayName ?. toLowerCase ( ) ;
1566- const nickname = m . nickname ?. toLowerCase ( ) ;
1567- const username = m . user . username . toLowerCase ( ) ;
1568- const searchName = name . toLowerCase ( ) ;
1569-
1570- return displayName === searchName ||
1571- nickname === searchName ||
1572- username === searchName ||
1573- displayName ?. includes ( searchName ) ||
1574- nickname ?. includes ( searchName ) ||
1575- username . includes ( searchName ) ;
1576- } ) ;
1563+ const searchName = name . toLowerCase ( ) ;
1564+ let member = null ;
1565+
1566+ // First, try to find an exact match in voice channels
1567+ const voiceMembers = guild . members . cache . filter ( m => m . voice ?. channelId ) ;
1568+
1569+ // 1. Check for exact matches in voice channels
1570+ member = voiceMembers . find ( m =>
1571+ m . displayName ?. toLowerCase ( ) === searchName ||
1572+ m . nickname ?. toLowerCase ( ) === searchName ||
1573+ m . user . username . toLowerCase ( ) === searchName
1574+ ) ;
1575+
1576+ // 2. If no exact match, check for partial matches in voice channels
1577+ if ( ! member ) {
1578+ member = voiceMembers . find ( m =>
1579+ m . displayName ?. toLowerCase ( ) . includes ( searchName ) ||
1580+ m . nickname ?. toLowerCase ( ) . includes ( searchName ) ||
1581+ m . user . username . toLowerCase ( ) . includes ( searchName )
1582+ ) ;
1583+ }
1584+
1585+ // 3. If still no match, search all members (including those not in voice)
1586+ if ( ! member ) {
1587+ member = guild . members . cache . find ( m => {
1588+ const displayName = m . displayName ?. toLowerCase ( ) ;
1589+ const nickname = m . nickname ?. toLowerCase ( ) ;
1590+ const username = m . user . username . toLowerCase ( ) ;
1591+
1592+ return displayName === searchName ||
1593+ nickname === searchName ||
1594+ username === searchName ||
1595+ displayName ?. includes ( searchName ) ||
1596+ nickname ?. includes ( searchName ) ||
1597+ username . includes ( searchName ) ;
1598+ } ) ;
1599+ }
15771600
15781601 if ( ! member ) {
15791602 results . notFound . push ( name ) ;
0 commit comments