private void Send_Notification_To_Channel( EChannelID channel_id, EPersistenceID source_player_id, EPersistenceID target_player_id, EChatNotification chat_event, EPersistenceID skip_id ) { string source_player_name = Get_Player_Name_By_Persistence_ID( source_player_id ); string target_player_name = Get_Player_Name_By_Persistence_ID( target_player_id ); CChatClientNotificationMessage notification_message = new CChatClientNotificationMessage( channel_id, target_player_name, target_player_id, chat_event, source_player_name ); Send_Message_To_Channel( channel_id, notification_message, skip_id ); }
private void On_Chat_Client_Notification( CChatClientNotificationMessage message ) { CClientChatChannel channel = Get_Channel_By_Channel_ID( message.ChannelID ); if ( channel == null ) { return; } switch ( message.ChatEvent ) { case EChatNotification.Channel_Destroyed: CClientResource.Output_Text( EClientTextID.Client_Chat_Channel_Destroyed, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ) ); break; case EChatNotification.Player_Joined_Channel: if ( channel.AnnounceJoinLeave ) { CClientResource.Output_Text( EClientTextID.Client_Chat_Player_Joined_Channel, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ) ); } channel.Add_Player( message.TargetID ); break; case EChatNotification.Player_Left_Channel: if ( channel.AnnounceJoinLeave ) { CClientResource.Output_Text( EClientTextID.Client_Chat_Player_Left_Channel, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ) ); } channel.Remove_Player( message.TargetID ); break; case EChatNotification.Player_Kicked_From_Channel: CClientResource.Output_Text( EClientTextID.Client_Chat_Player_Kicked_From_Channel, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ), ( message.SourceName.Length > 0 ) ? message.SourceName : CClientResource.Get_Text( EClientTextID.Client_The_Server ) ); channel.Remove_Player( message.TargetID ); break; case EChatNotification.Player_Gagged: CClientResource.Output_Text( EClientTextID.Client_Chat_Player_Gagged_In_Channel, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ), message.SourceName ); channel.Set_Gag_Status( message.TargetID, true ); break; case EChatNotification.Player_Ungagged: CClientResource.Output_Text( EClientTextID.Client_Chat_Player_Ungagged_In_Channel, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ), message.SourceName ); channel.Set_Gag_Status( message.TargetID, false ); break; case EChatNotification.New_Moderator: if ( message.TargetName != null ) { CClientResource.Output_Text( EClientTextID.Client_Chat_Channel_New_Moderator, message.TargetName, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ) ); } else { CClientResource.Output_Text( EClientTextID.Client_Chat_Channel_Unmoderated, Build_Channel_Name_Display_String( channel.ChannelName, channel.ChannelNumber ) ); } channel.Set_Moderator( message.TargetID ); break; } }