JTS3ServerMod - Suggestion, Question, and Advice

Started by Sno, October 06, 2011, 05:10:32 PM

Previous topic - Next topic

Sno

First I'd like to say outstanding work! I've used the bot for a day and it's already proven to be invaluable.

I especially like the autoidle and autoaway features. A suggestion I have is to add the auto-move-back functionality that autoaway can have to the autoidle feature. If a clan member gets flagged as being idle too long because they haven't said anything in a while (I'm aware that detecting an idle mouse/keyboard can only be done client-side and isn't possible for the bot) during a clan battle, they have to minimize the game in order to switch back to the appropriate channel. This could cause disaster for the battle! If an auto-move-back were to be implemented, when they get moved due to not speaking in a while, all they need to do is say something and they'd be placed back in the battle channel.

Some questions I have are:

  • Does the channel that the bot is in effect any of it's features? If so an auto-follow feature would be useful so you could tell the bot to follow you around if you switch channels
  • Is it possible to send messages to channels in response to things people type in them even if the bot isn't in that channel? If so, features similar to other plugins people have made would be possible like !dice, !slap, !trivia, etc. But would be more powerful since they could be done from anywhere on the server instead of needing someone with a plugin installed to be present in the channel you're in.
  • If an !exec  command is sent, what kind of command should be used? Is this for TS server query commands or system/shell commands?

My clan plays a game where in-game-currency is given to the clan based on territories it owns. Twice a month we disperse the currency to our members and each member receives a percentage of what is given out based on their attendance during prime battle hours. The way it's calculated is by a program I wrote that scans the mumble log (we've been using mumble and would like to switch to teamspeak), and if a member joins the "staging area" channel during prime battle hours it updates a google spreadsheet doc indicating that member was present for that day. A formula in the spreadsheet then adds together all the times that member was present during the "pay period" and divides it by the total number of times people showed up for that period to get that person's percentage. The total amount of currency to be given out is multiplied by that percentage in another formula which lets us know exactly how much currency that person should receive. Teamspeak's server logs don't record people entering or leaving a channel (or perhaps I just haven't been able to figure out how to have it record that), so we need another method to record attendance. I'm thinking about extending/adding a feature to JTS3ServerMod that would do this, and am hoping you could offer advice or tips on how to go about making it. I'm slightly new to java, but understand the basics fairly well and know several other languages (python being my strongest).

Thanks again for your wonderful bot! Keep up the good work!

Stefan1200

Thanks for your post :-)

Well, most servers use muted away channels, so the person can't speak to reset the idle time by speaking. Thats why such a feature was not implemented for the idle mover. Maybe I implement this some day, if I find time (will be not soon).

The !exec command is for system/shell commands.

Bot auto follow don't make sense in my opinion. Why you need that?

Sorry for the short answer, currently not at home :-)

Sno

Didn't know a channel could be muted, I just set the away channel to be the lowest quality audio quality to minimize bandwidth. If a channel is muted would trying to speak change the player's idle time even if there's no sound?

I didn't know if auto-follow would make sense, which is why I was wondering if the channel the bot was in effected anything. If the channel it's in does effect things then having it follow could be useful, if not then true there would be no point for an auto-follow.

I've got an idea looking through the code on how I could implement attendance. During a certain time frame it would check if a player is in a certain channel similar to how it checks their idle time. If they are it'd record their name and date to a new log file. Then I can have my old program scan that log at the end of the day the same way I had it scanning the mumble log previously. I'm pretty sure I can figure out how how to do that. What I'm not sure about is how I'd have it only add a player if they weren't already added for that day. Also, ideally it would only add them if they've been in the channel (or sub-channel of the designated channel) for over an hour so that way players can't login, go to the designated channel, then logoff, just to get accounted for that day to increase the amount of currency they'd receive.

Stefan1200

Quote from: ymangolds on October 06, 2011, 11:09:28 PM
Didn't know a channel could be muted, I just set the away channel to be the lowest quality audio quality to minimize bandwidth. If a channel is muted would trying to speak change the player's idle time even if there's no sound?

No, because the client mutes the microphone if the channel is muted (very high talk power). The idle time don't reset in this case, because no data will be send to the TS3 server.


Quote from: ymangolds on October 06, 2011, 11:09:28 PM
I didn't know if auto-follow would make sense, which is why I was wondering if the channel the bot was in effected anything. If the channel it's in does effect things then having it follow could be useful, if not then true there would be no point for an auto-follow.

No, it doesn't matter where the bot is. Only if you want to use the channel chat to communicate with the bot (using bot commands like !bothelp). But if you know where the bot is, you can just switch to that channel or open a private chat with the bot.