Add ability to specify coordinates for /spawnentity

master
Marcin 2015-06-25 18:14:01 +02:00 committed by est31
parent dd2e08e117
commit c5c609ce3d
1 changed files with 13 additions and 6 deletions

View File

@ -530,22 +530,29 @@ core.register_chatcommand("giveme", {
})
core.register_chatcommand("spawnentity", {
params = "<EntityName>",
description = "Spawn entity at your position",
params = "<EntityName> [<X>,<Y>,<Z>]",
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)