Skip to content

Commit e286269

Browse files
committed
Ranking command tweaks
1 parent 8a582a7 commit e286269

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

mods/ctf/ctf_modebase/ranking_commands.lua

+15-13
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ minetest.register_chatcommand("top50", {
257257
})
258258

259259
minetest.register_chatcommand("make_pro", {
260-
description = "Make yourself or another player a pro",
260+
description = "Make yourself or another player a pro (Will break target player's ranks)",
261261
params = "[mode:technical modename] <playername>",
262262
privs = {ctf_admin = true},
263263
func = function(name, param)
@@ -271,16 +271,17 @@ minetest.register_chatcommand("make_pro", {
271271
end
272272

273273
local old_ranks = mode_data.rankings:get(pname)
274+
local note = ""
274275
if not old_ranks then
275-
return false, string.format("Player '%s' has no rankings!", pname)
276+
note = string.format(" Note: Player '%s' had no rankings before that.", pname)
276277
end
277278

278-
mode_data.rankings:add(pname, {score = 8000, kills = 7, deaths = 5, flag_captures = 5})
279+
mode_data.rankings:set(pname, {score = 8000, kills = 7, deaths = 5, flag_captures = 5})
279280

280281
minetest.log("action", string.format(
281282
"[ctf_admin] %s made player '%s' a pro in mode %s: %s", name, pname, mode_name, dump(old_ranks)
282283
))
283-
return true, string.format("Player '%s' is now a pro!", pname)
284+
return true, string.format("Player '%s' is now a pro.%s", pname, note)
284285
end
285286
})
286287

@@ -306,17 +307,17 @@ minetest.register_chatcommand("add_score", {
306307
end
307308

308309
local old_ranks = mode_data.rankings:get(pname)
310+
local note = ""
309311
if not old_ranks then
310-
return false, string.format("Player '%s' has no rankings!", pname)
312+
note = string.format(" Note: Player '%s' had no rankings before that.", pname)
311313
end
312314

313-
local old_score = old_ranks.score or 0
314-
mode_data.rankings:set(pname, {score = old_score + score})
315+
mode_data.rankings:add(pname, {score = score})
315316

316317
minetest.log("action", string.format(
317318
"[ctf_admin] %s added %s score to player '%s' in mode %s", name, score, pname, mode_name
318319
))
319-
return true, string.format("Added %s score to player '%s'", score, pname)
320+
return true, string.format("Added %s score to player '%s'.%s", score, pname, note)
320321
end
321322
})
322323

@@ -353,29 +354,30 @@ minetest.register_chatcommand("transfer_rankings", {
353354
end
354355
end
355356

357+
local note = ""
356358
if not src_exists then
357359
return false, string.format("Source player '%s' has no rankings!", src)
358360
end
359361
if not dst_exists then
360-
return false, string.format("Destination player '%s' has no rankings!", dst)
362+
note = string.format(" Note: Destination player '%s' had no rankings.", dst)
361363
end
362364

363365
if src == dst then
364366
return false, "Source name and destination name cannot be the same!"
365367
end
366368

367369
for mode_name, mode in pairs(ctf_modebase.modes) do
368-
mode.rankings:add(dst, src_rankings[mode_name])
370+
mode.rankings:set(dst, src_rankings[mode_name], true)
369371
end
370372

371373
for _, mode in pairs(ctf_modebase.modes) do
372374
mode.rankings:set(src, {}, true)
373375
end
374376

375377
minetest.log("action", string.format(
376-
"[ctf_admin] %s transferred rankings from '%s' to '%s': %s -> %s",
377-
name, src, dst, dump(src_rankings), dump(dst_rankings)
378+
"[ctf_admin] %s transferred rankings from '%s' to '%s': %s -> %s | %s",
379+
name, src, dst, dump(src_rankings), dump(dst_rankings), note
378380
))
379-
return true, string.format("Rankings of '%s' have been transferred to '%s'", src, dst)
381+
return true, string.format("Rankings of '%s' have been transferred to '%s'.%s", src, dst, note)
380382
end
381383
})

0 commit comments

Comments
 (0)