Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
22b297a
replace give admin button with permissions widget
brenodanyel Jun 9, 2021
2082231
fix warning message when change player's ACL
brenodanyel Jun 9, 2021
af5decb
refactor killmessages
brenodanyel Jun 25, 2021
1cea5ec
Delete aaa.js
brenodanyel Jun 25, 2021
6bc01eb
remove hex from names
brenodanyel Jun 25, 2021
a3a76e1
change default draw position
brenodanyel Jun 29, 2021
d343e43
fix logic error
brenodanyel Jun 29, 2021
940c9fb
add support to vehicle kills
brenodanyel Jun 29, 2021
946a38e
add detection to vehicle explosions even without taking damage from e…
brenodanyel Jun 29, 2021
124b058
Merge branch 'master' of https://github.com/iDannz1/mtasa-resources i…
brenodanyel Jun 29, 2021
bbe62ee
change design
brenodanyel Jul 4, 2021
2078cc8
Revert "Merge branch 'master' of https://github.com/iDannz1/mtasa-res…
brenodanyel Jul 4, 2021
c4e4ae4
Revert "Delete aaa.js"
brenodanyel Jul 4, 2021
eab9da6
Revert "refactor killmessages"
brenodanyel Jul 4, 2021
f377125
replace give admin button with permissions widget
brenodanyel Jun 9, 2021
3ec6a4a
fix warning message when change player's ACL
brenodanyel Jun 9, 2021
c66957d
change design
brenodanyel Jul 4, 2021
d7bc47b
Revert "Merge branch 'master' of https://github.com/iDannz1/mtasa-res…
brenodanyel Jul 4, 2021
67b3755
Revert "Delete aaa.js"
brenodanyel Jul 4, 2021
9b4451e
Revert "refactor killmessages"
brenodanyel Jul 4, 2021
1787ec5
Merge branch 'admin-replace-give-admin' of https://github.com/iDannz1…
brenodanyel Jul 4, 2021
3de44da
Revert "Revert "Merge branch 'master' of https://github.com/iDannz1/m…
brenodanyel Jul 4, 2021
1e87a32
Revert "Revert "Revert "Merge branch 'master' of https://github.com/i…
brenodanyel Jul 4, 2021
c60ff34
revert speedometer changes
brenodanyel Jul 4, 2021
a6d2297
revert unwanted changes
brenodanyel Jul 4, 2021
271ee18
fix typo
brenodanyel Jul 4, 2021
42ffecd
disable buttons if there is no item selected
brenodanyel Jul 4, 2021
5f8b070
fix window/label text not updating
brenodanyel Jul 16, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion [admin]/admin/client/gui/admin_acl.lua
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
aAclForm = nil
aAclData = {}

addEvent ( "aAdminACL", true )

function aManageACL ()
if ( aAclForm == nil ) then
aAclData["group_objects"] = {}
Expand Down Expand Up @@ -47,7 +49,6 @@ function aManageACL ()
aACLExit = guiCreateButton ( 0.75, 0.90, 0.27, 0.04, "Close", true, aAclForm )
aclDisplayOptions ( "", "" )

addEvent ( "aAdminACL", true )
addEventHandler ( "aAdminACL", localPlayer, aAdminACL )
addEventHandler ( "onClientGUIClick", aAclForm, aClientACLClick )
addEventHandler ( "onClientGUIDoubleClick", aAclForm, aClientACLDoubleClick )
Expand Down
17 changes: 7 additions & 10 deletions [admin]/admin/client/gui/admin_main.lua
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ function aAdminMenu ()

aTab1.Nick = guiCreateButton ( 0.71, 0.260, 0.13, 0.04, "Set Nick", true, aTab1.Tab )
aTab1.Shout = guiCreateButton ( 0.85, 0.260, 0.13, 0.04, "Shout!", true, aTab1.Tab, "shout" )
aTab1.Admin = guiCreateButton ( 0.71, 0.305, 0.27, 0.04, "Give admin rights", true, aTab1.Tab, "setgroup" )
aTab1.ManagePerms = guiCreateButton ( 0.71, 0.305, 0.27, 0.04, "Manage permissions", true, aTab1.Tab, "setgroup" )

local y = 0.03 -- Start y coord
local A = 0.045 -- Large line gap
Expand Down Expand Up @@ -538,11 +538,6 @@ function aAdminRefresh ()
guiSetText ( aTab1.Vehicle, "Vehicle: Foot" )
guiSetText ( aTab1.VehicleHealth, "Vehicle Health: 0%" )
end
if ( aPlayers[player]["admin"] ) then
guiSetText(aTab1.Admin, "Revoke admin rights")
else
guiSetText(aTab1.Admin, "Give admin rights")
end
return player
end
end
Expand Down Expand Up @@ -1041,9 +1036,12 @@ function aClientClick ( button )
elseif ( source == aTab1.VehicleBlow ) then triggerServerEvent ( "aVehicle", localPlayer, player, "blowvehicle" )
elseif ( source == aTab1.VehicleDestroy ) then triggerServerEvent ( "aVehicle", localPlayer, player, "destroyvehicle" )
elseif ( source == aTab1.VehicleCustomize ) then aVehicleCustomize ( player )
elseif ( source == aTab1.Admin ) then
if ( aPlayers[player]["admin"] ) then aMessageBox ( "warning", "Revoke admin rights from "..name.."?", "revokeAdmin", player )
else aMessageBox ( "warning", "Give admin rights to "..name.."?", "giveAdmin", player ) end
elseif ( source == aTab1.ManagePerms ) then
if (aPlayers[player]['accountname'] ~= 'guest') then
aPermissions.Show(player)
else
aMessageBox ( "error", "This player is not logged in!" )
end
elseif ( source == aTab1.ACModDetails ) then
aViewModdetails(player)
end
Expand Down Expand Up @@ -1290,7 +1288,6 @@ function aAdminReloadInfos()
guiSetText ( aTab1.ACModInfo, "Img Mods: N/A" )
guiSetText ( aTab1.Mute, "Mute" )
guiSetText ( aTab1.Freeze, "Freeze" )
guiSetText ( aTab1.Admin, "Give admin rights" )
guiSetText ( aTab1.Health, "Health: 0%" )
guiSetText ( aTab1.Armour, "Armour: 0%" )
guiSetText ( aTab1.Skin, "Skin: N/A" )
Expand Down
2 changes: 2 additions & 0 deletions [admin]/admin/client/gui/admin_messagebox.lua
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ function runMessageAction(action)
aSpectator.Close(false)
elseif (action == "deleteTeam") then
triggerServerEvent("aTeam", localPlayer, "destroyteam", varOne)
elseif (action == "updatePlayerACLGroup") then
aPermissions.PerformAction(varOne, varTwo, varThree)
end
end

Expand Down
137 changes: 137 additions & 0 deletions [admin]/admin/client/gui/admin_permissions.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
--[[**********************************
*
* Multi Theft Auto - Admin Panel
*
* client\gui\admin_permissions.lua
*
* Original File by lil_Toady
*
**************************************]]
aPermissions = {
Form = nil,
SelectedPlayer = nil,
}

addEvent('aPermissionsSync', true)
addEvent('aOnPermissionsChange', true)

function aPermissions.Show(player)
if (not aPermissions.Form) then
local x, y = guiGetScreenSize()
aPermissions.Form = guiCreateWindow(x / 2 - 200, y / 2 - 125, 400, 250, '', false)
guiSetAlpha(aPermissions.Form, 1)

aPermissions.LabelYourPerms = guiCreateLabel(0.03, 0.1, 0.35, 0.07, '', true, aPermissions.Form)
aPermissions.PlayerGroups = guiCreateGridList(0.03, 0.18, 0.35, 0.68, true, aPermissions.Form)
guiGridListAddColumn(aPermissions.PlayerGroups, "Group Name", 0.85)
aPermissions.RemoveGroup = guiCreateButton(0.39, 0.18, 0.075, 0.68, '>\n>\n>', true, aPermissions.Form)
guiSetEnabled(aPermissions.RemoveGroup, false)

aPermissions.LabelAllPerms = guiCreateLabel(0.62, 0.1, 0.35, 0.07, "Available groups:", true, aPermissions.Form)
aPermissions.AllGroups = guiCreateGridList(0.62, 0.18, 0.35, 0.68, true, aPermissions.Form)
guiGridListAddColumn(aPermissions.AllGroups, "Group Name", 0.85)
aPermissions.AddGroup = guiCreateButton(0.535, 0.18, 0.075, 0.68, '<\n<\n<', true, aPermissions.Form)
guiSetEnabled(aPermissions.AddGroup, false)

aPermissions.Update = guiCreateButton(0.03, 0.88, 0.435, 0.09, "Refresh", true, aPermissions.Form)
aPermissions.Hide = guiCreateButton(0.535, 0.88, 0.435, 0.09, "Close", true, aPermissions.Form)

addEventHandler('aPermissionsSync', localPlayer, aPermissions.onSync)
addEventHandler('aOnPermissionsChange', localPlayer, aPermissions.Refresh)
addEventHandler("onClientGUIClick", aPermissions.Form, aPermissions.onClick)

--Register With Admin Form
aRegister("PlayerPermissions", aPermissions.Form, aPermissions.Show, aPermissions.Close)
end
guiSetText(aPermissions.Form, ("Manage %s's permissions"):format(getPlayerName(player)))
guiSetText(aPermissions.LabelYourPerms, ("%s's groups:"):format(getPlayerName(player)))
aPermissions.SelectedPlayer = player
aPermissions.Refresh()
guiSetVisible(aPermissions.Form, true)
guiBringToFront(aPermissions.Form)
end

function aPermissions.onSync(targetPlayer, permissions)
if (targetPlayer == aPermissions.SelectedPlayer) then
guiGridListClear(aPermissions.PlayerGroups)
guiGridListClear(aPermissions.AllGroups)

for group, state in pairs(permissions) do
local gridlist = state and aPermissions.PlayerGroups or aPermissions.AllGroups
guiGridListAddRow(gridlist, group)
end
end
end

function aPermissions.Close(destroy)
if (destroy) then
if (aPermissions.Form) then
destroyElement(aPermissions.Form)
aPermissions.Form = nil
removeEventHandler('aPermissionsSync', localPlayer, aPermissions.onSync)
removeEventHandler('aOnPermissionsChange', localPlayer, aPermissions.Refresh)
end
else
guiSetVisible(aPermissions.Form, false)
end
aPermissions.SelectedPlayer = nil
end

function aPermissions.onClick(button)
if (button == 'left') then
if (source == aPermissions.Hide) then
aPermissions.Close()
elseif (source == aPermissions.Update) then
aPermissions.Refresh()
elseif (source == aPermissions.RemoveGroup) then
aPermissions.ConfirmChange(false)
elseif (source == aPermissions.AddGroup) then
aPermissions.ConfirmChange(true)
elseif (source == aPermissions.AllGroups) then
guiSetEnabled(aPermissions.AddGroup, guiGridListGetSelectedItem(aPermissions.AllGroups) > -1)
elseif (source == aPermissions.PlayerGroups) then
guiSetEnabled(aPermissions.RemoveGroup, guiGridListGetSelectedItem(aPermissions.PlayerGroups) > -1)
end
end
end

function aPermissions.ConfirmChange(add)
local player = aPermissions.SelectedPlayer

if (not isElement(player)) then
aPermissions.Close(false)
messageBox("Player not found!", MB_WARNING)
return
end

local gridlist = add and aPermissions.AllGroups or aPermissions.PlayerGroups

local selected = guiGridListGetSelectedItem(gridlist)

if (selected <= -1) then
return
end

local groupName = guiGridListGetItemText(gridlist, selected, 1)

local str = add and 'Are you sure you want to add "%s" to the "%s" group?' or 'Are you sure you want to remove "%s" from the "%s" group?'
str = str:format(getPlayerName(player), groupName)

return aMessageBox ( "question", str, "updatePlayerACLGroup", player, groupName, add)
end

function aPermissions.PerformAction(player, groupName, newState)
local playerAccount = player and aPlayers[player] and aPlayers[player]['accountname']
if playerAccount and (playerAccount ~= 'guest') then
triggerServerEvent('aAdmin', localPlayer, newState and 'acladd' or 'aclremove', 'object', groupName, 'user.'..playerAccount, true)
end
end

function aPermissions.Refresh()
local player = aPermissions.SelectedPlayer
if isElement(player) and aPermissions.PlayerGroups and aPermissions.AllGroups then
guiGridListClear(aPermissions.PlayerGroups)
guiGridListClear(aPermissions.AllGroups)
triggerServerEvent('aAdmin', localPlayer, "sync", "playeraclgroups", player)
end
end
1 change: 1 addition & 0 deletions [admin]/admin/meta.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
<script src="client/admin_ACL.lua" type="client" />
<script src="client/gui/admin_main.lua" type="client" />
<script src="client/gui/admin_performance.lua" type="client" />
<script src="client/gui/admin_permissions.lua" type="client" />
<script src="client/gui/admin_maps.lua" type="client" />
<script src="client/gui/admin_messages.lua" type="client" />
<script src="client/gui/admin_message.lua" type="client" />
Expand Down
25 changes: 24 additions & 1 deletion [admin]/admin/server/admin_server.lua
Original file line number Diff line number Diff line change
Expand Up @@ -681,6 +681,7 @@ addEventHandler ( "aAdmin", _root, function ( action, ... )
for id, acl in ipairs ( aclList() ) do
table.insert ( tableOut["acl"] ,aclGetName ( acl ) )
end
triggerClientEvent ( source, "aAdminACL", _root, type, tableOut )
elseif ( type == "aclobjects" ) then
local group = aclGetGroup ( tostring ( arg[2] ) )
if ( group ) then
Expand All @@ -691,6 +692,7 @@ addEventHandler ( "aAdmin", _root, function ( action, ... )
table.insert ( tableOut["acl"], aclGetName ( acl ) )
end
end
triggerClientEvent ( source, "aAdminACL", _root, type, tableOut )
elseif ( type == "aclrights" ) then
local acl = aclGet ( tostring ( arg[2] ) )
if ( acl ) then
Expand All @@ -700,8 +702,23 @@ addEventHandler ( "aAdmin", _root, function ( action, ... )
tableOut["rights"][name] = aclGetRight ( acl, name )
end
end
triggerClientEvent ( source, "aAdminACL", _root, type, tableOut )
elseif ( type == 'playeraclgroups') then
local player = arg[2]
if isElement(player) then
local ignoredGroups = {
['Everyone'] = true,
['autoGroup_irc'] = true,
}
for _, v in ipairs(aclGroupList()) do
local groupName = aclGroupGetName(v)
if (not ignoredGroups[groupName]) then
tableOut[groupName] = isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), v)
end
end
end
triggerClientEvent ( source, "aPermissionsSync", _root, player, tableOut )
end
triggerClientEvent ( source, "aAdminACL", _root, type, tableOut )
elseif ( action == "aclcreate" ) then
local name = arg[2]
if ( ( name ) and ( string.len ( name ) >= 1 ) ) then
Expand Down Expand Up @@ -759,6 +776,9 @@ addEventHandler ( "aAdmin", _root, function ( action, ... )
mdata2 = "Object '"..arg[3].."'"
outputServerLog ("ACL: "..getPlayerName(source).."["..getAccountName (getPlayerAccount(source)).."] ["..getPlayerSerial (source).."] ["..getPlayerIP (source).."] added "..object.." to ACL Group "..arg[2])
triggerEvent ( "aAdmin", source, "sync", "aclobjects", arg[2] )
if arg[4] then
triggerClientEvent ( source, "aOnPermissionsChange", source )
end
end
elseif ( arg[1] == "acl" ) then
local group = aclGetGroup ( arg[2] )
Expand Down Expand Up @@ -802,6 +822,9 @@ addEventHandler ( "aAdmin", _root, function ( action, ... )
mdata2 = "Object '"..arg[3].."'"
triggerEvent ( "aAdmin", source, "sync", "aclobjects", arg[2] )
outputServerLog ("ACL: "..getPlayerName(source).."["..getAccountName (getPlayerAccount(source)).."] ["..getPlayerSerial (source).."] ["..getPlayerIP (source).."] removed "..mdata2)
if arg[4] then
triggerClientEvent ( source, "aOnPermissionsChange", source )
end
end
elseif ( arg[1] == "acl" ) then
local group = aclGetGroup ( arg[2] )
Expand Down