Add user to group after x time online, x connections or x time since first join

Started by SamH, February 11, 2016, 02:54:39 AM

Previous topic - Next topic

SamH

On my TeamSpeak server we a "Member" group that means the user is trusted, and I was wondering if the bot is capable of such a feature.

I DO have the hosting version of this software (for personal use) and I can't see anything about it on the web interface.

It'd be a nice feature because when people asked we could just reply, you need x amount of online time to get the rank.

Failing that, after 10 connections or after x amount of days/hours since first join would work too.

Just something to automate the member tag on our teamspeak.

Stefan1200

Currently the TS3 server do not track how long a client was online. So I have to implement this on my own (which might be wrong, because I can't track the online time, if the bot is not online).

But it was very often requested, so I put it on my ToDo list.

Gamle

Hi, there.

I will also like if there will come a plugin, so the bot automatic can add guests to a group after 24 hours time or so on the TeamSpeak server. I know that it can't track time if the bot issen't online, but by default the bot is online 24/7 on my server.

I will like something like this:

# If a client is in this group id, then add add_group_id to the client.
FUNCTION_group_id = 8

# The group id the client will be added to if the client is in the group_id.
FUNCTION_add_group_id = 9

# Total time in minutes the client need to have used the TeamSpeak 3 server.
FUNCTION_total_online_time = 1440

It will be so great, because users there often have been online for a minimum of 24 hours can often be trusted with private and poke command.

Stefan1200

Yeah, this is still on my ToDo list. But this is a big change, because the TS3 server does not track the total online time of a client. I have to do this on my own. So I prefer fixing bugs and adding smaller new features from my ToDo list first. ;)

CaptainsLP

Stefan eigentlich tut Teamspeak das doch,

Wenn es Möglich wäre , der Bot müsste nur bei jedem Disconnect und connect des clients die werte aus der clientdbinfo auslesen.
Der genaue befehl dafür ist clientdbinfo cldbid=<Client Database ID>
Dort wird die immer die lastonline geloggt, und zwar im unix timestamp, diese sollten dabei helfen die Onlinezeit etwas einfach zu berechnen.

Stefan1200

Quote from: CaptainsLP on April 14, 2016, 12:19:34 PM
Stefan eigentlich tut Teamspeak das doch

Teamspeak speichert also die gesamte Online Zeit aller Verbindungen eines Clients? Habe wirklich lange danach gesucht, aber nichts gefunden.


Quote from: CaptainsLP on April 14, 2016, 12:19:34 PM
Wenn es Möglich wäre , der Bot müsste nur bei jedem Disconnect und connect des clients die werte aus der clientdbinfo auslesen.
Der genaue befehl dafür ist clientdbinfo cldbid=<Client Database ID>
Dort wird die immer die lastonline geloggt, und zwar im unix timestamp, diese sollten dabei helfen die Onlinezeit etwas einfach zu berechnen.

Damit weiß ich, dass der Client gerade X Minuten mit dem Server verbunden war. Das ist nicht die Kunst, das weiß der Bot auch jetzt schon. ;)

Damit weiß ich noch lange nicht, dass der Client gestern und vorgestern auch schon X Minuten mit dem Server verbunden war. Das trackt der TS3 Server nicht. Das nur im Arbeitsspeicher vom Bot vorzuhalten, ist recht gefährlich, da ich nicht garantieren kann, dass der Bot zwischendurch nicht neugestartet wird.

Also muss ich mir eine Datenbank bauen (oder eine riesige fertige Datenbank API einbinden), die für mich diese Werte alle auf der Festplatte speichert. Und da einige auch noch gerne andere Statistiken hätten, wäre es gleich sinnvoll ein System zu basteln, das noch wesentlich mehr speichern kann, da ich sonst irgendwann nochmal alles neu programmieren muss.

CaptainsLP

Meines erachtens finde ich diese funktion sowieso fragwürdig.

Das mitloggen von Onlinezeiten kann auch sehr schnell Datenschutzrechtlich Probleme verursachen.
Selbst wenn es sich hier lediglich um eine Spielerei handelt, kann dies schnell zu enrsthaften Problemen führen.

Stefan1200

Quote from: CaptainsLP on April 14, 2016, 01:10:37 PM
Das mitloggen von Onlinezeiten kann auch sehr schnell Datenschutzrechtlich Probleme verursachen.
Selbst wenn es sich hier lediglich um eine Spielerei handelt, kann dies schnell zu enrsthaften Problemen führen.

Das muss der Server Betreiber selbst entscheiden. Der JTS3ServerMod wird ja nicht nur in Deutschland eingesetzt.

kidi

Quote from: Stefan1200 on April 13, 2016, 07:14:07 PM
Yeah, this is still on my ToDo list. But this is a big change, because the TS3 server does not track the total online time of a client. I have to do this on my own. So I prefer fixing bugs and adding smaller new features from my ToDo list first. ;)

I think this guy means that he want 'Rank system' based on amount of time on server (IMO, best solution is current amount of time on server based on First Connected date).
On my server, i have 3 cosmetic groups, named Friend (for peoples without server rule violations and 1 month (Today minus FirstConnected) guid time.
VIP for same - no violations and 3 months on server.
Legend for same - no violations and 2 years on server.

Currently i remove and add users to that groups by my own, but it will be great if bot can make it by itself   :D
Can we do that by using Plugin API?

Stefan1200

Quote from: kidi on April 14, 2016, 07:39:05 PM
I think this guy means that he want 'Rank system' based on amount of time on server (IMO, best solution is current amount of time on server based on First Connected date).
On my server, i have 3 cosmetic groups, named Friend (for peoples without server rule violations and 1 month (Today minus FirstConnected) guid time.
VIP for same - no violations and 3 months on server.
Legend for same - no violations and 2 years on server.

Well, but that would promote also clients, which was only online for 5 minutes within this 3 months. I prefer the real online time.


Quote from: kidi on April 14, 2016, 07:39:05 PM
Currently i remove and add users to that groups by my own, but it will be great if bot can make it by itself   :D
Can we do that by using Plugin API?

Yes, you can create a JTS3ServerMod plugin for that.

SamH

#10
Is there any update on this?

I am still looking forward to this feature. If anyone has made a plugin that does this, providing a link would be greatly appreciated.



I edited my post a little, with some alternative ideas.

kidi

Quote from: SamH on July 16, 2016, 09:52:20 AM
Is there any update on this?

I am still looking forward to this feature. If anyone has made a plugin that does this, providing a link would be greatly appreciated.



I edited my post a little, with some alternative ideas.

try this http://ts-n.net/ranksystem.php
i'm personally using this for statistics and auto group assignment

Patschi

Even if it's an older thread: I would be interested in such a plugin as well. Sadly my Java knowledge isn't sufficient to write a plugin on my own...

The online time hasn't to be exact. It could get checked about every five minutes. Mainly the connection time-feature would be very interesting for me!


Bruno

Quote from: SamH on January 13, 2017, 10:31:06 AM
Try the above suggestion: http://ts-n.net/ranksystem.php
Quote from: Patschi on December 10, 2016, 04:31:40 PM
Even if it's an older thread: I would be interested in such a plugin as well. Sadly my Java knowledge isn't sufficient to write a plugin on my own...

The online time hasn't to be exact. It could get checked about every five minutes. Mainly the connection time-feature would be very interesting for me!

That ranksystem is becoming banned on several webhosting providers because it can top-up a CPU at 100%.
I would rather develop something to be used with the plugin API.