11local lowerBound , upperBound = unpack (get (" color_range" ))
22
3- function randomizePlayerColor (player )
3+ local freeroamRunning = false
4+
5+ local function randomizePlayerColor (player )
46 player = player or source
57 local r , g , b = math.random (lowerBound , upperBound ), math.random (lowerBound , upperBound ), math.random (lowerBound , upperBound )
68 setPlayerNametagColor (player , r , g , b )
@@ -16,13 +18,29 @@ local function setAllPlayerColors()
1618 end
1719 end
1820end
19- addEventHandler (" onResourceStart" , resourceRoot , setAllPlayerColors )
20- addEventHandler (" onGamemodeMapStart" , root , setAllPlayerColors ) -- mapmanager resets player colors to white when the map ends
21- addEventHandler (" onResourceStop" , resourceRoot , setAllPlayerColors )
21+ -- mapmanager resets player colors to white when the map ends
22+ addEventHandler (" onGamemodeMapStart" , root , setAllPlayerColors )
23+
24+ local function handleResourceStartStop (res )
25+ if res == resource then
26+ local freeroamResource = getResourceFromName (" freeroam" )
27+ if freeroamResource then
28+ freeroamRunning = getResourceState (freeroamResource ) == " running"
29+ end
30+ setAllPlayerColors ()
31+ elseif getResourceName (res ) == " freeroam" then
32+ freeroamRunning = eventName == " onResourceStart"
33+ end
34+ end
35+ addEventHandler (" onResourceStart" , root , handleResourceStartStop )
36+ addEventHandler (" onResourceStop" , root , handleResourceStartStop )
2237
2338addEventHandler (' onPlayerChat' , root ,
2439 function (msg , type )
2540 if type == 0 then
41+ if freeroamRunning then
42+ return -- Let freeroam handle chat
43+ end
2644 cancelEvent ()
2745 local r , g , b = getPlayerColor (source )
2846 local name = getPlayerName (source )
0 commit comments