diff --git a/worldedit/cuboid.lua b/worldedit/cuboid.lua index e8160ae..5c52747 100644 --- a/worldedit/cuboid.lua +++ b/worldedit/cuboid.lua @@ -136,7 +136,8 @@ end -- Return the marker that is closest to the player worldedit.marker_get_closest_to_player = function(name) - local playerpos = minetest.get_player_by_name(name):get_pos() + local player = assert(minetest.get_player_by_name(name)) + local playerpos = player:get_pos() local dist1 = vector.distance(playerpos, worldedit.pos1[name]) local dist2 = vector.distance(playerpos, worldedit.pos2[name]) diff --git a/worldedit_brush/init.lua b/worldedit_brush/init.lua index 1a5c3e2..67d2a40 100644 --- a/worldedit_brush/init.lua +++ b/worldedit_brush/init.lua @@ -84,7 +84,9 @@ worldedit.register_command("brush", { return true, cmd, params end, func = function(name, cmd, params) - local itemstack = minetest.get_player_by_name(name):get_wielded_item() + local player = minetest.get_player_by_name(name) + if not player then return end + local itemstack = player:get_wielded_item() if itemstack == nil or itemstack:get_name() ~= "worldedit:brush" then return false, S("Not holding brush item.") end @@ -115,6 +117,6 @@ worldedit.register_command("brush", { minetest.registered_tools["worldedit:brush"].description .. ": " .. fullcmd) worldedit.player_notify(name, S("Brush assigned to command: @1", fullcmd), "ok") end - minetest.get_player_by_name(name):set_wielded_item(itemstack) + player:set_wielded_item(itemstack) end, }) diff --git a/worldedit_commands/init.lua b/worldedit_commands/init.lua index ebed467..7b5cd15 100644 --- a/worldedit_commands/init.lua +++ b/worldedit_commands/init.lua @@ -174,7 +174,12 @@ end -- Determines the axis in which a player is facing, returning an axis ("x", "y", or "z") and the sign (1 or -1) function worldedit.player_axis(name) - local dir = minetest.get_player_by_name(name):get_look_dir() + local player = minetest.get_player_by_name(name) + if not player then + -- we promised to return something valid... + return "y", -1 + end + local dir = player:get_look_dir() local x, y, z = math.abs(dir.x), math.abs(dir.y), math.abs(dir.z) if x > y then if x > z then diff --git a/worldedit_commands/region.lua b/worldedit_commands/region.lua index 27293f0..9045c8a 100644 --- a/worldedit_commands/region.lua +++ b/worldedit_commands/region.lua @@ -113,9 +113,9 @@ worldedit.register_command("pos1", { category = S("Region operations"), privs = {worldedit=true}, func = function(name) - local pos = minetest.get_player_by_name(name):get_pos() - pos.x, pos.y, pos.z = math.floor(pos.x + 0.5), math.floor(pos.y + 0.5), math.floor(pos.z + 0.5) - set_pos1(name, pos) + local player = minetest.get_player_by_name(name) + if not player then return end + set_pos1(name, vector.round(player:get_pos())) end, }) @@ -125,9 +125,9 @@ worldedit.register_command("pos2", { category = S("Region operations"), privs = {worldedit=true}, func = function(name) - local pos = minetest.get_player_by_name(name):get_pos() - pos.x, pos.y, pos.z = math.floor(pos.x + 0.5), math.floor(pos.y + 0.5), math.floor(pos.z + 0.5) - set_pos2(name, pos) + local player = minetest.get_player_by_name(name) + if not player then return end + set_pos2(name, vector.round(player:get_pos())) end, })