/// <summary> /// Modify channel properties /// </summary> public TS3Models.Result ChannelEdit(int cid, Dictionary <TS3Models.ChannelProperties, object> channelProperties) { if (IsConnected()) { string query = string.Format("channeledit cid={0}", cid); foreach (KeyValuePair <TS3Models.ChannelProperties, object> prop in channelProperties) { query += string.Format(" {0}={1}", prop.Key, TS3Helper.EscapeString(prop.Value.ToString())); } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Update client infos /// </summary> public TS3Models.Result ClientUpdate(Dictionary <TS3Models.ClientProperties, object> clientProperties) { if (IsConnected()) { string query = "clientupdate"; foreach (KeyValuePair <TS3Models.ClientProperties, object> prop in clientProperties) { query += string.Format(" {0}={1}", prop.Key, TS3Helper.EscapeString(prop.Value.ToString())); } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Kick a client from server /// </summary> public TS3Models.Result ClientKick(List <int> clids, TS3Models.ReasonIdentifier reasonid, string reasonmsg = null) { if (IsConnected()) { string query = string.Format("clientkick {0} reasonid={1}", TS3Helper.GetSeperatedParamStringList("clid", clids.Cast <object>().ToList()), (int)reasonid); if (!string.IsNullOrEmpty(reasonmsg)) { query += string.Format(" reasonmsg={0}", TS3Helper.EscapeString(reasonmsg)); } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Move a client to an other channel /// </summary> public TS3Models.Result ClientMove(List <int> clids, int cid, string cpw = null) { if (IsConnected()) { string query = string.Format("clientmove {0} cid={1}", TS3Helper.GetSeperatedParamStringList("clid", clids.Cast <object>().ToList()), cid); if (!string.IsNullOrEmpty(cpw)) { query += string.Format(" cpw={0}", TS3Helper.EscapeString(cpw)); } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Create a new channel /// </summary> public TS3Models.Result ChannelCreate(string channelName, Dictionary <TS3Models.ChannelProperties, object> channelProperties = null) { if (IsConnected()) { string query = string.Format("channelcreate channel_name={0}", TS3Helper.EscapeString(channelName)); if (channelProperties != null) { foreach (KeyValuePair <TS3Models.ChannelProperties, object> prop in channelProperties) { query += string.Format(" {0}={1}", prop.Key, TS3Helper.EscapeString(prop.Value.ToString())); } } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Ban a client from server /// </summary> public TS3Models.Result BanClient(List <int> clids, int?time = null, string banreason = null) { if (IsConnected()) { string query = string.Format("banclient {0}", TS3Helper.GetSeperatedParamStringList("clid", clids.Cast <object>().ToList())); if (time != null) { query += string.Format(" time={0}", time); } if (string.IsNullOrEmpty(banreason)) { query += string.Format(" banreason={0}", TS3Helper.EscapeString(banreason)); } ts3Connection.WriteLine(query); return(TS3Helper.ParseResult(ReadAll(), false)); } return(null); }
/// <summary> /// Sends a poke message to a client /// </summary> public TS3Models.Result ClientPoke(int clid, string msg, bool withoutResponse = false) { if (IsConnected()) { ts3Connection.WriteLine(string.Format("clientpoke clid={0} msg={1}", clid, TS3Helper.EscapeString(msg))); if (withoutResponse) { ClearReadBuffer(); } else { return(TS3Helper.ParseResult(ReadAll(), false)); } } return(null); }
/// <summary> /// Sends a text message to a client, channel, server /// </summary> public TS3Models.Result SendTextMessage(TS3Models.TextMessageTargetMode targetmode, int target, string msg, bool withoutResponse = false) { if (IsConnected()) { ts3Connection.WriteLine(string.Format("sendtextmessage targetmode={0} target={1} msg={2}", (int)targetmode, target, TS3Helper.EscapeString(msg))); if (withoutResponse) { ClearReadBuffer(); } else { return(TS3Helper.ParseResult(ReadAll(), false)); } } return(null); }