Anthr4x292

MindBlast Server Client Code: Admin abuse control panel

Feb 11th, 2012
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.79 KB | None | 0 0
  1. include( "admin_buttons.lua" )
  2.  
  3. local PANEL = {}
  4.  
  5. /*---------------------------------------------------------
  6.    Name: PerformLayout
  7. ---------------------------------------------------------*/
  8. function PANEL:Init()
  9.  
  10.     self.InfoLabels = {}
  11.     self.InfoLabels[ 1 ] = {}
  12.     self.InfoLabels[ 2 ] = {}
  13.    
  14.     self.btnKick = vgui.Create( "PlayerKickButton", self )
  15.     self.btnKick:SetToolTip("Kicks this player.")
  16.     self.btnBan = vgui.Create( "PlayerBanButton", self )
  17.     self.btnBan:SetToolTip("Bans this player. Use the scroller to set the time. Enter reason in dialog.")
  18.     self.btnSpectate = vgui.Create( "PlayerSpectateButton", self )
  19.     self.btnSpectate:SetToolTip("Spectates this player.")
  20.     self.btnBlacklist = vgui.Create( "PlayerBlacklistButton", self )
  21.     self.btnBlacklist:SetToolTip("Blacklists the player from his current job. Use scroller to change duration.")
  22.     self.btnUnBlacklist = vgui.Create( "PlayerUnBlacklistButton", self )
  23.     self.btnUnBlacklist:SetToolTip( "Click me to Unblacklist a player :)" )
  24.     self.btnRename = vgui.Create( "PlayerForceRenameButton", self )
  25.     self.btnRename:SetToolTip("Force the player to rename this character.")
  26.     self.btnSlay = vgui.Create( "PlayerSlayButton", self )
  27.     self.btnSlay:SetToolTip("Kills and respawns this person,")
  28.     self.btnGoto    = vgui.Create( "PlayerGoto", self )
  29.     self.btnGoto:SetToolTip("Teleport to the player. Use noclip if you get errors.")
  30.     self.btnBring   = vgui.Create( "PlayerBring", self )
  31.     self.btnBring:SetToolTip("Brings the player to you.")
  32.    
  33.     self.btnPBan = vgui.Create( "PlayerPermBanButton", self )
  34.     self.btnPBan:SetToolTip("Perma-bans this player.")
  35.     self.btnDemote = vgui.Create("PlayerDemote", self)
  36.     self.btnDemote:SetToolTip("Demotes the player from the current job.")
  37.    
  38.     self.scrollerTime = vgui.Create( "DNumSlider", self )
  39.     self.scrollerTime:SetDecimals(0)
  40.     self.scrollerTime:SetValue(24)
  41.     self.scrollerTime:SetMin(0)
  42.     self.scrollerTime:SetMax(720)
  43.     self.scrollerTime:SetText("Punishment Time ( Hours )")
  44. end
  45.  
  46. /*---------------------------------------------------------
  47.    Name: PerformLayout
  48. ---------------------------------------------------------*/
  49. function PANEL:SetInfo( column, k, v )
  50.  
  51.     if ( !v or v == "" ) then v = "N/A" end
  52.  
  53.     if ( !self.InfoLabels[ column ][ k ] ) then
  54.    
  55.         self.InfoLabels[ column ][ k ] = {}
  56.         self.InfoLabels[ column ][ k ].Key  = vgui.Create( "Label", self )
  57.         self.InfoLabels[ column ][ k ].Value    = vgui.Create( "Label", self )
  58.         self.InfoLabels[ column ][ k ].Key:SetText( k )
  59.         self:InvalidateLayout()
  60.    
  61.     end
  62.    
  63.     self.InfoLabels[ column ][ k ].Value:SetText( v )
  64.     return true
  65.  
  66. end
  67.  
  68.  
  69. /*---------------------------------------------------------
  70.    Name: UpdatePlayerData
  71. ---------------------------------------------------------*/
  72. function PANEL:SetPlayer( ply )
  73.  
  74.     self.Player = ply
  75.     self:UpdatePlayerData()
  76.  
  77. end
  78.  
  79. /*---------------------------------------------------------
  80.    Name: UpdatePlayerData
  81. ---------------------------------------------------------*/
  82. local IDsToClass = {}
  83. IDsToClass[TEAM_CITIZEN] = "Citizen"
  84. IDsToClass[TEAM_POLICE] = "Police Officer"
  85. IDsToClass[TEAM_SECRET_SERVICE] = "SS Agent"
  86. IDsToClass[TEAM_SWAT] = "SWAT Officer"
  87. IDsToClass[TEAM_MAYOR] = "Mayor"
  88. IDsToClass[TEAM_FIREMAN] = "Fireman"
  89. IDsToClass[TEAM_MEDIC] = "Medic"
  90. IDsToClass[TEAM_DISPATCHER] = "Dispatch"
  91. IDsToClass[TEAM_ROADSERVICE] = "Road Crew"
  92.  
  93. function PANEL:UpdatePlayerData()
  94.  
  95.     if (!self.Player) then return end
  96.     if ( !self.Player:IsValid() ) then return end
  97.    
  98.     self:SetInfo( 1, "SteamID:", self.Player:SteamID())
  99.     self:SetInfo( 1, "UniqueID:", self.Player:UniqueID() )
  100.     self:SetInfo( 1, "Steam Name:", self.Player:Nick() )
  101.     self:SetInfo( 1, "RP Name:", self.Player:GetRPName() )
  102.    
  103.     if (self.Player:Team() and IDsToClass[self.Player:Team()]) then
  104.         self:SetInfo(1, "Class: ", IDsToClass[self.Player:Team()])
  105.     else
  106.         self:SetInfo(1, "Class: ", "Unknown Class")
  107.     end
  108.    
  109.     self:InvalidateLayout()
  110.  
  111. end
  112.  
  113. /*---------------------------------------------------------
  114.    Name: PerformLayout
  115. ---------------------------------------------------------*/
  116. function PANEL:ApplySchemeSettings()
  117.  
  118.     for _k, column in pairs( self.InfoLabels ) do
  119.  
  120.         for k, v in pairs( column ) do
  121.        
  122.             v.Key:SetFGColor( 0, 0, 0, 100 )
  123.             v.Value:SetFGColor( 0, 70, 0, 200 )
  124.        
  125.         end
  126.    
  127.     end
  128.  
  129. end
  130.  
  131. /*---------------------------------------------------------
  132.    Name: PerformLayout
  133. ---------------------------------------------------------*/
  134. function PANEL:Think()
  135.     if ( self.PlayerUpdate and self.PlayerUpdate > CurTime() ) then return end
  136.     self.PlayerUpdate = CurTime() + 0.25
  137.    
  138.     self:UpdatePlayerData()
  139.    
  140.     self.scrollerTime:SetText("Punishment Time ( Hours 0 = Perm ) - " .. (self.scrollerTime:GetValue() / 24) .. " Days")
  141. end
  142.  
  143. /*---------------------------------------------------------
  144.    Name: PerformLayout
  145. ---------------------------------------------------------*/
  146. function PANEL:PerformLayout() 
  147.     local x = 5
  148.  
  149.     for colnum, column in pairs( self.InfoLabels ) do
  150.    
  151.         local y = 0
  152.         local RightMost = 0
  153.    
  154.         for k, v in pairs( column ) do
  155.    
  156.             v.Key:SetPos( x, y )
  157.             v.Key:SizeToContents()
  158.            
  159.             v.Value:SetPos( x + 70 , y )
  160.             v.Value:SizeToContents()
  161.            
  162.             y = y + v.Key:GetTall() + 2
  163.            
  164.             RightMost = math.max( RightMost, v.Value.x + v.Value:GetWide() )
  165.        
  166.         end
  167.        
  168.         //x = RightMost + 10
  169.         x = x + 300
  170.    
  171.     end
  172.    
  173.     if ( !self.Player or !LocalPlayer():IsAdmin() ) then
  174.    
  175.         self.btnKick:SetVisible( false )
  176.         self.btnBan:SetVisible( false )
  177.         self.btnPBan:SetVisible( false )
  178.         self.btnSpectate:SetVisible( false )
  179.         self.btnBlacklist:SetVisible( false )
  180.         self.btnUnBlacklist:SetVisible( false )
  181.         self.btnRename:SetVisible( false )
  182.         self.btnGoto:SetVisible( false )
  183.         self.btnDemote:SetVisible( false )
  184.         --self.btnSrsBl:SetVisible(false)
  185.         self.btnBring:SetVisible( false )
  186.     else
  187.    
  188.         self.btnKick:SetVisible( true )
  189.         self.btnBan:SetVisible( true )
  190.         self.btnSpectate:SetVisible( true )
  191.         self.btnBlacklist:SetVisible( true )
  192.         self.btnUnBlacklist:SetVisible( true )
  193.         self.btnRename:SetVisible( true )
  194.         self.btnGoto:SetVisible( true )
  195.         self.btnDemote:SetVisible( true )
  196.         --self.btnSrsBl:SetVisible(true)
  197.         self.btnBring:SetVisible( true )
  198.        
  199.         local sizeOButton = 60
  200.        
  201.         self.btnGoto:SetPos( self:GetWide() - (sizeOButton + 4) * 9, 80 )
  202.         self.btnGoto:SetSize( sizeOButton, 20 )
  203.        
  204.         self.btnBring:SetPos( self:GetWide() - (sizeOButton + 4) * 8, 80 )
  205.         self.btnBring:SetSize( sizeOButton, 20 )
  206.        
  207.         self.btnSlay:SetPos( self:GetWide() - (sizeOButton + 4) * 7, 80 )
  208.         self.btnSlay:SetSize( sizeOButton, 20 )
  209.        
  210.         self.btnRename:SetPos( self:GetWide() - (sizeOButton + 4) * 6, 80 )
  211.         self.btnRename:SetSize( sizeOButton, 20 )
  212.        
  213.         self.btnBlacklist:SetPos( self:GetWide() - (sizeOButton + 4) * 5, 80 )
  214.         self.btnBlacklist:SetSize( sizeOButton, 20 )
  215.  
  216.         self.btnUnBlacklist:SetPos( self:GetWide() - (sizeOButton + 4) * 4, 80 )
  217.         self.btnUnBlacklist:SetSize( sizeOButton, 20 )
  218.    
  219.         self.btnSpectate:SetPos( self:GetWide() - (sizeOButton + 4) * 3, 80 )
  220.         self.btnSpectate:SetSize( sizeOButton, 20 )
  221.    
  222.         self.btnKick:SetPos( self:GetWide() - (sizeOButton + 4) * 2, 80 )
  223.         self.btnKick:SetSize( sizeOButton, 20 )
  224.  
  225.         self.btnBan:SetPos( self:GetWide() - (sizeOButton + 4) * 1, 80 )
  226.         self.btnBan:SetSize( sizeOButton, 20 )
  227.        
  228.         if (LocalPlayer():IsSuperAdmin()) then
  229.             self.btnPBan:SetPos( self:GetWide() - (sizeOButton + 4) * 1, 55 )
  230.             self.btnPBan:SetSize( sizeOButton, 20 )
  231.             self.btnPBan:SetVisible( true )
  232.         else
  233.             self.btnPBan:SetVisible( false )
  234.         end
  235.        
  236.         self.btnDemote:SetPos( self:GetWide() - (sizeOButton + 4) * 2, 55 )
  237.         self.btnDemote:SetSize( sizeOButton, 20 )
  238.     end
  239.    
  240.     self.scrollerTime:SetPos(self:GetWide() - 305, 5)
  241.     self.scrollerTime:SetSize(300, 30)
  242. end
  243.  
  244. function PANEL:Paint()
  245.     return true
  246. end
  247.  
  248. vgui.Register( "ScorePlayerInfoCard", PANEL, "Panel" )
Advertisement
Add Comment
Please, Sign In to add comment