# BlackIntel Forum

## BlackIntel => General discussion => Topic started by: Gwynzer on January 14, 2010, 08:06:15 pm

Title: Teamspeak 3
Post by: Gwynzer on January 14, 2010, 08:06:15 pm
Temporarily, we are swapping to TS3 to test it out.  If we like it, the Ventrilo servers will be shut down.  We'd like you all to try it out with us so we can get an opinion from a larger group rather than just the FSers.

The connection details are: ts.blackintel.org:9988  You can download TS3 at www.teamspeak.com (http://www.teamspeak.com)

EDIT: If you want to have Text-To-Speech (User joined channel/left channel etc) in the same way that vent has them, download THIS (http://syckaudio.com/gwinnie/Vent%20TTS%20TS3%20Soundpack.zip) and follow the instructions.
Title: Re: Teamspeak 3
Post by: goztow on January 15, 2010, 08:28:27 am
It's a great new piece of software. Defo test worthy :).
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 15, 2010, 09:40:58 am
We want to switch to (once again) having 1 unified voice server, as we think it helps integration between different sections. We hope you'll enjoy the new server ;)
Title: Re: Teamspeak 3
Post by: Gwynzer on January 15, 2010, 10:21:16 am
I am already leaning towards abondoning Vent for TS3.  The improvement over TS2 is amazing, and there are a few codecs on TS3 that have identical (slightly worse for some, slightly better for some others) sound quality to the Ventrilo GSM codec.  There is also less lag between speaking and other people heating it compared to vent.  TS3 also has a 3D sound feautre similar to mumble (Random Fact: Vent was the first system to try a 3D sound thing, but it isn't very easy to use and doesn't work quite correctly) allowing you to position where certain users sound like they are speaking from.  With the clever people we have at BI, I could imagine that TS could be customised to work with surround-sound-positioning ingame like there has been done for Mumble.

There have only been two issues I've had with TS3 so far, one being that I can't use my left windows key as a PTT button (You also can't disable the PTT button so it only works in TS, from what I've seen), and the admin controls are awfy complex.  Both of these issues are minor, and the majority of people will NEVER have to use the admin controls so there is really little problems here.

Even some of the "grumpier" FSers, who are stuck in their ways and were unwilling to try out TS3 just because they are used to vent are liking it (after me disabling all talking, channel switching and the ability to view other users in Vent3 that is, forcing them to at least try TS), so it's looking incredibly likely that I will be cancelling the contract I have for vent within the week.  However, before I do that I *would* like the opinion of others because I will keep the Vent server up if a large group doesn't wish to switch, but before you say you don't want to switch you must at least give TS a try.

And now the top-jobs can't say that I didn't choose mumble just because I was used to vent. There were reasons, and I stated them!
Title: Re: Teamspeak 3
Post by: StealthEye on January 15, 2010, 10:31:37 am
About the windows key: you can work around that by binding it to scroll lock with a AutoHotKey script. I did the when I was still using Vent too, because sometimes Vent wouldn't discard the hotkey properly so it opened the start menu once in a while...

I agree with the admin controls, that needs some getting used to. Especially the permissions system is awfully complex. Other than that, I like TS3 very much.
Title: Re: Teamspeak 3
Post by: goztow on January 15, 2010, 10:50:23 am
The permission system isn't that complex if you don't touch it :P. Just use the predefined groups and you'll be ok :). In the end all you need are normal user, server admins and maybe channel admins anyway :).
Title: Re: Teamspeak 3
Post by: Slyfox on January 15, 2010, 04:49:14 pm
How about you give us a couple weeks to decide? I don't have internet access on the desktop computer because we have to reinstall our antivirus. I'm using the laptop right now.
Title: Re: Teamspeak 3
Post by: Blind3001 on January 15, 2010, 05:02:59 pm
We're trying it out for a week, Sly, so you'll have some time to test it when you're back :)
Title: Re: Teamspeak 3
Post by: dhdc on January 15, 2010, 10:10:52 pm
i prefare the simplicity of ventrilo. and the voice quality of vent.
allot of people are like, i like ts because it has all these features i can do this and this
but at the end of the day noones gonna use most of them.

for example 3d sound people are like thats amazing look what you can do but in fact their not the first ventrilo did it its always been there just the interface is easier to follow in ts.
and what actually use would you get out of hearing 1 person from behind you and the rest to the sound (unless you have fantasies with that person :))

iv got to admit im abit biased dont like anyother voip and ventrilo is like home for me. mybe its me just not ajusting to change as good as other people we'll have to see after the week if it changes my opinoin
Title: Re: Teamspeak 3
Post by: Gwynzer on January 15, 2010, 10:21:56 pm
http://syckaudio.com/gwinnie/Vent%20TTS%20TS3%20Soundpack.zip (http://syckaudio.com/gwinnie/Vent%20TTS%20TS3%20Soundpack.zip)

This is a soundpack I've developed which import very similar style Text-To-Speech events as Ventrilo.  The TTS Soundpack that ships with TS3 goes into too much information and you start screaming for it to shut up.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 17, 2010, 10:52:07 am
i prefare the simplicity of ventrilo. and the voice quality of vent.
allot of people are like, i like ts because it has all these features i can do this and this
but at the end of the day noones gonna use most of them.

for example 3d sound people are like thats amazing look what you can do but in fact their not the first ventrilo did it its always been there just the interface is easier to follow in ts.
and what actually use would you get out of hearing 1 person from behind you and the rest to the sound (unless you have fantasies with that person :))

iv got to admit im abit biased dont like anyother voip and ventrilo is like home for me. mybe its me just not ajusting to change as good as other people we'll have to see after the week if it changes my opinoin
With the auto volume leveling I think that TS3 is at least just as good as Vent, but most likely better for 90% of the people. As volume has always been an issue.
Title: Re: Teamspeak 3
Post by: Gwynzer on January 17, 2010, 01:02:01 pm
Would love to hear the opinion of some others before decided to shut down vents.
Title: Re: Teamspeak 3
Post by: Twigs on January 17, 2010, 03:12:50 pm
Tis annoying to be poked when in game.

Although not a BI member I do occasionally hang out on your vent server, so I realise that my opinion won't carry much weight, but since you often invite the First Strike public players on to help their gameplay experience I shall carry on.

Still got to play around with TS a little more to get the volume about right, just like vent it can be difficult to hear people over the game sounds when in space. Those pesky fighter engines do tend to get in the way :P Ultimately, I think many peoples reluctance to change is due to laziness, ie they don't want to use a new programme when they have alredy got used to another. Ultimately, both programmes to me are the same, they allow me to communicate with the guys I play the game with. TS works well, so does vent, but from what I've seen so far TS seems to provide a little more in the way of customisation. I think it also appears to create less 'chat lag' than I have experienced in vent. For that reason alone I think it's worth sticking to TS.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 17, 2010, 09:31:14 pm
It is true that it has less chat lag.

