mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-27 11:35:22 +09:00
Added Assign Events
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
local Event = require 'utils.event'
|
||||
local Game = require 'utils.game'
|
||||
local Permission_Groups = require 'expcore.permission_groups'
|
||||
|
||||
Permission_Groups.new_group('admin')
|
||||
Permission_Groups.new_group('Admin')
|
||||
:allow_all()
|
||||
:disallow{
|
||||
'add_permission_group', -- admin
|
||||
'delete_permission_group',
|
||||
'edit_permission_group',
|
||||
--'edit_permission_group', -- removed for admin till role script added
|
||||
'import_permissions_string',
|
||||
'map_editor_action',
|
||||
'toggle_map_editor',
|
||||
@@ -17,7 +19,7 @@ Permission_Groups.new_group('admin')
|
||||
'set_infinity_pipe_filter'
|
||||
}
|
||||
|
||||
Permission_Groups.new_group('trusted')
|
||||
Permission_Groups.new_group('Trusted')
|
||||
:allow_all()
|
||||
:disallow{
|
||||
'add_permission_group', -- admin
|
||||
@@ -35,7 +37,7 @@ Permission_Groups.new_group('trusted')
|
||||
'admin_action' -- trusted
|
||||
}
|
||||
|
||||
Permission_Groups.new_group('standard')
|
||||
Permission_Groups.new_group('Standard')
|
||||
:allow_all()
|
||||
:disallow{
|
||||
'add_permission_group', -- admin
|
||||
@@ -58,7 +60,7 @@ Permission_Groups.new_group('standard')
|
||||
'cancel_research'
|
||||
}
|
||||
|
||||
Permission_Groups.new_group('guest')
|
||||
Permission_Groups.new_group('Guest')
|
||||
:allow_all()
|
||||
:disallow{
|
||||
'add_permission_group', -- admin
|
||||
@@ -90,6 +92,39 @@ Permission_Groups.new_group('guest')
|
||||
'launch_rocket'
|
||||
}
|
||||
|
||||
Permission_Groups.new_group('restricted')
|
||||
Permission_Groups.new_group('Restricted')
|
||||
:disallow_all()
|
||||
:allow('write_to_console')
|
||||
:allow('write_to_console')
|
||||
|
||||
--- These events are used until a role system is added to make it easier for our admins
|
||||
|
||||
local trusted_time = 60*60*60*10 -- 10 hour
|
||||
local standard_time = 60*60*60*3 -- 3 hour
|
||||
local function assign_group(player)
|
||||
if player.admin then
|
||||
Permission_Groups.set_player_group(player,'Admin')
|
||||
elseif player.online_time > trusted_time then
|
||||
Permission_Groups.set_player_group(player,'Trusted')
|
||||
elseif player.online_time > standard_time then
|
||||
Permission_Groups.set_player_group(player,'Standard')
|
||||
else
|
||||
Permission_Groups.set_player_group(player,'Guest')
|
||||
end
|
||||
end
|
||||
|
||||
Event.add('on_player_joined_game',function(event)
|
||||
local player = Game.get_player_by_index(event.player_index)
|
||||
assign_group(player)
|
||||
end)
|
||||
|
||||
Event.add({'on_player_promoted','on_player_demoted'},function(event)
|
||||
local player = Game.get_player_by_index(event.player_index)
|
||||
assign_group(player)
|
||||
end)
|
||||
|
||||
local check_interval = 60*60*15 -- 15 minutes
|
||||
Event.on_nth_tick(check_interval,function(event)
|
||||
for _,player in pairs(game.connected_players) do
|
||||
assign_group(player)
|
||||
end
|
||||
end)
|
||||
@@ -48,7 +48,7 @@ function Permissions_Groups.lockdown_permissions(exempt)
|
||||
end
|
||||
end
|
||||
for _,group in pairs(game.permissions.groups) do
|
||||
if not exempt(group.name:lower()) then
|
||||
if not exempt[group.name:lower()] then
|
||||
for _,action in pairs(defines.input_action) do
|
||||
group.set_allows_action(action,false)
|
||||
end
|
||||
|
||||
@@ -7,7 +7,8 @@ require 'config.command_auth_admin'
|
||||
local interface_modules = {
|
||||
['Game']='utils.game',
|
||||
['Commands']=Commands,
|
||||
['output']=Common.player_return
|
||||
['output']=Common.player_return,
|
||||
['Group']='expcore.permission_groups'
|
||||
}
|
||||
|
||||
-- loads all the modules given in the above table
|
||||
|
||||
Reference in New Issue
Block a user