diff --git a/aliases.yml b/aliases.yml index 583f1d1..75fb5dc 100644 --- a/aliases.yml +++ b/aliases.yml @@ -4,8 +4,10 @@ banhammer: #name parameter is replaced with the command users name gmon: 0: /gamemode !name 1 + 1: /gamemode !1 1 gmoff: 0: /gamemode !name 0 + 1: /gamemode !1 0 # putting a P after the parameter specifies this is a player, and BA should try to guess which player # useful for things like "/to e0n" instead of "/to Ne0nx3r0" # This will ONLY look for players that are online @@ -21,4 +23,7 @@ tpthenkick: - /kick !1p # special command for toggling GM mode gm: - 0: /gamemode !name !oppositeGameMode \ No newline at end of file + 0: /gamemode !name !oppositeGameMode +# hand all parameters in order +s: + "*": /say I want to say "!*", there I said it! \ No newline at end of file diff --git a/com/gmail/Ne0nx3r0/AliasManager/Alias.java b/com/gmail/Ne0nx3r0/AliasManager/Alias.java index 98c581b..be5243b 100644 --- a/com/gmail/Ne0nx3r0/AliasManager/Alias.java +++ b/com/gmail/Ne0nx3r0/AliasManager/Alias.java @@ -5,13 +5,16 @@ import java.util.Map; class Alias{ //mapping number of parameters to string(s) to be executed - private Map params = new HashMap(); + private Map params = new HashMap(); - public Alias(Map p){ + public Alias(Map p){ this.params = p; } public String[] getCommands(int p){ - return this.params.get(p); + if(this.params.containsKey(Integer.toString(p))){ + return this.params.get(Integer.toString(p)); + } + return this.params.get("*");//or null if it doesn't exist } } \ No newline at end of file diff --git a/com/gmail/Ne0nx3r0/AliasManager/AliasManager.java b/com/gmail/Ne0nx3r0/AliasManager/AliasManager.java index 6dc80bc..ad58718 100644 --- a/com/gmail/Ne0nx3r0/AliasManager/AliasManager.java +++ b/com/gmail/Ne0nx3r0/AliasManager/AliasManager.java @@ -6,7 +6,6 @@ import java.io.FileOutputStream; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Set; import org.bukkit.configuration.file.FileConfiguration; @@ -19,8 +18,6 @@ public class AliasManager{ public AliasManager(BetterAlias ba){ plugin = ba; - // loadAliasesLocal(); - loadAliases(); } @@ -44,22 +41,29 @@ public class AliasManager{ } for(String sAlias : aliasList){ - Map shareMap = new HashMap(); + Map shareMap = new HashMap(); for(int i=0;i<10;i++){ if(yml.isList(sAlias+"."+i)){ - shareMap.put(i,yml.getStringList(sAlias+"."+i).toArray(new String[]{})); + shareMap.put(Integer.toString(i),yml.getStringList(sAlias+"."+i).toArray(new String[]{})); }else if(yml.isString(sAlias+"."+i)){ - shareMap.put(i,new String[]{yml.getString(sAlias+"."+i)}); + shareMap.put(Integer.toString(i),new String[]{yml.getString(sAlias+"."+i)}); } } + if(yml.isList(sAlias+".*")){ + shareMap.put("*",yml.getStringList(sAlias+".*").toArray(new String[]{})); + + }else if(yml.isString(sAlias+".*")){ + shareMap.put("*",new String[]{yml.getString(sAlias+".*")}); + } + aliases.put(sAlias,new Alias(shareMap)); } diff --git a/com/gmail/Ne0nx3r0/BetterAliasPlayerListener.java b/com/gmail/Ne0nx3r0/BetterAliasPlayerListener.java index 68cbcd5..5e38927 100644 --- a/com/gmail/Ne0nx3r0/BetterAliasPlayerListener.java +++ b/com/gmail/Ne0nx3r0/BetterAliasPlayerListener.java @@ -32,14 +32,16 @@ class BetterAliasPlayerListener implements Listener{ for(String commandToExecute : commandsToExecute){ //regex time! - Pattern patt = Pattern.compile("!([0-9a-zA-Z~]+)"); + Pattern patt = Pattern.compile("!([0-9a-zA-Z~*]+)"); Matcher m = patt.matcher(commandToExecute); StringBuffer sb = new StringBuffer(commandToExecute.length()); while(m.find()){ String text = m.group(0).substring(1); - - if(text.equalsIgnoreCase("name")){ + + if(text.equalsIgnoreCase("*")){ + text = e.getMessage().replace("/"+cmd[0]+" ",""); + }else if(text.equalsIgnoreCase("name")){ text = player.getName(); }else if(text.equalsIgnoreCase("oppositeGameMode")){ text = (player.getGameMode() == GameMode.SURVIVAL ? "1" : "0"); @@ -74,15 +76,11 @@ class BetterAliasPlayerListener implements Listener{ text = cmd[iParam]; } } - //else if is numeric and cmd[i] exists, replace with cmd[i] m.appendReplacement(sb, Matcher.quoteReplacement(text)); } m.appendTail(sb); - - //tp !name !~1 - //tp !1 !2 - //tp !~1 !~2 + //debug: player.sendMessage(sb.toString()); player.chat(sb.toString()); } diff --git a/plugin.yml b/plugin.yml index e012df5..d9e09e0 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,5 +1,5 @@ name: BetterAlias main: com.gmail.Ne0nx3r0.BetterAlias -version: '0.1.2' +version: '0.1.3' database: false description: Command alias system \ No newline at end of file