Skip to content

Commit 2bdedab

Browse files
committed
Add: implement MCSupport class for Minecraft project integration and update build.gradle.kts for new repositories
1 parent 6c1b18a commit 2bdedab

8 files changed

Lines changed: 91 additions & 9 deletions

File tree

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ tasks.register("printVersion") {
1717

1818
repositories {
1919
mavenCentral()
20+
21+
maven("https://hub.spigotmc.org/nexus/content/repositories/snapshots/")
22+
maven("https://oss.sonatype.org/content/repositories/snapshots/")
2023
}
2124

2225
dependencies {
@@ -28,6 +31,8 @@ dependencies {
2831

2932
implementation("org.openjfx:javafx-controls:21")
3033
implementation("org.openjfx:javafx-fxml:21")
34+
35+
compileOnly("org.spigotmc:spigot-api:1.8-R0.1-SNAPSHOT")
3136
}
3237

3338
javafx {

readme.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@
33
Bienvenue dans **ConnectorAPI** : la passerelle universelle pour connecter, automatiser et orchestrer vos flux de données !
44
Et si vous pensiez que les API étaient compliquées, détrompez-vous ! Avec ConnectorAPI, c’est comme jouer avec des Lego : simple, intuitif et puissant.
55

6+
---
7+
```java
8+
Support Lib 23 | Future 24...
9+
10+
Support Minecraft 1.8.0
11+
```
612
---
713

814
## 🌟 Pourquoi ConnectorAPI ?

src/main/java/fr/sandro642/github/ConnectorAPI.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package fr.sandro642.github;
22

3+
import fr.sandro642.github.hook.MCSupport;
34
import fr.sandro642.github.jobs.JobGetInfos;
45
import fr.sandro642.github.jobs.misc.MethodType;
56
import fr.sandro642.github.jobs.misc.ResourceType;
67
import fr.sandro642.github.jobs.misc.VersionType;
78
import fr.sandro642.github.utils.Logger;
89
import fr.sandro642.github.utils.StoreAndRetrieve;
910
import fr.sandro642.github.utils.YamlUtils;
11+
import org.jetbrains.annotations.Nullable;
1012

1113
/**
1214
* ConnectorAPI est une librairie Java permettant de créer un lien de communication entre son projet Java et une API Rest Fastify.
@@ -82,4 +84,17 @@ public static YamlUtils YamlUtils() {
8284
}
8385
return yamlUtils;
8486
}
87+
88+
/**
89+
* Retourne une instance de MCSupport si le projet est un projet Minecraft
90+
* @return MCSupport ou null si ce n'est pas un projet Minecraft
91+
*/
92+
public static @Nullable MCSupport MCSupport() {
93+
if (MCSupport().isMCProject()) {
94+
return new MCSupport();
95+
} else {
96+
logger.ERROR("MCSupport ne peut être utilisé que dans un projet Minecraft.");
97+
return null;
98+
}
99+
}
85100
}
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package fr.sandro642.github.hook;
2+
3+
import org.bukkit.plugin.Plugin;
4+
5+
/**
6+
* MCSupport est une classe utilitaire pour gérer les hooks liés à Minecraft.
7+
* Elle permet de vérifier si le projet est un projet Minecraft et de gérer les ressources associées.
8+
* @author Sandro642
9+
* @version 1.0
10+
*/
11+
12+
public class MCSupport {
13+
14+
/**
15+
* Instance unique du plugin Minecraft.
16+
* Utilisée pour stocker la variable du plugin Minecraft.
17+
*/
18+
private Plugin pluginSingleton;
19+
20+
/**
21+
* Méthode permettant de vérifier si le projet est un projet Minecraft.
22+
* Elle vérifie si le chemin du fichier de configuration contient le chemin des ressources Minecraft.
23+
* @return true si c'est un projet Minecraft, false sinon.
24+
*/
25+
public boolean isMCProject() {
26+
String fileLocation = (String) fr.sandro642.github.ConnectorAPI.StoreAndRetrieve().store.get(fr.sandro642.github.ConnectorAPI.StoreAndRetrieve().FILE_LOCATION_KEY);
27+
return fileLocation != null && fileLocation.contains(fr.sandro642.github.jobs.misc.ResourceType.MC_RESOURCES.getPath());
28+
}
29+
30+
/**
31+
* Méthode permettant de définir la variable du plugin Minecraft.
32+
* Elle doit être appelée dans un projet Minecraft pour initialiser le plugin.
33+
* @param plugin Le plugin Minecraft à définir.
34+
* @return L'instance du plugin définie.
35+
*/
36+
private Plugin setPluginVariable(Plugin plugin) {
37+
if (isMCProject()) {
38+
return pluginSingleton = plugin;
39+
} else {
40+
throw new IllegalStateException("This method can only be called in a Minecraft project.");
41+
}
42+
}
43+
44+
/**
45+
* Méthode permettant d'obtenir le chemin du path du plugin Minecraft.
46+
* Elle doit être appelée dans un projet Minecraft pour récupérer le chemin du dossier de données du plugin.
47+
* @return Le chemin du dossier de données du plugin.
48+
*/
49+
private String getPluginPath() {
50+
if (isMCProject()) {
51+
if (pluginSingleton == null) {
52+
throw new IllegalStateException("Plugin variable is not set. Please call setPluginVariable first.");
53+
}
54+
return pluginSingleton.getDataFolder().getAbsolutePath();
55+
} else {
56+
throw new IllegalStateException("This method can only be called in a Minecraft project.");
57+
}
58+
}
59+
60+
}

src/main/java/fr/sandro642/github/hook/MC_Support.java

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/main/java/fr/sandro642/github/jobs/JobGetInfos.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ public class JobGetInfos {
2525
* ApiClient est utilisé pour effectuer les requêtes HTTP vers l'API.
2626
* YamlUtils est utilisé pour lire les routes depuis le fichier YAML.
2727
*/
28-
private ApiClient apiClient;
29-
private YamlUtils yamlUtils;
28+
private final ApiClient apiClient;
29+
private final YamlUtils yamlUtils;
3030

3131
/**
3232
* Constructeur de JobGetInfos qui initialise ApiClient et YamlUtils.
@@ -135,7 +135,7 @@ public JobGetInfos getRoutes(VersionType versionType, MethodType methodType, Str
135135
String paramKey = "{" + entry.getKey() + "}";
136136
String paramValue = entry.getValue().toString();
137137

138-
// Remplace tous les occurrences du paramètre dans la route
138+
// Remplace toutes les occurrences du paramètre dans la route
139139
fullRoute = fullRoute.replace(paramKey, paramValue);
140140
}
141141
}

src/main/java/fr/sandro642/github/jobs/misc/ResourceType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public enum ResourceType {
1414
*/
1515
MAIN_RESOURCES("src/main/resources"),
1616
TEST_RESOURCES("src/test/resources"),
17-
MC_RESOURCES("Arrive prochainement");
17+
MC_RESOURCES("mc_resources");
1818

1919

2020
/**

0 commit comments

Comments
 (0)