aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/game/chatcommands.lua13
-rw-r--r--builtin/game/register.lua11
2 files changed, 17 insertions, 7 deletions
diff --git a/builtin/game/chatcommands.lua b/builtin/game/chatcommands.lua
index e349eec7e..3b701c1fd 100644
--- a/builtin/game/chatcommands.lua
+++ b/builtin/game/chatcommands.lua
@@ -557,8 +557,11 @@ local function handle_give_command(cmd, giver, receiver, stackstring)
local itemstack = ItemStack(stackstring)
if itemstack:is_empty() then
return false, "Cannot give an empty item"
- elseif not itemstack:is_known() then
+ elseif (not itemstack:is_known()) or (itemstack:get_name() == "unknown") then
return false, "Cannot give an unknown item"
+ -- Forbid giving 'ignore' due to unwanted side effects
+ elseif itemstack:get_name() == "ignore" then
+ return false, "Giving 'ignore' is not allowed"
end
local receiverref = core.get_player_by_name(receiver)
if receiverref == nil then
@@ -577,13 +580,13 @@ local function handle_give_command(cmd, giver, receiver, stackstring)
-- entered (e.g. big numbers are always interpreted as 2^16-1).
stackstring = itemstack:to_string()
if giver == receiver then
- return true, ("%q %sadded to inventory.")
- :format(stackstring, partiality)
+ local msg = "%q %sadded to inventory."
+ return true, msg:format(stackstring, partiality)
else
core.chat_send_player(receiver, ("%q %sadded to inventory.")
:format(stackstring, partiality))
- return true, ("%q %sadded to %s's inventory.")
- :format(stackstring, partiality, receiver)
+ local msg = "%q %sadded to %s's inventory."
+ return true, msg:format(stackstring, partiality, receiver)
end
end
diff --git a/builtin/game/register.lua b/builtin/game/register.lua
index 1e478bc35..43bb9e067 100644
--- a/builtin/game/register.lua
+++ b/builtin/game/register.lua
@@ -338,7 +338,7 @@ core.register_item(":unknown", {
})
core.register_node(":air", {
- description = "Air (you hacker you!)",
+ description = "Air",
inventory_image = "air.png",
wield_image = "air.png",
drawtype = "airlike",
@@ -355,7 +355,7 @@ core.register_node(":air", {
})
core.register_node(":ignore", {
- description = "Ignore (you hacker you!)",
+ description = "Ignore",
inventory_image = "ignore.png",
wield_image = "ignore.png",
drawtype = "airlike",
@@ -368,6 +368,13 @@ core.register_node(":ignore", {
air_equivalent = true,
drop = "",
groups = {not_in_creative_inventory=1},
+ on_place = function(itemstack, placer, pointed_thing)
+ minetest.chat_send_player(
+ placer:get_player_name(),
+ minetest.colorize("#FF0000",
+ "You can't place 'ignore' nodes!"))
+ return ""
+ end,
})
-- The hand (bare definition)