Replced admin player list with commands

This commit is contained in:
Cooldude2606
2017-05-28 23:30:59 +01:00
parent cd7b64cb1a
commit 9a92d07e19

View File

@@ -27,7 +27,7 @@ defaults = {
Developer={'Cooldude2606'}, Developer={'Cooldude2606'},
Admin={'eissturm','PropangasEddy','Smou'}, Admin={'eissturm','PropangasEddy','Smou'},
Mod={'Alanore','Aquaday','cafeslacker','CrashKonijn','Drahc_pro','FlipHalfling90','freek16','Hobbitkicker','hud','Koroto','Matthias','MeDDish','Mindxt20','MottledPetrel','Mr_Happy_212','NextIdea','Phoenix27833','samy115','Sand3r205','scarbvis','steentje77','tophatgaming123'}, Mod={'Alanore','Aquaday','cafeslacker','CrashKonijn','Drahc_pro','FlipHalfling90','freek16','Hobbitkicker','hud','Koroto','Matthias','MeDDish','Mindxt20','MottledPetrel','Mr_Happy_212','NextIdea','Phoenix27833','samy115','Sand3r205','scarbvis','steentje77','tophatgaming123'},
Donator={'VR29','M74132'}, Donator={'VR29','M74132','Splicer'},
Member={}, Member={},
Regular={}, Regular={},
Guest={}, Guest={},
@@ -358,11 +358,9 @@ script.on_event(defines.events.on_gui_text_changed, function(event)
if event.element.parent.name == 'filterTable' then if event.element.parent.name == 'filterTable' then
local frame = event.element local frame = event.element
filters = getPlayerTableFilters(frame) filters = getPlayerTableFilters(frame)
local commands = false
local select = false local select = false
if frame.parent.parent.parent.name == 'Admin' and not frame.parent.sel_input then commands = true filters.online = true end
if frame.parent.parent.parent.name == 'Admin' and frame.parent.sel_input then select = true filters.powerOver = true end if frame.parent.parent.parent.name == 'Admin' and frame.parent.sel_input then select = true filters.powerOver = true end
drawPlayerTable(player, frame.parent.parent, commands, select, filters) drawPlayerTable(player, frame.parent.parent, select, filters)
end end
end) end)
---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
@@ -447,32 +445,7 @@ function getPlayerTableFilters(frame)
return filters return filters
end end
addButton('goto', function drawPlayerTable(player, frame, select,filters)
function(player,frame)
local p = game.players[frame.parent.name]
player.teleport(game.surfaces[p.surface.name].find_non_colliding_position("player", p.position, 32, 1))
end)
addButton('bring',
function(player,frame)
local p = game.players[frame.parent.name]
p.teleport(game.surfaces[player.surface.name].find_non_colliding_position("player", player.position, 32, 1))
end)
addButton('jail',function(player,frame)
local p=game.players[frame.parent.name]
if p.permission_group.name ~= 'Jail' then giveRank(p,'Jail',player)
else revertRank(p,player) end
end)
addButton('kill',
function(player,frame)
local p = game.players[frame.parent.name]
if p.character then p.character.die() end
end)
addButton('revert',
function(player,frame)
local p = game.players[frame.parent.name]
revertRank(p,player)
end)
function drawPlayerTable(player, frame, commands, select,filters)
--setup the table --setup the table
if frame.playerTable then frame.playerTable.destroy() end if frame.playerTable then frame.playerTable.destroy() end
pTable = frame.add{name='playerTable', type="table", colspan=5} pTable = frame.add{name='playerTable', type="table", colspan=5}
@@ -481,10 +454,8 @@ function drawPlayerTable(player, frame, commands, select,filters)
pTable.style.horizontal_spacing = 10 pTable.style.horizontal_spacing = 10
pTable.add{name="id", type="label", caption="Id"} pTable.add{name="id", type="label", caption="Id"}
pTable.add{name="Pname", type="label", caption="Name"} pTable.add{name="Pname", type="label", caption="Name"}
if commands==false and select ==false then pTable.add{name="status", type="label", caption="Status"} end
pTable.add{name="online_time", type="label", caption="Online Time"} pTable.add{name="online_time", type="label", caption="Online Time"}
pTable.add{name="rank", type="label", caption="Rank"} pTable.add{name="rank", type="label", caption="Rank"}
if commands then pTable.add{name="commands", type="label", caption="Commands"} end
if select then pTable.add{name="select_label", type="label", caption="Selection"} end if select then pTable.add{name="select_label", type="label", caption="Selection"} end
--filter checking --filter checking
for i, p in pairs(game.players) do for i, p in pairs(game.players) do
@@ -502,25 +473,15 @@ function drawPlayerTable(player, frame, commands, select,filters)
pTable.add{name=i .. "id", type="label", caption=i} pTable.add{name=i .. "id", type="label", caption=i}
pTable.add{name=p.name..'_name', type="label", caption=p.name} pTable.add{name=p.name..'_name', type="label", caption=p.name}
--status --status
if not commands and not select then if not select then
if p.connected == true if p.connected == true
then pTable.add{name=p.name .. "Status", type="label", caption="ONLINE"} then pTable.add{name=p.name .. "Status", type="label", caption="ONLINE"}
else pTable.add{name=p.name .. "Status", type="label", caption="OFFLINE"} end end else pTable.add{name=p.name .. "Status", type="label", caption="OFFLINE"} end end
--time and rank --time and rank
pTable.add{name=p.name .. "Online_Time", type="label", caption=(ticktohour(p.online_time)..'H '..(ticktominutes(p.online_time)-60*ticktohour(p.online_time))..'M')} pTable.add{name=p.name .. "Online_Time", type="label", caption=(ticktohour(p.online_time)..'H '..(ticktominutes(p.online_time)-60*ticktohour(p.online_time))..'M')}
pTable.add{name=p.name .. "Rank", type="label", caption=getRank(p).shortHand} pTable.add{name=p.name .. "Rank", type="label", caption=getRank(p).shortHand}
--commands
if commands then
pTable.add{name=p.name, type="flow"}
drawButton(pTable[p.name],'goto','Tp','Goto to the players location')
drawButton(pTable[p.name],'bring','Br','Bring player player to your location')
if getRank(p).power > getRank(player).power then
drawButton(pTable[p.name],'jail','Ja','Jail/Unjail player')
drawButton(pTable[p.name],'revert','Re','Set A players rank to their forma one')
drawButton(pTable[p.name],'kill','Ki','Kill this player')
end
--player slecction --player slecction
elseif select then if select then
pTable.add{name=p.name, type="flow"} pTable.add{name=p.name, type="flow"}
local state = false local state = false
for _,name in pairs(global.selected[player.index]) do if name == p.name then state = true break end end for _,name in pairs(global.selected[player.index]) do if name == p.name then state = true break end end
@@ -559,28 +520,66 @@ function commandInit()
end) end)
commands.add_command('autoMessage','Sends the auto message to all players',function(event) autoMessage() end) commands.add_command('autoMessage','Sends the auto message to all players',function(event) autoMessage() end)
commands.add_command('onlineTime','<player_name> Get a players online time',function(event) commands.add_command('onlineTime','<player_name> Get a players online time',function(event)
if event.parameter then else game.players[event.player_index].print('Invaild Input, /onlineTime <player_name>') return end if event.parameter then else game.players[event.player_index].print('Invaild Input, /onlineTime <player>') return end
local byPlayer = game.players[event.player_index] local byPlayer = game.players[event.player_index]
local player = game.players[event.parameter] if getRank(byPlayer).power > 4 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
if player then byPlayer.print(ticktohour(player.online_time)..'H '..(ticktominutes(player.online_time)-60*ticktohour(player.online_time))..'M') local args = {} for word in event.parameter:gmatch('%w+') do table.insert(args,word) end
else byPlayer.print('Invaild Player Name, input is case senitive') end if #args == 1 then else byPlayer.print('Invaild Input, /onlineTime <player> ') return end
local player = game.players[args[1]] if player then else byPlayer.print('Invaild Player Name,'..args[1]..', input is case senitive') return end
byPlayer.print(ticktohour(player.online_time)..'H '..(ticktominutes(player.online_time)-60*ticktohour(player.online_time))..'M')
end) end)
commands.add_command('reviveEntitys','<range> Reives all entitys in this range. Admins can use all as range',function(event) commands.add_command('reviveEntitys','<range> Reives all entitys in this range. Admins can use all as range',function(event)
if event.parameter then else game.players[event.player_index].print('Invaild Input, /reviveEntitys <range>') return end if event.parameter then else game.players[event.player_index].print('Invaild Input, /onlineTime <player>') return end
local byPlayer = game.players[event.player_index] local byPlayer = game.players[event.player_index]
local range = tonumber(event.parameter) local pos = byPlayer.position if pos then else byPlayer.print('Invaild Location, what did you do') return end
local pos = byPlayer.position if getRank(byPlayer).power > 4 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
if type(range) == 'number' and range < 50 and range > 0 then local args = {} for word in event.parameter:gmatch('%w+') do table.insert(args,word) end
if getRank(byPlayer).power < 3 then if #args == 1 then else byPlayer.print('Invaild Input, /onlineTime <player> ') return end
for key, entity in pairs(game.surfaces[1].find_entities_filtered({area={{pos.x-range,pos.y-range},{pos.x+range,pos.y+range}},type = "entity-ghost"})) do local range = tonumber(args[1]) if range or args[1] == 'all' then else byPlayer.print('Invaild Range, must be number below 50') return end
entity.revive() if args[1] == 'all' then
end if getRank(byPlayer).power > 1 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
else byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') end for key, entity in pairs(game.surfaces[1].find_entities_filtered({type = "entity-ghost"})) do entity.revive() return end
elseif event.parameter == 'all' then elseif range < 50 and range > 0 then else byPlayer.print('Invaild Range, must be number below 50') return end
if getRank(byPlayer).power < 2 then for key, entity in pairs(game.surfaces[1].find_entities_filtered({area={{pos.x-range,pos.y-range},{pos.x+range,pos.y+range}},type = "entity-ghost"})) do entity.revive()
for key, entity in pairs(game.surfaces[1].find_entities_filtered({type = "entity-ghost"})) do entity.revive() end end
else byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') end end)
else byPlayer.print('Invaild Range, must be number below 50') end commands.add_command('tp','<player> <to_player>, teleports one player to another',function(event)
if event.parameter then else game.players[event.player_index].print('Invaild Input, /tp <player> <to_player>') return end
local byPlayer = game.players[event.player_index]
if getRank(byPlayer).power > 4 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
local args = {} for word in event.parameter:gmatch('%w+') do table.insert(args,word) end
if #args == 2 then else byPlayer.print('Invaild Input, /tp <player> <to_player>') return end
local p1 = game.players[args[1]] if p1 then else byPlayer.print('Invaild Player Name,'..args[1]..', input is case senitive') return end
local p2 = game.players[args[2]] if p2 then else byPlayer.print('Invaild Player Name,'..args[2]..', input is case senitive') return end
if p1 == p2 then byPlayer.print('Invaild Players, must be two diffrent players') end
if p1.connected and p2.connected then else byPlayer.print('Invaild Player, player is not online') return end
if getRank(byPlayer).power > getRank(p1).power then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
p1.teleport(game.surfaces[p2.surface.name].find_non_colliding_position("player", p2.position, 32, 1))
end)
commands.add_command('kill','<player>, if no player stated then you kill your self',function(event)
if event.parameter then
local byPlayer = game.players[event.player_index]
if getRank(byPlayer).power > 4 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
local args = {} for word in event.parameter:gmatch('%w+') do table.insert(args,word) end
if #args == 1 then else byPlayer.print('Invaild Input, /kill <player> ') return end
local player = game.players[args[1]] if player then else byPlayer.print('Invaild Player Name,'..args[1]..', input is case senitive') return end
if player.connected then else byPlayer.print('Invaild Player, player is not online') return end
if player.character then player.character.die() else byPlayer.print('Invaild Player, their are already dead') return end
else
local byPlayer = game.players[event.player_index]
if byPlayer.character then byPlayer.character.die() else byPlayer.print('Invaild Player, you are already dead') return end
end
end)
commands.add_command('jail','<player>, jail the player disallowing them to move',function(event)
if event.parameter then else game.players[event.player_index].print('Invaild Input, /jail <player>') return end
local byPlayer = game.players[event.player_index]
if getRank(byPlayer).power > 4 then byPlayer.print('401 - Unauthorized: Access is denied due to invalid credentials') return end
local args = {} for word in event.parameter:gmatch('%w+') do table.insert(args,word) end
if #args == 1 then else byPlayer.print('Invaild Input, /jail <player> ') return end
local player = game.players[args[1]] if player then else byPlayer.print('Invaild Player Name,'..args[1]..', input is case senitive') return end
if player.connected then else byPlayer.print('Invaild Player, player is not online') return end
if player == byPlayer then byPlayer.print('Invaild Player, you can\' jail yourself') return end
if player.permission_group.name ~= 'Jail' then giveRank(player,'Jail',byPlayer) else revertRank(player,byPlayer) end
end) end)
end end
---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
@@ -632,7 +631,7 @@ addTab('Readme','Admins','List of all the people who can ban you :P',
for i, line in pairs(admins) do for i, line in pairs(admins) do
frame.add{name=i, type="label", caption={"", line}, single_line=false} frame.add{name=i, type="label", caption={"", line}, single_line=false}
end end
drawPlayerTable(player, frame, false, false,{'admin'}) drawPlayerTable(player, frame, false,{'admin'})
end) end)
addTab('Readme','Players','List of all the people who have been on the server', addTab('Readme','Players','List of all the people who have been on the server',
function(player,frame) function(player,frame)
@@ -649,7 +648,7 @@ addTab('Readme','Players','List of all the people who have been on the server',
frame.filterTable.add{name='name_input',type='textfield'} frame.filterTable.add{name='name_input',type='textfield'}
frame.filterTable.add{name='status_input',type='textfield'} frame.filterTable.add{name='status_input',type='textfield'}
frame.filterTable.add{name='hours_input',type='textfield'} frame.filterTable.add{name='hours_input',type='textfield'}
drawPlayerTable(player, frame, false, false, {}) drawPlayerTable(player, frame, false, {})
end) end)
---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
---------------------------Admin Gui---------------------------------------------------- ---------------------------Admin Gui----------------------------------------------------
@@ -667,14 +666,14 @@ addButton('setRanks',
if getRank(player).power < getRank(p).power and rank.power > getRank(player).power then if getRank(player).power < getRank(p).power and rank.power > getRank(player).power then
giveRank(p,rank,player) giveRank(p,rank,player)
clearSelection(player) clearSelection(player)
drawPlayerTable(player, frame.parent.parent, false, true, {}) drawPlayerTable(player, frame.parent.parent, true, {})
else else
player.print('You can not edit '..p.name.."'s rank there rank is too high (or the rank you have slected is above you)") player.print('You can not edit '..p.name.."'s rank there rank is too high (or the rank you have slected is above you)")
end end
end end
end end
end) end)
addButton('clearSelection',function(player,frame) clearSelection(player) drawPlayerTable(player, frame.parent.parent, false, true, {}) end) addButton('clearSelection',function(player,frame) clearSelection(player) drawPlayerTable(player, frame.parent.parent, true, {}) end)
addTab('Admin', 'Commands', 'Random useful commands', addTab('Admin', 'Commands', 'Random useful commands',
function(player, frame) function(player, frame)
@@ -699,16 +698,7 @@ addTab('Admin','Edit Ranks', 'Edit the ranks of players below you',
frame.rank.rank_input.selected_index = 1 frame.rank.rank_input.selected_index = 1
drawButton(frame.rank,'setRanks','Set Ranks','Sets the rank of all selected players') drawButton(frame.rank,'setRanks','Set Ranks','Sets the rank of all selected players')
drawButton(frame.rank,'clearSelection','Clear Selection','Clears all currently selected players') drawButton(frame.rank,'clearSelection','Clear Selection','Clears all currently selected players')
drawPlayerTable(player, frame, false, true, {'lower'}) drawPlayerTable(player, frame, true, {'lower'})
end)
addTab('Admin', 'Player List', 'Send player message to all players',
function(player, frame)
frame.add{name='filterTable',type='table',colspan=2}
frame.filterTable.add{name='name_label',type='label',caption='Name'}
frame.filterTable.add{name='hours_label',type='label',caption='Online Time (minutes)'}
frame.filterTable.add{name='name_input',type='textfield'}
frame.filterTable.add{name='hours_input',type='textfield'}
drawPlayerTable(player, frame, true,false, {'online'})
end) end)
---------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------
---------------------------Admin+ Gui--------------------------------------------------- ---------------------------Admin+ Gui---------------------------------------------------