diff --git a/control.lua b/control.lua index 25d5c360..ef493827 100644 --- a/control.lua +++ b/control.lua @@ -5,25 +5,14 @@ This file can be used with permission but this and the credit below must remain 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='Control', - owner='Explosive Gaming', - dev='Cooldude2606', - description='Core Factorio File', - 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----------------------------------------------------------- --set up to run other code and events require("mod-gui") -credit_loop(require("locale/StdLib/event")) +require("locale/StdLib/event") --this is the main code that starts the softmod Event.soft_init = script.generate_event_name() -local function init() if not global.soft_init then script.raise_event(Event.soft_init,{tick=game.tick}) global.soft_init = true global.credits = credits end end +local function init() if not global.soft_init then script.raise_event(Event.soft_init,{tick=game.tick}) global.soft_init = true end end Event.register(defines.events.on_player_joined_game,init) Event.register(defines.events.on_tick,init) --below 'game.tick/(3600*game.speed)) % 15 == 0' raises the gui_update event every 15 minutes - feel free to change the update time @@ -38,9 +27,9 @@ Event.register(defines.events.on_tick, function(event) elseif ((event.tick/(3600*game.speed))+(15/2))% 15 == 0 then -- this is the system to auto rank players for i,player in pairs(game.connected_players) do - sudo(find_new_rank,{player,event.tick}) + sudo(ranking.find_new_rank,{player,event.tick}) end end end) --loads all the other scripts -credit_loop(require("locale/file-header")) \ No newline at end of file +require("locale/file-header") \ No newline at end of file diff --git a/locale/ExpGaming-Core/Core Help File.md b/locale/ExpGaming-Core/Core Help File.md index 68a43fd3..7931c473 100644 --- a/locale/ExpGaming-Core/Core Help File.md +++ b/locale/ExpGaming-Core/Core Help File.md @@ -40,19 +40,19 @@ See code for more details. * ExpGui.add_input.draw_text(frame,name,display) * display (opt) ## Ranks -* get_rank(player) +* ranking.get_player_rank(player) * Get the players rank -* string_to_rank(string) +* ranking.string_to_rank(string) * Convert a rank name to the rank object -* rank_print(msg, rank, inv) +* ranking.rank_print(msg, rank, inv) * rank = 'rank name' * inv = lower ranks rather than higher -> true/false/nil -* give_rank(player,rank,by_player) +* ranking.give_rank(player,rank,by_player) * rank = 'rank name' * by_player = player or nil -* revert_rank(player,by_player) +* ranking.revert_rank(player,by_player) * by_player = player or nil -* find_new_rank(player) +* ranking.find_new_rank(player) * Looks in presets if play time under 5 minutes * Otherwise looks at play time * Event.rank_change @@ -74,13 +74,13 @@ See code for more details. * returens a list if the data returend by thefunction if any * get_sudo_info(string) * return either a list or string based on the string boliean -* get_ranks(part) +* ranking.get_ranks(part) * returns a list of all the ranks * part (opt) = part of the rank you want to return ie name -* get_rank_presets(rank) +* ranking.get_player_rank_presets(rank) * returns the current rank presets * rank (opt) = rank name if only one rank is needed -* get_ranked_players(rank) +* ranking.get_ranked_players(rank) * returns the ranks and online time of every player * rank (opt) = limits it to only this rank * get_commands(rank) diff --git a/locale/ExpGaming-Core/ExpGaming - Command Maker.lua b/locale/ExpGaming-Core/ExpGaming - Command Maker.lua index 7b0ad03d..dee2e732 100644 --- a/locale/ExpGaming-Core/ExpGaming - Command Maker.lua +++ b/locale/ExpGaming-Core/ExpGaming - Command Maker.lua @@ -69,7 +69,7 @@ function load_command(command) debug_write({'COMMAND','RUN','PLAYER-INDEX'},event.player_index) if event.player_index then local player = game.players[event.player_index] - if not rank_allowed(get_rank(player),command.name) then + if not ranking.rank_allowed(ranking.get_player_rank(player),command.name) then debug_write({'COMMAND','RUN','ALLOWED'},false) player.print('401 - Unauthorized: Access is denied due to invalid credentials') game.write_file('commands.log','\n'..game.tick..' Player: '..player.name..' Failed to use command (Unauthorized): '..command.name..' With args of: '..table.tostring(get_command_args(event,command,true)), true, 0) @@ -102,12 +102,12 @@ end function get_commands(rank) local rank = rank or 'Owner' local to_return = {} - for _,command in pairs(global.commands) do - if rank_allowed(string_to_rank(rank),command.name) then table.insert(to_return,command) end + for _,command in pairs(global.exp_core.commands) do + if ranking.rank_allowed(ranking.string_to_rank(rank),command.name) then table.insert(to_return,command) end end return to_return end -Event.register(-1,function() global.commands = Exp_commands for _,command in pairs(Exp_commands) do load_command(command) end end) +Event.register(Event.soft_init,function() global.exp_core.commands = Exp_commands for _,command in pairs(Exp_commands) do load_command(command) end end) Event.register(defines.events.on_player_joined_game,function() for _,command in pairs(Exp_commands) do load_command(command) end end) --Please Only Edit Above This Line----------------------------------------------------------- return credits \ No newline at end of file diff --git a/locale/ExpGaming-Core/ExpGaming - Lib.lua b/locale/ExpGaming-Core/ExpGaming - Lib.lua index 3a190c8f..a6b38c4f 100644 --- a/locale/ExpGaming-Core/ExpGaming - Lib.lua +++ b/locale/ExpGaming-Core/ExpGaming - Lib.lua @@ -74,14 +74,14 @@ function table.tostring( tbl ) end -- allows a simple way to debug code; idenitys = {'string1','string2'}; string will be writen to file; no_trigger dissables the trigger useful for on_tick events function debug_write(idenitys,string,no_trigger) - if global.debug.state then + if global.exp_core.debug.state then if type(string) == 'table' then string = table.tostring(string) elseif type(string) ~= 'string' then string = tostring(string) end - if not no_trigger or global.debug.triggered then game.write_file('debug.log', '\n['..table.concat(idenitys, " " )..'] '..string, true, 0) end - if not no_trigger then global.debug.triggered = true end + if not no_trigger or global.exp_core.debug.triggered then game.write_file('debug.log', '\n['..table.concat(idenitys, " " )..'] '..string, true, 0) end + if not no_trigger then global.exp_core.debug.triggered = true end end end Event.register(defines.events.on_tick,function() debug_write({'NEW TICK'},game.tick,true) end) -Event.register(-1,function() global.debug={state=false,triggered=false,force=false} end) +Event.register(Event.soft_init,function() global.exp_core.debug={state=false,triggered=false,force=false} end) --Please Only Edit Above This Line----------------------------------------------------------- return credits \ No newline at end of file diff --git a/locale/ExpGaming-Core/ExpGaming - Rank Control.lua b/locale/ExpGaming-Core/ExpGaming - Rank Control.lua index 91c70694..99356e43 100644 --- a/locale/ExpGaming-Core/ExpGaming - Rank Control.lua +++ b/locale/ExpGaming-Core/ExpGaming - Rank Control.lua @@ -5,34 +5,25 @@ This file can be used with permission but this and the credit below must remain 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='Explosive Gaming Rank System', - owner='Explosive Gaming', - dev='Cooldude2606', - description='The very core upon which all of the others are based on', - factorio_version='0.15.23', - show=true - }} -local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits,cred) end end --Please Only Edit Below This Line----------------------------------------------------------- +ranking = {} +local ranking.get_ranks, ranking.get_rank_groups = require("ExpGaming - Rank Table") --Return the rank of a given player -function get_rank(player) +function ranking.get_player_rank(player) if player then debug_write({'RANK','PLAYER-GET'},player.name) - for _,rank in pairs(get_ranks()) do + for _,rank in pairs(ranking.get_ranks()) do if player.permission_group == game.permissions.get_group(rank.name) then return rank end end - return string_to_rank_group('User').lowest_rank + return ranking.string_to_rank_group('User').lowest_rank end end --Convert the name of a rank into the rank object -function string_to_rank(string) +function ranking.string_to_rank(string) if type(string) == 'string' then local found_ranks={} - for _,rank in pairs(get_ranks()) do + for _,rank in pairs(ranking.get_ranks()) do if rank.name:lower() == string:lower() then return rank end if rank.name:lower():find(string:lower()) then table.insert(found_ranks,rank) end end @@ -40,10 +31,10 @@ function string_to_rank(string) end end --converts the name of a group to the group object -function string_to_rank_group(string) +function ranking.string_to_rank_group(string) if type(string) == 'string' then local found_groups={} - for _,group in pairs(get_rank_groups()) do + for _,group in pairs(ranking.get_rank_groups()) do if group.name:lower() == string:lower() then return group end if group.name:lower():find(string:lower()) then table.insert(found_groups,group) end end @@ -51,7 +42,7 @@ function string_to_rank_group(string) end end -- surches the rank for a certain allow command -function rank_allowed(rank,is_allowed) +function ranking.rank_allowed(rank,is_allowed) for _,allow in pairs(rank.allow) do if allow == is_allowed then return true end end @@ -59,59 +50,59 @@ function rank_allowed(rank,is_allowed) end --Send a message to all members of this rank and above, if no rank given default is mod --inv sends message to all lower ranks rather than higher -function rank_print(msg, rank, inv) - local rank = string_to_rank(rank) or string_to_rank_group('Moderation').lowest_rank -- default mod or higher +function ranking.rank_print(msg, rank, inv) + local rank = ranking.string_to_rank(rank) or ranking.string_to_rank_group('Moderation').lowest_rank -- default mod or higher local inv = inv or false debug_write({'RANK','PRINT'},rank.name..': '..msg) for _, player in pairs(game.players) do --this part uses sudo to soread it other many ticks - player_rank_power = get_rank(player).power + player_rank_power = ranking.get_player_rank(player).power if inv then sudo(function(player_rank_power,rank) - if player_rank_power >= rank.power then player.print(('[Everyone]: '..msg)) end + if player_rank_power >= rank.power then player.print({'ranking.all-rank-print',msg}) end end,{player_rank_power,rank}) else sudo(function(player_rank_power,rank) if player_rank_power <= rank.power then - if rank.short_hand ~= '' then player.print(('['..(rank.short_hand)..']: '..msg)) else player.print(('[Everyone]: '..msg)) end + if rank.short_hand ~= '' then player.print(('['..(rank.short_hand)..']: '..msg)) else player.print({'ranking.all-rank-print',msg}) end end end,{player_rank_power,rank}) end end end --Give the user their new rank and raise the Event.rank_change event -function give_rank(player,rank,by_player,group_tick) +function ranking.give_rank(player,rank,by_player,group_tick) local tick = group_tick or game.tick local by_player = by_player or 'server' - local rank = string_to_rank(rank) or rank or string_to_rank_group('User').lowest_rank - local old_rank = get_rank(player) + local rank = ranking.string_to_rank(rank) or rank or ranking.string_to_rank_group('User').lowest_rank + local old_rank = ranking.get_player_rank(player) -- to reducse lag if the ranks are all ready given it does not cheak if old_rank == rank then return end --messaging - local message = 'demoted' - if rank.power <= old_rank.power then message = 'promoted' end + local message = 'ranking.rank-down' + if rank.power <= old_rank.power then message = 'ranking.rank-down' end if by_player.name then debug_write({'RANK','GIVE'},'player: '..player.name..' by player: '..by_player.name..' new rank: '..rank.name..' old rank: '..old_rank.name) - rank_print(player.name..' was '..message..' to '..rank.name..' by '..by_player.name,'Guest') + ranking.rank_print({message,player.name,rank.name,by_player.name},'Guest') else debug_write({'RANK','GIVE'},'player: '..player.name..' by player: new rank: '..rank.name..' old rank: '..old_rank.name) - rank_print(player.name..' was '..message..' to '..rank.name..' by ','Guest') + ranking.rank_print({message,player.name,rank.name,''},'Guest') end - if rank.name ~= string_to_rank_group('User').lowest_rank.name then player.print('You have been given the '..rank.name..' Rank!') end - if player.tag ~= old_rank.tag and player.tag ~= '' then player.print('Your Tag was reset due to a Rank change') end + if rank.name ~= ranking.string_to_rank_group('User').lowest_rank.name then player.print({'ranking.rank-given',rank.name}) end + if player.tag ~= old_rank.tag and player.tag ~= '' then player.print({'ranking.tag-reset'}) end --rank change player.permission_group = game.permissions.get_group(rank.name) - player.tag = get_rank(player).tag - if old_rank.name ~= 'Jail' then global.old_ranks[player.index]=old_rank.name end + player.tag = ranking.get_player_rank(player).tag + if old_rank.name ~= 'Jail' then global.exp_core.old_ranks[player.index]=old_rank.name end script.raise_event(Event.rank_change, {tick=tick, player=player, by_player=by_player, new_rank=rank, old_rank=old_rank}) end --Revert the user's rank to what it was before the lastest change -function revert_rank(player,by_player) - local rank = string_to_rank(global.old_ranks[player.index]) - give_rank(player,rank,by_player) +function ranking.revert_rank(player,by_player) + local rank = ranking.string_to_rank(global.exp_core.old_ranks[player.index]) + ranking.give_rank(player,rank,by_player) end --Give the player a new rank based on playtime and/or preset ranks -function find_new_rank(player,group_tick) +function ranking.find_new_rank(player,group_tick) debug_write({'RANK','NEW-RANK','START'},player.name) local function loop_preset_rank(players,rank) debug_write({'RANK','NEW-RANK','LOOP-PRESET'},rank) @@ -120,25 +111,25 @@ function find_new_rank(player,group_tick) end end local tick = group_tick or game.tick - local current_rank = get_rank(player) - local old_rank = get_rank(player) + local current_rank = ranking.get_player_rank(player) + local old_rank = ranking.get_player_rank(player) local possible_ranks = {current_rank} --Loop through preset ranks only if playtime is less than 5 minutes debug_write({'RANK','NEW-RANK','PRESET-CHEAK'},tick_to_min(player.online_time)) if tick_to_min(player.online_time) < 5 then debug_write({'RANK','NEW-RANK','PRESET-START'},player.name) - for rank,players in pairs(global.preset_ranks) do + for rank,players in pairs(global.exp_core.preset_ranks) do local found_rank = loop_preset_rank(players, rank) - if found_rank then debug_write({'RANK','NEW-RANK','ADD'},found_rank) table.insert(possible_ranks,string_to_rank(found_rank)) break end + if found_rank then debug_write({'RANK','NEW-RANK','ADD'},found_rank) table.insert(possible_ranks,ranking.string_to_rank(found_rank)) break end end end -- to reduce lag if the player is already higher than any time rank then it does not cheak -- also there play time must be higher than the lowest required for a rank debug_write({'RANK','NEW-RANK','TIME-CHEAK'},tick_to_min(player.online_time)) - if current_rank.power > global.ranks.highest_timed_rank.power and tick_to_min(player.online_time) >= global.ranks.lowest_timed_rank.time then + if current_rank.power > global.exp_core.exp_core.ranks.highest_timed_rank.power and tick_to_min(player.online_time) >= global.exp_core.exp_core.ranks.lowest_timed_rank.time then debug_write({'RANK','NEW-RANK','TIME-START'},player.name) --Loop through rank times - for _,rank in pairs(get_ranks()) do + for _,rank in pairs(ranking.get_ranks()) do if rank.time then debug_write({'RANK','NEW-RANK','START'},rank.name..' '..rank.time) end if rank.time and tick_to_min(player.online_time) >= rank.time then debug_write({'RANK','NEW-RANK','ADD'},rank.name) table.insert(possible_ranks,rank) end end @@ -154,29 +145,29 @@ function find_new_rank(player,group_tick) end debug_write({'RANK','NEW-RANK','GIVE','HIGHEST'},highest_rank.name) --Give player new rank if availble - if highest_rank.name == string_to_rank_group('User').lowest_rank.name then + if highest_rank.name == ranking.string_to_rank_group('User').lowest_rank.name then -- to avoid spam in chat debug_write({'RANK','NEW-RANK','GIVE','VIA-SERVER'},player.name..' '..highest_rank.name) player.tag = highest_rank.tag player.permission_group=game.permissions.get_group('Guest') - script.raise_event(Event.rank_change, {tick=tick, player=player, by_player='server', new_rank=string_to_rank_group('User').lowest_rank, old_rank=string_to_rank_group('User').lowest_rank}) + script.raise_event(Event.rank_change, {tick=tick, player=player, by_player='server', new_rank=ranking.string_to_rank_group('User').lowest_rank, old_rank=ranking.string_to_rank_group('User').lowest_rank}) else debug_write({'RANK','NEW-RANK','GIVE','VIA-GIVE-RANK'},player.name..' '..highest_rank.name) - if highest_rank ~= current_rank then give_rank(player,highest_rank,nil,tick) end + if highest_rank ~= current_rank then ranking.give_rank(player,highest_rank,nil,tick) end end debug_write({'RANK','NEW-RANK','GIVE','END'},player.name) end --Lose ends - if get_rank(player).power <= string_to_rank_group('Moderation').lowest_rank.power 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 + if ranking.get_player_rank(player).power <= ranking.string_to_rank_group('Moderation').lowest_rank.power and not player.admin then ranking.rank_print(player.name..' needs to be promoted.') end + if old_rank.name ~= ranking.get_player_rank(player).name then global.exp_core.old_ranks[player.index]=old_rank.name end debug_write({'RANK','NEW-RANK','END'},player.name) end -- returns a list with every players current rank, or just the players of the rank given, includes online time -function get_ranked_players(rank) +function ranking.get_ranked_players(rank) local to_return = {} for _,player in pairs(game.players) do - if not rank or rank == get_rank(player).name then - table.insert(to_return,{player.name,tick_to_display_format(player.online_time),get_rank(player).name}) + if not rank or rank == ranking.get_player_rank(player).name then + table.insert(to_return,{player.name,tick_to_display_format(player.online_time),ranking.get_player_rank(player).name}) end end return to_return @@ -190,10 +181,10 @@ Event.register(Event.rank_change,function(event) game.write_file('rank-change.log','\n'..game.tick..' Player: '..event.player.name..' Was given rank: '..event.new_rank.name..' By: '..event.by_player.name..' Their rank was: '..event.old_rank.name, true, 0) end end) -Event.register(-1,function() +Event.register(Event.soft_init,function() debug_write({'RANK','SETUP'},'start') - global.old_ranks = {} - for _,rank in pairs(get_ranks()) do + global.exp_core.old_ranks = {} + for _,rank in pairs(ranking.get_ranks()) do debug_write({'RANK','SETUP'},'added: '..rank.name) game.permissions.create_group(rank.name) for _,toRemove in pairs(rank.disallow) do @@ -202,7 +193,7 @@ Event.register(-1,function() end end end) -Event.register(defines.events.on_player_joined_game,function(event) find_new_rank(game.players[event.player_index]) end) -Event.register(-1,function() global.preset_ranks = {} end) +Event.register(defines.events.on_player_joined_game,function(event) ranking.find_new_rank(game.players[event.player_index]) end) +Event.register(Event.soft_init,function() global.exp_core.preset_ranks = {} end) --Please Only Edit Above This Line----------------------------------------------------------- -return credits \ No newline at end of file +return ranking \ No newline at end of file diff --git a/locale/ExpGaming-Core/ExpGaming - Rank Table.lua b/locale/ExpGaming-Core/ExpGaming - Rank Table.lua index 6454061d..d2f7962b 100644 --- a/locale/ExpGaming-Core/ExpGaming - Rank Table.lua +++ b/locale/ExpGaming-Core/ExpGaming - Rank Table.lua @@ -5,20 +5,7 @@ This file can be used with permission but this and the credit below must remain 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 - Ranks Table', - owner='Explosive Gaming', - dev='Cooldude2606', - description='Table holding the ranks used', - 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----------------------------------------------------------- ---[[ How to use groups: name the name that you can use to refence it. colour if present then all ranks in this group will have this colour. @@ -259,19 +246,19 @@ end function get_ranks(part) local to_return = {} if part then - for _,rank in pairs(global.ranks.ranks) do table.insert(to_return,rank[part]) end - else to_return = global.ranks.ranks end + for _,rank in pairs(global.exp_core.ranks.ranks) do table.insert(to_return,rank[part]) end + else to_return = global.exp_core.ranks.ranks end return to_return end -- returns a list off all the groups, return only one part if given function get_rank_groups(part) local to_return = {} if part then - for _,group in pairs(global.ranks.groups) do table.insert(to_return,group[part]) end - else to_return = global.ranks.groups end + for _,group in pairs(global.exp_core.ranks.groups) do table.insert(to_return,group[part]) end + else to_return = global.exp_core.ranks.groups end return to_return end -- Move the ranks to the global array -Event.register(-1,function() global.ranks = ranks end) +Event.register(Event.soft_init,function() global.exp_core.ranks = ranks end) --Please Only Edit Above This Line----------------------------------------------------------- -return credits \ No newline at end of file +return get_ranks, get_rank_groups \ No newline at end of file diff --git a/locale/ExpGaming-Core/ExpGaming - Server Interface.lua b/locale/ExpGaming-Core/ExpGaming - Server Interface.lua index 56561c44..2996d64c 100644 --- a/locale/ExpGaming-Core/ExpGaming - Server Interface.lua +++ b/locale/ExpGaming-Core/ExpGaming - Server Interface.lua @@ -32,11 +32,11 @@ define_command('server-interface','For use of the highest staff only',{'command' end) --runs a server interface command with debug on and does not return any values to the user define_command('debug','For use of the highest staff only, this will lag A LOT',{'command',true},function(player,event,args) - global.debug.state = true + global.exp_core.debug.state = true debug_write({'START'},game.tick..' '..event.parameter) - global.debug.triggered = false + global.exp_core.debug.triggered = false local returned,value = pcall(loadstring(event.parameter)) - if global.debug.triggered and #global.sudo.commands == 0 then debug_write({'END'},game.tick) global.debug.state = false end + if global.exp_core.debug.triggered and #global.exp_core.sudo.commands == 0 then debug_write({'END'},game.tick) global.exp_core.debug.state = false end end) --this is used when changing permission groups when the person does not have permsion to, can also be used to split a large event accross multiple ticks local commands_per_iteration = 50 --number of sudo commands ran every sudo iteration @@ -45,9 +45,9 @@ local temp_var_time = 1000/commands_per_iteration*ticks_per_iteration --temp var function sudo(command,args,custom_return_name) if type(command) == 'function' then local args = args or {} - local return_name = custom_return_name or tostring(game.tick)..tostring(command)..tostring(#global.sudo.commands) + local return_name = custom_return_name or tostring(game.tick)..tostring(command)..tostring(#global.exp_core.sudo.commands) debug_write({'SUDO','ADD'},return_name) - table.insert(global.sudo.commands,{fun=command,args=args,return_name=return_name}) + table.insert(global.exp_core.sudo.commands,{fun=command,args=args,return_name=return_name}) refresh_temp_var(return_name,'temp-var-temp-value') return {sudo='sudo-temp-var',name=return_name} end @@ -60,47 +60,47 @@ end --update the time on a temp var or add it as a new one function refresh_temp_var(name,value,offset) local offset = offset or temp_var_time - if global.sudo.temp_varibles[name] and not value then - global.sudo.temp_varibles[name].remove_time = game.tick+offset + if global.exp_core.sudo.temp_varibles[name] and not value then + global.exp_core.sudo.temp_varibles[name].remove_time = game.tick+offset else - global.sudo.temp_varibles[name] = {data=value,remove_time=game.tick+offset} + global.exp_core.sudo.temp_varibles[name] = {data=value,remove_time=game.tick+offset} end end -- gets the data stored in a temp varible function get_temp_var_data(var) local to_return = nil - if global.sudo.temp_varibles[var] then to_return = global.sudo.temp_varibles[var].data debug_write({'SUDO','TEMP-VAR'},var) - elseif var.name and global.sudo.temp_varibles[var.name] then to_return = global.sudo.temp_varibles[var.name].data debug_write({'SUDO','TEMP-VAR'},var.name) end + if global.exp_core.sudo.temp_varibles[var] then to_return = global.exp_core.sudo.temp_varibles[var].data debug_write({'SUDO','TEMP-VAR'},var) + elseif var.name and global.exp_core.sudo.temp_varibles[var.name] then to_return = global.exp_core.sudo.temp_varibles[var.name].data debug_write({'SUDO','TEMP-VAR'},var.name) end return to_return end -- returns the lenth of the temp varible list and command queue, is string is true then it is retured as a string function get_sudo_info(string) local lenth = 0 - for _,v in pairs(global.sudo.temp_varibles) do lenth = lenth + 1 end - if string then return 'At game tick: '..game.tick..' Queue Lenth: '..#global.sudo.commands..' Number of temp vars: '..lenth - else return {tick=game.tick,commands=#global.sudo.commands,temp_varibles=#global.sudo.temp_varibles} end + for _,v in pairs(global.exp_core.sudo.temp_varibles) do lenth = lenth + 1 end + if string then return 'At game tick: '..game.tick..' Queue Lenth: '..#global.exp_core.sudo.commands..' Number of temp vars: '..lenth + else return {tick=game.tick,commands=#global.exp_core.sudo.commands,temp_varibles=#global.exp_core.sudo.temp_varibles} end end -- stops all sudo commands function clear_sudo() - global.sudo = {commands={},temp_varibles={}} + global.exp_core.sudo = {commands={},temp_varibles={}} end --sudo main loop Event.register(defines.events.on_tick, function(event) --used with debug command will stop debuging once atleast one message is send to file and there are no commands in sudo - if global.debug.state and global.debug.triggered and #global.sudo.commands == 0 then debug_write({'END'},game.tick) global.debug.state = global.debug.focre end + if global.exp_core.debug.state and global.exp_core.debug.triggered and #global.exp_core.sudo.commands == 0 then debug_write({'END'},game.tick) global.exp_core.debug.state = global.exp_core.debug.focre end -- runs the commands in sudo debug_write({'SUDO'},get_sudo_info(true),true) - if game.tick % ticks_per_iteration == 0 and global.sudo.commands and #global.sudo.commands > 0 then + if game.tick % ticks_per_iteration == 0 and global.exp_core.sudo.commands and #global.exp_core.sudo.commands > 0 then local length = nil - if #global.sudo.commands > commands_per_iteration then length = commands_per_iteration else length = #global.sudo.commands end + if #global.exp_core.sudo.commands > commands_per_iteration then length = commands_per_iteration else length = #global.exp_core.sudo.commands end -- runs the right number of commands as set for i = 1,length do - local command=table.remove(global.sudo.commands,1) + local command=table.remove(global.exp_core.sudo.commands,1) if command and command.fun and type(command.fun) == 'function' then local args = {} -- retrives and temp varibles for n,value in pairs(command.args) do - if type(value) == 'table' and not value.__self and value.sudo and value.sudo == 'sudo-temp-var' then args[n] = {data=global.sudo.temp_varibles[value.name].data,temp_var_name=value.name} + if type(value) == 'table' and not value.__self and value.sudo and value.sudo == 'sudo-temp-var' then args[n] = {data=global.exp_core.sudo.temp_varibles[value.name].data,temp_var_name=value.name} else args[n] = value end end -- makes new temp value and runs command @@ -110,10 +110,10 @@ Event.register(defines.events.on_tick, function(event) end end -- removes old temp varibles - for name,data in pairs(global.sudo.temp_varibles) do - if data.remove_time <= game.tick then global.sudo.temp_varibles[name] = nil end + for name,data in pairs(global.exp_core.sudo.temp_varibles) do + if data.remove_time <= game.tick then global.exp_core.sudo.temp_varibles[name] = nil end end end) -Event.register(-1,function() global.sudo = {commands={},temp_varibles={}} end) +Event.register(Event.soft_init,function() global.exp_core.sudo = {commands={},temp_varibles={}} end) --Please Only Edit Above This Line----------------------------------------------------------- return credits \ No newline at end of file diff --git a/locale/ExpGaming-Core/GUI/ExpGaming - Center Gui.lua b/locale/ExpGaming-Core/GUI/ExpGaming - Center Gui.lua index fe1894b5..67349d0a 100644 --- a/locale/ExpGaming-Core/GUI/ExpGaming - Center Gui.lua +++ b/locale/ExpGaming-Core/GUI/ExpGaming - Center Gui.lua @@ -51,7 +51,7 @@ function draw_frame.center(player,element) local tab_bar_scroll = frame.add{type = "scroll-pane", name= "tab_bar_scroll", vertical_scroll_policy="never", horizontal_scroll_policy="always"} local tab_bar = tab_bar_scroll.add{type='flow',direction='horizontal',name='tab_bar'} local tab = frame.add{type = "scroll-pane", name= "tab", vertical_scroll_policy="auto", horizontal_scroll_policy="never"} - for n,t in pairs(frame_data.tabs) do if rank_allowed(get_rank(player),t.name..'_tab') then debug_write({'GUI','CENTER','ADD'},t.name) ExpGui.add_input.draw_button(tab_bar,t.name) end end + for n,t in pairs(frame_data.tabs) do if ranking.rank_allowed(ranking.get_player_rank(player),t.name..'_tab') then debug_write({'GUI','CENTER','ADD'},t.name) ExpGui.add_input.draw_button(tab_bar,t.name) end end draw_frame.tab(player,tab_bar[frame_data.tabs[1].name]) ExpGui.add_input.draw_button(tab_bar,'close_center') tab.style.minimal_height = 300 diff --git a/locale/ExpGaming-Core/GUI/ExpGaming - Inputs.lua b/locale/ExpGaming-Core/GUI/ExpGaming - Inputs.lua index 88ddc47d..86dd1bb4 100644 --- a/locale/ExpGaming-Core/GUI/ExpGaming - Inputs.lua +++ b/locale/ExpGaming-Core/GUI/ExpGaming - Inputs.lua @@ -68,7 +68,7 @@ Event.register(defines.events.on_gui_click, function(event) if event.element.type == 'button' or event.element.type == 'sprite-button' then for _,button in pairs(inputs.buttons) do if button.name == event.element.name then - if button.event then button.event(player,event.element) else rank_print('Button without Function '..button.name,'Mod') end break + if button.event then button.event(player,event.element) else ranking.rank_print('Button without Function '..button.name,'Mod') end break end end end diff --git a/locale/ExpGaming-Core/GUI/ExpGaming - Player Table.lua b/locale/ExpGaming-Core/GUI/ExpGaming - Player Table.lua index 3920ec00..06bf62fc 100644 --- a/locale/ExpGaming-Core/GUI/ExpGaming - Player Table.lua +++ b/locale/ExpGaming-Core/GUI/ExpGaming - Player Table.lua @@ -29,7 +29,7 @@ player_table_functions.filters = { {name='online',is_text=false,test=function(player) return player.connected end}, {name='offline',is_text=false,test=function(player) return not player.connected end}, {name='online_time',is_text=true,test=function(player,input) if input and tonumber(input) and tonumber(input) < tick_to_min(player.online_time) then return true elseif not input or not tonumber(input) then return true end end}, - {name='rank',is_text=true,test=function(player,input) if input and string_to_rank(input) and get_rank(player).power <= string_to_rank(input).power then return true elseif not input or not string_to_rank(input) then return true end end} + {name='rank',is_text=true,test=function(player,input) if input and ranking.string_to_rank(input) and ranking.get_player_rank(player).power <= ranking.string_to_rank(input).power then return true elseif not input or not ranking.string_to_rank(input) then return true end end} } --set up all the text inputs for _,filter in pairs(player_table_functions.filters) do @@ -70,15 +70,15 @@ function player_table_functions.player_match(player,filter,input) end --used by script on filter texts function player_table_functions.redraw(player,element) - local frame = global.current_filters[player.index][2] - local filters = global.current_filters[player.index][1] + local frame = global.exp_core.current_filters[player.index][2] + local filters = global.exp_core.current_filters[player.index][1] player_table_functions.draw(player,frame,filters,element.parent.parent) end --used to draw the player table with filter that you want --filter = {{'is_admin',true},{'offline',true},{'player_name'}} ; if the length is 2 then it will not attempt to get a user input function player_table_functions.draw(player,frame,filters,input_location) debug_write({'GUI','PLAYER-TABLE','START'},player.name) - global.current_filters[player.index] = {filters,frame} + global.exp_core.current_filters[player.index] = {filters,frame} --setup the table if frame.player_table then frame.player_table.destroy() end player_table = frame.add{name='player_table', type="table", colspan=5} @@ -116,11 +116,11 @@ function player_table_functions.draw(player,frame,filters,input_location) then player_table.add{name=p.name.."status", type="label", caption="Online"} else player_table.add{name=p.name.."s", type="label", caption="Offline"} end player_table.add{name=p.name.."online_time", type="label", caption=tick_to_display_format(p.online_time)} - player_table.add{name=p.name.."rank", type="label", caption=get_rank(p).short_hand} + player_table.add{name=p.name.."rank", type="label", caption=ranking.get_player_rank(p).short_hand} end end end -Event.register(-1,function() global.current_filters = {} end) +Event.register(Event.soft_init,function() global.exp_core.current_filters = {} end) --Please Only Edit Above This Line----------------------------------------------------------- return credits \ No newline at end of file diff --git a/locale/ExpGaming-Core/GUI/ExpGaming - Toolbar.lua b/locale/ExpGaming-Core/GUI/ExpGaming - Toolbar.lua index be0553ad..dde98f2f 100644 --- a/locale/ExpGaming-Core/GUI/ExpGaming - Toolbar.lua +++ b/locale/ExpGaming-Core/GUI/ExpGaming - Toolbar.lua @@ -32,8 +32,8 @@ function toolbar.draw(player) local toolbar_frame = mod_gui.get_button_flow(player) toolbar_frame.clear() for _,button in pairs(toolbar.buttons) do - local rank = get_rank(player) - if rank_allowed(get_rank(player),button.name) then + local rank = ranking.get_player_rank(player) + if ranking.rank_allowed(ranking.get_player_rank(player),button.name) then debug_write({'GUI','TOOLBAR','ADD'},button.name) ExpGui.add_input.draw_button(toolbar_frame,button.name) end diff --git a/locale/ExpGaming-Core/file-header.lua b/locale/ExpGaming-Core/file-header.lua index 4d95dfbf..c39959fa 100644 --- a/locale/ExpGaming-Core/file-header.lua +++ b/locale/ExpGaming-Core/file-header.lua @@ -20,7 +20,6 @@ local function credit_loop(reg) for _,cred in pairs(reg) do table.insert(credits --Please Only Edit Below This Line----------------------------------------------------------- --As this is the core file, the order in which the files are loaded does matter. Do not change! credit_loop(require("ExpGaming - Lib")) -credit_loop(require("ExpGaming - Rank Table")) credit_loop(require("ExpGaming - Rank Control")) credit_loop(require("GUI/file-header")) credit_loop(require("ExpGaming - Command Maker")) diff --git a/locale/en/exp_core.cfg b/locale/en/exp_core.cfg new file mode 100644 index 00000000..9b397a3e --- /dev/null +++ b/locale/en/exp_core.cfg @@ -0,0 +1,6 @@ +[ranking] +all-rank-print=\[Everyone\]: __1__ +rank-up=__1__ was promoted to __2__ by __3__ +rank-down=__1__ was demoted to __2__ by __3__ +rank-given=You have been given the __1__ Rank! +tag-reset=Your Tag was reset due to a Rank change \ No newline at end of file