Add /clearinv chat command (#4994)
authorElijah Duffy <enduffy2014@outlook.com>
Sat, 20 May 2017 10:56:17 +0000 (03:56 -0700)
committerLoïc Blot <nerzhul@users.noreply.github.com>
Sat, 20 May 2017 10:56:17 +0000 (12:56 +0200)
Allow players to clear their own inventory or that of another player with /clearinv command. server privilege is required to clear another player's inventory, no privileges are required to clear your own inventory.'

builtin/game/chatcommands.lua

index b792a01cdb02de2086c76fb833ee194465be9e26..3f5f044b442b9e823d700c636053413afdd87704 100644 (file)
@@ -938,3 +938,31 @@ core.register_chatcommand("last-login", {
                return false, "Last login time is unknown"
        end,
 })
+
+core.register_chatcommand("clearinv", {
+       params = "[name]",
+       description = "Clear the inventory of yourself or another player",
+       func = function(name, param)
+               local player
+               if param and param ~= "" and param ~= name then
+                       if not core.check_player_privs(name, {server=true}) then
+                               return false, "You don't have permission"
+                                               .. " to run this command (missing privilege: server)"
+                       end
+                       player = core.get_player_by_name(param)
+                       core.chat_send_player(param, name.." cleared your inventory.")
+               else
+                       player = core.get_player_by_name(name)
+               end
+
+               if player then
+                       player:get_inventory():set_list("main", {})
+                       player:get_inventory():set_list("craft", {})
+                       player:get_inventory():set_list("craftpreview", {})
+                       core.log("action", name.." clears "..player:get_player_name().."'s inventory")
+                       return true, "Cleared "..player:get_player_name().."'s inventory."
+               else
+                       return false, "Player must be online to clear inventory!"
+               end
+       end,
+})