BukkitSpeak
BukkitSpeak
Show Teamspeak actions in Minecraft & connect the chats
Version: v0.69 (compatible with 1.9)
Created by Deathmarine and Firedroide.
This plugin will display Teamspeak 3 server joins, quits and messages in Minecraft
and allows you to chat with your friends using the /ts commands!
Features:
- Display Teamspeak joins in Minecraft
- Display Teamspeak quits in Minecraft
- Display Teamspeak (server-wide) messages in Minecraft
- Broadcast messages in Teamspeak
- In channels:
- Display messages in Minecraft if somebody enters or leaves your channel.
- Display chat messages in that channel in Minecraft.
- Chat with the people in the channel by using /ts chat <message>
Commands
User commands:
- /ts - Displays the help screen.
- /ts list (channel) - Displays who's online on Teamspeak (in the channel).
- /ts mute - Mutes BukkitSpeak only for you.
- /ts broadcast msg - Broadcasts a message to all people on the Teamspeak server.
- /ts chat msg - Shows your chat message in the Teamspeak channel.
- /ts pm target msg - Sends a chat message a specific person.
- /ts poke target msg - Pokes a client on Teamspeak.
- /ts info - Shows some info about the TS3 server.
Admin commands:
- /tsa or /ts admin - Shows the admin help screen.
- /tsa channelkick target msg - Kicks someone out of the channel with the given reason.
- /tsa kick target msg - Same as above, but kicks from the server.
- /tsa ban target msg - This command bans a TS client from the server.
- /ts status - Shows some information about BukkitSpeak and whether the Listener is running.
- /tsa reload - Reloads BukkitSpeak. (Reloads the config and the query)
A complete command reference can be found here.
Configuration
Moved to my GitHub Wiki.
Permissions
You can check out the list of BukkitSpeak's permissions here.
Setting up the plugin
- Download the newest release and move BukkitSpeak.jar into the plugins directory.
- Editing the config:
- Set TeamSpeakIp to the IP of your TS server
- Set TeamSpeakPort to the port (when connecting with a regular client)
- Set QueryPort to the port the TS server uses for server queries. By default this is 10011. You can also find the query port in the server.ini file in the directory of your TeamSpeak server.
- Set QueryUsername and QueryPassword to a server query login you've generated with your client. More information about that here.
- Give your users the permissions to use BukkitSpeak and to see messages from BukkitSpeak.
- In general, you can give admins the permission bukkitspeak.* and users the permission bukkitspeak.user.
- Complete permissions documentation here.
- Whitelisting the Minecraft server on the Teamspeak server:
- You don't need to follow this step if your Teamspeak server runs on the same IP as the Minecraft server.
- Find the file query_ip_whitelist.txt in the root directory of your Teamspeak server and add the IP of the Minecraft server to this file.
- Reload / restart the Teamspeak server afterwards. (The whitelist is cached and will only be read when the server starts...)
Any feature requests / ideas / bug reports / locale files / ect. ?
Just write a comment or open a ticket :)
Links
Source Code (Branch BukkitSpeakMerged)
Wiki with a more detailed documentation (some stuff still WIP)
Complete changelog
Disclaimer:
Development builds have not been approved by the BukkitDev staff. Use them at your own risk.
Development Builds
Build repository
Deathmarine's BukkitSpeak
Original thread by but2002
Original thread by Greycap (might be removed)
Donations
Any donations to BukkitSpeak will help to keep a little Minecraft server of mine alive.
I really appreciate every little support.
@adoggy
Make sure that you've whitelisted the IP of the Minecraft server on your Teamspeak server.
To do that you just have to add the Minecraft server IP to the file called query_ip_whitelist.txt.
I dont know what I am doing wrong? I just get this 20:09:18 [SEVERE] [BukkitSpeak] Could not connect to the TS3 server. 20:09:18 [SEVERE] [BukkitSpeak] Make sure that the IP and the QueryPort are corr ect! 20:09:18 [SEVERE] [BukkitSpeak] (Exception connectTS3Query(): java.lang.NullPoin terException)
the ports are the same as on router, and the ip is the same as used to connect to TS.
and on loading server it says 2013-08-06 20:07:30 [SEVERE] [BukkitSpeak] Error while receiving client information. 2013-08-06 20:07:30 [INFO] [BukkitSpeak] Connected with SID = -1, CID = 1, CLID = -1
teamspeak log show: 06.08.2013 20:07:28 VirtualServer Info query client connected 'Minecraft from 192.168.1.1:52942'(id:2) 06.08.2013 20:07:30 VirtualServer Info query client disconnected 'Minecraft'(id:2) reason 'reasonmsg=connection lost'
hope u know what I am doing wrong? :)
@Underestimate
That's the problem about whitelisting. If you're unable to whitelist the server, it can only send a few commands in a certain time span.
If you send more commands than what the server allows, you're going to get flood banned.
I could add something like a timer to avoid that more than the allowed amount of commands get sent, but this doesn't really seem like an appropriate solution, as it would slow the plugin down for everyone.
I'll need to think about it, maybe I'll add it as a config option or something...
I tried the Telnet.exe with the domain and IP, and it didn't work but it only worked with the IP. So I put the normal IP in the config file and it still says it cannot communicate with the TeamSpeak server. And for the query_ip_whitelist.txt there's no such thing or well not where I am getting it hosted at. I have an Enjin website plan and it recently added TeamSpeak to my plan, it only has settings to configure channels, domains, messages and backups.
- Sorry for wasting your time I know you have better things to do and is it okay if we can move this to a message?
@MarkiiIeJ
You can use any IP or the domain name, but you need to make sure that you can actually reach the TeamSpeak server from that machine over that IP / domain.
You can try open telnet.exe (assuming you're on Windows) in a command prompt and enter "o TeamspeakIpHere QueryPortHere" to check that you actually are able to connect to the server.
The other thing that is forgotten quite often is that you need to enter the IP of your Minecraft server to the query whitelist (query_ip_whitelist.txt) so that it'll accept the incoming connection.
Well thank you for the reply and I don't know why I still cannot connect the BukkitSpeak plugin with my TeamSpeak Server which is why I had some doubts on the BukkitSpeak version. I do have a few questions, for the IP in the config am I able to use a domain IP for instance do I have to use the exact IP or can I use one with a name. I haven't been able to connect to it.
-Thank you for your time.
@MarkiiIeJ
The server who I'm running Jenkins on is currently provided by a friend of mine. As of lately he's had some problems with his server, so I guess that's why it's still down.
However, there hasn't been a lot of progress since v0.65 and because of the awesomeness of the Bukkit API, all builds for 1.5.2 (and probably even builds for 1.4 and 1.3) still work with Minecraft 1.6.2.
I'm sorry for the inconveniance the downtime of the Jenkins- and the repository-server is causing you, but there's frankly not a lot I could do.
I haven't been able to see your Jenkins and download the development builds for 1.6.2 it's either just been saying test at the top left of the page or it just doesn't respond at all. Not trying to be rude and thanks.
@FrostEnergy
BukkitSpeak seems to be unable to retrieve a list of all ServerGroups set up on your TeamSpeak server. This is most likely a permissions issue on your end.
You can, however, work around this bug by disabling Teamspeak commands entirely in the configuration file. To do that, you set teamspeak-commands.Enabled to false.
Once the plugin makes a successful connection to the teamspeak server, I get the error below:
013-07-16 18:21:13 [SEVERE] Exception in thread "pool-1-thread-1764" 2013-07-16 18:21:13 [SEVERE] org.apache.commons.lang.UnhandledException: Plugin BukkitSpeak v0.65-b171 generated an exception while executing task 982015
at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:724)
Caused by: java.lang.NullPointerException
at net.but2002.minecraft.BukkitSpeak.TeamspeakCommands.PermissionsHelper.run(PermissionsHelper.java:60) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_6_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) ... 3 more
No data ever makes it between the servers, its completely "silent" Running Bukkit #2815, BukkitSpeak v0.65
@rwmtiger
Yeah, BukkitSpeak is almost always compatible with newer versions of Bukkit.
However, some of the newer versions might not work with really old versions of Bukkit, I think it's only downward-compatible to 1.4.5-R1.0 at the moment. ;)
do this work for 1.6.2? it do work! i am so happy. I love you man XD LOL!
@LloydSev
You can turn every single message off entirely by setting the value to
(an empty string value) in the locale file. ^^
I was able to accomplish what I was looking for by taking away permission using PermissionsEx:
-bukkitspeak.messages.join -bukkitspeak.messages.quit
But it'd be nice to just have an easy configuration option so I don't have to dirty up my permissions.
One thing that's missing that would make this plugin *perfect*, would be being able to disable showing MineCraft joins and quits in the TeamSpeak channel without disabling chat entirely.
Just want to inform you that I'll probably have no internet access for the next two weeks.
That means that I won't be able to answer to comments and that I won't have time to work on the next update.
But I already have some things planned for v0.66, mostly internal TeamSpeak commands like !list or !pm. The PM-command will allow you to PM someone on the Minecraft server without him having to start the conversation with /ts pm.
@Paxination
Yes, this was an issue when poking was first introduced. After that the default message was changed, but of course it didn't just override the config value because it might have been modified already.
If you'd just like to reset the value to the default (where you can write 76-93 characters, depending on the length of your Minecraft username), you can simply erase PokeMessage from your messages.yml.
It will be automatically replaced and reset to default the next time the config is loaded.
If the error still occurs after that, please send me a PM so we don't spam the comments ^^
@Firedroide
And I can understand that, but even with the default setting for pokemessages I cant send a message as short as 'HI!'?? That is 3 characters! I edited the file and removed all color codes, and the &r to reset it to white, and did /tsa reload. Still gives me the same error when I do /tsa poke TARGET HI! Of course I am replacing target with a ts username.
But any ways, if the default setting for pokemessages wont work for a msg of 3 characters long, Then there has to be an issue.
@Bfin
There's only one connection to the sever at a time, but there are quite a few commands sent to the Teamspeak server ^^
But the answer to your question is no, at the moment there's no way to throttle the amount of commands sent to the TS server down.
Actually, your TS server should really be able to handle the amount of commands being sent by BukkitSpeak, as it's a) not that many and b) mostly just text messages. What is more, I couldn't actually reduce the amount of data sent to Teamspeak, as none of it is compressible or negligible.
What you can do is set SendChatToTeamspeak to none in the configuration file. That way Minecraft chat messages won't automatically be sent to TeamSpeak, drastically reducing the amount of data sent.
You can also turn off certain functions of the plugin by setting ListenToChannelChat to false. That way you could reduce the amount of data even further.
@Firedroide:
Is there any way to adjust the amount of connections this plugins makes with the server? I would like to use this, but my TS3 server hosting company requested that there be a way to throttle the connections in order to white list it.