public static void SendPrivateInformation(ulong playerId, string infoText, string from = null) { if (infoText == "") { return; } var MessageItem = new ServerMessageItem(); MessageItem.From = PluginSettings.Instance.ServerChatName; MessageItem.Message = infoText; string messageString = MyAPIGateway.Utilities.SerializeToXML(MessageItem); byte[] data = Encoding.UTF8.GetBytes(messageString); if (ChatManager.EnableData) { SendDataMessage(playerId, DataMessageType.Message, data); } else { ChatManager.Instance.SendPrivateChatMessage(playerId, infoText); } var chatItem = new ChatManager.ChatEvent(); chatItem.Timestamp = DateTime.Now; chatItem.RemoteUserId = from == null ? 0 : PlayerMap.Instance.GetSteamIdFromPlayerName(from); chatItem.Message = infoText; ChatManager.Instance.AddChatHistory(chatItem); }
static void ChatCommand_GUI(ChatManager.ChatEvent chatEvent) { Thread uiThread = new Thread(new ThreadStart(StartGUI)); uiThread.SetApartmentState(ApartmentState.STA); uiThread.Start(); }
/// <summary> /// Adds incoming chat event into all players' global chat history. /// </summary> /// <param name="obj"></param> public static void AddChat(ChatManager.ChatEvent obj) { if (!_init) { _init = true; Init(); } Wrapper.GameAction(() => { try { var player = MySession.Static.Players.GetAllPlayers().First(x => x.SteamId == obj.SourceUserId); var characterId = MySession.Static.Players.ControlledEntities.First(x => x.Value.SteamId == obj.SourceUserId).Key; var character = MyEntities.GetEntityById(characterId) as MyCharacter; if (character == null) { //okay, the sending player doesn't have a character. just find any character character = MyEntities.GetEntities().FirstOrDefault(x => (x as MyCharacter) != null) as MyCharacter; if (character == null) { //we gave it our best shot :( return; } } character.SendNewGlobalMessage(player, obj.Message); } catch (Exception ex) { Essentials.Log.Error(ex, "Fail ChatHistory"); } }); }
public static void SendPrivateInformation(ulong playerId, string infoText) { if (infoText == "") { return; } var messageItem = new ServerMessageItem { From = PluginSettings.Instance.ServerChatName, Message = infoText }; var messageString = MyAPIGateway.Utilities.SerializeToXML(messageItem); var data = Encoding.UTF8.GetBytes(messageString); if (ChatManager.EnableData) { SendDataMessage(playerId, DataMessageType.Message, data); } else { ChatManager.Instance.SendPrivateChatMessage(playerId, infoText); } var chatItem = new ChatManager.ChatEvent { Timestamp = DateTime.Now, RemoteUserId = 0, Message = infoText }; ChatManager.Instance.AddChatHistory(chatItem); }
/// <summary> /// Raised when a chat messages are received. /// NOTE: This is raised on a different thread /// </summary> /// <param name="obj"></param> public void OnChatReceived(ChatManager.ChatEvent obj) { if (obj.message[0] != '/') { return; } HandleChatMessage(obj.sourceUserId, obj.message); }
public void OnChatReceived(ChatManager.ChatEvent obj) { if (obj.SourceUserId == 0) { return; } if (obj.Message[0] == '/') { } }
public static void SendPrivateInformation(ulong playerId, string infoText, string from = null) { if (infoText == "") { return; } ServerMessageItem MessageItem = new ServerMessageItem( ); if (from == null) { MessageItem.From = PluginSettings.Instance.ServerChatName; } else if (PluginSettings.Instance.WhisperChatPrefix) { MessageItem.From = "<whisper> " + from; } else { MessageItem.From = from; } MessageItem.Message = infoText; string messageString = MyAPIGateway.Utilities.SerializeToXML(MessageItem); byte[] data = Encoding.Unicode.GetBytes(messageString); if (ChatManager.EnableData) { SendDataMessage(playerId, DataMessageType.Message, data); } else { ChatManager.Instance.SendPrivateChatMessage(playerId, infoText); } ChatManager.ChatEvent chatItem = new ChatManager.ChatEvent( ); chatItem.Timestamp = DateTime.Now; chatItem.RemoteUserId = (from == null ? 0 : PlayerMap.Instance.GetSteamIdFromPlayerName(from)); chatItem.Message = (from == null ? infoText : (string.Format("{whisper to {0}}: {1}", PlayerMap.Instance.GetFastPlayerNameFromSteamId(playerId), infoText))); ChatManager.Instance.AddChatHistory(chatItem); }
public GetChatMessagesFromResult GetChatMessagesFrom(int id, bool ignoreServer) { if (id < 0) { return(new GetChatMessagesFromResult("Id can't be smaller than 0", true)); } if (ChatManager.Instance.ChatHistory.Count < id) { return(new GetChatMessagesFromResult("Id is greater than last message Id", true)); } if (ChatManager.Instance.ChatHistory.Count == id) { return(new GetChatMessagesFromResult("No new messages", false)); } var messageList = new List <ChatMessage>(); for (int i = id; i < ChatManager.Instance.ChatHistory.Count; i++) { ChatManager.ChatEvent curChatMessage = ChatManager.Instance.ChatHistory[i]; ulong steamID = curChatMessage.SourceUserId; string name; if (curChatMessage.SourceUserId == 0) { if (ignoreServer) { continue; } name = "Server"; } else { name = PlayerMap.Instance.GetPlayerNameFromSteamId(steamID); } string message = curChatMessage.Message; messageList.Add(new ChatMessage(i, steamID, name, message)); } return(new GetChatMessagesFromResult("", false, messageList)); }
public static void SendPrivateInformation(ulong playerId, string infoText, string from = null) { if (string.IsNullOrEmpty(infoText)) { return; } ulong steamId = from == null ? 0 : PlayerMap.Instance.GetSteamIdFromPlayerName(from); if (from == null) { from = PluginSettings.Instance.ServerChatName; } else if (PluginSettings.Instance.WhisperChatPrefix) { from = "<whisper> " + from; } ScriptedChatMsg msg = new ScriptedChatMsg { Author = from, Font = MyFontEnum.Red, Text = infoText, Target = PlayerMap.Instance.GetFastPlayerIdFromSteamId(playerId), }; if (msg.Target != 0) { var messageMethod = typeof(MyMultiplayerBase).GetMethod("OnScriptedChatMessageRecieved", BindingFlags.NonPublic | BindingFlags.Static); ServerNetworkManager.Instance.RaiseStaticEvent(messageMethod, msg); ChatManager.Instance.ScanGPSAndAdd(infoText, msg.Target); } ChatManager.ChatEvent chatItem = new ChatManager.ChatEvent( ); chatItem.Timestamp = DateTime.Now; chatItem.RemoteUserId = steamId; chatItem.Message = (from == null ? infoText : ($"{{whisper}} to {PlayerMap.Instance.GetFastPlayerNameFromSteamId( playerId )}: {infoText}")); ChatManager.Instance.AddChatHistory(chatItem); }
public void OnChatSent(ChatManager.ChatEvent obj) { }