/// <summary>Sends a text message to a specified target. /// If targetmode is set to <see cref="TextMessageTargetMode.Private"/>, a message is sent to the client with the ID specified by target. /// If targetmode is set to <see cref="TextMessageTargetMode.Channel"/> or <see cref="TextMessageTargetMode.Server"/>, /// the target parameter will be ignored and a message is sent to the current channel or server respectively.</summary> public CmdR SendMessage(string message, TextMessageTargetMode target, ulong id) => SendVoid(new TsCommand("sendtextmessage") { { "targetmode", (int)target }, { "target", id }, { "msg", message }, });
public void Write(string message, TextMessageTargetMode targetMode) { VerifyLock(); try { R result; switch (targetMode) { case TextMessageTargetMode.Private: result = Bot.QueryConnection.SendMessage(message, client.ClientId); break; case TextMessageTargetMode.Channel: result = Bot.QueryConnection.SendChannelMessage(message); break; case TextMessageTargetMode.Server: result = Bot.QueryConnection.SendServerMessage(message); break; default: throw new InvalidOperationException(); } if (!result) { Log.Write(Log.Level.Error, "Could not write message (Err:{0}) (Msg:{1})", result.Message, message); } } catch (Ts3CommandException ex) { Log.Write(Log.Level.Error, "Could not write message (Ex:{0}) (Msg:{1})", ex.UnrollException(), message); } }
/// <summary> /// Sends a text message a specified target. /// The type of the target is determined by targetmode while target specifies the ID of the recipient, whether it be a virtual server, a channel or a client. /// </summary> /// <param name="targetMode"></param> /// <param name="targetId"></param> /// <param name="message"></param> /// <returns></returns> public Task <ServerQueryBaseResult> SendTextMessage(TextMessageTargetMode targetMode, int targetId, string message) { return(SendCommandAsync(new ServerQueryCommand <ServerQueryBaseResult>(Command.sendtextmessage) .Add(Parameter.targetmode, targetMode) .Add(Parameter.target, targetId) .Add(Parameter.msg, message))); }
void _client_TextMessage(ulong serverID, TextMessageTargetMode targetMode, ushort toID, ushort fromID, string fromName, string fromUniqueIdentifier, string message) { //string msg = string.Format("[MSG|{0}|{1}|{2}|{3}|{4}]: {5}", serverID, targetMode.ToString(), toID, fromID, fromName, message); if (targetMode == TextMessageTargetMode.TextMessageTarget_CLIENT && _client.CurrentClientID == toID) { message = string.Format("Whisper from {0}: {1}", fromName, message); } else if (targetMode == TextMessageTargetMode.TextMessageTarget_CLIENT && _client.CurrentClientID == fromID) { message = string.Format("Whisper to {0}: {1}", _client.getStringVariable(toID, ClientProperties.CLIENT_NICKNAME), message); } updateTextbox(message, txtLog); }
/// <summary>Sends a text message to a specified target. /// If targetmode is set to <see cref="TextMessageTargetMode.Private"/>, a message is sent to the client with the ID specified by target. /// If targetmode is set to <see cref="TextMessageTargetMode.Channel"/> or <see cref="TextMessageTargetMode.Server"/>, /// the target parameter will be ignored and a message is sent to the current channel or server respectively.</summary> public CmdR SendMessage(string message, TextMessageTargetMode target, ulong id) => Send("sendtextmessage", new CommandParameter("targetmode", (int)target), new CommandParameter("target", id), new CommandParameter("msg", message));
public CmdR RegisterNotification(TextMessageTargetMode target) => RegisterNotification(TargetTypeString[(int)target], null);
public void RegisterNotification(TextMessageTargetMode target, ChannelIdT channel) => RegisterNotification(TargetTypeString[(int)target], channel);
public Boolean SendTextMesssage(TextMessageTargetMode targetMode, int targetID, String message) { //sendtextmessage targetmode={1-3} target={serverID|channelID|clientID} msg={text} this.latestError = this.ExecuteCommand(String.Format("sendtextmessage targetmode={0} target={1} msg={2}", targetMode, targetID, EscapeString(message))); return this.latestError.Success; }
void _client_TextMessage(ulong serverID, TextMessageTargetMode targetMode, ushort toID, ushort fromID, string fromName, string fromUniqueIdentifier, string message) { //string msg = string.Format("[MSG|{0}|{1}|{2}|{3}|{4}]: {5}", serverID, targetMode.ToString(), toID, fromID, fromName, message); if (targetMode == TextMessageTargetMode.TextMessageTarget_CLIENT && _client.CurrentClientID == toID) message = string.Format("Whisper from {0}: {1}", fromName, message); else if (targetMode == TextMessageTargetMode.TextMessageTarget_CLIENT && _client.CurrentClientID == fromID) message = string.Format("Whisper to {0}: {1}", _client.getStringVariable(toID, ClientProperties.CLIENT_NICKNAME), message); updateTextbox(message, txtLog); }
private void onTextMessage(ulong serverID, TextMessageTargetMode targetMode, ushort toID, ushort fromID, string fromName, string fromUniqueIdentifier, string message) { if (TextMessage != null) TextMessage(serverID, targetMode, toID, fromID, fromName, fromUniqueIdentifier, message); }
public bool tell(string message, TextMessageTargetMode mode, ulong target = 0) { if(_state != ClientState.STATE_CONNECTED) { notifyError("Not connected."); return false; } uint result = Error.ok; switch(mode) { case TextMessageTargetMode.TextMessageTarget_SERVER: message = string.Format("[SERVER BROADCAST FROM {0}]: {1}", _currentClientName, message); result = RequestSendServerTextMsg(_connectedServerID, message, null); break; case TextMessageTargetMode.TextMessageTarget_CHANNEL: message = string.Format("{0}: {1}", _currentClientName, message); result = RequestSendChannelTextMsg(_connectedServerID, message, target, null); break; case TextMessageTargetMode.TextMessageTarget_CLIENT: if (target == _currentClientID) { notifyError("You cannot whisper to yourself"); return false; } else { result = RequestSendPrivateTextMsg(_connectedServerID, message, (ushort)target, null); } break; default: break; } if (result != Error.ok) { notifyError("Error senting message."); return false; } else notify("Message sent."); return true; }