Des SMS d’alerte pour votre plugin Minecraft
Petite fonction créé par mes soins pour mon plugin sous Sponge qui permet d’envoyer un SMS(FreeMobile) quand un joueur se connecte ou quand le serveur plante… Ça dépendra ensuite de l’event ou vous souhaitez la mettre^^.
Elle peut sans doute être améliorer pour gérer d’autre opérateur si ils proposent aussi l’option ou rajouter un système d’envoi de SMS multiple pour par exemple prévenir tout les admins…
Pour l’utiliser(ça dépendra de l’organisation de votre code), pour moi il faut faire:
Sponge.smsPost(player.getName() + " vient de se connecté");
Vous aurez aussi besoin de définir votre « user » et votre « pass » qu’on met dans l’url pour envoyer le SMS qui seront définit par exemple dans un fichier que les fonctions: « FileConfig.FREEMOBILEUSER() » et « FileConfig.FREEMOBILEPASS() » vont retourner.
Le code:
static public void smsPost(String message) throws IOException { if(FileConfig.FREEMOBILEUSER() != null && FileConfig.FREEMOBILEPASS() != null) { String url = "https://smsapi.free-mobile.fr/sendmsg?"; url += "user="+FileConfig.FREEMOBILEUSER().toString(); url += "&pass="+FileConfig.FREEMOBILEPASS().toString(); url += "&msg=" + message.replace(" ", "%20"); URL object = new URL(url); HttpURLConnection connection = (HttpURLConnection) object.openConnection(); int responseCode = connection.getResponseCode(); switch (responseCode) { case 200: Sponge.getLogger().info(Sponge.getPluginName() + ": SMS envoyé: " + message); break; case 400: Sponge.getLogger().info(Sponge.getPluginName() + ": Un des paramètres obligatoires est manquant!!!"); break; case 402: Sponge.getLogger().info(Sponge.getPluginName() + ": Trop de SMS ont été envoyés en trop peu de temps!!!"); break; case 403: Sponge.getLogger().info(Sponge.getPluginName() + ": Le service n'est pas activé sur l'espace abonné, ou login / clé incorrect"); break; case 500: Sponge.getLogger().info(Sponge.getPluginName() + ": Erreur sur serveur Free Mobile"); break; default: Sponge.getLogger().info(Sponge.getPluginName() + ": Erreur inconnue!!!"); } } else { Sponge.getLogger().info(Sponge.getPluginName() + ": l'option SMS n'est pas activé."); } }
Mes fonctions FREEMOBILEUSER() et FREEMOBILEPASS() qui récupèrent les infos de connexion dans mon fichier de conf:
public static String FREEMOBILEUSER() { return config.getNode("freemobile", "user").getString(); } public static String FREEMOBILEPASS() { return config.getNode("freemobile", "pass").getString(); }
La fonction getPluginName() renvoie le nom du plugin de manière dynamique pour par que vous aillez à l’écrire partout et le modifier si vous change le nom de votre pluigin… Le code:
public static String getPluginName() { return Main.class.getAnnotation(Plugin.class).name(); }
PS: on peut faire la même chose pour la version du plugin ou encore son id.
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.
Salut, je débute et voudrais savoir, le code tous dois être sur la même page ou on doit en faire d’autre ?
Également je voulais savoir si le service fonctionne toujours, car quand j’ai voulu ouvrir le lien, il me dit page inexistante.
Quelle lien ? J’ai plus internet et depuis le téléphone je peux pas voir l’article en question.