Also, we like to switch to a solution that we can host of our own, and have as much as possible costomization without too much hassle (like we need with vent.
Title: Re: Teamspeak 3
Post by: Gwynzer on January 18, 2010, 03:20:07 pm
The decision is being made to swap to TS3 tomorrow(tuesday).  Come on peeps, if you've not tried it yet, try get on tonight for a few hours so you can voice your opinion.  If you like/dislike it I recomend mentioning it ASAP before the decision is made to shut down the servers.

@Twigs, you know that your opinion carries weight in matters like this, as a Regular player on BI servers and a friend of BI(most the time) in FS. I've told you, so stop pretending you don't know! :p
Title: Re: Teamspeak 3
Post by: VickVenom on January 18, 2010, 04:40:51 pm
Tryd it i was confused like fuck in the beginning , still am at some points sound sounds good LoL.

i was trying to communicate with blind >.> and thomas  , or they didnt hear me or i was talking to a brick wall  no reactions lol :P

i wouldnt mind a swap from vent to teamspeak i only need to get used to it. and then ill be fine

...

Edit:
I was in the wrong channel lol thats why they didnt hear me :P but im in the good channel now and im happy jappy.

as far as that I am not a technical dude so thats why my review of it isnt super duper.

but if i look from the previous Ts and this Ts i must say that the improvement is Skyrocketing.
Like i said before i wouldnt mind a swap :D
Title: Re: Teamspeak 3
Post by: Twigs on January 18, 2010, 05:05:04 pm
@Twigs, you know that your opinion carries weight in matters like this, as a Regular player on BI servers and a friend of BI(most the time) in FS. I've told you, so stop pretending you don't know! :p

Well thank you for that vote of confidence. Would just like to point out that I have no issues what-soever with BI as a group. I just like killing Nooby in as embarrasing a way as possible, as often as possible and hearing him curse me :P Blind is a close favourite.

Must admit, my opinion of you all would change dramatically if you didnt make it an aim to get some modicum of revenge by teabagging me whenever I die even if you are not the killer. Particularly when you're on my bloomin team! Tea bagging a dead team mate ffs! At least you then revive me I suppose...
Title: Re: Teamspeak 3
Post by: Slyfox on January 26, 2010, 12:14:54 am
I'm guessing that we've switched to TS3 now. Maybe not though. But if we have (or will) abandon Ventrilo, someone make a "Guide to TeamSpeak 3" ASAP. I find those to be quite helpful and they save me from a lot of time.
Title: Re: Teamspeak 3
Post by: Gwynzer on January 26, 2010, 12:23:02 am
TS3 - Click Settings -> Setup Wizard.  You now are an expert in TS3 communications.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 26, 2010, 09:21:37 am
LOL @ Gwynzer! Though it is pretty much true, the setup wizard is pretty nicely done and doesn't give much room for serious errors.
Title: Re: Teamspeak 3
Post by: goztow on January 26, 2010, 11:20:26 am
TS3 guide: http://www.thekoss2.org/page.php?m=6&s1=8&s2=15&lang=en (http://www.thekoss2.org/page.php?m=6&s1=8&s2=15&lang=en)
Title: Re: Teamspeak 3
Post by: Blind3001 on January 26, 2010, 11:43:17 am
Yeeees, I found out you guys had a ts server when i tried connecting to the BI ts server and ended up on your :p
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 26, 2010, 01:00:45 pm
Well, that it indeed a small problem that we haven't fixed yet. Currently it runs at port 7788, not the default port.
Title: Re: Teamspeak 3
Post by: Gwynzer on January 26, 2010, 03:16:26 pm
Just keep it at 9988, it's not a problem, everyone who's swapped over from vent has alreay went throught the hassle of setting up a new server... it wouldn't be an issue getting the people who come on regularly to change port, but it's often harder to find the people who only visit TS/Vent occasionally and get them to change stuff.   The kossienubs set up TS first, it's fair to allow them the default port.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 26, 2010, 05:50:51 pm
Well, Gwynzer, while it's true that they got the default port first, they (should) use only one IP, and we have 2 of them available. I'm going to try and get our server to bind on the other IP so both servers can run at the default port.
This because it's easier for future users.
Title: Re: Teamspeak 3
Post by: goztow on January 26, 2010, 07:38:26 pm
We are only using one ip at this moment. We updated our dns when u asked.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on January 27, 2010, 10:54:53 am
We are only using one ip at this moment. We updated our dns when u asked.
That did not have to do with the DNS, just with the config. You had as IP 0.0.0.0 there, which means bind all IPs on the machine.
Title: Re: Teamspeak 3
Post by: reborn on January 29, 2010, 06:35:59 am
TS3 also has a 3D sound feautre similar to mumble (Random Fact: Vent was the first system to try a 3D sound thing, but it isn't very easy to use and doesn't work quite correctly) allowing you to position where certain users sound like they are speaking from.  With the clever people we have at BI, I could imagine that TS could be customised to work with surround-sound-positioning ingame like there has been done for Mumble.

What do you mean? For example you are in the channel with another renegade player, but that team mate is diagonally left to you far away, then you hear them in that direction on your speakers?
That sounds pretty cool!
Title: Re: Teamspeak 3
Post by: Gwynzer on January 29, 2010, 06:39:31 am
That was how it worked with Mumble, it may be possible for TS's 3D sound to work like that too.
Title: Re: Teamspeak 3
Post by: reborn on January 29, 2010, 02:37:38 pm
That was how it worked with Mumble, it may be possible for TS's 3D sound to work like that too.

That sounds very cool, I have no idea how I missed that. That's really amazing. So BI made mumble able to determine the players location that was speaking in relation to other players, and then changed the sound sent to each player in the channel? That's sick! Very interesting.

//edit

Just looked and found this:

Quote
TeamSpeak 3 now features fully integrated 3D sound support which allows spatial placement of sound effects and audio streams. This creates the illusion of a sound source being placed anywhere in three dimensional space, including behind, to the left of, to the right of, above, or below the listener. The possibilities and applications of 3D sound are virtually endless with TeamSpeak 3. Other TeamSpeak users can be virtually placed around your own audible position. Place conference hosts in front of the attendees or team mates around your own player position. No special hardware is needed. Simply use your headset or 5.1/7.1 speakers to enjoy spatial sound.

This is not quite the same as mumble, I'm not convinced it would be as good as what it sounds like you already have.
Title: Re: Teamspeak 3
Post by: Gwynzer on January 29, 2010, 03:30:13 pm
The TS3 surround-sound is very similar to the Vent surround-surroud (Regarding all you can do is have a certain user transmitting from a certain location, except it's easier to choose *where* that person is in TS), however TS3 is a lot easier to modify (or so I'm told) than vent, so it could be possible that this feature will eventually be integrated into TS.
Title: Re: Teamspeak 3
Post by: reborn on February 01, 2010, 11:15:18 am
I started writing a TS3 reg to team renegade players into proper channels, while I was at it I looked at the server and client SDK. I only looked briefly because I was only interested in the ServerQuery Manual and had no real business looking at the SDK, but it seemed to me that it wouldn't be possible to make a server plugin for the TS3 server & FDS to create the 3D sound effect for players, but rather it would rely on a client TS3 plug-in, and client scripts.dll/shaders.dll.
Title: Re: Teamspeak 3
Post by: EvilWhiteDragon on February 01, 2010, 02:17:59 pm
AFAIK that is the way it worked for our mumble surround as well. At least you had to use a dll file clientside so... Also, StealthEye already has a TS3reg so ;)
Title: Re: Teamspeak 3
Post by: reborn on February 01, 2010, 02:34:04 pm
AFAIK that is the way it worked for our mumble surround as well. At least you had to use a dll file clientside so... Also, StealthEye already has a TS3reg so ;)

