From c5b3d8b5be904dc211dc94359b0122eb7d891878 Mon Sep 17 00:00:00 2001 From: Marc Baloup Date: Wed, 21 Jan 2015 18:57:49 -0500 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20alias=20pour=20/lobby=20et=20/hub?= =?UTF-8?q?=20+=20alias=20insensible=20=C3=A0=20la=20casse=20+=20Ajout=20d?= =?UTF-8?q?e=20la=20configuration=20des=20messages=20automatiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/pandacraftutils/ConfigManager.java | 56 +++++++++++++++++++ .../_command_alias/CommandAliasManager.java | 17 ++++-- 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/ConfigManager.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/ConfigManager.java index 9fa0e5c..6745bf4 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/ConfigManager.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/ConfigManager.java @@ -7,6 +7,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.bukkit.ChatColor; import org.bukkit.configuration.file.FileConfiguration; /* @@ -116,6 +117,49 @@ public class ConfigManager { + + /* + * Automessages + */ + public List> Automessages_messages; + + private void initAutomessages() { + Automessages_messages = new ArrayList>(); + + String default_color = ChatColor.YELLOW.toString(); + + Map message; + message = new HashMap(); + message.put("message", "WorldEdit disponible en &bCréatif"+default_color+" avec le grade &f[&eUltimate&f]"+default_color+". Profitez en vite :D%n&f &a http://mc-pandacraft.net/?p=ultimate"); + message.put("permissions", "*"); + Automessages_messages.add(message); + + message = new HashMap(); + message.put("message", "Launcher disponible pour Pandacraft : Optifine intégré et mise à jour automatique avec le serveur.%n &ahttp://mc-pandacraft.net/?p=launcher"); + message.put("permissions", "*"); + Automessages_messages.add(message); + + message = new HashMap(); + message.put("message", ChatColor.BLUE+"Bienvenue sur Pandacraft ! :) Pour pouvoir jouer, n'oubliez pas de vous inscrire en cliquant sur le lien en dessous%n &ahttp://mc-pandacraft.net/?p=inscription"); + message.put("permissions", "pandacraft.grade.default"); + Automessages_messages.add(message); + + /* + * Fonctionnement : + * Chaque joueur a une variable indiquand la date/heure du dernier message affiché + * Cette valeur est initialisé à la valeur courante, lors de chaque connexion du joueur + * Selon le grade, l'intervalle entre les messages est défini : 2min30 pour les visiteurs, 10 minutes pour les autres + * Chaque joueur a une variable qui correspond à l'ID du dernier message (dans l'ArrayList) pour ne pas répéter deux fois le même + */ + + } + + + + + + + /* * Configuration AFK */ @@ -234,6 +278,18 @@ public class ConfigManager { alias.put("permissions", "*"); // tout le monde CommandAlias_alias.add(alias); + alias = new HashMap(); + alias.put("initialCommand", "/lobby"); + alias.put("replaceWith", "/spawn"); + alias.put("permissions", "*"); // tout le monde + CommandAlias_alias.add(alias); + + alias = new HashMap(); + alias.put("initialCommand", "/hub"); + alias.put("replaceWith", "/spawn"); + alias.put("permissions", "*"); // tout le monde + CommandAlias_alias.add(alias); + alias = new HashMap(); alias.put("initialCommand", "/tete"); alias.put("replaceWith", "/heads nick"); diff --git a/src/net/mc_pandacraft/java/plugin/pandacraftutils/simple_commands/_command_alias/CommandAliasManager.java b/src/net/mc_pandacraft/java/plugin/pandacraftutils/simple_commands/_command_alias/CommandAliasManager.java index 5e84f46..b8322c6 100644 --- a/src/net/mc_pandacraft/java/plugin/pandacraftutils/simple_commands/_command_alias/CommandAliasManager.java +++ b/src/net/mc_pandacraft/java/plugin/pandacraftutils/simple_commands/_command_alias/CommandAliasManager.java @@ -33,19 +33,26 @@ public class CommandAliasManager implements Listener { for (Map alias : aliases) { if (alias == null) continue; - String perm = alias.get("permissions"); + String perms = alias.get("permissions"); String initialCmd = alias.get("initialCommand"); String aliasCmd = alias.get("replaceWith"); - if (perm == null || initialCmd == null || aliasCmd == null) + if (perms == null || initialCmd == null || aliasCmd == null) continue; - if (!p.hasPermission(perm)) - continue; + if (!perms.equals("*")) { + String[] aPerms = perms.split(";"); + boolean found = false; + for (String perm : aPerms) { + if (perm == null || perm.equals("")) continue; // boucle qui parcours les permissions de l'alias + if (p.hasPermission(perm)) found = true; + } + if (!found) continue; // boucle qui parcours les alias de commandes + } String mess = event.getMessage(); if(mess.toLowerCase().startsWith(initialCmd)) - mess = mess.replaceFirst(initialCmd, aliasCmd); + mess = mess.replaceFirst("(?i)"+initialCmd, aliasCmd); else continue;