Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------------------------------------------------------------------------------
- -- COMMUNITY CONTRIBUTION FOR CIT2.NET
- -- PURPOSE: Feedback for the updates
- -- DEVELOPERS: Nikos, Zelda - ( Server side )
- ------------------------------------------------------------------------------------
- local comments = {}
- -- local con = dbConnect("sqlite", "//feedbacks.db")
- local con = dbConnect("mysql", "dbname=;host=", "", "")
- dbExec(con, "CREATE TABLE IF NOT EXISTS feedbacks (update_post TEXT, message TEXT)")
- function onResourceStart()
- local results = dbPoll(dbQuery(con, "SELECT * FROM feedbacks") ,-1)
- for i, v in ipairs(results) do
- comments[v["update_post"]] = v["message"]
- end
- end
- addEventHandler("onResourceStart", resourceRoot, onResourceStart)
- function processUpdates(updates)
- local cache = {}
- for i, v in ipairs(split(updates, "\n") or {}) do
- if (string.byte(v, 1) == 45) then
- table.insert(cache, ""..v.."")
- end
- end
- return cache
- end
- function getUpdatesList(player)
- if (isGuestAccount(getPlayerAccount(player))) then
- return false
- end
- if (exports.CITchecking:getPlayerTimeSinceLastOccurence(player, "feedback") < 3000) then
- return false
- end
- local conversion = processUpdates(exports.CITupdatesInfo:getUpdates()) or {}
- exports.CITchecking:setPlayerOccurenceTime(player, "feedback")
- if (#conversion == 0) then
- outputChatBox("The feedback list is not loaded yet, retry later.", player, 255, 0, 0)
- else
- triggerClientEvent(player, "CITfeedback.sendFeedbackList", player, conversion)
- end
- end
- addCommandHandler("feedback", getUpdatesList)
- function sendFeedback(message, update)
- if (isGuestAccount(getPlayerAccount(client))) then
- return false
- end
- local name = getPlayerName(client)
- local accname = getAccountName(getPlayerAccount(client))
- local results = comments[update]
- if (not results) then
- local cc = "- "..name.." ("..accname..")\n"..message..""
- comments[update] = cc
- dbExec(con,"INSERT INTO feedbacks VALUES (?, ?)", update, cc, accname)
- exports.CIThelp:dm("Feedback sended", client, 0, 255, 0)
- else
- if (string.find(results, "("..accname..")")) then
- exports.CIThelp:dm("You have already made a comment to this update.", client, 255, 0, 0)
- return false
- end
- local cc = ""..results.."\n- "..name.." ("..accname..")\n"..message..""
- comments[update] = cc
- dbExec(con, "UPDATE feedbacks SET message=? WHERE update_post=?", cc, update)
- exports.CIThelp:dm("Feedback sended", client, 0, 255, 0)
- end
- end
- addEvent("CITfeedback.sendFeedback", true )
- addEventHandler("CITfeedback.sendFeedback", root, sendFeedback)
- function getGridData(update)
- local result = dbPoll( dbQuery(con, "SELECT * FROM feedbacks WHERE update_post=?", update) , -1)
- if (type(result) == "table" and #result ~= 0) then
- triggerClientEvent(client, "CITfeedback.sendGridData", client, result[1]["message"])
- else
- triggerClientEvent(client, "CITfeedback.sendGridData", client, "No comments yet.")
- end
- end
- addEvent("CITfeedback.getGridData", true )
- addEventHandler("CITfeedback.getGridData", root, getGridData)
- function cleanDB(player)
- if (exports.CITadmin:getPlayerAdminLevel(player) == 5) then
- dbExec(con, "DELETE FROM feedbacks")
- comments = {}
- exports.CIThelp:dm("Feedback cleaned", player, 255, 255, 0)
- end
- end
- addCommandHandler("cleancomments", cleanDB)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement