mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 03:25:23 +09:00
41 lines
1.5 KiB
Lua
41 lines
1.5 KiB
Lua
--[[-- Commands - Locate
|
|
Adds a command that will return the last location of a player
|
|
]]
|
|
|
|
local Commands = require("modules/exp_commands")
|
|
local format_player_name = Commands.format_player_name_locale
|
|
|
|
local format = string.format
|
|
|
|
--- Open remote view at a players last location
|
|
Commands.new("locate", { "exp-commands_locate.description" })
|
|
:add_aliases{ "last-location", "find" }
|
|
:argument("player", { "exp-commands_locate.arg-player" }, Commands.types.player)
|
|
:optional("remote", { "exp-commands_locate.arg-remote" }, Commands.types.boolean)
|
|
:register(function(player, other_player, remote)
|
|
--- @cast other_player LuaPlayer
|
|
--- @cast remote boolean?
|
|
local surface = other_player.physical_surface
|
|
local position = other_player.physical_position
|
|
if remote and other_player.controller_type == defines.controllers.remote then
|
|
surface = other_player.surface
|
|
position = other_player.position
|
|
end
|
|
|
|
if player.index > 0 then
|
|
-- This check allows rcon to use the command
|
|
player.set_controller{
|
|
type = defines.controllers.remote,
|
|
surface = surface,
|
|
position = position,
|
|
}
|
|
end
|
|
|
|
return Commands.status.success{
|
|
"exp-commands_locate.response",
|
|
format_player_name(other_player),
|
|
format("%.1f", position.x),
|
|
format("%.1f", position.y),
|
|
}
|
|
end)
|