mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-28 03:55:23 +09:00
Converted Modules To Use Roles
This commit is contained in:
@@ -177,24 +177,24 @@ function Sync.count_afk_times(time)
|
||||
return rtn
|
||||
end
|
||||
|
||||
--- Used to get the number of players in each rank and currently online; if ExpGamingCore/Ranking is present then it will give more than admin and user
|
||||
-- @usage Sync.count_ranks()
|
||||
--- Used to get the number of players in each rank and currently online; if ExpGamingCore/Role is present then it will give more than admin and user
|
||||
-- @usage Sync.count_roles()
|
||||
-- @treturn table contains the ranks and the players in that rank
|
||||
function Sync.count_ranks()
|
||||
function Sync.count_roles()
|
||||
if not game then return {'Offline'} end
|
||||
local _ranks = {admin={online={},players={}},user={online={},players={}}}
|
||||
local _roles = {admin={online={},players={}},user={online={},players={}}}
|
||||
for index,player in pairs(game.players) do
|
||||
if player.admin then
|
||||
table.insert(_ranks.admin.players,player.name)
|
||||
if player.connected then table.insert(_ranks.admin.online,player.name) end
|
||||
table.insert(_roles.admin.players,player.name)
|
||||
if player.connected then table.insert(_roles.admin.online,player.name) end
|
||||
else
|
||||
table.insert(_ranks.user.players,player.name)
|
||||
if player.connected then table.insert(_ranks.user.online,player.name) end
|
||||
table.insert(_roles.user.players,player.name)
|
||||
if player.connected then table.insert(_roles.user.online,player.name) end
|
||||
end
|
||||
end
|
||||
_ranks.admin.n_players,_ranks.admin.n_online=#_ranks.admin.players,#_ranks.admin.online
|
||||
_ranks.user.n_players,_ranks.user.n_online=#_ranks.user.players,#_ranks.user.online
|
||||
return _ranks
|
||||
_roles.admin.n_players,_roles.admin.n_online=#_roles.admin.players,#_roles.admin.online
|
||||
_roles.user.n_players,_roles.user.n_online=#_roles.user.players,#_roles.user.online
|
||||
return _roles
|
||||
end
|
||||
|
||||
--- Used to get a list of every player name with the option to limit to only online players
|
||||
@@ -255,7 +255,7 @@ function Sync.update()
|
||||
afk_players=Sync.count_afk_times(),
|
||||
times=Sync.count_player_times()
|
||||
}
|
||||
info.ranks = Sync.count_ranks()
|
||||
info.ranks = Sync.count_roles()
|
||||
info.rockets = game.forces['player'].get_item_launched('satellite')
|
||||
for key,callback in pairs(Sync_updates) do info[key] = callback() end
|
||||
return info
|
||||
@@ -310,7 +310,7 @@ script.on_event('on_rocket_launched',Sync.emit_update)
|
||||
|
||||
function Sync:on_init()
|
||||
if loaded_modules['ExpGamingCore.Gui'] then verbose('ExpGamingCore.Gui is installed; Loading gui src') require(module_path..'/src/gui',{Sync=Sync}) end
|
||||
if loaded_modules['ExpGamingCore.Ranking'] then verbose('ExpGamingCore.Ranking is installed; Loading ranking src') require(module_path..'/src/ranking',{Sync=Sync}) end
|
||||
if loaded_modules['ExpGamingCore.Role'] then verbose('ExpGamingCore.Role is installed; Loading role src') require(module_path..'/src/ranking',{Sync=Sync}) end
|
||||
if loaded_modules['ExpGamingCore.Server'] then require('ExpGamingCore.Server').add_module_to_interface('Sync','ExpGamingCore.Sync') end
|
||||
end
|
||||
|
||||
|
||||
@@ -4,55 +4,55 @@
|
||||
-- @author Cooldude2606
|
||||
-- @license https://github.com/explosivegaming/scenario/blob/master/LICENSE
|
||||
|
||||
--- This file will be loaded when ExpGamingCore.Ranking is present
|
||||
--- This file will be loaded when ExpGamingCore.Role is present
|
||||
-- @function _comment
|
||||
|
||||
local Game = require('FactorioStdLib.Game')
|
||||
local Color = require('FactorioStdLib.Color')
|
||||
local Ranking = require('ExpGamingCore.Ranking')
|
||||
local Role = require('ExpGamingCore.Role')
|
||||
|
||||
--- Used as a redirect to Ranking._base_preset that will set the rank given to a player apon joining
|
||||
-- @usage Sync.set_ranks{player_name=rank_name,...}
|
||||
function Sync.set_ranks(...)
|
||||
Ranking._base_preset(...)
|
||||
--- Used as a redirect to Role._base_preset that will set the rank given to a player apon joining
|
||||
-- @usage Sync.set_roles{player_name=rank_name,...}
|
||||
function Sync.set_roles(...)
|
||||
Role._base_preset(...)
|
||||
end
|
||||
|
||||
--- Used to get the number of players in each rank and currently online
|
||||
-- @usage Sync.count_ranks()
|
||||
-- @usage Sync.count_roles()
|
||||
-- @treturn table contains the ranks and the players in that rank
|
||||
function Sync.count_ranks()
|
||||
function Sync.count_roles()
|
||||
if not game then return {'Offline'} end
|
||||
local _ranks = {}
|
||||
for name,rank in pairs(Ranking.ranks) do
|
||||
local players = rank:get_players()
|
||||
local _roles = {}
|
||||
for name,role in pairs(Role.roles) do
|
||||
local players = role:get_players()
|
||||
for k,player in pairs(players) do players[k] = player.name end
|
||||
local online = rank:get_players(true)
|
||||
local online = role:get_players(true)
|
||||
for k,player in pairs(online) do online[k] = player.name end
|
||||
_ranks[rank.name] = {players=players,online=online,n_players=#players,n_online=#online}
|
||||
_roles[role.name] = {players=players,online=online,n_players=#players,n_online=#online}
|
||||
end
|
||||
return _ranks
|
||||
return _roles
|
||||
end
|
||||
|
||||
-- Adds a caption to the info gui that shows the rank given to the player
|
||||
if Sync.add_to_gui then
|
||||
Sync.add_to_gui(function(player,frame)
|
||||
return 'You have been assigned the rank \''..Ranking.get_rank(player).name..'\''
|
||||
return 'You have been assigned the rank \''..Role.get_highest(player).name..'\''
|
||||
end)
|
||||
end
|
||||
|
||||
-- adds a discord emit for rank chaning
|
||||
script.on_event('on_rank_change',function(event)
|
||||
local rank = Ranking.get_rank(event.new_rank)
|
||||
script.on_event('on_role_change',function(event)
|
||||
local role = Role.get(event.role_name)
|
||||
local player = Game.get_player(event)
|
||||
local by_player_name = Game.get_player(event.by_player_index) or '<server>'
|
||||
local global = global.Ranking
|
||||
if rank.group.name == 'Jail' and global.last_change ~= player.name then
|
||||
local by_player = Game.get_player(event.by_player_index) or SERVER
|
||||
local global = global['ExpGamingCore.Role^4.0.0']
|
||||
if role.is_jail == 'Jail' and global.last_change[1] ~= player.index then
|
||||
Sync.emit_embeded{
|
||||
title='Player Jail',
|
||||
color=Color.to_hex(defines.textcolor.med),
|
||||
description='There was a player jailed.',
|
||||
['Player:']='<<inline>>'..player.name,
|
||||
['By:']='<<inline>>'..by_player_name,
|
||||
['By:']='<<inline>>'..by_player.name,
|
||||
['Reason:']='No Reason'
|
||||
}
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user