Skip to content
Snippets Groups Projects
Commit 22aadaf2 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Amélioration de la configuration

parent 590f4f41
No related branches found
No related tags found
No related merge requests found
Pipeline #187 passed
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<groupId>com.slprojects</groupId> <groupId>com.slprojects</groupId>
<artifactId>SLCraftPlugin</artifactId> <artifactId>SLCraftPlugin</artifactId>
<version>1.6.1</version> <version>1.6.2</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>SLCraftPlugin</name> <name>SLCraftPlugin</name>
......
...@@ -19,6 +19,7 @@ import net.luckperms.api.cacheddata.CachedMetaData; ...@@ -19,6 +19,7 @@ import net.luckperms.api.cacheddata.CachedMetaData;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Sound; import org.bukkit.Sound;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
...@@ -32,12 +33,8 @@ import org.bukkit.plugin.java.JavaPlugin; ...@@ -32,12 +33,8 @@ import org.bukkit.plugin.java.JavaPlugin;
import org.json.simple.JSONObject; import org.json.simple.JSONObject;
import org.mariadb.jdbc.MariaDbPoolDataSource; import org.mariadb.jdbc.MariaDbPoolDataSource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -82,7 +79,10 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -82,7 +79,10 @@ public final class Main extends JavaPlugin implements Listener {
// Plugin shutdown logic // Plugin shutdown logic
ConsoleLog.danger("Plugin désactivé, au revoir!"); ConsoleLog.danger("Plugin désactivé, au revoir!");
TextComponent goodbyeMessage = Component.text("Le serveur est en cours de redémarrage, à bientôt!"); String configMsg = getConfig().getString("messages.server-restarting");
assert configMsg != null;
TextComponent goodbyeMessage = Component.text(configMsg);
PlayerKickEvent.Cause cause = PlayerKickEvent.Cause.RESTART_COMMAND; PlayerKickEvent.Cause cause = PlayerKickEvent.Cause.RESTART_COMMAND;
PlayerQuitEvent.QuitReason reason = PlayerQuitEvent.QuitReason.KICKED; PlayerQuitEvent.QuitReason reason = PlayerQuitEvent.QuitReason.KICKED;
...@@ -106,7 +106,7 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -106,7 +106,7 @@ public final class Main extends JavaPlugin implements Listener {
playerDataHandler.joinEvent(e.getPlayer()); playerDataHandler.joinEvent(e.getPlayer());
// On affiche le message de bienvenue // On affiche le message de bienvenue
String welcomeMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("player-join-message"))); String welcomeMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("messages.player-join-message")));
// Et on joue un petit son chez tous les joueurs // Et on joue un petit son chez tous les joueurs
for (Player p : getServer().getOnlinePlayers()) { for (Player p : getServer().getOnlinePlayers()) {
p.sendMessage(welcomeMessage); p.sendMessage(welcomeMessage);
...@@ -114,7 +114,8 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -114,7 +114,8 @@ public final class Main extends JavaPlugin implements Listener {
p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 0); p.playSound(p.getLocation(), Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1, 0);
} }
} }
sendMessageToDiscord("**" + e.getPlayer().getName() + "** vient de rejoindre le serveur"); String discordWelcomeMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("messages.discord.player-joining")));
sendMessageToDiscord(discordWelcomeMessage);
} }
@EventHandler(priority = EventPriority.HIGHEST) @EventHandler(priority = EventPriority.HIGHEST)
...@@ -122,11 +123,12 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -122,11 +123,12 @@ public final class Main extends JavaPlugin implements Listener {
// On désactive le message par défaut // On désactive le message par défaut
e.quitMessage(null); e.quitMessage(null);
playerDataHandler.quitEvent(e.getPlayer()); playerDataHandler.quitEvent(e.getPlayer());
String quitMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("player-quit-message"))); String quitMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("messages.player-quit-message")));
for (Player p : getServer().getOnlinePlayers()) { for (Player p : getServer().getOnlinePlayers()) {
p.sendMessage(quitMessage); p.sendMessage(quitMessage);
} }
sendMessageToDiscord("**" + e.getPlayer().getName() + "** a quitté le serveur"); String discordQuitMessage = PlaceholderAPI.setPlaceholders(e.getPlayer(), Objects.requireNonNull(getConfig().getString("messages.discord.player-leaving")));
sendMessageToDiscord(discordQuitMessage);
} }
// On renvoie chaque message des joueurs sur le canal de chat du serveur discord // On renvoie chaque message des joueurs sur le canal de chat du serveur discord
...@@ -229,6 +231,34 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -229,6 +231,34 @@ public final class Main extends JavaPlugin implements Listener {
reloadConfig(); reloadConfig();
config = getConfig(); config = getConfig();
updateConfig(); updateConfig();
if (!areMessagesNotEmpty()) {
ConsoleLog.danger("Le fichier de configuration contient des messages vides!");
getServer().getPluginManager().disablePlugin(this);
return;
}
}
/**
* Vérifie que les messages de la configuration ne sont pas vides
*
* @return true si les messages ne sont pas vides, false sinon
*/
public boolean areMessagesNotEmpty() {
ConfigurationSection messagesSection = getConfig().getConfigurationSection("messages");
if (messagesSection == null) {
return false; // Le groupe "messages" n'existe pas dans la configuration
}
for (String key : messagesSection.getKeys(true)) {
String message = messagesSection.getString(key);
if (message == null || message.isEmpty()) {
return false; // Une entrée du groupe "messages" est vide
}
}
return true; // Toutes les entrées du groupe "messages" sont non vides
} }
/** /**
...@@ -285,8 +315,7 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -285,8 +315,7 @@ public final class Main extends JavaPlugin implements Listener {
json.put("username", username); json.put("username", username);
// On va appeler l'api du bot discord // On va appeler l'api du bot discord
try { String urlString = config.getString("discordBot-api-url") + "mc/chat/" + URLEncoder.encode(json.toJSONString(), StandardCharsets.UTF_8).replace("+", "%20");
String urlString = config.getString("discordBot-api-url") + "mc/chat/" + URLEncoder.encode(json.toJSONString(), "UTF-8").replace("+", "%20");
AsyncHttpClient httpClient = new AsyncHttpClient(); AsyncHttpClient httpClient = new AsyncHttpClient();
CompletableFuture<String> response = httpClient.get(urlString); CompletableFuture<String> response = httpClient.get(urlString);
...@@ -295,10 +324,6 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -295,10 +324,6 @@ public final class Main extends JavaPlugin implements Listener {
ConsoleLog.info("Func sendMessageToDiscord(String message, String username), HTTP response:" + res); ConsoleLog.info("Func sendMessageToDiscord(String message, String username), HTTP response:" + res);
} }
}); });
} catch (UnsupportedEncodingException ex) {
ConsoleLog.danger("Impossible de d'encoder les données. Func AsyncChatEvent(PlayerChatEvent e)");
ex.printStackTrace();
}
} }
public void sendMessageToDiscord(String message) { public void sendMessageToDiscord(String message) {
...@@ -353,7 +378,14 @@ public final class Main extends JavaPlugin implements Listener { ...@@ -353,7 +378,14 @@ public final class Main extends JavaPlugin implements Listener {
reloadConfig(); reloadConfig();
} }
// 1.6.1 - 1.6.2 // 1.6.2
if (config.contains("player-quit-message")) {
config.set("player-quit-message", null);
}
if(config.contains("player-join-message")) {
config.set("player-join-message", null);
}
config.options().copyDefaults(true); config.options().copyDefaults(true);
saveConfig(); saveConfig();
reloadConfig(); reloadConfig();
......
...@@ -31,7 +31,7 @@ public class AsyncHttpClient { ...@@ -31,7 +31,7 @@ public class AsyncHttpClient {
public CompletableFuture<String> get(String urlString) { public CompletableFuture<String> get(String urlString) {
HttpRequest request = HttpRequest.newBuilder() HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(urlString)) .uri(URI.create(urlString))
.header("User-Agent", Main.config.getString("name") + " " + Main.config.getString("version")) .header("User-Agent", "SL-Craft | Server Plugin")
.header("Server-Type", Main.config.getString("server-type")) .header("Server-Type", Main.config.getString("server-type"))
.GET() .GET()
.build(); .build();
...@@ -56,7 +56,7 @@ public class AsyncHttpClient { ...@@ -56,7 +56,7 @@ public class AsyncHttpClient {
public CompletableFuture<String> post(String urlString, PostDataBuilder postDataBuilder, Map<String, String> headers) { public CompletableFuture<String> post(String urlString, PostDataBuilder postDataBuilder, Map<String, String> headers) {
HttpRequest request = HttpRequest.newBuilder() HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(urlString)) .uri(URI.create(urlString))
.header("User-Agent", Main.config.getString("name") + " " + Main.config.getString("version")) .header("User-Agent", "SL-Craft | Server Plugin")
.header("Server-Type", Main.config.getString("server-type")) .header("Server-Type", Main.config.getString("server-type"))
.headers(headers.entrySet().stream() .headers(headers.entrySet().stream()
.flatMap(entry -> Stream.of(entry.getKey(), entry.getValue())) .flatMap(entry -> Stream.of(entry.getKey(), entry.getValue()))
......
...@@ -28,8 +28,6 @@ database: ...@@ -28,8 +28,6 @@ database:
table-prefix: site_ # prefix of the tables in your database table-prefix: site_ # prefix of the tables in your database
player-join-playSound: true player-join-playSound: true
player-join-message: "&a%player_name% &fa rejoint le serveur :D"
player-quit-message: "&a%player_name% &fvient de quitter le serveur :'("
# Serveur messagerie # Serveur messagerie
internal-webserver-port: 25575 internal-webserver-port: 25575
...@@ -49,3 +47,12 @@ ticks-per-seconds: 20 ...@@ -49,3 +47,12 @@ ticks-per-seconds: 20
stats: stats:
required-played-time-for-upgrading-players-account: 72000 # En sencondes required-played-time-for-upgrading-players-account: 72000 # En sencondes
players-account-upgrade-role: "habitué" players-account-upgrade-role: "habitué"
# Messages
messages:
server-restarting: "Le serveur est en cours de redémarrage, à bientôt!"
discord:
player-joining: "**%player_name%** vient de rejoindre le serveur"
player-leaving: "**%player_name%** vient de quitter le serveur"
player-join-message: "&a%player_name% &fa rejoint le serveur :D"
player-quit-message: "&a%player_name% &fvient de quitter le serveur :'("
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment