From b4ecb070af5528fc3028eefccb547fbf13ce711c Mon Sep 17 00:00:00 2001 From: shivajiva101 Date: Wed, 6 May 2020 20:52:21 +0100 Subject: [PATCH] Fixes: ban_record command output to IRC refactor player_record to return a string so ban_record chat command is used correctly strip newline to compact the output and clean it up --- init.lua | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/init.lua b/init.lua index fa1aa9b..8763f8f 100644 --- a/init.lua +++ b/init.lua @@ -499,11 +499,11 @@ local function display_record(caller, target) local idx = 1 if #r > display_max then idx = #r - display_max - bld[#bld+1] = minetest.colorize("#00FFFF", "\nName records: ")..#r.. + bld[#bld+1] = minetest.colorize("#00FFFF", "Name records: ")..#r.. minetest.colorize("#00FFFF", " (showing last ")..display_max.. minetest.colorize("#00FFFF", " records)") else - bld[#bld+1] = minetest.colorize("#00FFFF", "\nName records: ")..#r + bld[#bld+1] = minetest.colorize("#00FFFF", "Name records: ")..#r end for i = idx, #r do local d1 = hrdf(r[i].created) @@ -516,11 +516,11 @@ local function display_record(caller, target) r = address_records(id) if #r > display_max then idx = #r - display_max - bld[#bld+1] = minetest.colorize("#0FF", "\nIP records: ") .. #r .. + bld[#bld+1] = minetest.colorize("#0FF", "IP records: ") .. #r .. minetest.colorize("#0FF", " (showing last ") .. display_max .. minetest.colorize("#0FF", " records)") else - bld[#bld+1] = minetest.colorize("#0FF", "\nIP records: ") .. #r + bld[#bld+1] = minetest.colorize("#0FF", "IP records: ") .. #r idx = 1 end for i = idx, #r do @@ -537,15 +537,15 @@ local function display_record(caller, target) i, v.id, v.ip, hrdf(v.created), hrdf(v.last_login)) end else - bld[#bld+1] = minetest.colorize("#0FF", "\nNo violation records for ") .. target + bld[#bld+1] = minetest.colorize("#0FF", "No violation records for ") .. target end end r = player_ban_expired(id) or {} - bld[#bld+1] = minetest.colorize("#0FF", "\nBan records:") + bld[#bld+1] = minetest.colorize("#0FF", "Ban records:") if #r > 0 then - bld[#bld+1] = minetest.colorize("#0FF", "\nExpired records: ")..#r + bld[#bld+1] = minetest.colorize("#0FF", "Expired records: ")..#r for i, e in ipairs(r) do local d1 = hrdf(e.created) @@ -561,12 +561,12 @@ local function display_record(caller, target) end else - bld[#bld+1] = "\nNo expired ban records!" + bld[#bld+1] = "No expired ban records!" end r = bans[id] local ban = tostring(r ~= nil) - bld[#bld+1] = minetest.colorize("#0FF", "\nCurrent Ban Status:") + bld[#bld+1] = minetest.colorize("#0FF", "Current Ban Status:") if ban == 'true' then local expires = "never" local d = hrdf(r.created) @@ -576,10 +576,10 @@ local function display_record(caller, target) bld[#bld+1] = ("Name: %s Created: %s Banned by: %s Reason: %s Expires: %s" ):format(r.name, d, r.source, r.reason, expires) else - bld[#bld+1] = "\nno active ban record!" + bld[#bld+1] = "no active ban record!" end - bld[#bld+1] = minetest.colorize("#0FF", "\nBanned: ")..ban - minetest.chat_send_player(caller, table.concat(bld, "\n")) + bld[#bld+1] = minetest.colorize("#0FF", "Banned: ")..ban + return table.concat(bld, "\n") end -- Fetch names like 'name' @@ -1667,7 +1667,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) elseif fields.tban then if selected == owner then fs.info = "you do not have permission to do that!" - else + display_record(name, playername)else local t = parse_time(ESC(fields.duration)) + os.time() create_ban_record(selected, name, ESC(fields.reason), t) end @@ -1781,8 +1781,8 @@ minetest.register_chatcommand("ban_record", { if not source.server and chk then return false, "Insufficient privileges to access that information" end - display_record(name, playername) - return true + + return true, display_record(name, playername) end }) @@ -1972,7 +1972,7 @@ minetest.register_chatcommand("/whois", { end local names = name_records(id) local ips = address_records(id) - local msg = minetest.colorize("#FFC000", "\nNames: ") + local msg = "\n" .. minetest.colorize("#FFC000", "Names: ") local n, a = {}, {} for i, v in ipairs(names) do n[#n+1] = v.name @@ -1982,13 +1982,13 @@ minetest.register_chatcommand("/whois", { end msg = msg .. table.concat(n, ", ") if #list > 1 and list[2] == "v" then - msg = msg .. minetest.colorize("#FFC000", "\nIP Addresses: ") - msg = msg .. table.concat(a, ", ") + msg = msg .. minetest.colorize("#FFC000", "IP Addresses: ") + msg = msg .. "\n" .. table.concat(a, ", ") else - msg = msg .. minetest.colorize("#FFC000", "\nLast IP Address: ") + msg = msg .. "\n" .. minetest.colorize("#FFC000", "Last IP Address: ") msg = msg .. a[1] end - return false, minetest.colorize("#FFC000", "Info for: ") .. pname .. msg + return true, minetest.colorize("#FFC000", "Info for: ") .. pname .. msg end, })