mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 19:45:22 +09:00
120 lines
2.9 KiB
Lua
120 lines
2.9 KiB
Lua
--- Adds roles where a player can have more than one role
|
|
-- @module ExpGamingCore.Role@4.0.0
|
|
-- @author Cooldude2606
|
|
-- @license https://github.com/explosivegaming/scenario/releases/download/v4.0-core/ExpGamingCore.Ranking_4.0.0.zip
|
|
-- @alais Role
|
|
|
|
-- Module Require
|
|
local Group = require('ExpGamingCore.Group@^4.0.0')
|
|
|
|
-- Local Varibles
|
|
|
|
-- Module Define
|
|
local module_verbose = false
|
|
local Role = {
|
|
_prototype={},
|
|
roles={},
|
|
order={},
|
|
flags={},
|
|
actions={},
|
|
on_init=function()
|
|
--code
|
|
end,
|
|
on_post=function()
|
|
--code
|
|
end
|
|
}
|
|
|
|
-- Global Define
|
|
local global = global{
|
|
changes={},
|
|
players={},
|
|
roles={}
|
|
}
|
|
|
|
-- Function Define
|
|
function Role.define(obj)
|
|
-- creates role object
|
|
end
|
|
|
|
function Role.get(mixed)
|
|
-- gets all roles of a user or a role by name
|
|
end
|
|
|
|
function Role.assign(player,role)
|
|
-- gives a player a role by name or a table of roles
|
|
end
|
|
|
|
function Role.unassign(player,role)
|
|
-- removes a player from a role by name or a table of roles
|
|
end
|
|
|
|
function Role.highest(options)
|
|
-- gets the highest role from a set of options; player can be passed
|
|
end
|
|
|
|
function Role.revert(player)
|
|
-- reverts the last change to a user's roles
|
|
end
|
|
|
|
function Role.add_flag(flag,callback)
|
|
-- when a role has the given flag the callback is called, params: player, state
|
|
-- all the flags a player has are combined with true as pirority
|
|
-- example Role.add_flag('is_admin',function(player,state) player.admin = state end)
|
|
end
|
|
|
|
function Role.has_flag(mixed,flag)
|
|
-- tests if mixed (either player or role) has the requested flag
|
|
end
|
|
|
|
function Role.add_action(action)
|
|
-- allows a table to be made that includes all possible actions and thus can test who is allowed
|
|
-- used purly as a way to loop over all actions
|
|
end
|
|
|
|
function Role.allowed(mixed,action)
|
|
-- returns if mixed (either player or role) is allowed to do this action
|
|
end
|
|
|
|
function Role.print(role,rtn,colour,inv)
|
|
-- prints to this role and all below it or above if inv
|
|
end
|
|
|
|
function Role.debug_output(role,player)
|
|
-- outputs all info on a role
|
|
end
|
|
|
|
function Role._prototype:has_flag(flag)
|
|
-- if this role has this flag
|
|
end
|
|
|
|
function Role._prototype:allowed(action)
|
|
-- if this role is allowed this action
|
|
end
|
|
|
|
function Role._prototype:get_players(online)
|
|
-- gets all/online players who have this role
|
|
end
|
|
|
|
function Role._prototype:print(rtn,colour)
|
|
-- prints a message to all players with this role
|
|
end
|
|
|
|
function Role._prototype:get_permissions()
|
|
-- runs though Role.actions and returns a list of which this role can do
|
|
end
|
|
|
|
function Role._prototype.add_player(player)
|
|
-- adds a player to this role
|
|
end
|
|
|
|
function Role._prototype.remove_player(player)
|
|
-- removes this role from the player
|
|
end
|
|
|
|
-- Event Handlers Define
|
|
|
|
-- event call for role updates
|
|
|
|
-- Module Return
|
|
return setmetatable(Role,{__call=function(tbl,...) tbl.define(...) end}) |