@@ -113,7 +113,7 @@ function aPlayersTab.Create(tab)
113
113
addEventHandler (" onClientGUIClick" , aPlayersTab .Context , aPlayersTab .onContextClick )
114
114
addEventHandler (" onClientGUIClick" , aPlayersTab .InfoContext , aPlayersTab .onContextClick )
115
115
addEventHandler (" onClientGUIClick" , aPlayersTab .Tab , aPlayersTab .onClientClick )
116
- addEventHandler (" onClientGUIChanged" , aPlayersTab .PlayerListSearch , aPlayersTab .onPlayerListSearch )
116
+ addEventHandler (" onClientGUIChanged" , aPlayersTab .PlayerListSearch , aPlayersTab .onGUIChange )
117
117
addEventHandler (" onClientPlayerChangeNick" , root , aPlayersTab .onClientPlayerChangeNick )
118
118
addEventHandler (" aClientPlayerJoin" , root , aPlayersTab .onClientPlayerJoin )
119
119
addEventHandler (" onClientPlayerQuit" , root , aPlayersTab .onClientPlayerQuit )
@@ -321,23 +321,9 @@ function aPlayersTab.onClientClick(button)
321
321
end
322
322
end
323
323
324
- function aPlayersTab .onPlayerListSearch ()
325
- guiGridListClear (aPlayersTab .PlayerList )
326
- local text = guiGetText (source )
327
- if (text == " " ) then
328
- for id , player in ipairs (getElementsByType (" player" )) do
329
- local row = guiGridListAddRow (aPlayersTab .PlayerList )
330
- guiGridListSetItemText (aPlayersTab .PlayerList , row , 1 , getPlayerName (player ), false , false )
331
- guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
332
- end
333
- else
334
- for id , player in ipairs (getElementsByType (" player" )) do
335
- if (string.find (string.upper (getPlayerName (player )), string.upper (text ))) then
336
- local row = guiGridListAddRow (aPlayersTab .PlayerList )
337
- guiGridListSetItemText (aPlayersTab .PlayerList , row , 1 , getPlayerName (player ), false , false )
338
- guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
339
- end
340
- end
324
+ function aPlayersTab .onGUIChange ()
325
+ if (source == aPlayersTab .PlayerListSearch ) then
326
+ aPlayersTab .Refresh ()
341
327
end
342
328
end
343
329
@@ -551,21 +537,25 @@ end
551
537
552
538
function aPlayersTab .Refresh ()
553
539
local selected = getSelectedPlayer ()
554
- local list = aPlayersTab .PlayerList
555
- guiGridListClear (list )
556
540
local strip = guiCheckBoxGetSelected (aPlayersTab .ColorCodes )
541
+ local filter = guiGetText (aPlayersTab .PlayerListSearch ):lower ()
542
+ local sortDirection = guiGetProperty (aPlayersTab .PlayerList , " SortDirection" )
543
+ guiGridListClear (aPlayersTab .PlayerList )
544
+ guiSetProperty (aPlayersTab .PlayerList , " SortDirection" , " None" )
557
545
for id , player in ipairs (getElementsByType (" player" )) do
558
- local row = guiGridListAddRow (list )
559
546
local name = getPlayerName (player )
560
- if (strip ) then
561
- name = stripColorCodes (name )
562
- end
563
- guiGridListSetItemText (list , row , 1 , name , false , false )
564
- guiGridListSetItemData (list , row , 1 , player )
565
- if (player == selected ) then
566
- guiGridListSetSelectedItem (list , row , 1 )
547
+ if name :find (filter ) or name :lower ():find (filter ) then
548
+ if (strip ) then
549
+ name = stripColorCodes (name )
550
+ end
551
+ local row = guiGridListAddRow (aPlayersTab .PlayerList , name )
552
+ guiGridListSetItemData (aPlayersTab .PlayerList , row , 1 , player )
553
+ if (player == selected ) then
554
+ guiGridListSetSelectedItem (aPlayersTab .PlayerList , row , 1 )
555
+ end
567
556
end
568
557
end
558
+ guiSetProperty (aPlayersTab .PlayerList , " SortDirection" , sortDirection )
569
559
end
570
560
571
561
function getSelectedPlayer ()
0 commit comments