Merge pull request 'Lightning command: Strike player by name' (#274) from MrRar/MineClone5:master into master

Reviewed-on: MineClone5/MineClone5#274
This commit is contained in:
kay27 2022-04-04 13:56:13 +00:00
commit f5ab76592c
2 changed files with 11 additions and 11 deletions

View File

@ -238,8 +238,8 @@ after(5, function(dtime)
end) end)
minetest.register_chatcommand("lightning", { minetest.register_chatcommand("lightning", {
params = "[<X> <Y> <Z>]", params = "[<X> <Y> <Z> | <player name>]",
description = S("Let lightning strike at the specified position or yourself"), description = S("Let lightning strike at the specified position or player. No parameter will strike yourself."),
privs = { maphack = true }, privs = { maphack = true },
func = function(name, param) func = function(name, param)
local pos = {} local pos = {}
@ -247,21 +247,21 @@ minetest.register_chatcommand("lightning", {
pos.x = tonumber(pos.x) pos.x = tonumber(pos.x)
pos.y = tonumber(pos.y) pos.y = tonumber(pos.y)
pos.z = tonumber(pos.z) pos.z = tonumber(pos.z)
local player_to_strike
if not (pos.x and pos.y and pos.z) then if not (pos.x and pos.y and pos.z) then
pos = nil pos = nil
player_to_strike = minetest.get_player_by_name(param)
if not player_to_strike and param == "" then
player_to_strike = minetest.get_player_by_name(name)
end end
if name == "" and pos == nil then end
if not player_to_strike and pos == nil then
return false, "No position specified and unknown player" return false, "No position specified and unknown player"
end end
if pos then if pos then
lightning.strike(pos) lightning.strike(pos)
else elseif player_to_strike then
local player = minetest.get_player_by_name(name) lightning.strike(player_to_strike:get_pos())
if player then
lightning.strike(player:get_pos())
else
return false, S("No position specified and unknown player")
end
end end
return true return true
end, end,

View File

@ -1,4 +1,4 @@
# textdomain: lightning # textdomain: lightning
@1 was struck by lightning.= @1 was struck by lightning.=
Let lightning strike at the specified position or yourself= Let lightning strike at the specified position or player. No parameter will strike yourself.=
No position specified and unknown player= No position specified and unknown player=