From: Marcin Date: Thu, 25 Jun 2015 16:14:01 +0000 (+0200) Subject: Add ability to specify coordinates for /spawnentity X-Git-Tag: 0.4.13~107 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c5c609ce3d0ff7b959adc72c26486c14b2219046;p=oweals%2Fminetest.git Add ability to specify coordinates for /spawnentity --- diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua index d656f1c91..6c8ca8699 100644 --- a/builtin/game/chatcommands.lua +++ b/builtin/game/chatcommands.lua @@ -530,22 +530,29 @@ core.register_chatcommand("giveme", { }) core.register_chatcommand("spawnentity", { - params = "", - description = "Spawn entity at your position", + params = " [,,]", + description = "Spawn entity at given (or your) position", privs = {give=true, interact=true}, func = function(name, param) - local entityname = string.match(param, "(.+)$") + local entityname, p = string.match(param, "^([^ ]+) *(.*)$") if not entityname then return false, "EntityName required" end - core.log("action", ("/spawnentity invoked, entityname=%q") - :format(entityname)) + core.log("action", ("%s invokes /spawnentity, entityname=%q") + :format(name, entityname)) local player = core.get_player_by_name(name) if player == nil then core.log("error", "Unable to spawn entity, player is nil") return false, "Unable to spawn entity, player is nil" end - local p = player:getpos() + if p == "" then + p = player:getpos() + else + p = core.string_to_pos(p) + if p == nil then + return false, "Invalid parameters ('" .. param .. "')" + end + end p.y = p.y + 1 core.add_entity(p, entityname) return true, ("%q spawned."):format(entityname)