GM:OnPlayerChat

From Garry's Mod
Jump to: navigation, search
 GM:OnPlayerChat( )

Contents

Description

Called whenever a player sends a chat message. For the serverside equivalent, see GM:PlayerSay.

Arguments

Player ply

The player

Arguments

string text

The message's text

Arguments

boolean teamChat

Is the player typing in team chat?

Arguments

boolean isDead

Is the player dead?

Returns

boolean

Should the message be suppressed?

Examples

Example

Code from base gamemode. See garrysmod/gamemodes/base/gamemode/cl_init.lua#L139

function GM:OnPlayerChat( player, strText, bTeamOnly, bPlayerIsDead )
 
	--
	-- I've made this all look more complicated than it is. Here's the easy version
	--
	-- chat.AddText( player, Color( 255, 255, 255 ), ": ", strText )
	--

	local tab = {}

	if ( bPlayerIsDead ) then
		table.insert( tab, Color( 255, 30, 40 ) )
		table.insert( tab, "*DEAD* " )
	end

	if ( bTeamOnly ) then
		table.insert( tab, Color( 30, 160, 40 ) )
		table.insert( tab, "(TEAM) " )
	end

	if ( IsValid( player ) ) then
		table.insert( tab, player )
	else
		table.insert( tab, "Console" )
	end

	table.insert( tab, Color( 255, 255, 255 ) )
	table.insert( tab, ": "..strText )

	chat.AddText( unpack(tab) )

	return true
 
end


Examples

Example

How you could create a chat command.

hook.Add( "OnPlayerChat", "HelloCommand", function( ply, strText, bTeam, bDead ) 

	strText = string.lower( strText ) -- make the string lower case

	if (strText == "/hello") then -- if the player typed /hello then
		print("Hello world!") -- print Hello world to the console
		return true -- this suppresses the message from being shown
	end

end )

Output:

Prints "Hello world!" to the console when you type /hello in the chat.
Personal tools
Navigation