File tree Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Expand file tree Collapse file tree 1 file changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -292,13 +292,21 @@ var cmdKick = &CommandHandler{
292292	Name : "kick" ,
293293	Func : func (ce  * CommandEvent ) {
294294		if  len (ce .Args ) <  1  {
295- 			ce .Reply ("Usage: `!kick <user ID> [reason]`" )
295+ 			ce .Reply ("Usage: `!kick [--force] [--room <room ID>]  <user ID> [reason]`" )
296296			return 
297297		}
298298		ignoreUserLimit  :=  ce .Args [0 ] ==  "--force" 
299299		if  ignoreUserLimit  {
300300			ce .Args  =  ce .Args [1 :]
301301		}
302+ 		var  targetRoom  id.RoomID 
303+ 		if  ce .Args [0 ] ==  "--room"  &&  len (ce .Args ) >=  2  {
304+ 			targetRoom  =  resolveRoom (ce , ce .Args [1 ])
305+ 			if  targetRoom  ==  ""  {
306+ 				return 
307+ 			}
308+ 			ce .Args  =  ce .Args [2 :]
309+ 		}
302310		pattern  :=  glob .Compile (ce .Args [0 ])
303311		reason  :=  strings .Join (ce .Args [1 :], " " )
304312		users  :=  slices .Collect (ce .Meta .findMatchingUsers (pattern , nil , true ))
@@ -309,9 +317,14 @@ var cmdKick = &CommandHandler{
309317		}
310318		for  _ , userID  :=  range  users  {
311319			successCount  :=  0 
312- 			rooms  :=  ce .Meta .getRoomsUserIsIn (userID )
313- 			if  len (rooms ) ==  0  {
314- 				continue 
320+ 			var  rooms  []id.RoomID 
321+ 			if  targetRoom  !=  ""  {
322+ 				rooms  =  ce .Meta .getRoomsUserIsIn (userID )
323+ 				if  len (rooms ) ==  0  {
324+ 					continue 
325+ 				}
326+ 			} else  {
327+ 				rooms  =  []id.RoomID {targetRoom }
315328			}
316329			roomStrings  :=  make ([]string , len (rooms ))
317330			for  i , room  :=  range  rooms  {
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments