Jordan Irwin 2021-08-04 15:13:00 -07:00
parent 80195385a3
commit 37584b0d46
6 changed files with 25 additions and 7 deletions

View File

@ -1,3 +1,2 @@
TODO:
- make compatible with "invisible" mod /vanish command & "invisibility" mod

27
api.lua
View File

@ -14,15 +14,25 @@
local S = core.get_translator(hidename.modname)
-- compatibility with "invisibility" mod
local invisibility = invisibility
--- Checks if player's nametag is hidden.
--
-- @tparam table nametag_data Nametag data retrieved by *player:get_nametag_attributes()*.
-- @tparam[opt] string pname Player name.
-- @treturn bool `true` if player's nametag is hidden
function hidename.hidden(nametag_data)
function hidename.hidden(nametag_data, pname)
if hidename.use_alpha then
return nametag_data.color.a == 0
end
-- check "invisibility" mod
if invisibility and invisibility[pname] then
return true
end
if nametag_data.text then
return nametag_data.text:len() > 0 and nametag_data.text:trim() == ""
end
@ -39,7 +49,7 @@ function hidename.tellStatus(name)
local nametag = player:get_nametag_attributes()
local status = "Status: @1"
if hidename.hidden(nametag) then
if hidename.hidden(nametag, name) then
status = S(status, S("hidden"))
else
status = S(status, S("visible"))
@ -66,7 +76,7 @@ function hidename.hide(name)
local player = core.get_player_by_name(name)
local nametag = player:get_nametag_attributes()
if hidename.hidden(nametag) then
if hidename.hidden(nametag, name) then
core.chat_send_player(name, S("Nametag is already hidden"))
return true
end
@ -93,7 +103,7 @@ function hidename.hide(name)
player:set_nametag_attributes(nametag)
end
if hidename.hidden(player:get_nametag_attributes()) then
if hidename.hidden(player:get_nametag_attributes(), name) then
core.chat_send_player(name, S("Nametag is now hidden"))
else
core.chat_send_player(name, S("ERROR: Could not hide nametag"))
@ -108,10 +118,15 @@ end
-- @tparam string name Name of player whose nametag should be made visible
-- @treturn bool `true` if player's nametag is visible
function hidename.show(name)
if invisibility and invisibility[name] then
core.chat_send_player(name, S("Cannot make nametag visible while you are invisible"))
return false
end
local player = core.get_player_by_name(name)
local nametag = player:get_nametag_attributes()
if not hidename.hidden(nametag) then
if not hidename.hidden(nametag, name) then
core.chat_send_player(name, S("Nametag is already visible"))
return true
end
@ -139,7 +154,7 @@ function hidename.show(name)
pmeta:set_string("nametag_stored_bgcolor", nil)
end
if not hidename.hidden(player:get_nametag_attributes()) then
if not hidename.hidden(player:get_nametag_attributes(), name) then
core.chat_send_player(name, S("Nametag is now visible"))
else
core.chat_send_player(name, S("ERROR: Could not show nametag"))

View File

@ -4,6 +4,7 @@ next
- added missing "textdomain" line to localization template
- added Spanish translation
- fixed status not retrieving custom nametag text when hidden
- compatible with invisibility mod ( https://content.minetest.net/packages/TenPlus1/invisibility/ )
v1.1

View File

@ -15,6 +15,7 @@ Make nametag visible=Hacer visible nombre
Get nametag info or set visibility=Obtener el estado de placa de nombre o establecer visibilidad
Parameter options:=Opciones de parámetro:
Display nametag text & visible state (default)=Mostrar texto del nombre y estado de visibilidad (defecto)
Cannot make nametag visible while you are invisible=No se puede hacer visible nombre mientras estés invisible
ERROR: Unknown parameter: @1=ERROR: Parámetro desconocido: @1
ERROR: Could not hide nametag=ERROR: No se pudo esconder nombre

View File

@ -16,6 +16,7 @@ Make nametag visible=
Get nametag info or set visibility=
Parameter options:=
Display nametag text & visible state (default)=
Cannot make nametag visible while you are invisible=
ERROR: Unknown parameter: @1=
ERROR: Could not hide nametag=

View File

@ -4,3 +4,4 @@ description = Hides player's nametag from view.
license = MIT
version = 1.1
min_minetest_version = 5.0
optional_depends = invisibility