Add /mr command (#824)

* Add /mr command

Add option to remove your placed marker

* Change marker message
This commit is contained in:
Xenon 2021-03-10 05:53:11 +01:00 committed by GitHub
parent 0eb6071733
commit 30e9ac02fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 48 additions and 5 deletions

View file

@ -89,7 +89,7 @@ minetest.register_tool("ctf_classes:sword_bronze", {
if #enemies > 0 then if #enemies > 0 then
ctf_marker.remove_marker(pteam) ctf_marker.remove_marker(pteam)
ctf_marker.add_marker(pname, pteam, pos, ("[Enemies Found!: <%s>]"):format(table.concat(enemies, ", "))) ctf_marker.add_marker(pname, pteam, pos, (" found enemies: <%s>]"):format(table.concat(enemies, ", ")))
end end
return return
@ -105,7 +105,7 @@ minetest.register_tool("ctf_classes:sword_bronze", {
sword_special_timer[pname] = 20 sword_special_timer[pname] = 20
sword_special_timer_func(pname, 20) sword_special_timer_func(pname, 20)
minetest.registered_chatcommands["m"].func(pname, "Marked with "..pname.."'s sword") minetest.registered_chatcommands["m"].func(pname, "placed with sword")
end, end,
on_secondary_use = function(itemstack, user, pointed_thing) on_secondary_use = function(itemstack, user, pointed_thing)
if pointed_thing then if pointed_thing then

View file

@ -47,7 +47,7 @@ function ctf_marker.add_marker(name, tname, pos, str)
if tplayer then if tplayer then
teams[tname].players[pname] = tplayer:hud_add({ teams[tname].players[pname] = tplayer:hud_add({
hud_elem_type = "waypoint", hud_elem_type = "waypoint",
name = str, name = "[" .. name .. "'s marker" .. str,
number = tonumber(ctf.flag_colors[team.data.color]), number = tonumber(ctf.flag_colors[team.data.color]),
world_pos = pos world_pos = pos
}) })
@ -99,7 +99,7 @@ minetest.register_chatcommand("m", {
local tname = ctf.player(name).team local tname = ctf.player(name).team
-- Handle waypoint string -- Handle waypoint string
local str = (param and param:trim() ~= "") and param or name .. "'s marker" local str = (param and param:trim() ~= "") and ": " .. param or ""
if pointed.type == "object" then if pointed.type == "object" then
local concat local concat
local obj = pointed.ref local obj = pointed.ref
@ -126,7 +126,7 @@ minetest.register_chatcommand("m", {
end end
str = concat and str .. " <" .. concat .. ">" str = concat and str .. " <" .. concat .. ">"
end end
str = "[" .. str .. "]" str = str .. "]"
-- Remove existing marker if it exists -- Remove existing marker if it exists
ctf_marker.remove_marker(tname) ctf_marker.remove_marker(tname)
@ -134,3 +134,46 @@ minetest.register_chatcommand("m", {
ctf_marker.add_marker(name, tname, minetest.get_pointed_thing_position(pointed), str) ctf_marker.add_marker(name, tname, minetest.get_pointed_thing_position(pointed), str)
end end
}) })
local function mr_command(name)
local tname = ctf.player(name).team
local player = minetest.get_player_by_name(name)
local mmsg = ""
local args = ""
local function hud_check()
if teams[tname].players[name] then
mmsg = player:hud_get(teams[tname].players[name]).name
args = mmsg:split("'")
end
end
if pcall(hud_check) then
if args[1] == "[" .. name then
ctf_marker.remove_marker(tname)
local team = ctf.team(tname)
for pname, _ in pairs(team.players) do
minetest.chat_send_player(pname, msg("* " .. name .. " removed their marker!"))
end
elseif args[1] == "" or nil then
minetest.chat_send_player(name, msg("No marker to remove"))
else
minetest.chat_send_player(name, msg("Not your marker!"))
end
else
minetest.chat_send_player(name, msg("No marker to remove"))
end
end
minetest.register_chatcommand("m_remove", {
description = "Remove your own marker (/mr)",
privs = {interact = true},
func = mr_command
})
minetest.register_chatcommand("mr", {
description = "Remove your own marker",
privs = {interact = true},
func = mr_command
})