Core Module - Permission Groups - Permission group making for factorio so you never have to make one by hand again
--- Example Group (Allow All)
-- here we will create an admin group however we do not want them to use the map editor or mess with the permission groups
Permission_Groups.new_group('Admin') -- this defines a new group called "Admin"
:allow_all() -- this makes the default to allow any input action unless set other wise
:disallow{ -- here we disallow the input action we don't want them to use
'add_permission_group',
'delete_permission_group',
'import_permissions_string',
'map_editor_action',
'toggle_map_editor'
}
--- Example Group (Disallow All)
-- here we will create a group that cant do anything but talk in chat
Permission_Groups.new_group('Restricted') -- this defines a new group called "Restricted"
:disallow_all() -- this makes the default to disallow any input action unless set other wise
:allow('write_to_console') -- here we allow them to chat, {} can be used here if we had more than one action
utils.game |
utils.event |
expcore.async |
new_group(name) | Defines a new permission group that can have it actions set in the config |
get_group_by_name(name) | Returns the group with the given name, case sensitive |
get_group_from_player(player) | Returns the group that a player is in |
reload_permissions() | Reloads/creates all permission groups and sets them to they configured state |
set_player_group(player, group) | Sets a player's group to the one given, a player can only have one group at a time |
Permissions_Groups._prototype:set_action(action, state) | Sets the allow state of an action for this group, used internally but is safe to use else where |
Permissions_Groups._prototype:allow(actions) | Sets an action or actions to be allowed for this group even with disallow_all triggered, Do not use in runtime |
Permissions_Groups._prototype:disallow(actions) | Sets an action or actions to be disallowed for this group even with allow_all triggered, Do not use in runtime |
Permissions_Groups._prototype:allow_all() | Sets the default state for any actions not given to be allowed, useful with :disallow |
Permissions_Groups._prototype:disallow_all() | Sets the default state for any action not given to be disallowed, useful with :allow |
Permissions_Groups._prototype:is_allowed(action) | Returns if an input action is allowed for this group |
Permissions_Groups._prototype:create() | Creates or updates the permission group with the configured actions, used internally |
Permissions_Groups._prototype:get_raw() | Returns the LuaPermissionGroup that was created with this group object, used internally |
Permissions_Groups._prototype:add_player(player) | Adds a player to this group |
Permissions_Groups._prototype:remove_player(player) | Removes a player from this group |
Permissions_Groups._prototype:get_players([online]) | Returns all player that are in this group with the option to filter to online/offline only |
Permissions_Groups._prototype:print(message) | Prints a message to every player in this group |
Defines a new permission group that can have it actions set in the config
Parameters:-- Defining a new permission group
Groups.new_group('Admin')
Returns the group with the given name, case sensitive
Parameters:-- Getting a permision group
local admin_group = Groups.get_group_by_name('Admin')
Returns the group that a player is in
Parameters:-- Get your permission group
local group = Groups.get_group_from_player(game.player)
Reloads/creates all permission groups and sets them to they configured state
Usage:-- Reload the permission groups, used internally
Groups.reload_permissions()
Sets a player's group to the one given, a player can only have one group at a time
Parameters:-- Set your permission group
Groups.set_player_group(game.player, 'Admin')
Sets the allow state of an action for this group, used internally but is safe to use else where
Parameters:-- Set an action to be disallowed
group:set_action('toggle_map_editor', false)
Sets an action or actions to be allowed for this group even with disallow_all triggered, Do not use in runtime
Parameters:-- Allow some actions
group:allow{
'write_to_console'
}
Sets an action or actions to be disallowed for this group even with allow_all triggered, Do not use in runtime
Parameters:-- Disalow some actions
group:disallow{
'add_permission_group',
'delete_permission_group',
'import_permissions_string',
'map_editor_action',
'toggle_map_editor'
}
Sets the default state for any actions not given to be allowed, useful with :disallow
Returns:-- Allow all actions unless given by disallow
group:allow_all()
Sets the default state for any action not given to be disallowed, useful with :allow
Returns:-- Disallow all actions unless given by allow
group:disallow_all()
Returns if an input action is allowed for this group
Parameters:-- Test if a group is allowed an action
local allowed = group:is_allowed('write_to_console')
Creates or updates the permission group with the configured actions, used internally
Returns:-- Create the permission group so players can be added, used internally
group:create()
Returns the LuaPermissionGroup that was created with this group object, used internally
Returns:-- Get the factorio api permision group, used internally
local permission_group = group:get_raw()
Adds a player to this group
Parameters:-- Add a player to this permission group
group:add_player(game.player)
Removes a player from this group
Parameters:-- Remove a player from this permission group
group:remove_player(game.player)
Returns all player that are in this group with the option to filter to online/offline only
Parameters:-- Get all players in this group
local online_players = group:get_players()
-- Get all online players in this group
local online_players = group:get_players(true)