Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.29 KB | None | 0 0
  1. ------------------------------------------------------------------------------------
  2. -- COMMUNITY CONTRIBUTION FOR CIT2.NET
  3. -- PURPOSE: Feedback for the updates
  4. -- DEVELOPERS: Nikos, Zelda - ( Server side )
  5. ------------------------------------------------------------------------------------
  6.  
  7. local con = dbConnect("mysql", "dbname=;host=", "", "")
  8. -- local con = dbConnect("sqlite", "//feedbacks.db")
  9. dbExec(con, "CREATE TABLE IF NOT EXISTS feedbacks (update_post TEXT, message TEXT)")
  10.  
  11. function processUpdates(data)
  12. local cache = {}
  13. local updates = ""..data..""
  14. local ent = split(updates, "-") or {}
  15. for i, v in ipairs(ent) do
  16. table.insert(cache, ""..i..". "..v)
  17. end
  18. return cache
  19. end
  20.  
  21. function getUpdatesList(player)
  22. if (isGuestAccount(getPlayerAccount(player))) then
  23. return false
  24. end
  25. if (exports.CITchecking:getPlayerTimeSinceLastOccurence(player, "feedback") < 3000) then
  26. return false
  27. end
  28. local conversion = processUpdates(exports.CITupdatesInfo:getUpdates()) or {}
  29. exports.CITchecking:setPlayerOccurenceTime(player, "feedback")
  30. if (#conversion == 0) then
  31. outputChatBox("The feedback list is not loaded yet, retry later.", player, 255, 0, 0)
  32. else
  33. triggerClientEvent(player, "CITfeedback.sendFeedbackList", player, conversion)
  34. end
  35. end
  36. addCommandHandler("feedback", getUpdatesList)
  37.  
  38. function sendFeedback(message, update)
  39. if (isGuestAccount(getPlayerAccount(client))) then
  40. return false
  41. end
  42. local name = getPlayerName(client)
  43. local accname = getAccountName(getPlayerAccount(client))
  44. local results = dbPoll(dbQuery(con, "SELECT * FROM feedbacks WHERE update_post=?", update) ,-1)
  45. if (#results == 0) then
  46. local cc = "- "..name.." ("..accname..")\n"..message..""
  47. dbExec(con,"INSERT INTO feedbacks VALUES (?, ?)", update, cc, accname)
  48. exports.CIThelp:dm("Feedback sended", client, 0, 255, 0)
  49. else
  50. if (string.find(results[1]["message"], "("..accname..")")) then
  51. exports.CIThelp:dm("You have already made a comment to this update.", client, 255, 0, 0)
  52. return false
  53. end
  54. local cc = ""..results[1]["message"].."\n- "..name.." ("..accname..")\n"..message..""
  55. dbExec(con, "UPDATE feedbacks SET message=? WHERE update_post=?", cc, update)
  56. exports.CIThelp:dm("Feedback sended", client, 0, 255, 0)
  57. end
  58. end
  59. addEvent("CITfeedback.sendFeedback", true )
  60. addEventHandler("CITfeedback.sendFeedback", root, sendFeedback)
  61.  
  62. function getGridData(update)
  63. local result = dbPoll( dbQuery(con, "SELECT * FROM feedbacks WHERE update_post=?", update) , -1)
  64. if (type(result) == "table" and #result ~= 0) then
  65. triggerClientEvent(client, "CITfeedback.sendGridData", client, result[1]["message"])
  66. else
  67. triggerClientEvent(client, "CITfeedback.sendGridData", client, "No comments yet.")
  68. end
  69. end
  70. addEvent("CITfeedback.getGridData", true )
  71. addEventHandler("CITfeedback.getGridData", root, getGridData)
  72.  
  73. function cleanDB(player)
  74. if exports.CITadmin:getPlayerAdminLevel(player) == 5 then
  75. dbExec(con, "DELETE FROM feedbacks")
  76. exports.CIThelp:dm("Feedback cleaned", player, 255, 255, 0)
  77. end
  78. end
  79. addCommandHandler("cleancomments", cleanDB)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement