Skip to content

v0.0.2

Compare
Choose a tag to compare
@Shuvlyy Shuvlyy released this 11 Feb 19:23
· 199 commits to main since this release

☢️ ️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.