Remove /give, /giveme, /spawnentity and /pulverize as they are now implemented by the engine
This commit is contained in:
parent
6ba4f01d0b
commit
c7b624d67c
|
@ -1795,113 +1795,4 @@ function on_punchnode(p, node)
|
||||||
end
|
end
|
||||||
minetest.register_on_punchnode(on_punchnode)
|
minetest.register_on_punchnode(on_punchnode)
|
||||||
|
|
||||||
local function handle_give_command(cmd, giver, receiver, stackstring)
|
|
||||||
if not minetest.get_player_privs(giver)["give"] then
|
|
||||||
minetest.chat_send_player(giver, "error: you don't have permission to give")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
minetest.debug("DEBUG: "..cmd..' invoked, stackstring="'..stackstring..'"')
|
|
||||||
minetest.log(cmd..' invoked, stackstring="'..stackstring..'"')
|
|
||||||
local itemstack = ItemStack(stackstring)
|
|
||||||
if itemstack:is_empty() then
|
|
||||||
minetest.chat_send_player(giver, 'error: cannot give an empty item')
|
|
||||||
return
|
|
||||||
elseif not itemstack:is_known() then
|
|
||||||
minetest.chat_send_player(giver, 'error: cannot give an unknown item')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local receiverref = minetest.env:get_player_by_name(receiver)
|
|
||||||
if receiverref == nil then
|
|
||||||
minetest.chat_send_player(giver, receiver..' is not a known player')
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local leftover = receiverref:get_inventory():add_item("main", itemstack)
|
|
||||||
if leftover:is_empty() then
|
|
||||||
partiality = ""
|
|
||||||
elseif leftover:get_count() == itemstack:get_count() then
|
|
||||||
partiality = "could not be "
|
|
||||||
else
|
|
||||||
partiality = "partially "
|
|
||||||
end
|
|
||||||
-- The actual item stack string may be different from what the "giver"
|
|
||||||
-- entered (e.g. big numbers are always interpreted as 2^16-1).
|
|
||||||
stackstring = itemstack:to_string()
|
|
||||||
if giver == receiver then
|
|
||||||
minetest.chat_send_player(giver, '"'..stackstring
|
|
||||||
..'" '..partiality..'added to inventory.');
|
|
||||||
else
|
|
||||||
minetest.chat_send_player(giver, '"'..stackstring
|
|
||||||
..'" '..partiality..'added to '..receiver..'\'s inventory.');
|
|
||||||
minetest.chat_send_player(receiver, '"'..stackstring
|
|
||||||
..'" '..partiality..'added to inventory.');
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
minetest.register_on_chat_message(function(name, message)
|
|
||||||
--print("default on_chat_message: name="..dump(name).." message="..dump(message))
|
|
||||||
local cmd = "/giveme"
|
|
||||||
if message:sub(0, #cmd) == cmd then
|
|
||||||
local stackstring = string.match(message, cmd.." (.*)")
|
|
||||||
if stackstring == nil then
|
|
||||||
minetest.chat_send_player(name, 'usage: '..cmd..' stackstring')
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
handle_give_command(cmd, name, name, stackstring)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
local cmd = "/give"
|
|
||||||
if message:sub(0, #cmd) == cmd then
|
|
||||||
local receiver, stackstring = string.match(message, cmd.." ([%a%d_-]+) (.*)")
|
|
||||||
if receiver == nil or stackstring == nil then
|
|
||||||
minetest.chat_send_player(name, 'usage: '..cmd..' name stackstring')
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
handle_give_command(cmd, name, receiver, stackstring)
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
local cmd = "/spawnentity"
|
|
||||||
if message:sub(0, #cmd) == cmd then
|
|
||||||
if not minetest.get_player_privs(name)["give"] then
|
|
||||||
minetest.chat_send_player(name, "you don't have permission to spawn (give)")
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
if not minetest.get_player_privs(name)["interact"] then
|
|
||||||
minetest.chat_send_player(name, "you don't have permission to interact")
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
local entityname = string.match(message, cmd.." (.*)")
|
|
||||||
if entityname == nil then
|
|
||||||
minetest.chat_send_player(name, 'usage: '..cmd..' entityname')
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
print(cmd..' invoked, entityname="'..entityname..'"')
|
|
||||||
local player = minetest.env:get_player_by_name(name)
|
|
||||||
if player == nil then
|
|
||||||
print("Unable to spawn entity, player is nil")
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
local p = player:getpos()
|
|
||||||
p.y = p.y + 1
|
|
||||||
minetest.env:add_entity(p, entityname)
|
|
||||||
minetest.chat_send_player(name, '"'..entityname
|
|
||||||
..'" spawned.');
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
local cmd = "/pulverize"
|
|
||||||
if message:sub(0, #cmd) == cmd then
|
|
||||||
local player = minetest.env:get_player_by_name(name)
|
|
||||||
if player == nil then
|
|
||||||
print("Unable to pulverize, player is nil")
|
|
||||||
return true -- Handled chat message
|
|
||||||
end
|
|
||||||
if player:get_wielded_item():is_empty() then
|
|
||||||
minetest.chat_send_player(name, 'Unable to pulverize, no item in hand.')
|
|
||||||
else
|
|
||||||
player:set_wielded_item(nil)
|
|
||||||
minetest.chat_send_player(name, 'An item was pulverized.')
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end
|
|
||||||
end)
|
|
||||||
|
|
||||||
-- END
|
-- END
|
||||||
|
|
Loading…
Reference in New Issue