Skip to content

Commit a9301c6

Browse files
change playercolors onPlayerChat
1 parent 5923c80 commit a9301c6

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

[gameplay]/playercolors/playercolors.lua

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
local 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,9 +18,38 @@ local function setAllPlayerColors()
1618
end
1719
end
1820
end
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)
37+
38+
addEventHandler('onPlayerChat', root,
39+
function(msg, type)
40+
if type == 0 then
41+
if freeroamRunning then
42+
return -- No effect, let freeroam handle chat
43+
end
44+
cancelEvent()
45+
local r, g, b = getPlayerColor(source)
46+
local name = getPlayerName(source)
47+
msg = msg:gsub('#%x%x%x%x%x%x', '')
48+
outputChatBox( name.. ': #FFFFFF' .. msg, root, r, g, b, true)
49+
outputServerLog( "CHAT: " .. name .. ": " .. msg )
50+
end
51+
end
52+
)
2253

2354
getPlayerColor = getPlayerNametagColor
2455
getPlayerColour = getPlayerNametagColor

0 commit comments

Comments
 (0)