Gestion dans une classe à part des alias de commandes
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
package net.mc_pandacraft.java.plugin.pandacraftutils.modules;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.PandacraftUtils;
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.config.ConfigManager;
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.config.elements.CommandAliasConfigEntry;
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayer;
|
||||
import net.mc_pandacraft.java.plugin.pandacraftutils.players.OnlinePlayerManager;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
@@ -26,35 +27,21 @@ public class CommandAliasManager implements Listener {
|
||||
@EventHandler(priority=EventPriority.HIGHEST)
|
||||
public void onPlayerCommandPreprocess (PlayerCommandPreprocessEvent event)
|
||||
{
|
||||
Player p = event.getPlayer();
|
||||
OnlinePlayer op = OnlinePlayerManager.get(event.getPlayer());
|
||||
|
||||
List<Map<String, String>> aliases = ConfigManager.getInstance().CommandAlias_alias;
|
||||
for (Map<String, String> alias : aliases) {
|
||||
if (alias == null)
|
||||
continue;
|
||||
String perms = alias.get("permissions");
|
||||
String initialCmd = alias.get("initialCommand");
|
||||
String aliasCmd = alias.get("replaceWith");
|
||||
if (perms == null || initialCmd == null || aliasCmd == null)
|
||||
continue;
|
||||
List<CommandAliasConfigEntry> aliases = ConfigManager.getInstance().commandAliasConfig.getCommandAlias();
|
||||
for (CommandAliasConfigEntry alias : aliases) {
|
||||
|
||||
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
|
||||
}
|
||||
if (!alias.hasPlayerPermission(op))
|
||||
continue;
|
||||
|
||||
String mess = event.getMessage();
|
||||
|
||||
if(mess.toLowerCase().startsWith(initialCmd))
|
||||
mess = mess.replaceFirst("(?i)"+initialCmd, aliasCmd);
|
||||
else
|
||||
if(!mess.toLowerCase().startsWith(alias.getInitialCommand()))
|
||||
continue;
|
||||
|
||||
mess = mess.replaceFirst("(?i)"+alias.getInitialCommand(), alias.getReplacementCommand());
|
||||
|
||||
event.setMessage(mess);
|
||||
return;
|
||||
}
|
||||
|
Reference in New Issue
Block a user