Skip to content

OnPlayerChat

Usage

  • Return a non-null value to override default behavior

Example Autogenerated

csharp
private object OnPlayerChat( BasePlayer player, string message, Chat.ChatChannel channel )
{
    Puts( "OnPlayerChat works!" );
    return null;
}

Location

  • RustCore::IOnPlayerChat(ulong playerId, string playerName, string message, Chat.ChatChannel channel, BasePlayer basePlayer)(ulong playerId, string playerName, string message, Chat.ChatChannel channel, BasePlayer player)
csharp
private object IOnPlayerChat(ulong playerId, string playerName, string message, Chat.ChatChannel channel, BasePlayer basePlayer)
{
	// Ignore empty and "default" text
	if (string.IsNullOrEmpty(message) || message.Equals("text"))
	{
		return true;
	}

	// Check if chat command
	string chatCommandPrefix = CommandHandler.GetChatCommandPrefix(message);
	if ( chatCommandPrefix != null )
	{
		TryRunPlayerCommand( basePlayer, message, chatCommandPrefix );
		return false;
	}

	message = message.EscapeRichText();

	// Check if using Rust+ app
	if (basePlayer == null || !basePlayer.IsConnected)
	{
		// Call offline chat hook
		return Interface.CallHook("OnPlayerOfflineChat", playerId, playerName, message, channel);
	}

	// Call hooks for plugins
	object chatSpecific = Interface.CallHook("OnPlayerChat", basePlayer, message, channel);
	object chatCovalence = Interface.CallHook("OnUserChat", basePlayer.IPlayer, message);
	return chatSpecific is null ? chatCovalence : chatSpecific;
}

Released under the MIT License.