[MISC] BukkitSpeak - Connect Minecraft and Teamspeak3 [BukkitDev]

Discussion in 'Plugin Releases' started by Firedroide, Mar 18, 2012.

  1. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    BukkitSpeak - Show Teamspeak actions in Minecraft & connect the chats
    Version: v0.67
    Created by Deathmarine and Firedroide.

    This plugin was moved to BukkitDev!
    I won't update this thread anymore, but the download links should still
    work. However, the changelog and the links could get outdated.




    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!
    Oh, and yes, I have but2002's permission to distribute the plugin on my own.

    Features:
    • Display Teamspeak joins in Minecraft
    • Display Teamspeak quits in Minecraft
    • Display Teamspeak (server-wide) messages in Minecraft
    • Broadcast messages in Teamspeak
    • In channels: By default disabled, edit the config to use those features.
      • 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>

    I moved the config documentation to my GitHub Wiki.



    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.
    • /ts status - Shows some information about BukkitSpeak and whether the Listener is running.
    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.
    • /tsa reload - Reloads BukkitSpeak. (Reloads the config and the query)


    bukkitspeak.*
    Allows you to use all the BukkitSpeak features.

    bukkitspeak.moderator
    Allows you to use all /ts commands, /tsa channelkick and /tsa reload.

    bukkitspeak.user
    Allows you to use /ts list, mute, chat and to see all messages.

    bukkitspeak.commands.*
    Allows you to use all BukkitSpeak commands.

    bukkitspeak.commands.list
    Allows you to use /ts list
    bukkitspeak.commands.mute
    Allows you to use /ts mute
    bukkitspeak.commands.broadcast
    Allows you to use /ts broadcast <message>


    bukkitspeak.commands.chat
    Allows you to use /ts chat <message>
    bukkitspeak.commands.pm
    Allows you to use /ts pm <target> <message>
    bukkitspeak.commands.reload
    Allows you to use /ts reload

    bukkitspeak.messages.*
    Allows you to see all BukkitSpeak messages.

    bukkitspeak.messages.join
    Displays you a message when somebody joined TeamSpeak.
    bukkitspeak.messages.leave
    Displays you a message when somebody left TeamSpeak.
    bukkitspeak.messages.broadcast
    Shows you a broadcasts on TeamSpeak.
    bukkitspeak.messages.chat
    Shows you chat messages in the channel BukkitSpeak is listening to.
    bukkitspeak.messages.channelenter
    Displays you a message when somebody entered the channel BukkitSpeak is listening to.
    bukkitspeak.messages.channelleave
    Displays you a message when somebody left the channel BukkitSpeak is listening to.


    Important:
    • You need to set the IP, both ports, the Query username and password, else the plugin won't work.
    • You need to set bukkitspeak.*, bukkitspeak.user or bukkitspeak.messages.* in the permissions or you won't see any BukkitSpeak messages in Minecraft.
    • OP's can use all commands and see all messages by default.
    Download BukkitSpeak

    Source Code (Branch BukkitSpeakMerged)
    My Jenkins (Contains bleeding-edge builds, and might not be online all the time)
    Wiki with a more detailed documentation (some stuff still WIP)

    Original thread by but2002
    Original thread by Greycap (might be removed)


    [IMG]
    It's by no means required to donate, if you'd really like to, feel free to do so.
    The donations help to keep our little minecraft server alive, which is completely funded by donations.

    Please do:
    • Suggest features (especially for /ts info!)
    • Report bugs (Gives me more work and you a working plugin! Win-win type thing!)
    • Read the wiki (and suggest changes)
    • Stay awesome!
    Please don't:
    • Spam (if you need a lot of help, send me a PM)
    ToDo:
    • Add the changes to the documentation, mainly the messages.
    Changelog:

    Version 0.60
    • Added /tsa set <property> <value>
      • Allows you to set all teamspeak config settings in-game.
      • Even works with the ChannelID, and there is a nice channel change message :D
      • Still need to improve the speed and other stuff.
    • All commands except for /tsa set are now handled asynchronously.
      • Improves the speed of the plugin in general.
      • Doesn't lag out the server if the ping to the TS is too big.
    • Added a really basic Factions integration.
      • Only public chat will be sent to TeamSpeak.
      • Suggest more factions related features!
    • Improved logging in the console if it's turned off in the configuration.
    • Improved the TeamSpeak keep alive thread.
      • Will now try to reconnect if not connected anymore after 1, 1, 2, 2, 4, 4, etc minutes.
      • The maximum is at 60 minutes, so if the TS server is down for more than 3 hours, it will just try to reconnect after another hour.
    • Fixed /tsa ban.
    • Fixed bukkitspeak.moderator permission not giving the permissions to see the messages.
    • Works with CB-1.3.2-R1.0
    Version 0.55
    • Now used AsyncPlayerChatEvent instead of PlayerChatEvent
      • Improves server performance
      • You need CB-1.3.1-R1.0 or higher for this version of BukkitSpeak!
    • Added a config option to toggle logging everything in the config on or off.
      • This won't affect logging exceptions.
      • If the sender of a command is the console, the 'response' will of course still appear in the console log.
    • Works with CB-1.3.1-R1.0
    Version 0.54
    • Fixed §k and §m crashing the server.
      • Thanks to 'The Legendary' for reporting this bug!
    Version 0.53
    • Added /ts reply!
      • You can also use /ts r
      • It's annoying to have to retype the name of the user every time :p
    • /ts status was moved to the admin commands and is now called /tsa status.
      • Users (bukkitspeak.user) can no longer use /tsa status, but moderators (bukkitspeak.moderator) and admins (bukkitspeak.*) still can.
      • If you want users to be able to use this command, set the permission bukkitspeak.commands.status to true.
    • Fixed some NPEs occurring with server message events.
    • Fixed some NPEs when the values of messages were set to '' in the config.
    • Fixed some reload related problems.
    • Works with CB-1.2.5-R4.0

    Version 0.52
    • Added a config setting, teamspeak.debug.
      • Set this to true if you want to report a bug or if the plugin doesn't work at all.
      • Will show some internal JTS3ServerQuery exceptions in the server log.
      • Creates a file called "JTS3ServerQuery-communication.log" in the root folder of your server that contains all the information sent and received.
    • Fixed a bug if the ChannelID pointed to the default channel.
    • /ts ban now works properly.
    • Fixed a few bugs that prevented the ChatListener from working with a few certain settings.
      • Thanks to Buckethead for reporting this bug!
    Version 0.51
    • Most of the config nodes have changed!
      • I recommend letting the plugin generate a new config.
      • And then copying the values from the old file to the new one.
      • Sorry for those annoyances, but it really bothered me how the config was set up.
    • Moderators now have access to /tsa reload, as it should be.
    • Added Minecraft Join and Quit messages.
      • Remeber, you can disable every message by setting the value in the config to
        Code:
        ''
        BukkitSpeak won't send a notification then.
    • Added /tsa ban <target> (reason)
      • /tsa unban will be implemented in the next update
    • Changed the default config value for pokes, so the message size is not that limited.
    • Fixed NPE in /ts list while trying to connect to the TS server.
    • Fixed ServerQuery clients logging on causing "Received no information for user id 1234. (Adding)"
    • Fixed clients crashing when reloading the plugin with CB-1.2.5-R2.0
      • No idea why it did that, but it's fixed now
    • Changed the Admin Command Help a litte bit.
    Version 0.50
    • Moved to the official Java TeamSpeak 3 Server Query Application Programming Interface (or just JTS3ServerQueryAPI :) )
    • The KeepAlive thread now uses the BukkitScheduler, thus the shutdown time of the plugin is smaller.
    • Much more information about the client is aviable so you can replace more keys in the messages section of the config.
    • RegEx characters in messages (\ and $) don't upset the plugin anymore.
    • The KeepAlive also updates the info about all the clients, so if somebody changes his TS nickname, you'll see it after one minute in maximum.
    • Added a way to use Virtual Server IDs instead of the TeamspeakPort.
      Usually: TeamSpeakPort: 9987
      With the SID: TeamSpeakPort: -SID (e.g TeamSpeakPort: -1234)
    • Made BukkitSpeak try to reconnect to the TS server every five minutes when it isn't connected anymore.
    • Improved /ts status
    • Added /ts poke target message.
    • Added /ts info. This shows you the TS IP and how many people are online.
      Please suggest me more information to show in /ts info!
    • Added a 'new' command, /tsa. This gives you access to the admin commands.
    • Moved /ts reload over to the admin commands. Now called /tsa reload
    • Added /tsa channelkick target message and /tsa kick target message.
    • Added a new permission node, bukkitspeak.moderator:
      This gives you access to all /ts command as well as /tsa channelkick and /tsa reload
    • Removed spaces at the end of every message.
    • Now sends the Virtual Server ID, the Channel ID and the Client ID in a log message to the console.
    • Tested with CB-1.2.5-R1.3
    Version 0.47
    • Changed some default config settings.
    • Minecraft chat messages can now have colors. (SendChatToTeamspeak)
    • /ts pm and replies to those messages should now work properly.
    Version 0.46
    • "Re-added" all the colors.
      (I failed at RegEx :))
    Version 0.45
    • Works with the newest dev builds of Bukkit.
    • Rewrote the whole Teamspeak messaging stuff:
      • BukkitSpeak doesn't rename itself all the time in Teamspeak anymore.
      • The BroadcastNickname will now be shown in front of every message. This makes it possible to format the messages much better.
        Example: Before: Noob92: Ohai there!
        Now: AwesomeServer: [Noob92] Ohai there!
      • Made it possible to reply to PMs
      • You can now have color codes (&0 - &f, &l, &n, &o, &r) in your message! They will be converted to BBCode so they can be displayed in Teamspeak.
        Unfortunaltely, &k and &m don't work because there are no BBCodes for it (or Teamspeak doesn't know them) :(
      • You can use &f in your messages to make them "hidden" for Teamspeak :)
        The white text on the white background can only be seen when you select it.
    • The chat listener should now work properly.
    • Added a sub-command, you can now also use /ts list channel. That will only display who's in the channel you set in the config.
    • Fixed a lot of bugs...
    Version 0.44
    • Updated to CB 1.2.5-R1.0
    • Added /ts pm <target> <message>
    • Added an option to filter out links in messages.
    • Added an option to send all MC messages in TeamSpeak.
    • Improved the error handling if BukkitSpeak can't connect to the TeamSpeak server.
    • Made the plugin send messages in Minecraft if you use /ts chat, broadcast or PM.
      (Don't worry, only you will see the message for /ts pm)
    • Improved the config. You really should let the plugin create a new config file for you!
    • Fixed some bugs.
    Version 0.43
    • Updated to CB 1.2.4-R1.0
    • Added /ts status
    • Made /ts reload work a lot better
    • Removed a lot of bugs.
    • Colored some white messages (white never looks good)
    Version 0.42
    • Made teamspeak.ListenToServerEvents work properly.
    Version 0.41
    • Added forgotten permission node (bukkitspeak.commands.chat).
    Version 0.40
    • Initial release for CB 1.2.3-R0.2
    • Fixed a lot of bugs
    • Added a way to listen to channels. Fully optional though.
    • Added commands (/ts list, /ts mute, and so on)
    • Added permissions

    Changelog:
    Version 0.22
    • General Bug-Fixes. Now ignores query clients.
    Version 0.21
    • Re-added chat color, and filtered "Unknown from"
    Version 0.20
    • Updated to use the now-required login information.
    Version 0.16
    • filter joins/leavs starting with "Unknown from"
    Version 0.15
    • colour support (thanks to Binaryclock)
    Version 0.14
    • added connecting via hostname
    • changed virtualServerID to serverPort; you must now use your server's port instead of ID
    Version 0.13
    • fixed high CPU usage

    This post has been edited 55 times. It was last edited by Firedroide Oct 29, 2013.
    Jokerwitz and kahlilnc like this.
  2. Offline

    Jobsti

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Yeah!
    Actual working build. MUCH thanks @Firedroide.

    Works perfect. #2083

    This post has been edited 2 times. It was last edited by Jobsti Mar 19, 2012.
  3. Offline

    Krazy

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Hey nice plugin!
  4. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
  5. Offline

    TheLimaBeanman

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
  6. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    If there are any problems with 1.2.4, please tell me, and I'll update immediately.
    I'm just working on a /ts status command right now, and I think I'm not ready for an update yet.
  7. Offline

    Alvarez96

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Looks awesome! Cant wait to try it out!
  8. Offline

    Monkey34512

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I play Minecraft, but I do not own the MC server I usually play on. I do, however, own a Teamspeak 3 server. I want to be able to broadcast messages over the TS server. Can I use the /ts broadcast command without Minecraft?
  9. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I don't exactly know what you mean. If you want to broadcast messages in Minecraft, you can of course do this without Minecraft itself.
    If you want to do broadcasts in your TS server, you'll need Minecraft to use the /ts broadcast command.
    Also, you could just simply log on to your TS server and do the broadcast there, what would be much simpler.
  10. Offline

    Monkey34512

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I mean the broadcast through TS. I am trying to find a way to broadcast through a Teamspeak server without using the main server chat.

    Edit: I sent you a PM to avoid spamming this post.

    This post has been edited 2 times. It was last edited by Monkey34512 Apr 1, 2012.
  11. Offline

    Avarice

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Is there any possibility that we will see in-game chat sent to teamspeak without users having to type /ts chat?

    Then I may never have to log into my server again. :D

    Also, possibility to filter links posted in ts?

    This post has been edited 1 time. It was last edited by Avarice Apr 3, 2012.
  12. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Okay, I could make a config option to enable that.
    About link filters.... I don't really want to go into the topic of changing messages around and filtering stuff out.

    Usually, it works quite well as an anti-spam method to just give your members the permission to chat over TeamSpeak.

    But if that really is a huge problem, I could try to do that, too.
  13. Offline

    Avarice

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    It's not a HUGE problem. My server has an 18+ advisory, but one of our members was slightly inebriated and posting pornographic links in TS in the channel that was linked to the server. x) 95% of the people in teamspeak are all over the age of 20, so I don't feel the need to dole out special permissions just to chat.

    It's not something I expect to be an issue again, just have to bust out the whoopin stick every once in a while. Also, URLs don't parse properly in-game, since TS createstags before and after the link.

    This post has been edited 1 time. It was last edited by Avarice Apr 3, 2012.
  14. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Oh, thanks for that bug report! Since 1.2.4, it would actually be useful, if players could actually click the links posted in TeamSpeak.

    Unfortunately though, I don't have a lot of time for programming this week...
    I think, I'll add those things during the next week. (Holidays :D)
  15. Offline

    Avarice

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    okay, thank you very much. ^^ Enjoy your holiday. =)
  16. Offline

    Malo

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    why hasn't this been added to the plugin list, the others aren't updated this should be added. im using it now and works great!
  17. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I actually don't know, maybe the Bukkit team is just too busy.
    When I posted this plugin here, the Plugin Submission list was only 1 page long.
    Now it's 4 pages :)
  18. Offline

    MeSoHigh

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I am so glad for this plugin. Too bad it does not have a option to auto send MC > TS with the displayname.
  19. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I'm actually working on that, by the request of Avarice :D
    About the displayname, doesn't it work with the displayname in /ts chat?
    Maybe I'm still using .getName() instead of .getDisplayName(), but then I'd have to filter out the colors...

    Also, should the messages in Minecraft only be sent to the specific channel or should they be broadcastet on the server?
    But yes, I'm working on it, and I think I should be able to get out an update this week, built with CB 1.2.5-R1.
    Avarice likes this.
  20. Offline

    md_5

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Amazes me when people make these plugins, approved.
    Sketaful likes this.
  21. Offline

    MeSoHigh

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I am glad to hear you are working on it. When you do /ts chat message it shows up as Minecraft: Message. I was hoping it would come up as DisplayName: Message. It could very well be cause you don't use .getDisplayName(), but I don't do much coding any more :D. As for where the message from MC -> TS should go, I think that it should go in to channel. But some might disagree so I would honestly make it config option. Oh yes and being able to link to multiple channels instead of just one would be awesome, but I don't know how hard that would be.

    Thanks for your work.
  22. Offline

    Avarice

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    If players are connected to TS and Minecraft at the same time with the same name, then it will show up as Minecraft. It shows up as the user's name otherwise.

    Also, agree on the chat only being linked to one channel, just so that people have the option to escape it if we should so choose. ^_^
  23. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    About the name thing, that's something I actually can't fix.
    The problem is TeamSpeak itself. It only allows one client on the server with the same name.
    Now, if somebody has the same name in Minecraft as in TeamSpeak, BukkitSpeak tries to rename itself to the player's name to send the message, but TeamSpeak doesn't allow that.
    Thus, it just keeps the name it usually has, "Minecraft".

    Also, I think it's impossible to link BukkitSpeak to multiple channels.
    A query client (what BukkitSpeak is) acts just like a regular TeamSpeak user. It needs to be inside a channel to receive its chat messages. Unfortunately though, I can't place BukkitSpeak inside two or more channels at the same time.

    The only way of possibly getting that to work would be to create multiple Query Clients and place them inside the channels, but I don't want to do that because that would just spam the whole server with clients....

    Oh, and Avarice, I added a config node to filter out links and made links actually work if they're allowed.
    Also, I included an auto-send MC -> TS option.

    This post has been edited 1 time. It was last edited by Firedroide Apr 10, 2012.
  24. Offline

    KevinEssence

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I have no idea how to get these values, I looked at the wiki config maybe you guys help me out a bit better xD
    QueryPort: 10011 #The port over which BukkitSpeak communicates with the Query.
    QueryUsername: admin #The username you've set for the Teamspeak Query
    QueryPassword: '123456' #And the password for it.
  25. Offline

    zergdog

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Would you be willing to intergrate voice?
  26. Offline

    Firedroide

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    The QueryPort: Actually, I don't know, how you can find that value out. Usually, it's 10011, but if it isn't, the owner of the TeamSpeak server should know, where you can find it.

    Username and password: (You need to be a server admin on your TeamSpeak!)
    1. Open your TS3 client.
    2. Connect to the server.
    3. At the top of the window, click "Tools" and chose "ServerQuery Login"
    4. A window pops up. Enter any name. This name is your QueryUsername.
    5. Press enter, and another window will show up. There will be a password that's been generated for you.
    This password belongs to QueryPassword.

    I hope, I was able to help you.


    Unfortunately, that's impossible.
    But, if you'd like to voice chat with your buddys, why don't you just join the server with a regular TS3 client? :D
  27. Offline

    JoeGandy1

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Great plugin, in regards to the display name, If the user has the same name as someone on teamspeak, could you add a suffix to the display name before sending the message to the teamspeak... Like: Username(1):Message, if the name "Username" was already inuse on the teamspeak
  28. Offline

    zergdog

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    I was just wonder if it was possible to bring the ts3 api into the plugin, we already use the ts3 client.
  29. Offline

    KevinEssence

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
  30. Offline

    MeSoHigh

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Minecraft account:
    MCUSERNAME
    Hmm I know this has to be possible cause there is a BukkitSpeak on dev.bukkit.org by another person that does it just fine.

    I do get what you mean there about multiple channels. I can live without that just fine.

    Thank you for the new updates too.

Share This Page