v0.0.2
☢️ ️Tekore
Coeur du serveur.
Ce plugin s'occupe de toute la synchronisation entre les données des joueurs
et la base de données SQL. Il s'assure du bon fonctionnement des serveurs
entre-eux.
⚠️
Tous les plugins de Hashtek doivent impérativement utiliser Tekore.
ℹ️
Vous devez impérativement mettre le .jar dans le dossier plugins
de votre serveur.
Utilisation
Pour utiliser Tekore, vous devez stocker une instance de ce dernier à la racine
de votre plugin.
Exemple :
public class Test extends JavaPlugin {
private Tekore core;
@Override
public void onEnable()
{
try { // Important !
this.core = Tekore.getInstance();
} catch (NullPointerException exception) {
System.err.println("Tekore failed to load. Stopping.");
this.getServer().shutdown();
return;
}
}
public Tekore getCore()
{
return this.core;
}
}
⚠️
Initialisez toujours Tekore avec un bloc try/catch
as cas-où Tekore ne se charge pas correctement
(mauvaise configuration par exemple).
HashLogger
Afin de centraliser les logs (et peut-être dans le futur faire un historique
des logs), vous devez utiliser l'instance de HashLogger présente dans le Tekore.
Il s'obtient avec la fonction Tekore#getHashLogger()
.
Voir l'exemple ci-dessous.
PlayerData
La classe PlayerData
est une classe stockant l'intégralité des données des
joueurs. Cette classe est la raison principale de pourquoi nous avons fait
ce plugin.
Utilisation
Vous vous servirez de Tekore pour récupérer les données des joueurs, les
modifier et les enregistrer dans la base de données.
Dans un fichier d'event par exemple, voici comment récupérer les données des
joueurs, les modifier et les enregistrer dans la base de données :
public class JoinEvent implements Listener, HashLoggable {
private Tekore core;
private HashLogger logger; // Logger du Tekore
public JoinEvent(Tekore core)
{
this.core = core;
this.logger = this.core.getHashLogger(); // Récupération du logger du Tekore
}
@EventHandler
public void onJoin(PlayerJoinEvent event)
{
Player player = event.getPlayer();
PlayerData playerData = this.core.getPlayerData(player); // Récupération des données
/* Modifiez ce que vous voulez */
// Mise à jour des données dans la base de données.
try {
this.core.getAccountManager().updatePlayerAccount(playerData);
} catch (SQLException exception) {
this.logger.critical(this, "Failed to update PlayerData.", exception);
}
}
}
⚠️
Il est fortement recommandé de faire passer l'instance de Tekore dans le
constructeur de la classe, et non pas de rendre l'instance publique à la
racine du plugin.
ℹ️
Lorsqu'un joueur se déconnecte, ses données sont automatiquement mises à jour
dans la base de données.
Fonctionnalités
setRank()
: Met à jour le rank du joueur
⚠️
Toutes les fonctions qui ne sont pas écrites ci-dessus ne sont pas censées
être utilisées par autre chose que le Tekore !
Base de données
Pour que le plugin puisse fonctionner, il a besoin d'une base de données avec
une structure précise.
Vous aurez besoin de :
- MySQL
- PhpMyAdmin
- Apache
Une fois ces logiciels installés, importez la base de données
hashtekdb.sql
avec PhpMyAdmin.
Fichiers de configuration
HashLogger
logger-level
: Niveau de log (voir HashLogger)
Base de données (.env
)
DATABASE
: Nom de la base de données (hashtekdb
)
HOST
: IP de la base de données (127.0.0.1
pour du local)
USER
: Nom d'utilisateur (root
par défaut)
PASSWORD
: Mot de passe (rien par défaut)
⚠️
Vous devez créer le .env
à la racine du serveur.