Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.49 KB | None | 0 0
  1. AWarn.DefaultValues = { awarn_kick = 1, awarn_kick_threshold = 3, awarn_ban = 1, awarn_ban_threshold = 5, awarn_ban_time = 30, awarn_decay = 1, awarn_decay_rate = 30, awarn_reasonrequired = 1 }
  2.  
  3. local loc = AWarn.localizations.localLang
  4.  
  5.  
  6. util.AddNetworkString("SendPlayerWarns")
  7. util.AddNetworkString("SendOwnWarns")
  8. util.AddNetworkString("AWarnMenu")
  9. util.AddNetworkString("AWarnClientMenu")
  10. util.AddNetworkString("AWarnOptionsMenu")
  11. util.AddNetworkString("AWarnNotification")
  12. util.AddNetworkString("AWarnNotification2")
  13. util.AddNetworkString("AWarnChatMessage")
  14. util.AddNetworkString("awarn_openoptions")
  15. util.AddNetworkString("awarn_openmenu")
  16. util.AddNetworkString("awarn_fetchwarnings")
  17. util.AddNetworkString("awarn_fetchwarnings_byid")
  18. util.AddNetworkString("awarn_fetchownwarnings")
  19. util.AddNetworkString("awarn_deletesinglewarn")
  20. util.AddNetworkString("awarn_deletewarningsid")
  21. util.AddNetworkString("awarn_deletewarnings")
  22. util.AddNetworkString("awarn_removewarningsid")
  23. util.AddNetworkString("awarn_removewarnings")
  24. util.AddNetworkString("awarn_removewarn")
  25. util.AddNetworkString("awarn_warn")
  26. util.AddNetworkString("awarn_warnid")
  27. util.AddNetworkString("awarn_changeconvarbool")
  28. util.AddNetworkString("awarn_changeconvar")
  29. util.AddNetworkString("Casier:Warn:Sanction")
  30. util.AddNetworkString("Casier:Warn:Msg")
  31.  
  32.  
  33. function awarn_loadscript()
  34. awarn_tbl_exist()
  35. end
  36. hook.Add( "Initialize", "Awarn_Initialize", awarn_loadscript )
  37.  
  38.  
  39. function awarn_kick( ply, message )
  40. if ulx then
  41. ULib.kick( ply, message )
  42. else
  43. ply:Kick( message )
  44. end
  45. end
  46.  
  47. function awarn_ban( ply, time, message )
  48. if ulx then
  49. ULib.kickban( ply, time, message )
  50. else
  51. ply:Ban( time, true, message )
  52. end
  53. end
  54.  
  55. function awarn_playerdisconnected( ply )
  56. timer.Remove( ply:SteamID64() .. "_awarn_decay" )
  57. end
  58. hook.Add( "PlayerDisconnected", "awarn_playerdisconnected", awarn_playerdisconnected )
  59.  
  60. net.Receive( "awarn_fetchwarnings", function( l, ply )
  61.  
  62. if not awarn_checkadmin_view( ply ) then
  63. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  64. return
  65. end
  66. local player_type = net.ReadString()
  67. local player_target = net.ReadString()
  68. if player_type == "playername" then
  69. local target_ply = awarn_getUser( player_target )
  70.  
  71. if target_ply then
  72. awarn_sendwarnings( ply, target_ply )
  73. else
  74. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl37)
  75. end
  76. elseif player_type == "playerid" then
  77. awarn_sendwarnings_id( ply, player_target )
  78. end
  79.  
  80. end )
  81.  
  82. net.Receive( "awarn_fetchownwarnings", function( l, ply )
  83.  
  84. awarn_sendownwarnings( ply )
  85.  
  86. end )
  87.  
  88. net.Receive( "awarn_changeconvarbool", function( l, ply )
  89.  
  90. local allowed = { "awarn_kick", "awarn_ban", "awarn_decay", "awarn_reasonrequired", "awarn_reset_warnings_after_ban", "awarn_logging" }
  91. local convar = net.ReadString()
  92. local val = net.ReadString()
  93.  
  94. if not awarn_checkadmin_options( ply ) then
  95. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  96. return
  97. end
  98.  
  99. if not table.HasValue( allowed, convar ) then
  100. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv2)
  101. return
  102. end
  103.  
  104. if val == "true" then
  105. GetConVar( convar ):SetBool( false )
  106. return
  107. end
  108. GetConVar( convar ):SetBool( true )
  109.  
  110. end )
  111.  
  112. net.Receive( "awarn_changeconvar", function( l, ply )
  113.  
  114. local allowed = { "awarn_kick_threshold", "awarn_ban_threshold", "awarn_ban_time", "awarn_decay_rate" }
  115. local convar = net.ReadString()
  116. local val = net.ReadInt(32)
  117.  
  118. if not awarn_checkadmin_options( ply ) then
  119. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  120. return
  121. end
  122.  
  123. if not table.HasValue( allowed, convar ) then
  124. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv2)
  125. return
  126. end
  127.  
  128. if val < 0 then
  129. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv3)
  130. return
  131. end
  132.  
  133. GetConVar( convar ):SetInt( val )
  134.  
  135. end )
  136.  
  137. function AWSendMessage( ply, message )
  138. if IsValid(ply) then
  139. ply:PrintMessage( HUD_PRINTTALK, message )
  140. else
  141. print( message )
  142. end
  143. end
  144.  
  145. function AWarn_ChatWarn( ply, text, public )
  146. if (string.sub(string.lower(text), 1, string.len( AWarn.Command ) ) == AWarn.Command ) then
  147. local args = string.Explode( " ", text )
  148. if #args == 1 then
  149. ply:ConCommand( "awarn_menu" )
  150. else
  151. table.remove( args, 1 )
  152. awarn_con_warn( ply, _, args )
  153. end
  154. return false
  155. end
  156. end
  157. hook.Add( "PlayerSay", "AWarn_ChatWarn", AWarn_ChatWarn )
  158.  
  159. function awarn_con_warn( ply, _, args )
  160.  
  161. if not ( #args >= 1 ) then return end
  162. local tar = awarn_getUser( args[1] )
  163. local reason = table.concat( args, " ", 2 )
  164.  
  165. if (string.sub(string.lower(args[1]), 1, 5) == "steam") then
  166. if string.len(args[1]) == 7 then
  167. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl36)
  168. return
  169. end
  170. tid = AWarn_ConvertSteamID( args[1] )
  171. awarn_warnplayerid( ply, tid, reason )
  172. return
  173. end
  174.  
  175. if not (IsValid(tar)) then return end
  176. awarn_warnplayer( ply, tar, reason )
  177.  
  178. end
  179. concommand.Add( "awarn_warn", awarn_con_warn )
  180.  
  181.  
  182. net.Receive( "awarn_warn", function( l, ply )
  183.  
  184. awarn_warnplayer( ply, net.ReadEntity(), net.ReadString() )
  185.  
  186. end )
  187.  
  188. net.Receive( "awarn_warnid", function( l, ply )
  189.  
  190. awarn_warnplayerid( ply, net.ReadString(), net.ReadString() )
  191.  
  192. end )
  193.  
  194.  
  195. function awarn_warnplayer( ply, tar, reason )
  196.  
  197. if not awarn_checkadmin_warn( ply ) then
  198. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  199. return
  200. end
  201.  
  202. if table.HasValue( AWarn.userBlacklist, tar:SteamID() ) then
  203. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv9)
  204. return
  205. end
  206.  
  207. if table.HasValue( AWarn.groupBlacklist, tar:GetUserGroup() ) then
  208. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv10)
  209. return
  210. end
  211.  
  212. if awarn_checkadmin_warn( tar ) and not GetConVar("awarn_allow_warnadmin"):GetBool() then
  213. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv4)
  214. return
  215. end
  216.  
  217. target_ply = tar
  218. if reason == nil then reason = "" end
  219.  
  220. if not IsValid(target_ply) then return end
  221. if not target_ply:IsPlayer() then return end
  222.  
  223. --if tobool(GetGlobalInt( "awarn_reasonrequired", 1 )) then
  224. if GetConVar("awarn_reasonrequired"):GetBool() then
  225. if not reason then
  226. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv5)
  227. return
  228. end
  229. if reason == "" then
  230. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv5)
  231. return
  232. end
  233. end
  234.  
  235. if not reason then reason = "NONE GIVEN" end
  236. if reason == "" then reason = "NONE GIVEN" end
  237.  
  238. if target_ply then
  239. for k, v in pairs(player.GetAll()) do
  240. if v ~= target_ply then
  241. net.Start("AWarnNotification")
  242. net.WriteEntity( ply )
  243. net.WriteEntity( target_ply )
  244. net.WriteString( reason )
  245. net.Send( v )
  246. end
  247. end
  248.  
  249.  
  250. if IsValid(ply) then
  251. awarn_addwarning( target_ply:SteamID64(), reason, ply:Nick() )
  252. ServerLog( "[Casier] " .. ply:Nick() .. " à averti(e) " .. target_ply:Nick() .. " pour la raison: " .. reason.. "\n" )
  253. if GetConVar("awarn_logging"):GetBool() then
  254. awarn_log( ply:Nick() .. " à averti(e) " .. target_ply:Nick() .. " pour la raison: " .. reason )
  255. end
  256. else
  257. awarn_addwarning( target_ply:SteamID64(), reason, "[CONSOLE]" )
  258. ServerLog( "[Casier] [CONSOLE] à averti(e) " .. target_ply:Nick() .. " pour la raison: " .. reason.. "\n" )
  259. if GetConVar("awarn_logging"):GetBool() then
  260. awarn_log( "[CONSOLE] à averti(e) " .. target_ply:Nick() .. " pour la raison: " .. reason )
  261. end
  262. end
  263. awarn_incwarnings( target_ply )
  264.  
  265. local t1 = {}
  266. if IsValid( ply ) then
  267. t1 = { Color(60,60,60), "[", Color(30,90,150), "Casier", Color(60,60,60), "] ", Color(255,255,255), AWarn.localizations[loc].sv6 .. " ", ply, ": ", Color(150,40,40), reason }
  268. else
  269. t1 = { Color(60,60,60), "[", Color(30,90,150), "Casier", Color(60,60,60), "] ", Color(255,255,255), AWarn.localizations[loc].sv6 .. " ", Color(100,100,100), "[CONSOLE]", Color(255,255,255), ": ", Color(150,40,40), reason }
  270. end
  271. net.Start("AWarnChatMessage") net.WriteTable(t1) net.Send( target_ply )
  272.  
  273. local t5 = { Color(60,60,60), "[", Color(30,90,150), "Casier", Color(60,60,60), "] ", Color(255,255,255), AWarn.localizations[loc].sv7 }
  274. net.Start("AWarnChatMessage") net.WriteTable(t5) net.Send( target_ply )
  275.  
  276. if IsValid( ply ) then
  277. awarn_sendwarnings( ply, target_ply )
  278. end
  279.  
  280. local AWarnPlayerWarned = hook.Call( "AWarnPlayerWarned", GAMEMODE, target_ply, ply, reason )
  281.  
  282. else
  283. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl37)
  284. end
  285.  
  286. end
  287.  
  288. function awarn_warnplayerid( ply, tarid, reason )
  289.  
  290. if not awarn_checkadmin_warn( ply ) then
  291. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  292. return
  293. end
  294.  
  295. if table.HasValue( AWarn.userBlacklist, util.SteamIDFrom64( tarid ) ) then
  296. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv9)
  297. return
  298. end
  299.  
  300. if GetConVar("awarn_reasonrequired"):GetBool() then
  301. if not reason then
  302. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv5)
  303. return
  304. end
  305. if reason == "" then
  306. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv5)
  307. return
  308. end
  309. end
  310.  
  311. if not reason then reason = "NONE GIVEN" end
  312. if reason == "" then reason = "NONE GIVEN" end
  313.  
  314. local tar_name = tarid
  315. local tar_ply = nil
  316. for k, v in pairs( player.GetAll() ) do
  317. if v:SteamID64() == tostring(tarid) then
  318. tar_name = v:Nick()
  319. tar_ply = v
  320. awarn_warnplayer( ply, tar_ply, reason )
  321. return
  322. end
  323. end
  324.  
  325. if not tar_ply then tar_ply = game.GetWorld() end
  326. for k, v in pairs(player.GetAll()) do
  327. if v ~= tar_ply then
  328. net.Start("AWarnNotification")
  329. net.WriteEntity( ply )
  330. net.WriteEntity( tar_ply )
  331. net.WriteString( reason )
  332. net.WriteString( tostring(tarid) )
  333. net.Send( v )
  334. end
  335. end
  336.  
  337.  
  338. if IsValid(ply) then
  339. awarn_addwarning( tarid, reason, ply:Nick() )
  340. ServerLog( "[Casier] " .. ply:Nick() .. " warned " .. tostring(tar_name) .. " for reason: " .. reason.. "\n" )
  341. if GetConVar("awarn_logging"):GetBool() then
  342. awarn_log( ply:Nick() .. " warned " .. tostring(tar_name) .. " for reason: " .. reason )
  343. end
  344. else
  345. awarn_addwarning( tarid, reason, "[CONSOLE]" )
  346. ServerLog( "[Casier] [CONSOLE] warned " .. tostring(tar_name) .. " for reason: " .. reason.. "\n" )
  347. if GetConVar("awarn_logging"):GetBool() then
  348. awarn_log( "[CONSOLE] warned " .. tostring(tar_name) .. " for reason: " .. reason )
  349. end
  350. end
  351. awarn_incwarningsid( tarid )
  352.  
  353. local AWarnPlayerIDWarned = hook.Call( "AWarnPlayerIDWarned", GAMEMODE, tarid, ply, reason )
  354. end
  355.  
  356. function awarn_remwarn( ply, tar )
  357.  
  358. if not awarn_checkadmin_remove( ply ) then
  359. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  360. return
  361. end
  362.  
  363. local target_ply = awarn_getUser( tar )
  364.  
  365. if target_ply then
  366. awarn_decwarnings( target_ply, ply )
  367. if IsValid( ply ) then
  368. awarn_sendwarnings( ply, target_ply )
  369. end
  370. else
  371. AWSendMessage( ply, "Casier: Player not found!")
  372. end
  373.  
  374. end
  375.  
  376. net.Receive( "awarn_removewarnid", function( l, ply )
  377.  
  378. if not awarn_checkadmin_remove( ply ) then
  379. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  380. return
  381. end
  382.  
  383. local uid = net.ReadString()
  384. awarn_decwarningsid( uid, ply )
  385.  
  386. end )
  387.  
  388. net.Receive( "awarn_removewarn", function( l, ply )
  389. if not IsValid( ply ) then return end
  390. local p_id = net.ReadString()
  391.  
  392. if (string.sub(string.lower( p_id ), 1, 5) == "steam") then
  393. if string.len(args[1]) == 7 then
  394. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl36)
  395. return
  396. end
  397. id = AWarn_ConvertSteamID( p_id )
  398. awarn_decwarningsid( id, ply )
  399. return
  400. end
  401. awarn_remwarn( ply, p_id )
  402.  
  403. end )
  404.  
  405. net.Receive( "awarn_deletewarnings", function( l, ply )
  406.  
  407. if not awarn_checkadmin_delete( ply ) then
  408. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  409. return
  410. end
  411.  
  412. local target_ply = awarn_getUser( net.ReadString() )
  413.  
  414. if target_ply then
  415. awarn_delwarnings( target_ply, ply )
  416. else
  417. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl37)
  418. end
  419.  
  420. end )
  421.  
  422. concommand.Add( "awarn_deletewarnings", function( ply, _, args )
  423. if IsValid(ply) then return end
  424. if #args ~= 1 then return end
  425. local target_ply = awarn_getUser( args[1] )
  426.  
  427. if target_ply then
  428. awarn_delwarnings( target_ply, ply )
  429. else
  430. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].cl37)
  431. end
  432. end )
  433.  
  434. net.Receive( "awarn_deletewarningsid", function( l, ply )
  435. if not awarn_checkadmin_delete( ply ) then
  436. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  437. return
  438. end
  439.  
  440. local uid = net.ReadString()
  441.  
  442. awarn_delwarningsid( uid, ply )
  443. end )
  444.  
  445. concommand.Add( "awarn_deletewarningsid", function( ply, _, args )
  446. if IsValid(ply) then return end
  447. if #args ~= 1 then return end
  448.  
  449. local uid = args[1]
  450. awarn_delwarningsid( uid, ply )
  451. end )
  452.  
  453. net.Receive( "awarn_openmenu", function( l, ply )
  454.  
  455. if not IsValid( ply ) then
  456. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv8)
  457. return
  458. end
  459.  
  460. if not awarn_checkadmin_view( ply ) then
  461. net.Start("AWarnClientMenu")
  462. net.Send( ply )
  463. return
  464. end
  465.  
  466.  
  467. net.Start("AWarnMenu")
  468. net.Send( ply )
  469.  
  470. end )
  471.  
  472. net.Receive( "awarn_openoptions", function( l, ply )
  473.  
  474. if not IsValid( ply ) then
  475. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv8)
  476. return
  477. end
  478.  
  479. if not awarn_checkadmin_options( ply ) then
  480. AWSendMessage( ply, "Casier: " .. AWarn.localizations[loc].sv1)
  481. return
  482. end
  483.  
  484.  
  485. net.Start("AWarnOptionsMenu")
  486. net.Send( ply )
  487.  
  488. end )
  489.  
  490. net.Receive( "awarn_deletesinglewarn", function( l, ply )
  491.  
  492. if not awarn_checkadmin_delete( ply ) then
  493. AWSendMessage( ply, "AWarn: " .. AWarn.localizations[loc].sv1)
  494. return
  495. end
  496.  
  497. local warningid = net.ReadInt(16)
  498.  
  499. awarn_delsinglewarning( ply, warningid )
  500.  
  501. end )
  502.  
  503. AWarn.PunishmentSequence = AWarn.PunishmentSequence or {}
  504.  
  505. function AWarn.RegisterPunishment( TBL )
  506. AWarn.PunishmentSequence[ TBL.NumberOfWarnings ] = TBL
  507. end
  508.  
  509. local files, dirs = file.Find("awarn/modules/*.lua", "LUA")
  510. for k, v in pairs( files ) do
  511. ServerLog("AWarn: Loading module (" .. v .. ")\n")
  512. include( "awarn/modules/" .. v )
  513. end
  514.  
  515. local function GetPlayerByName( strName )
  516. local strEnt = Entity( 0 )
  517.  
  518. for k,v in pairs( player.GetAll() ) do
  519. if v:Nick() == strName then
  520. strEnt = v
  521. break
  522. end
  523. end
  524.  
  525. return strEnt
  526. end
  527.  
  528. net.Receive( "Casier:Warn:Sanction", function( _, pPlayer )
  529. if !awarn_checkadmin_view( ply ) then return end
  530.  
  531. local strName = net.ReadString()
  532. local strKey = net.ReadString()
  533. local strRaison = net.ReadString() or ""
  534.  
  535. if !AWarn.Raisons[ strKey ] then return end
  536.  
  537. local pVictim = GetPlayerByName( strName )
  538.  
  539. if !IsValid( pVictim ) then return end
  540.  
  541. local tblInfos = AWarn.Raisons[ strKey ]
  542.  
  543. if tblInfos['sanction'] == "ban" then
  544. if ULib then
  545. ULib.ban( pVictim, tonumber( tblInfos['temps'] ), tblInfos['message'], pPlayer )
  546. else
  547. pVictim:Ban( tonumber( tblInfos['temps'] ), true )
  548. end
  549. awarn_warnplayer( pPlayer, pVictim, tblInfos['message'] )
  550. end
  551.  
  552. if tblInfos['sanction'] == "kick" then
  553. ULib.kick( pVictim, tblInfos['message'], pPlayer )
  554. awarn_warnplayer( pPlayer, pVictim, tblInfos['message'] )
  555. end
  556.  
  557. if tblInfos['sanction'] == "avert" then
  558. awarn_warnplayer( pPlayer, pVictim, strRaison )
  559. end
  560.  
  561. for k,v in pairs( player.GetAll() ) do
  562. if !awarn_checkadmin_view( v ) then continue end
  563.  
  564. net.Start( "Casier:Warn:Msg" )
  565. net.WriteEntity( pVictim )
  566. net.Send( v )
  567. end
  568. end)
  569.  
  570. hook.Add( "PlayerNoClip", "Casier:Warn:NoClip", function( pPlayer, boolState )
  571. if awarn_checkadmin_view( pPlayer ) && !pPlayer.Casier_AdminMode then
  572. return false
  573. end
  574. end)
  575.  
  576. hook.Add( "PlayerSay", "Casier:Warn:Say", function( pPlayer, text )
  577. if text == "!admin" then
  578. if awarn_checkadmin_view( pPlayer ) then
  579. if pPlayer.Casier_AdminMode then
  580. RunConsoleCommand( "ulx", "ungod", "$" .. pPlayer:SteamID() )
  581. if pPlayer:GetMoveType() != MOVETYPE_WALK then
  582. RunConsoleCommand( "ulx", "noclip", "$" .. pPlayer:SteamID() )
  583. end
  584. RunConsoleCommand( "FAdmin", "uncloak", "$" .. pPlayer:SteamID() )
  585.  
  586. pPlayer.Casier_AdminMode = false
  587. else
  588. RunConsoleCommand( "ulx", "god", "$" .. pPlayer:SteamID() )
  589. RunConsoleCommand( "ulx", "noclip", "$" .. pPlayer:SteamID() )
  590. RunConsoleCommand( "FAdmin", "cloak", "$" .. pPlayer:SteamID() )
  591.  
  592. pPlayer.Casier_AdminMode = true
  593. end
  594.  
  595. return ""
  596. end
  597. end
  598. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement