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.
i have not a server but a privilege key for channel and subchannel administration on a ts server, can i use this plugin to broadcast on my server?
WORKS 1.8.3 Spigot
This plugin still rocks it!
augesrob.com is the ip and website.
@DeJay6424
doc/server_quickstart.txt
and put the Minecraft server's IP address in query_ip_whitelist.txt
And if your computer is not hosting the teamspeak (such as purchasing a teamspeak from a server host) how would I go along whitelisting the Minecraft server on the Teamspeak server?
@therennon
Tell me what exactly doesn't work with BungeeCord and I might fix it.
I'm not an expert in BungeeCord stuff, but as far as I can tell BungeeCord just coordinates multiple server instances which are running Bukkit or Spigot or whatever.
So couldn't you just install BukkitSpeak on the actual server instances and edit the configs accordingly? Or is there something about how BungeeCord works that I misunderstood?
Maybe someday you can make it plugin compatible with BungeeCord.
Congratulations on your work,
Thanks;)
@neero82
Jup, I'm always trying to make builds as upward-compatible as possible :)
If you should notice any issues with the current version (assuming you downloaded 0.67), check out a development build from the Jenkins server. These dev builds include a number of fixes for uncommon, but possible bugs. Thanks for the download and have fun!
Works with Spigot 1.8, awesome :)
@Firedroide
I don't even know what will happen with SpigotMC on the long run.
From what i've seen/read about Sponge, it's (going to be) very moddable (Forge).
After running a server for 3+ years (never really liked playing the game xD), i've only now started to learn about Java (plugin) development. So before even deciding which direction to go, there's much to learn (not dedicating all my time to coding.. there's so much to do and so little time for it).
@MCrashtest
Unfortunately, this is currently not possible.
It would require actually linking a player on your Minecraft server to a client on the TS server, which is something BukkitSpeak is not currently doing. This would be a huge feature to add (lots of code to write and lots of stuff to tinker with). As this plugin has basically (just like the Bukkit API) reached end-of-life, there won't be any more substantial additions to it.
If there will ever be a sort of "BukkitSpeak 2.0", it will be based on the Sponge API. I have some plans for the new plugin, but no actual code has been written yet. As I have not played Minecraft for over a year and I have quit administering a server, the interest in making plugins for this game has also disappeared.
So, I'm sorry to disappoint you, but the answer to your feature request is no.
Hello i was wondering if it would be possible to add an ingame command giving to the player a rank on teamspeak.
I already saw that on a server ( unfortunately closed now) and it was really useful.
Thanks for reading.
Crash
@Smirklicious
Can't say exactly without the full stack trace.
But please try out the newest experimental build , because there is a good chance your issue has already been fixed.
[10:52:42] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to BukkitSpeak v0.67-b216
How do i fix? :(
Heya, I'm about to send a PM to your bukkit account but if you see, this contact me on Skype (Skype name: troy9567mc). I have a project that needs people who know the teamspeak API to help us out with an addition to the plugin. Thanks!
@Firedroide
And again Firedroide has solved another BukkitSpeak mystery! :-)
@ThisUsernameIsMine
I don't think they have anything in common.
Basically, the chat listener consists of two components. The first one listens to the chat events on the Minecraft server. If these events are cancelled, by a plugin for example, they will not be sent to TeamSpeak.
The other component is the TS query, which sends the message to the TeamSpeak server. It could be that the query is blocked for some reason or it disconnects or something along these lines. But if so, reloading the plugin would have to fix the issue.
I also can't reproduce this issue, it has literally never happened to me. So it might well be another plugin causing your issues. But as always when debugging, one can unfortunately never be certain.
It could also be caused by an issue with your permissions plugin, which basically makes it so a player does not have the permission bukkitspeak.messages.chat.
EDIT: I think I might just have another idea, but it requires some testing. It's plugin-dependent, so we'd have to test it your server. Would you happen to have some time any time soon? I still have the IP of your server, but I think I need to be whitelisted to get on.
It seems to be fixed (*hooray*) BUT i noticed something else now.
Sometimes the Minecraft chat doesn't come through TeamSpeak (even not when issueing a /tsa reload). Relogging on TeamSpeak also had no effect but some time later it was back to normal again.
Pretty bizarre eh?
Well.. afaics the dupe messages are gone but the other issue is awkward (do they have something in common?).
edit 1: sigh.. the Minecraft chat is again lost in transit, nothing shows up in TeamSpeak. This is so weird. I'll try to enable debug mode on some plugins but don't want to bother the online players just yet.
edit 2: and the chat reappeared again. It seems to occur for short moments, perhaps its triggered by a certain event.. hmm
@Firedroide
HaPPy (and healthy) holidays to you too, friend! (how could i forgot ;-) ).
What you said pretty much explains it for me. Hopefully u've nailed it this time! :-)
From what i've heard Sponge sounds (and looks) promising, though Spigot is still alive, but the question is for how long it will last ;-)
Well, back to "da server" as some say... i'll give you a heads up with the result.
Cheers! :-) (going to buy any fireworks this year?)
@ThisUsernameIsMine
Please check out Build 234 for the double join messages bug.
I think I fixed it, but one thing I noticed while bug hunting is that it doesn't happen all of the time. So please, if it occurs again, just tell me here, and the bug hunt will start anew :)
<technical_stuff>
What caused the double messages is, as I pointed out earlier, that TeamSpeak sends me some events twice when the channel I subscribe to is also the channel clients join into by default. What usually happened when a client joined was that I told the server to send me more information on the client that just joined, like its name. To avoid the double messages I made the plugin check if I already had information on this client. If so, it must be the second message and should not be sent out.
Now, that would've worked if the TS query sent me these events in a synchronous manner. Instead, these two events were sent in two different threads at basically the same time. So while the plugin would still be requesting data about the client that just joined, the second event would be triggered, and as no data about the client had arrived yet, it would've sent the message out, too.
In my test setup, the callback from the TS server was basically instantaneous. That's why the double messages usually didn't even appear when I was testing stuff, which made it so annoying to debug and figure out what was causing it. And I really hope that I got it this time.
</technical_stuff>
@ThisUsernameIsMine
Should be fixed in Build 233.
Thanks for reporting and also for the inclusion of the stack trace! Great bug report as usual :)
Hope you have nice holidays, ThisUsernameIsMine!
EDIT: As for the double join messages, I still haven't got to figuring this one out. I'll go test it offline to see if I can even reproduce it.
EDIT 2: It only appears to be happening to me when the selected channel for BukkitSpeak is the default channel of the TS server, the one clients join when they connect. Changing the BukkitSpeak channel to a different one might be a quick solution, but it might not suit your needs. If I remember correctly, this bug had been caused by the TeamSpeak server sending the same event twice, and I had BukkitSpeak filter the second one out. I'll have to see why it doesn't do this anymore.
EDIT 3: I'm so looking forward to redoing this whole plugin for Sponge ^^