diff options
author | Michael <michaelneubert1988@gmail.com> | 2014-06-05 19:42:48 +0200 |
---|---|---|
committer | Michael <michaelneubert1988@gmail.com> | 2014-06-05 19:42:48 +0200 |
commit | 83c2e79d52a57ec670b439ed6f822dd18e0ac55e (patch) | |
tree | 774cb4f6a175e60ca979772559efa60411e9eff4 /src/server/game/Handlers/TicketHandler.cpp | |
parent | 289a5c4318c5509eafeb36389a81bddc2ed349ca (diff) | |
parent | 36102bea64d536b6ac04ac728c64321cfc5e55f2 (diff) |
Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts:
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Handlers/CharacterHandler.cpp
src/server/game/Spells/Auras/SpellAuraEffects.cpp
src/server/scripts/Spells/spell_paladin.cpp
Diffstat (limited to 'src/server/game/Handlers/TicketHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/TicketHandler.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp index 4ea4d835ae9..53cde5e8e5a 100644 --- a/src/server/game/Handlers/TicketHandler.cpp +++ b/src/server/game/Handlers/TicketHandler.cpp @@ -187,6 +187,8 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recvData) uint32 mainSurvey; // GMSurveyCurrentSurvey.dbc, column 1 (all 9) ref to GMSurveySurveys.dbc recvData >> mainSurvey; + std::unordered_set<uint32> surveyIds; + SQLTransaction trans = CharacterDatabase.BeginTransaction(); // sub_survey1, r1, comment1, sub_survey2, r2, comment2, sub_survey3, r3, comment3, sub_survey4, r4, comment4, sub_survey5, r5, comment5, sub_survey6, r6, comment6, sub_survey7, r7, comment7, sub_survey8, r8, comment8, sub_survey9, r9, comment9, sub_survey10, r10, comment10, for (uint8 i = 0; i < 15; i++) { @@ -200,12 +202,16 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recvData) std::string comment; // comment ("Usage: GMSurveyAnswerSubmit(question, rank, comment)") recvData >> comment; + // make sure the same sub survey is not added to DB twice + if (!surveyIds.insert(subSurveyId).second) + continue; + PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SUBSURVEY); stmt->setUInt32(0, nextSurveyID); stmt->setUInt32(1, subSurveyId); stmt->setUInt32(2, rank); stmt->setString(3, comment); - CharacterDatabase.Execute(stmt); + trans->Append(stmt); } std::string comment; // just a guess @@ -217,7 +223,9 @@ void WorldSession::HandleGMSurveySubmit(WorldPacket& recvData) stmt->setUInt32(2, mainSurvey); stmt->setString(3, comment); - CharacterDatabase.Execute(stmt); + trans->Append(stmt); + + CharacterDatabase.CommitTransaction(trans); } void WorldSession::HandleReportLag(WorldPacket& recvData) |