489 lines
46 KiB
HTML
489 lines
46 KiB
HTML
|
||||
|
|
|
|||
|
|
<!DOCTYPE html>
|
|||
|
|
<html class="writer-html5" lang="en" data-content_root="../">
|
|||
|
|
<head>
|
|||
|
|
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
|
|||
|
|
|
|||
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|||
|
|
<title>Managing clients — TeamSpeak SDK documentation</title>
|
|||
|
|
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
|
|||
|
|
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
|
|||
|
|
|
|||
|
|
|
|||
|
|
<script src="../_static/jquery.js?v=5d32c60e"></script>
|
|||
|
|
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
|||
|
|
<script src="../_static/documentation_options.js?v=7f41d439"></script>
|
|||
|
|
<script src="../_static/doctools.js?v=9bcbadda"></script>
|
|||
|
|
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
|
|||
|
|
<script src="../_static/js/theme.js"></script>
|
|||
|
|
<link rel="index" title="Index" href="../genindex.html" />
|
|||
|
|
<link rel="search" title="Search" href="../search.html" />
|
|||
|
|
<link rel="next" title="Whisper lists" href="whisper.html" />
|
|||
|
|
<link rel="prev" title="Deleting channels" href="channel-delete.html" />
|
|||
|
|
</head>
|
|||
|
|
|
|||
|
|
<body class="wy-body-for-nav">
|
|||
|
|
<div class="wy-grid-for-nav">
|
|||
|
|
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
|
|||
|
|
<div class="wy-side-scroll">
|
|||
|
|
<div class="wy-side-nav-search" >
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
<a href="../index.html" class="icon icon-home">
|
|||
|
|
TeamSpeak SDK
|
|||
|
|
<img src="../_static/logo.png" class="logo" alt="Logo"/>
|
|||
|
|
</a>
|
|||
|
|
<div role="search">
|
|||
|
|
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
|
|||
|
|
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
|
|||
|
|
<input type="hidden" name="check_keywords" value="yes" />
|
|||
|
|
<input type="hidden" name="area" value="default" />
|
|||
|
|
</form>
|
|||
|
|
</div>
|
|||
|
|
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
|
|||
|
|
<p class="caption" role="heading"><span class="caption-text">API</span></p>
|
|||
|
|
<ul>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../errors.html">TeamSpeak Error Codes</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../properties.html">Property Enums</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../enumerations.html">Structures & Enumerations</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client_api.html">TeamSpeak Client Functions</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../server_api.html">TeamSpeak Server Functions</a></li>
|
|||
|
|
</ul>
|
|||
|
|
<p class="caption" role="heading"><span class="caption-text">Server</span></p>
|
|||
|
|
<ul class="current">
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="basic.html">Getting started</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="list-items.html">List available clients, channels, servers</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="vserver-manage.html">Create and stop virtual servers</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="advanced-create.html">Advanced virtual server creation</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="info.html">Retrieve and store information</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="channels.html">Managing channels</a></li>
|
|||
|
|
<li class="toctree-l1 current"><a class="current reference internal" href="#">Managing clients</a><ul>
|
|||
|
|
<li class="toctree-l2"><a class="reference internal" href="#list-clients">List clients</a></li>
|
|||
|
|
<li class="toctree-l2"><a class="reference internal" href="#moving-clients">Moving clients</a><ul>
|
|||
|
|
<li class="toctree-l3"><a class="reference internal" href="#example">Example</a></li>
|
|||
|
|
</ul>
|
|||
|
|
</li>
|
|||
|
|
<li class="toctree-l2"><a class="reference internal" href="#kicking-clients">Kicking Clients</a></li>
|
|||
|
|
<li class="toctree-l2"><a class="reference internal" href="#client-information">Client information</a><ul>
|
|||
|
|
<li class="toctree-l3"><a class="reference internal" href="#query-client-information">Query client information</a><ul>
|
|||
|
|
<li class="toctree-l4"><a class="reference internal" href="#id1">Example</a></li>
|
|||
|
|
</ul>
|
|||
|
|
</li>
|
|||
|
|
<li class="toctree-l3"><a class="reference internal" href="#setting-client-information">Setting client information</a><ul>
|
|||
|
|
<li class="toctree-l4"><a class="reference internal" href="#examples">Examples</a></li>
|
|||
|
|
</ul>
|
|||
|
|
</li>
|
|||
|
|
</ul>
|
|||
|
|
</li>
|
|||
|
|
</ul>
|
|||
|
|
</li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="whisper.html">Whisper lists</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="encryption.html">Custom encryption</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="passwords.html">Custom passwords</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="permissions.html">Permission checks</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="security-salt.html">Security salts and hashes</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="disable-commands.html">Disabling protocol commands</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="filetransfer.html">Filetransfer</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
|
|||
|
|
</ul>
|
|||
|
|
<p class="caption" role="heading"><span class="caption-text">Client</span></p>
|
|||
|
|
<ul>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/intro.html">Introduction</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/basic.html">Getting started</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/connections.html">Managing server connections</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/logging.html">Logging</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/audio.html">Client Audio</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/wave-files.html">Playing wave files</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/3dsound.html">3D Sound</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/whisper.html">Whisper lists</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/voice-encryption.html">Channel voice data encryption</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/info.html">Retrieve and store information</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/channels.html">Channel Management</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/client-list.html">List clients</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/client-kick.html">Kicking clients</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/local-mute.html">Muting other clients</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/textmessages.html">Text chat</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/filetransfer.html">Filetransfer</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/encryption.html">Custom encryption</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/passwords.html">Custom passwords</a></li>
|
|||
|
|
<li class="toctree-l1"><a class="reference internal" href="../client/faq.html">FAQ</a></li>
|
|||
|
|
</ul>
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
|
|||
|
|
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
|
|||
|
|
<a href="../index.html">TeamSpeak SDK</a>
|
|||
|
|
</nav>
|
|||
|
|
|
|||
|
|
<div class="wy-nav-content">
|
|||
|
|
<div class="rst-content">
|
|||
|
|
<div role="navigation" aria-label="Page navigation">
|
|||
|
|
<ul class="wy-breadcrumbs">
|
|||
|
|
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
|
|||
|
|
<li class="breadcrumb-item active">Managing clients</li>
|
|||
|
|
<li class="wy-breadcrumbs-aside">
|
|||
|
|
</li>
|
|||
|
|
</ul>
|
|||
|
|
<hr/>
|
|||
|
|
</div>
|
|||
|
|
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
|
|||
|
|
<div itemprop="articleBody">
|
|||
|
|
|
|||
|
|
<section id="managing-clients">
|
|||
|
|
<h1>Managing clients<a class="headerlink" href="#managing-clients" title="Link to this heading"></a></h1>
|
|||
|
|
<p>While in a traditional TeamSpeak setup, clients are moving themselves by joining
|
|||
|
|
channels, and clients can request to move other clients, the server is also able
|
|||
|
|
to perform these actions using the functions described in this chapter.</p>
|
|||
|
|
<section id="list-clients">
|
|||
|
|
<h2>List clients<a class="headerlink" href="#list-clients" title="Link to this heading"></a></h2>
|
|||
|
|
<p>A list of all clients currently online on the specified virtual server
|
|||
|
|
can be queried with</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_getClientList</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">result</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>get a list of all clients connected to a server </p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server on which to get the list of clients </p></li>
|
|||
|
|
<li><p><strong>result</strong> – address of a variable to receive the zero terminated list of clients, like {1, 2, 50, …, 0} Memory is allocated by the server library and caller must free the array using <a class="reference internal" href="../server_api.html#serverlib_8h_1a6993000e98ccfa4ecf0a6f3d92406e5e"><span class="std std-ref">ts3server_freeMemory</span></a></p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<p>To get a list of all clients currently in the specified channel</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_getChannelClientList</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">channelID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">result</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>get list of clients in a channel </p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – the server on which the channel is located </p></li>
|
|||
|
|
<li><p><strong>channelID</strong> – the channel of which to get the list of clients </p></li>
|
|||
|
|
<li><p><strong>result</strong> – address of a variable to receive a zero terminated array of client ids in the channel. Like {3, 5, 39, …, 0} Memory is allocated by the server library and caller must free the array using <a class="reference internal" href="../server_api.html#serverlib_8h_1a6993000e98ccfa4ecf0a6f3d92406e5e"><span class="std std-ref">ts3server_freeMemory</span></a></p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
</section>
|
|||
|
|
<section id="moving-clients">
|
|||
|
|
<h2>Moving clients<a class="headerlink" href="#moving-clients" title="Link to this heading"></a></h2>
|
|||
|
|
<p>Clients can be moved server-side to another channel, in addition to the
|
|||
|
|
client-side functionality offered by the Client Lib. To move one or
|
|||
|
|
multiple clients to a new channel, call:</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_clientMove</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">newChannelID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">clientIDArray</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>Move one or more clients to a different channel. </p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is connected to </p></li>
|
|||
|
|
<li><p><strong>newChannelID</strong> – the id of the channel to move the client(s) to </p></li>
|
|||
|
|
<li><p><strong>clientIDArray</strong> – zero terminated array of client ids to move. Like {4, 9, …, 0} </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<section id="example">
|
|||
|
|
<h3>Example<a class="headerlink" href="#example" title="Link to this heading"></a></h3>
|
|||
|
|
<p>Example to move a single client to another channel:</p>
|
|||
|
|
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="n">anyID</span><span class="w"> </span><span class="n">clientIDArray</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span><span class="w"> </span><span class="cm">/* One client plus terminating zero as end-marker */</span>
|
|||
|
|
<span class="linenos"> 2</span><span class="n">uint64</span><span class="w"> </span><span class="n">newChannelID</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 3</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">error</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 4</span>
|
|||
|
|
<span class="linenos"> 5</span><span class="n">clientIDArray</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">clientID</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Client to move */</span>
|
|||
|
|
<span class="linenos"> 6</span><span class="n">clientIDArray</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="cm">/* End marker */</span>
|
|||
|
|
<span class="linenos"> 7</span>
|
|||
|
|
<span class="linenos"> 8</span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3server_clientMove</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">newChannelID</span><span class="p">,</span><span class="w"> </span><span class="n">channelIDArray</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos"> 9</span><span class="w"> </span><span class="cm">/* Handle error */</span>
|
|||
|
|
<span class="linenos">10</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
|||
|
|
<span class="linenos">11</span><span class="p">}</span>
|
|||
|
|
<span class="linenos">12</span>
|
|||
|
|
<span class="linenos">13</span><span class="cm">/* Client moved successfully */</span>
|
|||
|
|
</pre></div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
</section>
|
|||
|
|
<section id="kicking-clients">
|
|||
|
|
<h2>Kicking Clients<a class="headerlink" href="#kicking-clients" title="Link to this heading"></a></h2>
|
|||
|
|
<p>In additions to the client side feature, the server can also kick clients from the server
|
|||
|
|
itself using</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_clientsKickFromServer</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">clientIDArray</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">kickReason</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">failOnClientError</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>kick one or more clients from the server, terminating their connection. </p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – the server the client(s) are connected to </p></li>
|
|||
|
|
<li><p><strong>clientIDArray</strong> – zero terminated array of client ids to kick. Like {4, 3, 12, …, 0} </p></li>
|
|||
|
|
<li><p><strong>kickReason</strong> – utf8 encoded c string describing the reason for the kick. Pass an empty string if unused. </p></li>
|
|||
|
|
<li><p><strong>failOnClientError</strong> – boolean flag. If 1 the function will fail if clients to be kicked are not on the server. </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
</section>
|
|||
|
|
<section id="client-information">
|
|||
|
|
<h2>Client information<a class="headerlink" href="#client-information" title="Link to this heading"></a></h2>
|
|||
|
|
<p>Information about the clients currently connected to the virtual server
|
|||
|
|
can be retrieved and modified.</p>
|
|||
|
|
<p>Available variables are listed in the <a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><code class="xref c c-enum docutils literal notranslate"><span class="pre">ClientProperties</span></code></a> enum.</p>
|
|||
|
|
<div class="admonition note">
|
|||
|
|
<p class="admonition-title">Note</p>
|
|||
|
|
<p>The server always has all the information about all clients as long as they are
|
|||
|
|
connected to the server.</p>
|
|||
|
|
<p>Limitations regarding availability mentioned for the variables are thus of no concern for the server.</p>
|
|||
|
|
</div>
|
|||
|
|
<section id="query-client-information">
|
|||
|
|
<h3>Query client information<a class="headerlink" href="#query-client-information" title="Link to this heading"></a></h3>
|
|||
|
|
<p>To query client related information, use one of the following functions depending on the
|
|||
|
|
type of the variable you are going to query.</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_getClientVariableAsInt</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">result</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>get the value of a client variable as integer. </p>
|
|||
|
|
<p>Not all variables are available as integer, some are only available as string or unsigned 64 bit integer.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>result</strong> – address of a variable to receive the value of the variable queried. </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_getClientVariableAsUInt64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">result</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>get the value of a client variable as unsigned 64 bit integer. </p>
|
|||
|
|
<p>Not all variables are available as unsigned 64 bit integer, some are only available as string or integer.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>result</strong> – address of a variable to receive the value of the variable queried. </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_getClientVariableAsString</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">result</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>get the value of the client variable as string </p>
|
|||
|
|
<p>Not all variables are available as string, some are only available as unsigned 64 bit integer or integer.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>result</strong> – address of a variable to receive the value of the variable queried. </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<section id="id1">
|
|||
|
|
<h4>Example<a class="headerlink" href="#id1" title="Link to this heading"></a></h4>
|
|||
|
|
<p>Query nickname of client with ID 123:</p>
|
|||
|
|
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="kt">unsigned</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">error</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 2</span><span class="n">anyID</span><span class="w"> </span><span class="n">clientID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">123</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Client ID in our example */</span>
|
|||
|
|
<span class="linenos"> 3</span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">nickname</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 4</span>
|
|||
|
|
<span class="linenos"> 5</span><span class="k">if</span><span class="w"> </span><span class="p">((</span><span class="n">error</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ts3server_getClientVariableAsString</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">,</span><span class="w"> </span><span class="n">CLIENT_NICKNAME</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">nickname</span><span class="p">))</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos"> 6</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error querying client nickname: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">error</span><span class="p">);</span>
|
|||
|
|
<span class="linenos"> 7</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 8</span><span class="p">}</span>
|
|||
|
|
<span class="linenos"> 9</span>
|
|||
|
|
<span class="linenos">10</span><span class="n">printf</span><span class="p">(</span><span class="s">"Client nickname is: %s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">nickname</span><span class="p">);</span>
|
|||
|
|
<span class="linenos">11</span><span class="n">ts3server_freeMemory</span><span class="p">(</span><span class="n">nickname</span><span class="p">);</span>
|
|||
|
|
</pre></div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
</section>
|
|||
|
|
<section id="setting-client-information">
|
|||
|
|
<h3>Setting client information<a class="headerlink" href="#setting-client-information" title="Link to this heading"></a></h3>
|
|||
|
|
<p>Client information can be modified with</p>
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_setClientVariableAsInt</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n"><span class="pre">value</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>set the value of a client variable. </p>
|
|||
|
|
<p>Not all variables can be set as integer.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>value</strong> – the new value to set </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_setClientVariableAsUInt64</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">value</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>set the value of a client variable. </p>
|
|||
|
|
<p>Not all variables can be set as unsigned 64 bit integer.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>value</strong> – the new value to set </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<dl class="c function">
|
|||
|
|
<dt class="sig sig-object c">
|
|||
|
|
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3server_setClientVariableAsString</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverID</span></span>, <span class="n"><span class="pre">anyID</span></span><span class="w"> </span><span class="n"><span class="pre">clientID</span></span>, <span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="../properties.html#c.ClientProperties" title="ClientProperties"><span class="n"><span class="pre">ClientProperties</span></span></a><span class="w"> </span><span class="n"><span class="pre">flag</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">value</span></span><span class="sig-paren">)</span><br /></dt>
|
|||
|
|
<dd><p>set the value of a client variable. </p>
|
|||
|
|
<p>Not all variables can be set as string.</p>
|
|||
|
|
<dl class="field-list simple">
|
|||
|
|
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-odd"><ul class="simple">
|
|||
|
|
<li><p><strong>serverID</strong> – specifies the server the client is on </p></li>
|
|||
|
|
<li><p><strong>clientID</strong> – which client to query </p></li>
|
|||
|
|
<li><p><strong>flag</strong> – specifies which variable to retrieve. One of the values from the <a class="reference internal" href="../properties.html#public__definitions_8h_1a107aa6e685b210b43b62c6227252bb01"><span class="std std-ref">ClientProperties</span></a> enum. </p></li>
|
|||
|
|
<li><p><strong>value</strong> – the new value to set </p></li>
|
|||
|
|
</ul>
|
|||
|
|
</dd>
|
|||
|
|
<dt class="field-even">Returns<span class="colon">:</span></dt>
|
|||
|
|
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
|
|||
|
|
</dd>
|
|||
|
|
</dl>
|
|||
|
|
</dd></dl>
|
|||
|
|
|
|||
|
|
<div class="admonition important">
|
|||
|
|
<p class="admonition-title">Important</p>
|
|||
|
|
<p>After modifying one or more client variables, you <strong>must</strong> flush the
|
|||
|
|
changes using <a class="reference internal" href="../server_api.html#c.ts3server_flushClientVariable" title="ts3server_flushClientVariable"><code class="xref c c-func docutils literal notranslate"><span class="pre">ts3server_flushClientVariable()</span></code></a>.</p>
|
|||
|
|
</div>
|
|||
|
|
<p>The idea behind flushing is, one can modify multiple values by calling
|
|||
|
|
<a class="reference internal" href="#c.ts3server_setClientVariableAsString" title="ts3server_setClientVariableAsString"><code class="xref c c-func docutils literal notranslate"><span class="pre">ts3server_setClientVariableAsString()</span></code></a>, <a class="reference internal" href="#c.ts3server_setClientVariableAsInt" title="ts3server_setClientVariableAsInt"><code class="xref c c-func docutils literal notranslate"><span class="pre">ts3server_setClientVariableAsInt()</span></code></a> and
|
|||
|
|
<a class="reference internal" href="#c.ts3server_setClientVariableAsUInt64" title="ts3server_setClientVariableAsUInt64"><code class="xref c c-func docutils literal notranslate"><span class="pre">ts3server_setClientVariableAsUInt64()</span></code></a> for a client and then apply all changes in one step.</p>
|
|||
|
|
<section id="examples">
|
|||
|
|
<h4>Examples<a class="headerlink" href="#examples" title="Link to this heading"></a></h4>
|
|||
|
|
<p>To change the nickname of the client with ID 55 to “Joe”:</p>
|
|||
|
|
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="n">anyID</span><span class="w"> </span><span class="n">clientID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">55</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Client ID in our example */</span>
|
|||
|
|
<span class="linenos"> 2</span>
|
|||
|
|
<span class="linenos"> 3</span><span class="cm">/* Modifiy data */</span>
|
|||
|
|
<span class="linenos"> 4</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ts3server_setClientVariableAsString</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">,</span><span class="w"> </span><span class="n">CLIENT_NICKNAME</span><span class="p">,</span><span class="w"> </span><span class="s">"Joe"</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos"> 5</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error setting client nickname</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
|||
|
|
<span class="linenos"> 6</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 7</span><span class="p">}</span>
|
|||
|
|
<span class="linenos"> 8</span>
|
|||
|
|
<span class="linenos"> 9</span><span class="cm">/* Flush changes */</span>
|
|||
|
|
<span class="linenos">10</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ts3server_flushClientVariable</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos">11</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error flushing client variable</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
|||
|
|
<span class="linenos">12</span><span class="p">}</span>
|
|||
|
|
</pre></div>
|
|||
|
|
</div>
|
|||
|
|
<p>Changing multiple variables is as simple as:</p>
|
|||
|
|
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="linenos"> 1</span><span class="n">anyID</span><span class="w"> </span><span class="n">clientID</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">66</span><span class="p">;</span><span class="w"> </span><span class="cm">/* Client ID in our example */</span>
|
|||
|
|
<span class="linenos"> 2</span>
|
|||
|
|
<span class="linenos"> 3</span><span class="cm">/* Modify data 1 */</span>
|
|||
|
|
<span class="linenos"> 4</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ts3server_setClientVariableAsString</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">,</span><span class="w"> </span><span class="n">CLIENT_NICKNAME</span><span class="p">,</span><span class="w"> </span><span class="s">"bob"</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos"> 5</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error setting nickname</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
|||
|
|
<span class="linenos"> 6</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
|||
|
|
<span class="linenos"> 7</span><span class="p">}</span>
|
|||
|
|
<span class="linenos"> 8</span>
|
|||
|
|
<span class="linenos"> 9</span><span class="cm">/* Modify data 2 */</span>
|
|||
|
|
<span class="linenos">10</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ts3server_setClientVariableAsString</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">,</span><span class="w"> </span><span class="n">CLIENT_META_DATA</span><span class="p">,</span><span class="w"> </span><span class="s">"some data"</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos">11</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error setting meta data</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
|
|||
|
|
<span class="linenos">12</span><span class="w"> </span><span class="k">return</span><span class="p">;</span>
|
|||
|
|
<span class="linenos">13</span><span class="p">}</span>
|
|||
|
|
<span class="linenos">14</span>
|
|||
|
|
<span class="linenos">15</span><span class="cm">/* Flush changes */</span>
|
|||
|
|
<span class="linenos">16</span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ts3server_flushClientVariable</span><span class="p">(</span><span class="n">serverID</span><span class="p">,</span><span class="w"> </span><span class="n">clientID</span><span class="p">)</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">ERROR_ok</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
|
|||
|
|
<span class="linenos">17</span><span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"Error flushing client variable"</span><span class="p">);</span>
|
|||
|
|
<span class="linenos">18</span><span class="p">}</span>
|
|||
|
|
</pre></div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
</section>
|
|||
|
|
</section>
|
|||
|
|
</section>
|
|||
|
|
|
|||
|
|
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
|
|||
|
|
<a href="channel-delete.html" class="btn btn-neutral float-left" title="Deleting channels" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
|
|||
|
|
<a href="whisper.html" class="btn btn-neutral float-right" title="Whisper lists" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<hr/>
|
|||
|
|
|
|||
|
|
<div role="contentinfo">
|
|||
|
|
<p>© Copyright 2020, TeamSpeak Systems GmbH.</p>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
|
|||
|
|
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
|
|||
|
|
provided by <a href="https://readthedocs.org">Read the Docs</a>.
|
|||
|
|
|
|||
|
|
|
|||
|
|
</footer>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
</section>
|
|||
|
|
</div>
|
|||
|
|
<script>
|
|||
|
|
jQuery(function () {
|
|||
|
|
SphinxRtdTheme.Navigation.enable(true);
|
|||
|
|
});
|
|||
|
|
</script>
|
|||
|
|
|
|||
|
|
</body>
|
|||
|
|
</html>
|