mirror of
https://github.com/PHIDIAS0303/ExpCluster.git
synced 2025-12-30 20:41:41 +09:00
Added Rank Control and preset ranks
This commit is contained in:
@@ -19,5 +19,104 @@ local credits = {{
|
|||||||
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
|
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
|
||||||
--Please Only Edit Below This Line-----------------------------------------------------------
|
--Please Only Edit Below This Line-----------------------------------------------------------
|
||||||
|
|
||||||
|
local function get_rank(player)
|
||||||
|
if player then
|
||||||
|
for _,rank in pairs(global.ranks) do
|
||||||
|
if player.permission_group == game.permissions.get_group(rank.name) then return rank end
|
||||||
|
end
|
||||||
|
return string.to_rank('Guest')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function string.to_rank(string)
|
||||||
|
if type(string) == 'string' then
|
||||||
|
local Foundranks={}
|
||||||
|
for _,rank in pairs(global.ranks) do
|
||||||
|
if rank.name:lower() == string:lower() then return rank end
|
||||||
|
if rank.name:lower():find(string:lower()) then table.insert(Foundranks,rank) end
|
||||||
|
end
|
||||||
|
if #Foundranks == 1 then return Foundranks[1] end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function rank_print(msg, rank, inv)
|
||||||
|
local rank = string.to_rank(rank) or string.to_rank('Mod') -- default mod or higher
|
||||||
|
local inv = inv or false
|
||||||
|
for _, player in pairs(game.players) do
|
||||||
|
rankPower = get_rank(player).power
|
||||||
|
if inv then
|
||||||
|
if rankPower >= rank.power then
|
||||||
|
player.print(('[Everyone]: '..msg))
|
||||||
|
end
|
||||||
|
else
|
||||||
|
if rankPower <= rank.power then
|
||||||
|
if rank.shortHand ~= '' then player.print(('['..(rank.shortHand)..']: '..msg)) else player.print(('[Everyone]: '..msg)) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function give_rank(player,rank,byPlayer)
|
||||||
|
local byPlayer = byPlayer or 'system'
|
||||||
|
local rank = string.to_rank(rank) or rank or string.to_rank('Guest')
|
||||||
|
local old_rank = get_rank(player)
|
||||||
|
local message = 'demoted'
|
||||||
|
if rank.power <= old_rank.power then message = 'promoted' end
|
||||||
|
if byPlayer.name then
|
||||||
|
rank_print(player.name..' was '..message..' to '..rank.name..' by '..byPlayer.name,'Guest')
|
||||||
|
else
|
||||||
|
rank_print(player.name..' was '..message..' to '..rank.name..' by <system>','Guest')
|
||||||
|
end
|
||||||
|
player.permission_group = game.permissions.get_group(rank.name)
|
||||||
|
if player.tag:find('-') then player.print('Your Custom Tag Was Reset Due To A Rank Change') end
|
||||||
|
player.tag = get_rank(player).tag
|
||||||
|
drawToolbar(player)
|
||||||
|
drawPlayerList()
|
||||||
|
if old_rank.name ~= 'Jail' then global.old_ranks[player.index]=old_rank.name end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function revert_rank(player,byPlayer)
|
||||||
|
local rank = string.to_rank(global.old_ranks[player.index])
|
||||||
|
give_rank(player,rank,byPlayer)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function find_new_rank(player)
|
||||||
|
local function loop_preset_rank(players)
|
||||||
|
for _,p in pairs(players) do
|
||||||
|
if player.name:lower() == p:lower() then return string.to_rank(rank) end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
local current_rank = get_rank(player)
|
||||||
|
local old_rank = get_rank(player)
|
||||||
|
local possible_ranks = {current_rank}
|
||||||
|
--loops though preset ranks
|
||||||
|
for rank,players in pairs(preset_ranks) do
|
||||||
|
local rank = loop_preset_rank(players)
|
||||||
|
if rank then table.insert(possible_ranks,string.to_rank(rank)) break end
|
||||||
|
end
|
||||||
|
--loops though rank times
|
||||||
|
for _,rank in pairs(global.ranks) do
|
||||||
|
if rank.time and ticktominutes(player.online_time) >= trank.time then table.insert(possible_ranks,string.to_rank(rank)) end
|
||||||
|
end
|
||||||
|
--loops though possible ranks
|
||||||
|
if current_rank.name ~='Jail' then
|
||||||
|
local highest_rank = possible_ranks[1]
|
||||||
|
for _,rank in pairs(possible_ranks) do
|
||||||
|
if rank.power > highest_rank.power then highest_rank = rank end
|
||||||
|
end
|
||||||
|
--gives player new rank if availble
|
||||||
|
if highest_rank.name == 'Guest' then
|
||||||
|
player.permission_group=game.permissions.get_group('Guest')
|
||||||
|
else
|
||||||
|
give_rank(player,highest_rank)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
--lose ends
|
||||||
|
if get_rank(player).power <= 3 and not player.admin then rank_print(player.name..' needs to be promoted.') end
|
||||||
|
if old_rank.name ~= get_rank(player).name then global.old_ranks[player.index]=old_rank.name end
|
||||||
|
end
|
||||||
|
|
||||||
|
Event.register(-1,function() global.old_ranks = {} end)
|
||||||
|
Event.register('on_player_joined_game',function(event) find_new_rank(game.players[game.players[event.player_index]]) end)
|
||||||
--Please Only Edit Above This Line-----------------------------------------------------------
|
--Please Only Edit Above This Line-----------------------------------------------------------
|
||||||
return credits
|
return credits
|
||||||
77
locale/ExpGaming-Core/ExpGaming - Rank Presets.lua
Normal file
77
locale/ExpGaming-Core/ExpGaming - Rank Presets.lua
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
--[[
|
||||||
|
Explosive Gaming
|
||||||
|
|
||||||
|
This file can be used with permission but this and the credit below must remain in the file.
|
||||||
|
Contact a member of management on our discord to seek permission to use our code.
|
||||||
|
Any changes that you may make to the code are yours but that does not make the script yours.
|
||||||
|
Discord: https://discord.gg/XSsBV6b
|
||||||
|
|
||||||
|
The credit below may be used by another script do not remove.
|
||||||
|
]]
|
||||||
|
local credits = {{
|
||||||
|
name='ExpGaming - Rank Preset Table',
|
||||||
|
owner='Explosive Gaming',
|
||||||
|
dev='Cooldude2606',
|
||||||
|
description='The Ranks that players are given apon joining',
|
||||||
|
factorio_version='0.15.23',
|
||||||
|
show=false
|
||||||
|
}}
|
||||||
|
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
|
||||||
|
--Please Only Edit Below This Line-----------------------------------------------------------
|
||||||
|
local preset_ranks = {
|
||||||
|
Owner={'badgamernl'},
|
||||||
|
|
||||||
|
['Community Manager']={'arty714'},
|
||||||
|
|
||||||
|
Developer={'Cooldude2606'},
|
||||||
|
|
||||||
|
Admin={
|
||||||
|
'eissturm',
|
||||||
|
'PropangasEddy',
|
||||||
|
'Smou'},
|
||||||
|
|
||||||
|
Mod={
|
||||||
|
'Alanore',
|
||||||
|
'Aquaday',
|
||||||
|
'cafeslacker',
|
||||||
|
'CrashKonijn',
|
||||||
|
'Drahc_pro',
|
||||||
|
'FlipHalfling90',
|
||||||
|
'freek16',
|
||||||
|
'Hobbitkicker',
|
||||||
|
'hud',
|
||||||
|
'Koroto',
|
||||||
|
'mark9064',
|
||||||
|
'Matthias60',
|
||||||
|
'MeDDish',
|
||||||
|
'Mindxt20',
|
||||||
|
'MottledPetrel',
|
||||||
|
'Mr_Happy_212',
|
||||||
|
'NextIdea',
|
||||||
|
'Phoenix27833',
|
||||||
|
'samy115',
|
||||||
|
'Sand3r205',
|
||||||
|
'scarbvis',
|
||||||
|
'steentje77',
|
||||||
|
'tophatgaming123',
|
||||||
|
'VR29',
|
||||||
|
'xenocyber'},
|
||||||
|
|
||||||
|
Donator={
|
||||||
|
'M74132',
|
||||||
|
'Splicer'},
|
||||||
|
|
||||||
|
Veteran={},
|
||||||
|
|
||||||
|
Member={},
|
||||||
|
|
||||||
|
Regular={},
|
||||||
|
|
||||||
|
Guest={},
|
||||||
|
|
||||||
|
Jail={}
|
||||||
|
}
|
||||||
|
|
||||||
|
Event.register(-1,function() global.preset_ranks = preset_ranks end)
|
||||||
|
--Please Only Edit Above This Line-----------------------------------------------------------
|
||||||
|
return credits
|
||||||
@@ -38,6 +38,7 @@ local ranks = {
|
|||||||
shortHand='Owner',
|
shortHand='Owner',
|
||||||
tag='[Owner]',
|
tag='[Owner]',
|
||||||
power=0,
|
power=0,
|
||||||
|
time=nil,
|
||||||
colour={r=170,g=0,b=0},
|
colour={r=170,g=0,b=0},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -45,6 +46,7 @@ local ranks = {
|
|||||||
shortHand='Com Mngr',
|
shortHand='Com Mngr',
|
||||||
tag='[Com Mngr]',
|
tag='[Com Mngr]',
|
||||||
power=1,
|
power=1,
|
||||||
|
time=nil,
|
||||||
colour={r=150,g=68,b=161},
|
colour={r=150,g=68,b=161},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -52,6 +54,7 @@ local ranks = {
|
|||||||
shortHand='Dev',
|
shortHand='Dev',
|
||||||
tag='[Dev]',
|
tag='[Dev]',
|
||||||
power=1,
|
power=1,
|
||||||
|
time=nil,
|
||||||
colour={r=179,g=125,b=46},
|
colour={r=179,g=125,b=46},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -59,6 +62,7 @@ local ranks = {
|
|||||||
shortHand='Admin',
|
shortHand='Admin',
|
||||||
tag='[Admin]',
|
tag='[Admin]',
|
||||||
power=2,
|
power=2,
|
||||||
|
time=nil,
|
||||||
colour={r=233,g=63,b=233},
|
colour={r=233,g=63,b=233},
|
||||||
disallow={
|
disallow={
|
||||||
'set_allow_commands',
|
'set_allow_commands',
|
||||||
@@ -71,6 +75,7 @@ local ranks = {
|
|||||||
shortHand='Mod',
|
shortHand='Mod',
|
||||||
tag='[Mod]',
|
tag='[Mod]',
|
||||||
power=3,
|
power=3,
|
||||||
|
time=nil,
|
||||||
colour={r=0,g=170,b=0},
|
colour={r=0,g=170,b=0},
|
||||||
disallow={
|
disallow={
|
||||||
'server_command'}
|
'server_command'}
|
||||||
@@ -80,6 +85,7 @@ local ranks = {
|
|||||||
shortHand='P2W',
|
shortHand='P2W',
|
||||||
tag='[P2W]',
|
tag='[P2W]',
|
||||||
power=4,
|
power=4,
|
||||||
|
time=nil,
|
||||||
colour={r=233,g=63,b=233},
|
colour={r=233,g=63,b=233},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -87,6 +93,7 @@ local ranks = {
|
|||||||
shortHand='Vet',
|
shortHand='Vet',
|
||||||
tag='[Veteran]',
|
tag='[Veteran]',
|
||||||
power=4,
|
power=4,
|
||||||
|
time=600,
|
||||||
colour={r=140,g=120,b=200},
|
colour={r=140,g=120,b=200},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -94,6 +101,7 @@ local ranks = {
|
|||||||
shortHand='Mem',
|
shortHand='Mem',
|
||||||
tag='[Member]',
|
tag='[Member]',
|
||||||
power=5,
|
power=5,
|
||||||
|
time=nil,
|
||||||
colour={r=24,g=172,b=188},
|
colour={r=24,g=172,b=188},
|
||||||
disallow={}},
|
disallow={}},
|
||||||
|
|
||||||
@@ -101,6 +109,7 @@ local ranks = {
|
|||||||
shortHand='Reg',
|
shortHand='Reg',
|
||||||
tag='[Regular]',
|
tag='[Regular]',
|
||||||
power=5,
|
power=5,
|
||||||
|
time=180,
|
||||||
colour={r=24,g=172,b=188},
|
colour={r=24,g=172,b=188},
|
||||||
disallow={
|
disallow={
|
||||||
'set_auto_launch_rocket',
|
'set_auto_launch_rocket',
|
||||||
@@ -113,6 +122,7 @@ local ranks = {
|
|||||||
shortHand='',
|
shortHand='',
|
||||||
tag='[Guest]',
|
tag='[Guest]',
|
||||||
power=6,
|
power=6,
|
||||||
|
time=nil,
|
||||||
colour={r=255,g=159,b=27},
|
colour={r=255,g=159,b=27},
|
||||||
disallow={
|
disallow={
|
||||||
'build_terrain',
|
'build_terrain',
|
||||||
@@ -125,6 +135,7 @@ local ranks = {
|
|||||||
shortHand='Jail',
|
shortHand='Jail',
|
||||||
tag='[Jail]',
|
tag='[Jail]',
|
||||||
power=7,
|
power=7,
|
||||||
|
time=nil,
|
||||||
colour={r=50,g=50,b=50},
|
colour={r=50,g=50,b=50},
|
||||||
disallow={
|
disallow={
|
||||||
'open_character_gui',
|
'open_character_gui',
|
||||||
|
|||||||
@@ -18,8 +18,10 @@ local credits = {{
|
|||||||
}}
|
}}
|
||||||
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
|
local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end
|
||||||
--Please Only Edit Below This Line-----------------------------------------------------------
|
--Please Only Edit Below This Line-----------------------------------------------------------
|
||||||
credit_loop(require("GUI/file-header"))
|
--as this is the core file the order in which the files are loaded does matter do not change
|
||||||
credit_loop(require("ExpGaming - Rank Table"))
|
credit_loop(require("ExpGaming - Rank Table"))
|
||||||
|
credit_loop(require("ExpGaming - Rank Presets"))
|
||||||
credit_loop(require("ExpGaming - Rank Control"))
|
credit_loop(require("ExpGaming - Rank Control"))
|
||||||
|
credit_loop(require("GUI/file-header"))
|
||||||
--Please Only Edit Above This Line-----------------------------------------------------------
|
--Please Only Edit Above This Line-----------------------------------------------------------
|
||||||
return credits
|
return credits
|
||||||
Reference in New Issue
Block a user