Sort commands and privs alphabetically in '/help'.
authorDiego Martinez <kaeza@users.sf.net>
Thu, 22 May 2014 16:08:25 +0000 (13:08 -0300)
committerShadowNinja <shadowninja@minetest.net>
Sat, 24 May 2014 21:33:59 +0000 (17:33 -0400)
Also make a stray variable local.

builtin/game/chatcommands.lua

index 6c5fea69388c27c6939beb2f2d3edf7e7a17de88..fb08d2a6b15636164a1f76016b7dd387a81b09fe 100644 (file)
@@ -56,24 +56,37 @@ core.register_chatcommand("help", {
                end
                if param == "" then
                        local msg = ""
-                       cmds = {}
+                       local cmds = {}
                        for cmd, def in pairs(core.chatcommands) do
                                if core.check_player_privs(name, def.privs) then
                                        table.insert(cmds, cmd)
                                end
                        end
+                       table.sort(cmds)
                        core.chat_send_player(name, "Available commands: "..table.concat(cmds, " "))
                        core.chat_send_player(name, "Use '/help <cmd>' to get more information, or '/help all' to list everything.")
                elseif param == "all" then
-                       core.chat_send_player(name, "Available commands:")
+                       local cmds = {}
                        for cmd, def in pairs(core.chatcommands) do
                                if core.check_player_privs(name, def.privs) then
-                                       core.chat_send_player(name, format_help_line(cmd, def))
+                                       table.insert(cmds, cmd)
                                end
                        end
+                       table.sort(cmds)
+                       core.chat_send_player(name, "Available commands:")
+                       for _, cmd in ipairs(cmds) do
+                               local def = core.chatcommands[cmd]
+                               core.chat_send_player(name, format_help_line(cmd, def))
+                       end
                elseif param == "privs" then
-                       core.chat_send_player(name, "Available privileges:")
+                       local privs = {}
                        for priv, def in pairs(core.registered_privileges) do
+                               table.insert(privs, priv)
+                       end
+                       table.sort(privs)
+                       core.chat_send_player(name, "Available privileges:")
+                       for _, priv in ipairs(privs) do
+                               local def = core.registered_privileges[priv]
                                core.chat_send_player(name, priv..": "..def.description)
                        end
                else