diff --git a/mods/default/init.lua b/mods/default/init.lua index 441d2a91..44b5d4b3 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -1795,113 +1795,4 @@ function on_punchnode(p, node) end 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