Permalink
Browse files

Add hasprivs chat command (#7336)

Require 'basic_privs' priv
Only the online players are listed.
  • Loading branch information...
ClobberXD authored and SmallJoker committed Jun 12, 2018
1 parent 142ce6a commit da9e4b1f4a0ffd7ea0a2a04bbfb8068edcb73802
Showing with 26 additions and 1 deletion.
  1. +26 −1 builtin/game/chatcommands.lua
@@ -41,7 +41,7 @@ end)

if core.settings:get_bool("profiler.load") then
-- Run after register_chatcommand and its register_on_chat_message
-- Before any chattcommands that should be profiled
-- Before any chatcommands that should be profiled
profiler.init_chatcommand()
end

@@ -103,6 +103,31 @@ core.register_chatcommand("privs", {
end,
})

core.register_chatcommand("hasprivs", {
params = "<privilege>",
description = "Return list of all online players with privilege.",
privs = {basic_privs = true},
func = function(caller, param)
param = param:trim()
if param == "" then
return false, "Invalid parameters (see /help hasprivs)"
end
if not core.registered_privileges[param] then
return false, "Unknown privilege!"
end
local privs = core.string_to_privs(param)
local players_with_privs = {}
for _, player in pairs(core.get_connected_players()) do
local player_name = player:get_player_name()
if core.check_player_privs(player_name, privs) then
table.insert(players_with_privs, player_name)
end
end
return true, "Players online with the \"" .. param .. "\" priv: " ..
table.concat(players_with_privs, ", ")
end
})

local function handle_grant_command(caller, grantname, grantprivstr)
local caller_privs = core.get_player_privs(caller)
if not (caller_privs.privs or caller_privs.basic_privs) then

0 comments on commit da9e4b1

Please sign in to comment.