colorize some command output
add colour for readability to /whois and ban_record output
This commit is contained in:
parent
03fa84d47a
commit
e526eb6431
88
init.lua
88
init.lua
@ -394,7 +394,7 @@ end
|
|||||||
|
|
||||||
-- Fetch name records
|
-- Fetch name records
|
||||||
-- @param id integer
|
-- @param id integer
|
||||||
-- @return ipair table of name records
|
-- @return ipair table of name records ordered by last login
|
||||||
local function name_records(id)
|
local function name_records(id)
|
||||||
local r, q = {}
|
local r, q = {}
|
||||||
q = ([[
|
q = ([[
|
||||||
@ -409,7 +409,7 @@ end
|
|||||||
|
|
||||||
-- Fetch address records
|
-- Fetch address records
|
||||||
-- @param id integer
|
-- @param id integer
|
||||||
-- @return ipair table of ip address records
|
-- @return ipair table of ip address records ordered by last login
|
||||||
local function address_records(id)
|
local function address_records(id)
|
||||||
local r, q = {}
|
local r, q = {}
|
||||||
q = ([[
|
q = ([[
|
||||||
@ -478,6 +478,7 @@ local function display_record(caller, target)
|
|||||||
|
|
||||||
local id = get_id(target)
|
local id = get_id(target)
|
||||||
local r = name_records(id)
|
local r = name_records(id)
|
||||||
|
local bld = {}
|
||||||
|
|
||||||
if not r then
|
if not r then
|
||||||
minetest.chat_send_player(caller, "No records for "..target)
|
minetest.chat_send_player(caller, "No records for "..target)
|
||||||
@ -489,7 +490,8 @@ local function display_record(caller, target)
|
|||||||
for i,v in ipairs(r) do
|
for i,v in ipairs(r) do
|
||||||
table.insert(names, v.name)
|
table.insert(names, v.name)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(caller, "\nNames: " .. table.concat(names, ", "))
|
bld[#bld+1] = minetest.colorize("#00FFFF", "\n[sban] records for: ") .. target
|
||||||
|
bld[#bld+1] = minetest.colorize("#00FFFF", "\nNames: ") .. table.concat(names, ", ")
|
||||||
|
|
||||||
local privs = minetest.get_player_privs(caller)
|
local privs = minetest.get_player_privs(caller)
|
||||||
|
|
||||||
@ -497,55 +499,53 @@ local function display_record(caller, target)
|
|||||||
local idx = 1
|
local idx = 1
|
||||||
if #r > display_max then
|
if #r > display_max then
|
||||||
idx = #r - display_max
|
idx = #r - display_max
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = minetest.colorize("#00FFFF", "\nName records: ")..#r..
|
||||||
"\nPlayer records: "..#r.." (showing last "..display_max.." records)\n")
|
minetest.colorize("#00FFFF", " (showing last ")..display_max..
|
||||||
|
minetest.colorize("#00FFFF", " records)")
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(caller, "\nPlayer records: "..#r.."\n")
|
bld[#bld+1] = minetest.colorize("#00FFFF", "\nName records: ")..#r
|
||||||
end
|
end
|
||||||
for i = idx, #r do
|
for i = idx, #r do
|
||||||
local d1 = hrdf(r[i].created)
|
local d1 = hrdf(r[i].created)
|
||||||
local d2 = hrdf(r[i].last_login)
|
local d2 = hrdf(r[i].last_login)
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = (minetest.colorize("#FFC000",
|
||||||
("[%s] Name: %s Created: %s Last login: %s\n"
|
"[%s]").." Name: %s Created: %s Last login: %s"):format(i, r[i].name, d1, d2)
|
||||||
):format(i, r[i].name, d1, d2))
|
|
||||||
end
|
end
|
||||||
|
|
||||||
if privs.ban_admin == true then
|
if privs.ban_admin == true then
|
||||||
r = address_records(id)
|
r = address_records(id)
|
||||||
if #r > display_max then
|
if #r > display_max then
|
||||||
idx = #r - display_max
|
idx = #r - display_max
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = minetest.colorize("#0FF", "\nIP records: ") .. #r ..
|
||||||
"\nPlayer records: " .. #r ..
|
minetest.colorize("#0FF", " (showing last ") .. display_max ..
|
||||||
" (showing last " .. display_max .. " records)\n")
|
minetest.colorize("#0FF", " records)")
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = minetest.colorize("#0FF", "\nIP records: ") .. #r
|
||||||
"\nPlayer records: " .. #r .. "\n")
|
idx = 1
|
||||||
end
|
end
|
||||||
for i = idx, #r do
|
for i = idx, #r do
|
||||||
-- format utc values
|
-- format utc values
|
||||||
local d = hrdf(r[i].created)
|
local d = hrdf(r[i].created)
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = (minetest.colorize("#FFC000", "[%s] ")..
|
||||||
("[%s] IP: %s Created: %s\n"
|
"IP: %s Created: %s"):format(i, r[i].ip, d)
|
||||||
):format(i, r[i].ip, d))
|
|
||||||
end
|
end
|
||||||
r = violation_record(id)
|
r = violation_record(id)
|
||||||
if r then
|
if r then
|
||||||
minetest.chat_send_player(caller, "\nViolation records: " .. #r .. "\n")
|
bld[#bld+1] = minetest.colorize("#0FF", "\nViolation records: ") .. #r
|
||||||
for i,v in ipairs(r) do
|
for i,v in ipairs(r) do
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = ("[%s] ID: %s IP: %s Created: %s Last login: %s"):format(
|
||||||
("[%s] ID: %s IP: %s Created: %s Last login: %s\n"):format(
|
i, v.id, v.ip, hrdf(v.created), hrdf(v.last_login))
|
||||||
i, v.id, v.ip, hrdf(v.created), hrdf(v.last_login)))
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(caller, "\nNo violation records for " .. target .. "\n")
|
bld[#bld+1] = minetest.colorize("#0FF", "\nNo violation records for ") .. target
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
r = player_ban_expired(id) or {}
|
r = player_ban_expired(id) or {}
|
||||||
minetest.chat_send_player(caller, "\nBan History:")
|
bld[#bld+1] = minetest.colorize("#0FF", "\nBan records:")
|
||||||
if #r > 0 then
|
if #r > 0 then
|
||||||
|
|
||||||
minetest.chat_send_player(caller, "\nrecords: "..#r.."\n")
|
bld[#bld+1] = minetest.colorize("#0FF", "\nExpired records: ")..#r
|
||||||
|
|
||||||
for i, e in ipairs(r) do
|
for i, e in ipairs(r) do
|
||||||
local d1 = hrdf(e.created)
|
local d1 = hrdf(e.created)
|
||||||
@ -553,39 +553,31 @@ local function display_record(caller, target)
|
|||||||
if type(e.expires) == "number" and e.expires > 0 then
|
if type(e.expires) == "number" and e.expires > 0 then
|
||||||
expires = hrdf(e.expires)
|
expires = hrdf(e.expires)
|
||||||
end
|
end
|
||||||
if type(e.u_date) == "number" and e.u_date > 0 then
|
local d2 = hrdf(e.u_date)
|
||||||
local d2 = hrdf(e.u_date)
|
bld[#bld+1] = (minetest.colorize("#FFC000", "[%s]")..
|
||||||
minetest.chat_send_player(caller,
|
" Name: %s Created: %s Banned by: %s Reason: %s Expires: %s "
|
||||||
("[%s] Name: %s Created: %s Banned by: %s Reason: %s Expires: %s\n"
|
):format(i, e.name, d1, e.source, e.reason, expires) ..
|
||||||
):format(i, e.name, d1, e.source, e.reason, expires))
|
("Unbanned by: %s Reason: %s Time: %s"):format(e.u_source, e.u_reason, d2)
|
||||||
minetest.chat_send_player(caller,
|
|
||||||
("[%s] Unbanned by: %s Reason: %s Time: %s"
|
|
||||||
):format(i, e.u_source, e.u_reason, d2))
|
|
||||||
else
|
|
||||||
minetest.chat_send_player(caller,
|
|
||||||
("[%s] Name: %s Created: %s Banned by: %s Reason: %s Expires: %s\n"
|
|
||||||
):format(i, e.name, d1, e.source, e.reason, expires))
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
minetest.chat_send_player(caller, "\nNo ban records!")
|
bld[#bld+1] = "\nNo expired ban records!"
|
||||||
end
|
end
|
||||||
|
|
||||||
r = bans[id]
|
r = bans[id]
|
||||||
local ban = tostring(r ~= nil)
|
local ban = tostring(r ~= nil)
|
||||||
minetest.chat_send_player(caller, "Current Status:")
|
bld[#bld+1] = minetest.colorize("#0FF", "\nCurrent Ban Status:")
|
||||||
if ban == 'true' then
|
if ban == 'true' then
|
||||||
local expires = "never"
|
local expires = "never"
|
||||||
local d = hrdf(r.created)
|
local d = hrdf(r.created)
|
||||||
if type(r.expires) == "number" and r.expires > 0 then
|
if type(r.expires) == "number" and r.expires > 0 then
|
||||||
expires = hrdf(r.expires)
|
expires = hrdf(r.expires)
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(caller,
|
bld[#bld+1] = ("Name: %s Created: %s Banned by: %s Reason: %s Expires: %s"
|
||||||
("\nName: %s Created: %s Banned by: %s Reason: %s Expires: %s"
|
):format(r.name, d, r.source, r.reason, expires)
|
||||||
):format(r.name, d, r.source, r.reason, expires))
|
|
||||||
end
|
end
|
||||||
minetest.chat_send_player(caller, "\nBanned: "..ban)
|
bld[#bld+1] = minetest.colorize("#0FF", "\nBanned: ")..ban
|
||||||
|
minetest.chat_send_player(caller, table.concat(bld, "\n"))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Fetch names like 'name'
|
-- Fetch names like 'name'
|
||||||
@ -1961,7 +1953,7 @@ minetest.override_chatcommand("kick", {
|
|||||||
-- Register whois command
|
-- Register whois command
|
||||||
minetest.register_chatcommand("/whois", {
|
minetest.register_chatcommand("/whois", {
|
||||||
params = "<player> [v]",
|
params = "<player> [v]",
|
||||||
description = "Returns info on a player, use v for full record.",
|
description = "Returns player information, use v for full record.",
|
||||||
privs = {ban_admin = true},
|
privs = {ban_admin = true},
|
||||||
func = function(name, param)
|
func = function(name, param)
|
||||||
local list = {}
|
local list = {}
|
||||||
@ -1978,7 +1970,7 @@ minetest.register_chatcommand("/whois", {
|
|||||||
end
|
end
|
||||||
local names = name_records(id)
|
local names = name_records(id)
|
||||||
local ips = address_records(id)
|
local ips = address_records(id)
|
||||||
local msg = "\nNames: "
|
local msg = minetest.colorize("#FFC000", "\nNames: ")
|
||||||
local n, a = {}, {}
|
local n, a = {}, {}
|
||||||
for i, v in ipairs(names) do
|
for i, v in ipairs(names) do
|
||||||
n[#n+1] = v.name
|
n[#n+1] = v.name
|
||||||
@ -1988,13 +1980,13 @@ minetest.register_chatcommand("/whois", {
|
|||||||
end
|
end
|
||||||
msg = msg .. table.concat(n, ", ")
|
msg = msg .. table.concat(n, ", ")
|
||||||
if #list > 1 and list[2] == "v" then
|
if #list > 1 and list[2] == "v" then
|
||||||
msg = msg .. "\nIP Addresses:\n "
|
msg = msg .. minetest.colorize("#FFC000", "\nIP Addresses: ")
|
||||||
msg = msg .. table.concat(a, ", ")
|
msg = msg .. table.concat(a, ", ")
|
||||||
else
|
else
|
||||||
msg = msg .. "\nLast IP Address: "
|
msg = msg .. minetest.colorize("#FFC000", "\nLast IP Address: ")
|
||||||
msg = msg .. a[1]
|
msg = msg .. a[1]
|
||||||
end
|
end
|
||||||
return false, "Player info for " .. pname .. ": " .. msg
|
return false, minetest.colorize("#FFC000", "Info for: ") .. pname .. msg
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user