Aller au contenu principal

Installation

Ce guide vous accompagne dans l'ajout de Sarah à votre projet et sa configuration correcte.

Dépendances

Gradle

Ajoutez le dépôt GroupeZ et la dépendance Sarah à votre build.gradle :

repositories {
mavenCentral()
maven { url 'https://repo.groupez.dev/releases' }
}

dependencies {
implementation 'fr.maxlego08.sarah:sarah:1.21.2'
}

Maven

Ajoutez le dépôt et la dépendance à votre pom.xml :

<repositories>
<repository>
<id>groupez</id>
<url>https://repo.groupez.dev/releases</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>fr.maxlego08.sarah</groupId>
<artifactId>sarah</artifactId>
<version>1.21.2</version>
</dependency>
</dependencies>

Relocation (Important !)

Pour éviter les conflits avec d'autres plugins utilisant Sarah, vous devriez relocaliser la dépendance.

Gradle avec le Plugin Shadow

plugins {
id 'com.github.johnrengelman.shadow' version '8.1.1'
}

shadowJar {
relocate 'fr.maxlego08.sarah', 'your.package.sarah'
}

Maven avec le Plugin Shade

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<relocations>
<relocation>
<pattern>fr.maxlego08.sarah</pattern>
<shadedPattern>your.package.sarah</shadedPattern>
</relocation>
</relocations>
</configuration>
</execution>
</executions>
</plugin>

Exemple de Configuration Basique

Voici un exemple complet de configuration de Sarah dans un plugin Minecraft :

public class MyPlugin extends JavaPlugin {

private DatabaseConnection databaseConnection;
private RequestHelper requestHelper;

@Override
public void onEnable() {
// Charger la configuration
saveDefaultConfig();

// Configurer la base de données
setupDatabase();

// Exécuter les migrations
runMigrations();
}

private void setupDatabase() {
String type = getConfig().getString("database.type", "sqlite");

if (type.equalsIgnoreCase("mysql")) {
DatabaseConfiguration config = DatabaseConfiguration.create(
getConfig().getString("database.user"),
getConfig().getString("database.password"),
getConfig().getInt("database.port", 3306),
getConfig().getString("database.host"),
getConfig().getString("database.database")
);
this.databaseConnection = new MySqlConnection(config);
} else {
DatabaseConfiguration config = DatabaseConfiguration.sqlite(
getConfig().getBoolean("database.debug", false)
);
this.databaseConnection = new SqliteConnection(config, getDataFolder());
}

// Se connecter à la base de données
try {
this.databaseConnection.connect();
} catch (SQLException e) {
getLogger().severe("Échec de la connexion à la base de données !");
e.printStackTrace();
getServer().getPluginManager().disablePlugin(this);
return;
}

// Créer le request helper
this.requestHelper = new RequestHelper(databaseConnection, getLogger());
}

private void runMigrations() {
MigrationManager.setMigrationTableName("my_plugin_migrations");
MigrationManager.registerMigration(new CreatePlayersTable());
MigrationManager.registerMigration(new CreateStatsTable());

try {
MigrationManager.execute(databaseConnection, getLogger());
} catch (SQLException e) {
getLogger().severe("Échec de l'exécution des migrations !");
e.printStackTrace();
}
}

@Override
public void onDisable() {
if (databaseConnection != null) {
databaseConnection.disconnect();
}
}

public RequestHelper getRequestHelper() {
return requestHelper;
}
}

Exemple de Fichier de Configuration

Voici un exemple de config.yml pour votre plugin :

database:
# Type : mysql, mariadb ou sqlite
type: sqlite

# Paramètres MySQL/MariaDB (ignorés pour SQLite)
host: localhost
port: 3306
database: my_plugin
user: root
password: secret

# Activer la journalisation des requêtes SQL
debug: false

Prochaines Étapes

Maintenant que Sarah est installé, apprenez à :

Copyright © 2026 GroupeZ|Build #loading...|-