Question : limiter à X heures par jour les connexions à un serveur

lilom

Aventurier
8 Septembre 2014
4
0
1
Bonjour

Est-ce que quelqu'un ici sait s'il est possible de limiter à X heures par jours/semaines les connexions à un serveur minecraft ?
Existe-il un plugin pour ça ?
J'ai regardé sur le net mais je n'ai rien trouvé qui parle de ça...
Peut-être que ça n'existe pas directement mais qu'il est possible en combinant plusieurs plugins de résoudre mon besoin...
Je fais appel à la communauté minecraft.fr ! ;)

En vous remerciant...

lilom
 

Valtureyn

Développeur
28 Février 2014
243
45
67
31
C'est techniquement facile à faire mais je voudrai bien que tu m'explique l'utilité d'un tel brideur de jeu ?

Cordialement.
 

lilom

Aventurier
8 Septembre 2014
4
0
1
Je voudrais tenter un nouveau truc dans mon petit groupe de pote. Faire un concours de création mais en temps limité... genre 4/6 heures par semaine sur 2/3 mois. Car il y a 2 personnes qui sont complètement droguées et qui pourraient y passer 4/6 par jours ! ;) (voir beaucoup plus)

En tous cas, c'est génial que ce soit possible et facile :) Explique moi stp ?
Est-ce que tu pourrais m'expliquer aussi comment récupérer des statistiques d'utilisation... genre nombre de connexion, durée, jour, etc. ?

merci par avance.
 

Valtureyn

Développeur
28 Février 2014
243
45
67
31
Il suffit d'utiliser une base de données on récupère le temps de la machine lors de la connexion du joueur et on lui attribue une session qui se fermera lors de ça déconnexion on compare les 2 temps exprimé en millisecondes pour déterminer leur temps de jeu après faire des statistiques c'est rien de bien compliqué du moment que c'est structuré et concis. Dans le cas où une base de donnée n'est pas disponible il possible d'enregistrer les données dans des fichiers textes nommé par rapport à la date courante mais le traitement des données ne se fera uniquement par un logiciel tableur si tu souhaite réaliser des graphiques.

Ps: Bloquer la connexion car elle à dépassé un certain seuil de "crédit" est simple tout est une histoire de date et de temps.
 

lilom

Aventurier
8 Septembre 2014
4
0
1
Si c'est possible, c'est super. :)
Pourrais-tu me donner plus de détails pour commencer ? car là, je ne vois pas du tout comment le faire.
Est-ce que c'est du développement pur de plugins ? ou existe il un plugin déjà que je peux utiliser pour savoir qui est connecté ? déclencher des actions à la connexion ? Autoriser ou non la connexion suivant des critères ?

Je te remercie par avance.
Je ne connais pas le développement minecraft ou les API serveur mais je me débrouille en scripting Linux/shell.
 

beubeulone

Feignant
19 Juillet 2011
281
56
134
www.tarti.fr
Salut,

Je ne veux pas me fâcher avec Valtureyn, mais si tu te débrouille en sh, tu pourrais utiliser un script exécuté avec CRON pour faire ça :D

La théorie :

  • parcourir le dossier serveur/monde/stats/
  • parser chaque fichier json (parse json on linux), la variable stat.playOneMinute donnant le temps de jeu en secondes,
  • si elle est supérieure ou égale à 60*60*x heures, ban du joueur (ou retrait de la WL ou mode spectateur, enfin tu vois)
Perso, le serveur serait lancé dans un screen nommé, donc j'y entrerais pour exécuter la commande, ex. :
Code:
screen -S mc -p scr_mc -X stuff "ban $pseudo/id"`echo -ne '\015'`
  • Ajouter un paramètre Reset pour... reset à volonté. Attenant au code précédent qui débanni systématiquement et vide le dossier stats.
Bon... il y a surement un plugin pour faire ça en 2 minutes, mais cette solution devrait marcher même dans l'avenir. ;)
 

azatom

Fabuloussss !!
20 Janvier 2013
1 624
283
212
26
Emergia
Y'a un plugin pour ça :p
J'avais vu ça a un moment, mais je l'avais totalement ignoré pour son inutilité ... je ne me souviens plus de nom désolé...
 

lilom

Aventurier
8 Septembre 2014
4
0
1
Je suis beaucoup plus à l'aise en SH qu'en java alors je vais plutôt regarder l'idée de beubeulone.
Je vais étudier le répertoire stats que je ne connaissais pas. Après le coup du screen et du reset c'est beaucoup plus flou pour moi. Mais c'est déjà une bonne piste. Merci ! ;)

Après si Azatom se souvient du nom du plugin, c'est encore mieux ! ^^