From 1a1a4f075782432cbc1b8e6f9f67df7d7940cc3c Mon Sep 17 00:00:00 2001 From: CraftBukkit/Spigot Date: Sat, 8 Feb 2014 15:02:44 -0600 Subject: [PATCH] Match old alias behavior when migrating. Previously the alias system would pass all arguments from the alias to its command(s) implicitly. The new system requires arguments to be explicitly passed so server owners can have more control over where and how they are passed. To ensure this isn't a breaking change during the migration from bukkit.yml to commands.yml we now add the $1- argument to the alias commands to match the previous behavior. By: Travis Watkins --- .../org/bukkit/craftbukkit/CraftServer.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 22f394d597..e6c85758a4 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -270,12 +270,25 @@ public final class CraftServer implements Server { commandsConfiguration.options().copyDefaults(true); commandsConfiguration.setDefaults(YamlConfiguration.loadConfiguration(getClass().getClassLoader().getResourceAsStream("configurations/commands.yml"))); saveCommandsConfig(); + + // Migrate aliases from old file and add previously implicit $1- to pass all arguments if (legacyAlias != null) { ConfigurationSection aliases = commandsConfiguration.createSection("aliases"); - for (Entry entry : legacyAlias.getValues(true).entrySet()) { - aliases.set(entry.getKey(), entry.getValue()); + for (String key : legacyAlias.getKeys(false)) { + ArrayList commands = new ArrayList(); + + if (legacyAlias.isList(key)) { + for (String command : legacyAlias.getStringList(key)) { + commands.add(command + " $1-"); + } + } else { + commands.add(legacyAlias.getString(key) + " $1-"); + } + + aliases.set(key, commands); } } + saveCommandsConfig(); overrideAllCommandBlockCommands = commandsConfiguration.getStringList("command-block-overrides").contains("*"); ((SimplePluginManager) pluginManager).useTimings(configuration.getBoolean("settings.plugin-profiling"));