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.
@SirPsp
I haven't worked on any Bukkit plugins in like a year. I don't even know where you'd get the newest versions of the Bukkit API, repo.bukkit.org only lists all versions up to 1.7.9-R0.2.
The project is open source, though. So if you already know how to fix it, just create a pull request. I'll merge it and the Jenkins server will spit out a new build for you that will be compatible to 1.9. :P
It mostly works with 1.9 except that it doesn't announce players in the game logging in and out. Bukkit.getOnlinePlayers().length changed to Bukkit.getOnlinePlayers().size()
Would appreciate an update.
@SirPsp
You're trying to use a TS3 nickname for the server query that has already been taken by another client or query or is invalid.
Change
in the config file to a different value. Use a nickname that is at least 3 characters long and only uses ASCII characters.
When someone chats on minecraft, this is what comes through on teamspeak: <21:11:44> "Psp from 119.250.100.123:61278": SirPsp: Hello
Is it possible to remove the IP from that message? Only because it's so long and takes up half the chat box.
@dvargas135
It should, yes. It hasn't been tested thoroughly in 1.8, though.
Does this work for 1.8?
@MonnierAnt
TeamSpeak 3 doesn't support server-side volume control, therefore the answer is no, it's not possible.
I heard that something like this can be done with Mumble, however, so you might want to check that out. If it's actually possible, I bet there is already a plugin for it.
Hi @Firedroide.
Your plugin seems to be a very nice one.
I wonder, i'm looking for a specific feature and i can't find anything for the moment.
I wonder can we imagine a distant chat that link the volume of people for players according to their distance in the world.
If someone is far away from you you can't hear him on ts.
@Paxination
Sorry, but I can't really implement this into BukkitSpeak.
What you request is just so extremely specific and would probably only benefit you and maybe one or two more users of this plugin.
This, actually, sounds like a perfectly valid idea for a standalone plugin for you (or someone else) to program. You could even use BukkitSpeak's server query instance to send your messages to TeamSpeak. To get the query object, just use BukkitSpeak.getQuery().
To get more information about the TS3 server query API used in BukkitSpeak, see here.
Again, sorry that I can't really implement this into BukkitSpeak. It's just simply out of scope.
@Firedroide
Hey, just wandering, if you could add a feature?
Make it so that it watches what commands a player issues, and if it matches a list of commands in the config, have the plugin send a msg to any one on the TS server that is within a specific server group.
There are times when my staff are in TS and not on our MC server. And it would be helpful if they could get a notification that something is up from like a /helpop or /report or a defined command from inside of bukkitspeak itself.
Is this possible for you to poke a specific group or all players in a specific group on TS through the serveradmin?
I'm really happy this is still working great on 1.7.10
Only issues I have noticed are: if from teamspeak I send "!Say Something" (usually longer messages) it sends to to the server just fine, but it also messages to the channel, but it usually sends 2 messages to the channel in teamspeak instead of just one.
I also noticed if you use "say" in the console on the server, it doesn't send that to teamspeak.
But I definitely love the plugin.
@uncovery
Wonderful, nice to hear everything is working correctly now!
If any other issues with the plugin happen to come up, feel free to comment here again :)
@Firedroide Hey there, thanks for the timely help!
I need some additional info here. I understand you only want messages from the "global" channel transmitted to the TeamSpeak server, so there must be messages that get picked up from somewhere else.
I just specified that to make sure that I do not want everything from all in-game channels to be sent to TS, only that channel. Right now, I cannot get any chat from the game to be seen on the TS server. I want the "Global" channel from HeroChat to be broadcasted to the specified Channel.
So I changed the settings for the broadcast and the permission and that seems to have fixed everything, so all works as intended now! Thanks, great plugin!
@uncovery
Hi there, uncovery! First of all, thanks for using my plugin and for not just trashing it when it didn't work quite right at the start :)
So, let's get to your doesn't-work list:
This could very well be a permissions issue. BukkitSpeak will only send notifications for players who have the permission bukkitspeak.sendteamspeak.* set. This permission node should usually be true for everyone, but maybe your permissions plugin is causing some issues here.
It could also be that you have another plugin installed that messes these events up. For example, BukkitSpeak does not listen to cancelled events or events with a join / leave / kick message of "null". But the chance of this happening is rather low, only really inexperienced programmers would set these values to null just for the heck of it.
Easy fix, just set
This will make it so no TS server-wide chat is sent to the Minecraft server anymore.
I need some additional info here. I understand you only want messages from the "global" channel transmitted to the TeamSpeak server, so there must be messages that get picked up from somewhere else.
What exactly is it that is also being sent? Messages from other HeroChat channels? Messages outside of HeroChat?
Also you must know I'm not that familiar with HeroChat and haven't been watching its development lately, so there might be features I'm not familiar with. Therefore, please bear with me and please explain the issue as precisely as possible so I can help you :)
Also not sure what exactly you meant by this. Above you stated that TS joins / quits are transmitted to the TS server correctly, so wherein lies the issue?
Do you want to turn this feature off? Then you'd have to set
for BukkitSpeak not to message you about TS server joins / quits and
for it not to send TS channel joins / quits.
I'm sorry I didn't understand what you meant by each issue, but please get back to me so we can figure this out together.
Hi there, thanks for this plugin, really appreciated! I just installed it and am trying to get it to work as I want, but I am running into a few snags.
First of all, I am running the latest snapshot that you linked below. Second of all, I am running HeroChat with a "Global" channel.
So what I could get done is:
What does not work?
The configs that I think are critical for this are these here:
What else do I need to set to make it work?
@RedstoneFuture
I'm assuming you're running the latest official release, v0.67.
This is a somewhat known bug. Try out the latest snapshot release from the build server. That version should fix your issue.
Please tell me if any of my assumptions were wrong or the new version didn't fix the problem.
Hello. I habe two join-messages one behind the other in minecraft, if I join the ts3 server. The left-messages come only once.
Can any one help me, please?
@Firedroide
Thanks for clearing that up and sorry for taking work out off your hands.
I will only create tickets from now on (if there's an unreported bug) ;-)
@cicatrice74 @ThisUsernameIsMine
Yes and no, it depends if you're actually a server admin or not.
As long as you can generate a ServerQuery login, you'll be able to use the plugin.
See here on how to do so.
Also @ThisUsernameIsMine, I'm still around despite there not being any major code changes. You don't need to constantly have this page open and answer support requests for me.
@cicatrice74
This is for managing your TeamSpeak server/channel from within Minecraft and to transmit/receive (text) chat, not for broadcasting voice (if that's what you ment) ;-)
You'll also need a login name and password for the Server Query, otherwise the plugin won't be able to communicate with the TeamSpeak server.
With the privilege key you'll only be able to administer/manage on the TeamSpeak server/channel itself.