I see, I was hoping it might be possible on the server only. :-(

I spoke to Goztoe yesterday, he said that Seye already made a TS3reg for thekoss2. Very cool! I only downloaded the client/server yesterday, but managed to get my foot in the door so-to-speak with the TCP query port and new command syntax, will hopefully get there soon too. POC:

(http://game-maps.net/staff/reborn/ts3.JPG)
Title: Re: Teamspeak 3
Post by: Gwynzer on February 01, 2010, 03:05:44 pm
Do it for First Strike too!  I'll send you a copy of BF2142 if you don't have it :P
Title: Re: Teamspeak 3
Post by: StealthEye on February 01, 2010, 03:15:06 pm
Let me give you some hints on pitfalls I ran into with TS3 query:
- TS3 query closes the connection after being idle for 10 minutes. There is no proper way to prevent this afaik, so what I do currently is send a newline to the server to make it realize the connection didn't die.
- TS3 bans you for 10 minutes or so if you send too many messages. The only way around this I found so far is to make sure you connect to localhost/127.0.0.1 and not to the network/external ip. It seems the anti flood measures are bypassed then.

If you want I can send you the source code, but I assume you will want to do it yourself. ;)

Also: EWD was correct on mumble, it was clientside only (which actually made it rather convenient to implement). I haven't looked at the TS3 implementation of it yet.
Title: Re: Teamspeak 3
Post by: reborn on February 01, 2010, 03:44:03 pm
Do it for First Strike too!  I'll send you a copy of BF2142 if you don't have it :P

I apperciate the offer, but I have never played the game and am not familiar with it. Also, I am not sure there is a direct API/SDK for the server files of BF2142, if not, it would be harder to as I am assuming it has log files and you would have to make some clumsy resource hog that did lots of disk I/O to work "properly".
If there is some sort of direct programming interface it would make it easier...

Let me give you some hints on pitfalls I ran into with TS3 query:
- TS3 query closes the connection after being idle for 10 minutes. There is no proper way to prevent this afaik, so what I do currently is send a newline to the server to make it realize the connection didn't die.
- TS3 bans you for 10 minutes or so if you send too many messages. The only way around this I found so far is to make sure you connect to localhost/127.0.0.1 and not to the network/external ip. It seems the anti flood measures are bypassed then.

If you want I can send you the source code, but I assume you will want to do it yourself. ;)

Also: EWD was correct on mumble, it was clientside only (which actually made it rather convenient to implement). I haven't looked at the TS3 implementation of it yet.

I appreciate the heads up, little things like that can drive a guy crazy... I already found out about the spam thing banning you, while I was waiting for the ban to time out, I googled a bit and found adding myself to the whitelist.txt file seemed to work (although could be because I waited out the ban too, but I think whitelist.txt is just a list for allowed IP's, would make sense and tie in with what you was saying, because the loop-back addy is already there...).
I think I will also be using that sneaking \n send to keep the connection alive.

I found typing a sentence weird with the sendtextmessage function and the fact the string format uses invalid C++ escape sequences...
Hello\\sWorld!\\sI\\sLike\\sweird\\sstrings\n

If I get stuck I might ask kindly for the source code, but normally you write very differently to me anyway (better, lol). I would prefer to do it myself. :-)

That mumble thing sounds cool, can't believe I never heard about BI's/your mod for it before.
Title: Re: Teamspeak 3
Post by: goztow on February 01, 2010, 07:03:51 pm
Eh? Didn't I mention the whitelist.txt to you Seye? :$Sorry :$. I added our webspace to it to enable our TS3 querier :\$.
Title: Re: Teamspeak 3
Post by: StealthEye on February 01, 2010, 07:46:27 pm
Argh! That whitelist was added the 19th, that's just about when I solved the issues by changing to localhost :lol:. So either it wasn't there yet around that time or it wasn't commonly known and therefore I couldn't find it. Meh. ;)

The \\s and stuff aren't supposed to be C-style escape sequences. Things such as space == \s, etc. See the serverquery documentation for a complete list. Note that in C++ you'll have to write an additional slash because otherwise your compiler will convert \n into a newline instead of the TS3 escape sequence \n (2 characters).
Title: Re: Teamspeak 3
Post by: reborn on February 01, 2010, 08:10:25 pm
Argh! That whitelist was added the 19th, that's just about when I solved the issues by changing to localhost :lol:. So either it wasn't there yet around that time or it wasn't commonly known and therefore I couldn't find it. Meh. ;)

The \\s and stuff aren't supposed to be C-style escape sequences. Things such as space == \s, etc. See the serverquery documentation for a complete list. Note that in C++ you'll have to write an additional slash because otherwise your compiler will convert \n into a newline instead of the TS3 escape sequence \n (2 characters).

Yeah I know, that's was I was saying. When you was creating a sentence, didn't it seem kinda funny?

sprintf(message,"sendtextmessage targetmode=2 target=%i msg=The\\steamspeak3\\schannel\\sregulator\\splug-in\\sfor\\sthe\\sFDS\\sis\\snow\\slogged\\sin!\n",tsrSettings->tsserverid);
Title: Re: Teamspeak 3
Post by: reborn on February 01, 2010, 09:11:57 pm
Also, I'm just getting to the findplayer part, but noticed on the example given in the server query manual that it doesn't return the player's IP.
I am hoping a TCP query somewhere does infact give this information, otherwise it will just team them on the players name. Oh well, will find out soon.
Title: Re: Teamspeak 3
Post by: StealthEye on February 01, 2010, 09:38:49 pm
I'm not using any strings directly, so I never typed any \\s's, I'm only interpreting them. ;) (I don't send messages to TS to notify that the regulator started etc).

Not sure about the IPs, BI's regulator has always used names to match players. With TS3 it is possibly best to match by UID, you'll just need some way to set that up based on names or whatever anyway. But our current method works well enough so I'm not going to bother. ;)

Adding positional audio is somewhat more difficult for TS than it was for mumble. Not sure whether I'm going to do it (I had hoped it would only involve renaming some functions names etc from mumble, but it seems it will need to be rewritten entirely.)
Title: Re: Teamspeak 3
Post by: reborn on February 02, 2010, 08:14:01 am
I'm not using any strings directly, so I never typed any \\s's, I'm only interpreting them. ;) (I don't send messages to TS to notify that the regulator started etc).

Ah, I see. I found it strange myself. Not that it's any real hassle, just kinda weird.

Not sure about the IPs, BI's regulator has always used names to match players. With TS3 it is possibly best to match by UID, you'll just need some way to set that up based on names or whatever anyway. But our current method works well enough so I'm not going to bother. ;)

Yeah, I don't think there is a way using the TCP query system to get the player's IP, but is possible in the server SDK. I'm not convinced it's worth the effort.
What I meant was confirming that the player in teamspeak was infact the player in-game. Not that it is that likely, but some clever so-and-so could potentially join TeamSpeak3 with the nickname of someone in-game on the opposite team, just so they are moved to the enemy channel (not there are enough TeamSpeak3 player to worry about it too much, or renegade players come to think of it).
Previously I would get the in-game players IP address, and made sure it matched the IP address given from TeamSpeak2. I think that functionality is going to be lost...

It's also annoying in TS3 that the player name is returned without being wrapped in ""'s. It was a nice feature in TS2 that allowed me to make sure when I was finding a player in TS by there name that it was not just a substring of someone else's name. Although not such a big deal, easily enough overcome, just inconvieniant.

Adding positional audio is somewhat more difficult for TS than it was for mumble. Not sure whether I'm going to do it (I had hoped it would only involve renaming some functions names etc from mumble, but it seems it will need to be rewritten entirely.)

That's a shame, I was pretty excited about that.
Title: Re: Teamspeak 3
Post by: StealthEye on February 02, 2010, 10:06:14 am
It's also annoying in TS3 that the player name is returned without being wrapped in ""'s. It was a nice feature in TS2 that allowed me to make sure when I was finding a player in TS by there name that it was not just a substring of someone else's name. Although not such a big deal, easily enough overcome, just inconvieniant.
Sounds to me like you're not properly reading the data then... player names always end with whitespace (as every piece of data) and whitespace is replaced with \s, \t, etc. That should always allow you to find the entire name, so you need not worry about substrings of the name?

It's weird that it doesn't provide the ip... :(
Title: Re: Teamspeak 3
Post by: reborn on February 02, 2010, 12:46:53 pm
Sounds to me like you're not properly reading the data then... player names always end with whitespace (as every piece of data) and whitespace is replaced with \s, \t, etc. That should always allow you to find the entire name, so you need not worry about substrings of the name?

Yeah, after tokenising the string I can compare the tokenised strings vs the in-game player name, then if it matches exactly, I know that the CLID will be x positions away in my vector.
It was just a little more convieniant when they was wrapped in ""'s in TS2, but it is not a game-breaker, just a little nuisance for me.

It's weird that it doesn't provide the ip... :(

Yeah, I'm not sure why. You're logged in as server admin so I guess it's just a lack of thought rather than a deliberate reason not to include it. Perhaps in the future it will be added.

Quote
CLIENTINFO
Displays detailed configuration information about a client including unique ID, nickname, client version, etc.
Permissions:
b_client_info_view
Syntax:
clientinfo clid={clientID}
Example:
clientinfo cid=6
client_unique_identifier=P5H2hrN6+gpQI4n\/dXp3p17vtY0= client_nickname=Rabe85 client_version=3.0.0-alpha24\s[Build:\s8785]\s(UI:\s8785) …
error id=0 msg=ok

CLIENTFIND
Displays a list of clients matching a given name pattern.
Permissions:
b_virtualserver_client_search
Syntax:
clientfind pattern={clientName}
Example:
clientfind pattern=sven
clid=7 client_nickname=
Title: Re: Teamspeak 3
Post by: Gwynzer on February 02, 2010, 01:11:17 pm
Do it for First Strike too!  I'll send you a copy of BF2142 if you don't have it :P
I apperciate the offer, but I have never played the game and am not familiar with it.

Offers still there, though.  'tis a good game.
Title: Re: Teamspeak 3
Post by: reborn on February 07, 2010, 03:01:42 pm
I finished my beta version of the TS3 reg, and included a 5 minute ping/pong type thing to keep the connection going (thanks seye for the heads-up).
The only different thing I added to this was the command for players to do !TeamSpeak, and it lists the current connected users.

Was a nice project really, and managed to recycle some code from the TS3 regulator.