aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/auth/2015_07_08_01_auth.sql1
-rw-r--r--sql/updates/characters/2015_07_08_00_characters.sql3
-rw-r--r--sql/updates/world/2015_07_08_00_world.sql21
-rw-r--r--src/server/game/Accounts/RBAC.h23
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/Handlers/TicketHandler.cpp155
-rw-r--r--src/server/game/Miscellaneous/Language.h13
-rw-r--r--src/server/game/Server/Packets/TicketPackets.cpp121
-rw-r--r--src/server/game/Server/Packets/TicketPackets.h157
-rw-r--r--src/server/game/Server/Protocol/Opcodes.cpp6
-rw-r--r--src/server/game/Server/Protocol/Opcodes.h18
-rw-r--r--src/server/game/Server/WorldSession.h13
-rw-r--r--src/server/game/Support/SupportMgr.cpp375
-rw-r--r--src/server/game/Support/SupportMgr.h139
-rw-r--r--src/server/game/World/World.cpp5
-rw-r--r--src/server/game/World/World.h3
-rw-r--r--src/server/scripts/Commands/cs_go.cpp1
-rw-r--r--src/server/scripts/Commands/cs_reload.cpp1
-rw-r--r--src/server/scripts/Commands/cs_ticket.cpp409
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.cpp11
-rw-r--r--src/server/shared/Database/Implementation/CharacterDatabase.h9
-rw-r--r--src/server/worldserver/worldserver.conf.dist17
22 files changed, 68 insertions, 1437 deletions
diff --git a/sql/updates/auth/2015_07_08_01_auth.sql b/sql/updates/auth/2015_07_08_01_auth.sql
new file mode 100644
index 00000000000..1d755dbb86d
--- /dev/null
+++ b/sql/updates/auth/2015_07_08_01_auth.sql
@@ -0,0 +1 @@
+DELETE FROM `rbac_permissions` WHERE `id` IN (383, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 754, 755, 756, 758, 759, 760, 830);
diff --git a/sql/updates/characters/2015_07_08_00_characters.sql b/sql/updates/characters/2015_07_08_00_characters.sql
new file mode 100644
index 00000000000..2beacc60feb
--- /dev/null
+++ b/sql/updates/characters/2015_07_08_00_characters.sql
@@ -0,0 +1,3 @@
+DROP TABLE IF EXISTS `gm_ticket`;
+DROP TABLE IF EXISTS `gm_survey`;
+DROP TABLE IF EXISTS `gm_subsurvey`;
diff --git a/sql/updates/world/2015_07_08_00_world.sql b/sql/updates/world/2015_07_08_00_world.sql
new file mode 100644
index 00000000000..1c20d309551
--- /dev/null
+++ b/sql/updates/world/2015_07_08_00_world.sql
@@ -0,0 +1,21 @@
+DELETE FROM `trinity_string` WHERE `entry` IN (2000, 2001, 2002, 2008, 2010, 2019, 2026, 2029, 2030);
+
+DELETE FROM `command` WHERE `name` IN (
+'go ticket',
+'ticket assign',
+'ticket close',
+'ticket closedlist',
+'ticket comment',
+'ticket delete',
+'ticket escalate',
+'ticket escalatedlist',
+'ticket list',
+'ticket onlinelist',
+'ticket reset gm',
+'ticket response',
+'ticket response append',
+'ticket response appendln',
+'ticket unassign',
+'ticket viewid',
+'ticket viewname'
+);
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index db0fc711fc2..fb5927e9e91 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -287,7 +287,7 @@ enum RBACPermissions
RBAC_PERM_COMMAND_GO_GRID = 380,
RBAC_PERM_COMMAND_GO_OBJECT = 381,
RBAC_PERM_COMMAND_GO_TAXINODE = 382,
- RBAC_PERM_COMMAND_GO_TICKET = 383,
+ // 383 reuse
RBAC_PERM_COMMAND_GO_TRIGGER = 384,
RBAC_PERM_COMMAND_GO_XYZ = 385,
RBAC_PERM_COMMAND_GO_ZONEXY = 386,
@@ -647,24 +647,11 @@ enum RBACPermissions
RBAC_PERM_COMMAND_TELE_NAME = 740,
RBAC_PERM_COMMAND_TELE_GROUP = 741,
RBAC_PERM_COMMAND_TICKET = 742,
- RBAC_PERM_COMMAND_TICKET_ASSIGN = 743,
- RBAC_PERM_COMMAND_TICKET_CLOSE = 744,
- RBAC_PERM_COMMAND_TICKET_CLOSEDLIST = 745,
- RBAC_PERM_COMMAND_TICKET_COMMENT = 746,
- RBAC_PERM_COMMAND_TICKET_COMPLETE = 747,
- RBAC_PERM_COMMAND_TICKET_DELETE = 748,
- RBAC_PERM_COMMAND_TICKET_ESCALATE = 749,
- RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST = 750,
- RBAC_PERM_COMMAND_TICKET_LIST = 751,
- RBAC_PERM_COMMAND_TICKET_ONLINELIST = 752,
+ // 743 - 752 reuse
RBAC_PERM_COMMAND_TICKET_RESET = 753,
- RBAC_PERM_COMMAND_TICKET_RESPONSE = 754,
- RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND = 755,
- RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN = 756,
+ // 754 - 756 reuse
RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM = 757,
- RBAC_PERM_COMMAND_TICKET_UNASSIGN = 758,
- RBAC_PERM_COMMAND_TICKET_VIEWID = 759,
- RBAC_PERM_COMMAND_TICKET_VIEWNAME = 760,
+ // 758 - 760 reuse
RBAC_PERM_COMMAND_TITLES = 761,
RBAC_PERM_COMMAND_TITLES_ADD = 762,
RBAC_PERM_COMMAND_TITLES_CURRENT = 763,
@@ -734,7 +721,7 @@ enum RBACPermissions
RBAC_PERM_COMMAND_TICKET_SUGGESTION_UNASSIGN = 827,
RBAC_PERM_COMMAND_TICKET_SUGGESTION_VIEW = 828,
RBAC_PERM_COMMAND_TICKET_RESET_ALL = 829,
- RBAC_PERM_COMMAND_TICKET_RESET_GM = 830,
+ // 830 reuse
RBAC_PERM_COMMAND_TICKET_RESET_BUG = 831,
RBAC_PERM_COMMAND_TICKET_RESET_COMPLAINT = 832,
RBAC_PERM_COMMAND_TICKET_RESET_SUGGESTION = 833,
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 905fe5dfbf9..e1a71f5fbdf 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -4478,10 +4478,6 @@ void Player::DeleteFromDB(ObjectGuid playerguid, uint32 accountId, bool updateRe
stmt->setUInt64(0, guid);
trans->Append(stmt);
- stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_PLAYER_GM_TICKETS);
- stmt->setUInt64(0, guid);
- trans->Append(stmt);
-
stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ITEM_INSTANCE_BY_OWNER);
stmt->setUInt64(0, guid);
trans->Append(stmt);
diff --git a/src/server/game/Handlers/TicketHandler.cpp b/src/server/game/Handlers/TicketHandler.cpp
index 1ff239035a4..f9c1f1c6989 100644
--- a/src/server/game/Handlers/TicketHandler.cpp
+++ b/src/server/game/Handlers/TicketHandler.cpp
@@ -29,93 +29,6 @@
#include "WorldPacket.h"
#include "WorldSession.h"
-void WorldSession::HandleGMTicketCreateOpcode(WorldPackets::Ticket::GMTicketCreate& packet)
-{
- // Don't accept tickets if the ticket queue is disabled. (Ticket UI is greyed out but not fully dependable)
- if (sSupportMgr->GetSupportSystemStatus() == GMTICKET_QUEUE_STATUS_DISABLED)
- return;
-
- if (GetPlayer()->getLevel() < sWorld->getIntConfig(CONFIG_TICKET_LEVEL_REQ))
- {
- SendNotification(GetTrinityString(LANG_TICKET_REQ), sWorld->getIntConfig(CONFIG_TICKET_LEVEL_REQ));
- return;
- }
-
- GMTicketResponse response = GMTICKET_RESPONSE_CREATE_ERROR;
- GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(GetPlayer()->GetGUID());
-
- if (ticket && ticket->IsCompleted())
- sSupportMgr->CloseTicket<GmTicket>(ticket->GetId(), GetPlayer()->GetGUID());
-
- // Player must not have ticket
- if (!ticket || ticket->IsClosed())
- {
- std::string chatLog;
-
- if (packet.DataLength > 0 && packet.ChatHistoryData.DecompressedSize < 0xFFFF)
- {
- ByteBuffer dest;
- dest.resize(size_t(packet.ChatHistoryData.DecompressedSize));
-
- uLongf realSize = packet.ChatHistoryData.DecompressedSize;
-
- if (uncompress(dest.contents(), &realSize, packet.ChatHistoryData.Data.contents(), packet.ChatHistoryData.Data.size()) == Z_OK)
- dest >> chatLog;
- else
- {
- TC_LOG_ERROR("network", "CMSG_GM_TICKET_CREATE possibly corrupt. Uncompression failed.");
- return;
- }
- }
-
- ticket = new GmTicket(GetPlayer());
- ticket->SetPosition(packet.Map, packet.Pos);
- ticket->SetDescription(packet.Description);
- ticket->SetGmAction(packet.NeedResponse, packet.NeedMoreHelp);
-
- //TODO: more reasearch needed
- //if (!chatLog.empty())
- //ticket->SetChatLog(times, chatLog);
-
- sSupportMgr->AddTicket(ticket);
- sSupportMgr->UpdateLastChange();
-
- sWorld->SendGMText(LANG_COMMAND_TICKETNEW, GetPlayer()->GetName().c_str(), ticket->GetId());
-
- response = GMTICKET_RESPONSE_CREATE_SUCCESS;
- }
- sSupportMgr->SendGmTicketUpdate(this, response);
-}
-
-void WorldSession::HandleGMTicketUpdateTextOpcode(WorldPackets::Ticket::GMTicketUpdateText& packet)
-{
- GMTicketResponse response = GMTICKET_RESPONSE_UPDATE_ERROR;
- if (GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(GetPlayer()->GetGUID()))
- {
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetDescription(packet.Description);
- ticket->SaveToDB(trans);
-
- sWorld->SendGMText(LANG_COMMAND_TICKETUPDATED, GetPlayer()->GetName().c_str(), ticket->GetId());
-
- response = GMTICKET_RESPONSE_UPDATE_SUCCESS;
- }
- sSupportMgr->SendGmTicketUpdate(this, response);
-}
-
-void WorldSession::HandleGMTicketDeleteOpcode(WorldPackets::Ticket::GMTicketDelete& /*packet*/)
-{
- if (GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(GetPlayer()->GetGUID()))
- {
- sSupportMgr->SendGmTicketUpdate(this, GMTICKET_RESPONSE_TICKET_DELETED);
-
- sWorld->SendGMText(LANG_COMMAND_TICKETPLAYERABANDON, GetPlayer()->GetName().c_str(), ticket->GetId());
-
- sSupportMgr->CloseTicket<GmTicket>(ticket->GetId(), GetPlayer()->GetGUID());
- sSupportMgr->SendGmTicket(this, NULL);
- }
-}
-
void WorldSession::HandleGMTicketGetCaseStatusOpcode(WorldPackets::Ticket::GMTicketGetCaseStatus& /*packet*/)
{
// TODO: Implement GmCase and handle this packet properly
@@ -124,21 +37,6 @@ void WorldSession::HandleGMTicketGetCaseStatusOpcode(WorldPackets::Ticket::GMTic
SendPacket(status.Write());
}
-void WorldSession::HandleGMTicketGetTicketOpcode(WorldPackets::Ticket::GMTicketGetTicket& /*packet*/)
-{
- SendQueryTimeResponse();
-
- if (GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(GetPlayer()->GetGUID()))
- {
- if (ticket->IsCompleted())
- ticket->SendResponse(this);
- else
- sSupportMgr->SendGmTicket(this, ticket);
- }
- else
- sSupportMgr->SendGmTicket(this, NULL);
-}
-
void WorldSession::HandleGMTicketSystemStatusOpcode(WorldPackets::Ticket::GMTicketGetSystemStatus& /*packet*/)
{
// Note: This only disables the ticket UI at client side and is not fully reliable
@@ -148,59 +46,6 @@ void WorldSession::HandleGMTicketSystemStatusOpcode(WorldPackets::Ticket::GMTick
SendPacket(response.Write());
}
-void WorldSession::HandleGMSurveySubmit(WorldPackets::Ticket::GMSurveySubmit& /*packet*/)
-{
- /*uint32 nextSurveyID = sSupportMgr->GetNextSurveyID();
-
- std::unordered_set<uint32> surveyIds;
- SQLTransaction trans = CharacterDatabase.BeginTransaction();
-
- for (auto const& q : packet.SurveyQuestion)
- {
- if (!q.QuestionID)
- break;
-
- // make sure the same sub survey is not added to DB twice
- if (!surveyIds.insert(q.QuestionID).second)
- continue;
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SUBSURVEY);
- stmt->setUInt32(0, nextSurveyID);
- stmt->setUInt32(1, q.QuestionID); // ref to i'th GMSurveySurveys.dbc field (all fields in that dbc point to fields in GMSurveyQuestions.dbc)
- stmt->setUInt32(2, q.Answer); // probably some sort of ref to GMSurveyAnswers.dbc
- stmt->setString(3, q.AnswerComment); // comment ("Usage: GMSurveyAnswerSubmit(question, rank, comment)")
- trans->Append(stmt);
- }
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_INS_GM_SURVEY);
- stmt->setUInt64(0, GetPlayer()->GetGUID().GetCounter());
- stmt->setUInt32(1, nextSurveyID);
- stmt->setUInt32(2, packet.SurveyID); // GMSurveyCurrentSurvey.dbc, column 1 (all 9) ref to GMSurveySurveys.dbc
- stmt->setString(3, packet.Comment);
- trans->Append(stmt);
-
- CharacterDatabase.CommitTransaction(trans);*/
-}
-
-void WorldSession::HandleGMResponseResolve(WorldPackets::Ticket::GMTicketResponseResolve& /*packet*/)
-{
- if (GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(GetPlayer()->GetGUID()))
- {
- bool showSurvey = false;
- if (float(rand_chance()) < sWorld->getFloatConfig(CONFIG_CHANCE_OF_GM_SURVEY))
- showSurvey = true;
-
- WorldPackets::Ticket::GMTicketResolveResponse response;
- response.ShowSurvey = showSurvey;
- SendPacket(response.Write());
-
- sSupportMgr->SendGmTicketUpdate(this, GMTICKET_RESPONSE_TICKET_DELETED);
-
- sSupportMgr->CloseTicket<GmTicket>(ticket->GetId(), GetPlayer()->GetGUID());
- sSupportMgr->SendGmTicket(this, NULL);
- }
-}
-
void WorldSession::HandleSupportTicketSubmitBug(WorldPackets::Ticket::SupportTicketSubmitBug& packet)
{
if (!sSupportMgr->GetBugSystemStatus())
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index 6546a6198c6..625ad8cda49 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -1032,20 +1032,15 @@ enum TrinityStrings
LANG_BG_AV_H_NEAR_LOSE = 1330,
// 1331-1332
LANG_BG_AV_START_TWO_MINUTES = 1333,
- // FREE IDS 1334-1999
+ // FREE IDS 1334-2002
- // Ticket Strings 2000-2030
- LANG_COMMAND_TICKETNEW = 2000,
- LANG_COMMAND_TICKETUPDATED = 2001,
- LANG_COMMAND_TICKETPLAYERABANDON = 2002,
+ // Ticket Strings 2003-2028
LANG_COMMAND_TICKETCLOSED = 2003,
LANG_COMMAND_TICKETDELETED = 2004,
LANG_COMMAND_TICKETNOTEXIST = 2005,
LANG_COMMAND_TICKETCLOSEFIRST = 2006,
LANG_COMMAND_TICKETALREADYASSIGNED = 2007,
- LANG_COMMAND_TICKETRELOAD = 2008,
LANG_COMMAND_TICKETSHOWLIST = 2009,
- LANG_COMMAND_TICKETSHOWONLINELIST = 2010,
LANG_COMMAND_TICKETSHOWCLOSEDLIST = 2011,
LANG_COMMAND_TICKETASSIGNERROR_A = 2012,
LANG_COMMAND_TICKETASSIGNERROR_B = 2013,
@@ -1054,18 +1049,14 @@ enum TrinityStrings
LANG_COMMAND_TICKETCANNOTCLOSE = 2016,
LANG_COMMAND_TICKETLISTGUID = 2017,
LANG_COMMAND_TICKETLISTNAME = 2018,
- LANG_COMMAND_TICKETLISTAGE = 2019,
LANG_COMMAND_TICKETLISTASSIGNEDTO = 2020,
LANG_COMMAND_TICKETLISTUNASSIGNED = 2021,
LANG_COMMAND_TICKETLISTMESSAGE = 2022,
LANG_COMMAND_TICKETLISTCOMMENT = 2023,
LANG_COMMAND_TICKETLISTADDCOMMENT = 2024,
LANG_COMMAND_TICKETLISTAGECREATE = 2025,
- LANG_COMMAND_TICKETSHOWESCALATEDLIST = 2026,
LANG_COMMAND_TICKETPENDING = 2027,
LANG_COMMAND_TICKETRESET = 2028,
- LANG_COMMAND_TICKETLISTRESPONSE = 2029,
- LANG_COMMAND_TICKETCOMPLETED = 2030,
// Trinity strings 5000-9999
LANG_COMMAND_FREEZE = 5000,
diff --git a/src/server/game/Server/Packets/TicketPackets.cpp b/src/server/game/Server/Packets/TicketPackets.cpp
index cdbeea53e32..e6d15c0da4c 100644
--- a/src/server/game/Server/Packets/TicketPackets.cpp
+++ b/src/server/game/Server/Packets/TicketPackets.cpp
@@ -66,124 +66,6 @@ void WorldPackets::Ticket::GMTicketAcknowledgeSurvey::Read()
_worldPacket >> CaseID;
}
-WorldPacket const* WorldPackets::Ticket::GMTicketGetTicketResponse::Write()
-{
- _worldPacket << Result;
- _worldPacket.WriteBit(Info.is_initialized());
- _worldPacket.FlushBits();
-
- if (Info)
- {
- _worldPacket << int32(Info->TicketID);
- _worldPacket << uint8(Info->Category);
- _worldPacket.AppendPackedTime(Info->TicketOpenTime);
- _worldPacket.AppendPackedTime(Info->OldestTicketTime);
- _worldPacket.AppendPackedTime(Info->UpdateTime);
- _worldPacket << uint8(Info->AssignedToGM);
- _worldPacket << uint8(Info->OpenedByGM);
- _worldPacket << int32(Info->WaitTimeOverrideMinutes);
-
- _worldPacket.WriteBits(Info->TicketDescription.size(), 11);
- _worldPacket.WriteBits(Info->WaitTimeOverrideMessage.size(), 10);
- _worldPacket.FlushBits();
-
- _worldPacket.WriteString(Info->TicketDescription);
- _worldPacket.WriteString(Info->WaitTimeOverrideMessage);
- }
-
-
- return &_worldPacket;
-}
-
-void WorldPackets::Ticket::GMTicketCreate::Read()
-{
- _worldPacket >> Map;
- _worldPacket >> Pos;
- _worldPacket >> Flags;
-
- uint16 descLength = _worldPacket.ReadBits(11);
- Description = _worldPacket.ReadString(descLength);
- _worldPacket.ResetBitPos();
-
- NeedResponse = _worldPacket.ReadBit();
- NeedMoreHelp = _worldPacket.ReadBit();
- _worldPacket >> DataLength;
-
- if (DataLength > 0)
- {
- _worldPacket >> ChatHistoryData.TextCount;
- for (uint8 i = 0; i < ChatHistoryData.TextCount; ++i)
- ChatHistoryData.Sent.push_back(_worldPacket.read<uint32>());
-
- _worldPacket >> ChatHistoryData.DecompressedSize;
-
- //Note: don't ask why, but it works...
- uint32 realLength = DataLength - ((ChatHistoryData.TextCount * 4) + 5);
- ChatHistoryData.Data.resize(realLength);
- _worldPacket.read(ChatHistoryData.Data.contents(), realLength);
- }
-}
-
-void WorldPackets::Ticket::GMTicketUpdateText::Read()
-{
- uint16 descLength = _worldPacket.ReadBits(11);
- Description = _worldPacket.ReadString(descLength);
-}
-
-WorldPacket const* WorldPackets::Ticket::GMTicketUpdate::Write()
-{
- _worldPacket << uint8(Result);
-
- return &_worldPacket;
-}
-
-WorldPacket const* WorldPackets::Ticket::GMTicketStatusUpdate::Write()
-{
- _worldPacket << int32(StatusInt);
-
- return &_worldPacket;
-}
-
-WorldPacket const* WorldPackets::Ticket::GMTicketResponse::Write()
-{
- _worldPacket << uint32(TicketID);
- _worldPacket << uint32(ResponseID);
-
- _worldPacket.WriteBits(Description.size(), 11);
- _worldPacket.WriteBits(ResponseText.size(), 14);
- _worldPacket.FlushBits();
-
- _worldPacket.WriteString(Description);
- _worldPacket.WriteString(ResponseText);
-
- return &_worldPacket;
-}
-
-WorldPacket const* WorldPackets::Ticket::GMTicketResolveResponse::Write()
-{
- _worldPacket.WriteBit(ShowSurvey);
-
- _worldPacket.FlushBits();
- return &_worldPacket;
-}
-
-void WorldPackets::Ticket::GMSurveySubmit::Read()
-{
- _worldPacket >> SurveyID;
-
- SurveyQuestion.resize(_worldPacket.ReadBits(4));
- uint16 commentLength = _worldPacket.ReadBits(11);
-
- for (auto& q : SurveyQuestion)
- {
- _worldPacket >> q.QuestionID;
- _worldPacket >> q.Answer;
- q.AnswerComment = _worldPacket.ReadString(_worldPacket.ReadBits(11));
- }
-
- Comment = _worldPacket.ReadString(commentLength);
-}
-
void WorldPackets::Ticket::SupportTicketSubmitBug::Read()
{
_worldPacket >> Header;
@@ -206,8 +88,7 @@ WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::Suppo
WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine::SupportTicketChatLine(uint32 timestamp, std::string const& text) :
Timestamp(timestamp), Text(text)
-{
-}
+{ }
ByteBuffer& operator>>(ByteBuffer& data, WorldPackets::Ticket::SupportTicketSubmitComplaint::SupportTicketChatLine& line)
{
diff --git a/src/server/game/Server/Packets/TicketPackets.h b/src/server/game/Server/Packets/TicketPackets.h
index 2cab591b171..050be771274 100644
--- a/src/server/game/Server/Packets/TicketPackets.h
+++ b/src/server/game/Server/Packets/TicketPackets.h
@@ -81,154 +81,7 @@ namespace WorldPackets
time_t OldestTicketTime = 0;
time_t UpdateTime = 0;
std::vector<GMTicketCase> Cases;
- };
-
- class GMTicketGetTicket final : public ClientPacket
- {
- public:
- GMTicketGetTicket(WorldPacket&& packet) : ClientPacket(CMSG_GM_TICKET_GET_TICKET, std::move(packet)) { }
-
- void Read() override { }
- };
-
- class GMTicketGetTicketResponse final : public ServerPacket
- {
- public:
- struct GMTicketInfo
- {
- int32 TicketID = 0;
- std::string TicketDescription;
- uint8 Category = 0;
- time_t TicketOpenTime = 0;
- time_t OldestTicketTime = 0;
- time_t UpdateTime = 0;
- uint8 AssignedToGM = 0;
- uint8 OpenedByGM = 0;
- std::string WaitTimeOverrideMessage;
- int32 WaitTimeOverrideMinutes = 0;
- };
-
- GMTicketGetTicketResponse() : ServerPacket(SMSG_GM_TICKET_GET_TICKET_RESPONSE, 5) { }
-
- WorldPacket const* Write() override;
-
- int32 Result = 0;
- Optional<GMTicketInfo> Info;
- };
-
- class GMTicketCreate final : public ClientPacket
- {
- public:
- struct ChatHistoryData
- {
- uint8 TextCount = 0;
- std::vector<uint32> Sent;
- uint32 DecompressedSize = 0;
- ByteBuffer Data;
- };
-
- GMTicketCreate(WorldPacket&& packet) : ClientPacket(CMSG_GM_TICKET_CREATE, std::move(packet)) { }
-
- void Read() override;
-
- int32 Map = 0;
- G3D::Vector3 Pos;
- uint8 Flags = 0;
- std::string Description;
- bool NeedMoreHelp = false;
- bool NeedResponse = false;
- uint32 DataLength = 0;
- ChatHistoryData ChatHistoryData; ///< Compressed Data
- };
-
- class GMTicketUpdateText final : public ClientPacket
- {
- public:
- GMTicketUpdateText(WorldPacket&& packet) : ClientPacket(CMSG_GM_TICKET_UPDATE_TEXT, std::move(packet)) { }
-
- void Read() override;
-
- std::string Description;
- };
-
- class GMTicketUpdate final : public ServerPacket
- {
- public:
- GMTicketUpdate() : ServerPacket(SMSG_GM_TICKET_UPDATE, 1) { }
-
- WorldPacket const* Write() override;
-
- uint8 Result = 0;
- };
-
- class GMTicketStatusUpdate final : public ServerPacket
- {
- public:
- GMTicketStatusUpdate() : ServerPacket(SMSG_GM_TICKET_STATUS_UPDATE, 4) { }
-
- WorldPacket const* Write() override;
-
- int32 StatusInt = 0;
- };
-
- class GMTicketDelete final : public ClientPacket
- {
- public:
- GMTicketDelete(WorldPacket&& packet) : ClientPacket(CMSG_GM_TICKET_DELETE_TICKET, std::move(packet)) { }
-
- void Read() override { }
- };
-
- class GMTicketResponse final : public ServerPacket
- {
- public:
- GMTicketResponse() : ServerPacket(SMSG_GM_TICKET_RESPONSE, 12) { }
-
- WorldPacket const* Write() override;
-
- uint32 TicketID = 0;
- uint32 ResponseID = 0;
- std::string Description;
- std::string ResponseText;
- };
-
- class GMTicketResponseResolve final : public ClientPacket
- {
- public:
- GMTicketResponseResolve(WorldPacket&& packet) : ClientPacket(CMSG_GM_TICKET_RESPONSE_RESOLVE, std::move(packet)) { }
-
- void Read() override { }
- };
-
- class GMTicketResolveResponse final : public ServerPacket
- {
- public:
- GMTicketResolveResponse() : ServerPacket(SMSG_GM_TICKET_RESOLVE_RESPONSE, 1) { }
-
- WorldPacket const* Write() override;
-
- bool ShowSurvey = false;
- };
-
- class GMSurveySubmit final : public ClientPacket
- {
- public:
- struct GMSurveyQuestion
- {
- int32 QuestionID = 0;
- uint8 Answer = 0;
- std::string AnswerComment;
- };
-
- GMSurveySubmit(WorldPacket&& packet) : ClientPacket(CMSG_GM_SURVEY_SUBMIT, std::move(packet)) { }
-
- void Read() override;
-
- int32 SurveyID = 0;
- std::vector<GMSurveyQuestion> SurveyQuestion;
- std::string Comment;
-
- };
+ };
class GMTicketAcknowledgeSurvey final : public ClientPacket
{
@@ -240,14 +93,6 @@ namespace WorldPackets
int32 CaseID;
};
- class GMTicketResponseError final : public ServerPacket
- {
- public:
- GMTicketResponseError() : ServerPacket(SMSG_GM_TICKET_RESPONSE_ERROR, 0) { }
-
- WorldPacket const* Write() { return &_worldPacket; }
- };
-
class SupportTicketSubmitBug final : public ClientPacket
{
public:
diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp
index 9a0c614e707..70c0f4abe0c 100644
--- a/src/server/game/Server/Protocol/Opcodes.cpp
+++ b/src/server/game/Server/Protocol/Opcodes.cpp
@@ -399,15 +399,9 @@ void OpcodeTable::Initialize()
DEFINE_HANDLER(CMSG_GET_REMAINING_GAME_TIME, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_TROPHY_LIST, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
DEFINE_HANDLER(CMSG_GET_UNDELETE_CHARACTER_COOLDOWN_STATUS, STATUS_AUTHED, PROCESS_THREADUNSAFE, WorldPackets::Character::GetUndeleteCharacterCooldownStatus, &WorldSession::HandleGetUndeleteCooldownStatus);
- //DEFINE_HANDLER(CMSG_GM_SURVEY_SUBMIT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMSurveySubmit, &WorldSession::HandleGMSurveySubmit);
DEFINE_HANDLER(CMSG_GM_TICKET_ACKNOWLEDGE_SURVEY, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
- //DEFINE_HANDLER(CMSG_GM_TICKET_CREATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketCreate, &WorldSession::HandleGMTicketCreateOpcode);
- //DEFINE_HANDLER(CMSG_GM_TICKET_DELETE_TICKET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketDelete, &WorldSession::HandleGMTicketDeleteOpcode);
DEFINE_HANDLER(CMSG_GM_TICKET_GET_CASE_STATUS, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Ticket::GMTicketGetCaseStatus, &WorldSession::HandleGMTicketGetCaseStatusOpcode);
DEFINE_HANDLER(CMSG_GM_TICKET_GET_SYSTEM_STATUS, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketGetSystemStatus, &WorldSession::HandleGMTicketSystemStatusOpcode);
- //DEFINE_HANDLER(CMSG_GM_TICKET_GET_TICKET, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketGetTicket, &WorldSession::HandleGMTicketGetTicketOpcode);
- //DEFINE_HANDLER(CMSG_GM_TICKET_RESPONSE_RESOLVE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketResponseResolve, &WorldSession::HandleGMResponseResolve);
- //DEFINE_HANDLER(CMSG_GM_TICKET_UPDATE_TEXT, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::Ticket::GMTicketUpdateText, &WorldSession::HandleGMTicketUpdateTextOpcode);
DEFINE_HANDLER(CMSG_GOSSIP_SELECT_OPTION, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::NPC::GossipSelectOption, &WorldSession::HandleGossipSelectOptionOpcode);
DEFINE_HANDLER(CMSG_GRANT_LEVEL, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, WorldPackets::RaF::GrantLevel, &WorldSession::HandleGrantLevel);
DEFINE_HANDLER(CMSG_GUILD_ADD_BATTLENET_FRIEND, STATUS_UNHANDLED, PROCESS_INPLACE, WorldPackets::Null, &WorldSession::Handle_NULL);
diff --git a/src/server/game/Server/Protocol/Opcodes.h b/src/server/game/Server/Protocol/Opcodes.h
index 44d50640073..cbd63973b13 100644
--- a/src/server/game/Server/Protocol/Opcodes.h
+++ b/src/server/game/Server/Protocol/Opcodes.h
@@ -716,15 +716,7 @@ enum OpcodeClient : uint32
CMSG_WHO_IS = 0x0126,
CMSG_WORLD_PORT_RESPONSE = 0x04B6,
CMSG_WORLD_TELEPORT = 0x0A35,
- CMSG_WRAP_ITEM = 0x0363,
-
- // Deleted opcodes, remove as soon as their uses are removed
- CMSG_GM_SURVEY_SUBMIT = 0xBADD,
- CMSG_GM_TICKET_CREATE = 0xBADD,
- CMSG_GM_TICKET_DELETE_TICKET = 0xBADD,
- CMSG_GM_TICKET_GET_TICKET = 0xBADD,
- CMSG_GM_TICKET_RESPONSE_RESOLVE = 0xBADD,
- CMSG_GM_TICKET_UPDATE_TEXT = 0xBADD
+ CMSG_WRAP_ITEM = 0x0363
};
enum OpcodeServer : uint32
@@ -1646,13 +1638,7 @@ enum OpcodeServer : uint32
// Deleted opcodes, here only to allow compile
SMSG_ARENA_TEAM_STATS = 0xBADD,
- SMSG_BUY_BANK_SLOT_RESULT = 0xBADD,
- SMSG_GM_TICKET_GET_TICKET_RESPONSE = 0xBADD,
- SMSG_GM_TICKET_RESOLVE_RESPONSE = 0xBADD,
- SMSG_GM_TICKET_RESPONSE = 0xBADD,
- SMSG_GM_TICKET_RESPONSE_ERROR = 0xBADD,
- SMSG_GM_TICKET_STATUS_UPDATE = 0xBADD,
- SMSG_GM_TICKET_UPDATE = 0xBADD,
+ SMSG_BUY_BANK_SLOT_RESULT = 0xBADD
};
inline bool IsInstanceOnlyOpcode(uint32 opcode)
diff --git a/src/server/game/Server/WorldSession.h b/src/server/game/Server/WorldSession.h
index 4ea97367d4b..2ff82e187bd 100644
--- a/src/server/game/Server/WorldSession.h
+++ b/src/server/game/Server/WorldSession.h
@@ -509,15 +509,8 @@ namespace WorldPackets
namespace Ticket
{
- class GMSurveySubmit;
- class GMTicketAcknowledgeSurvey;
- class GMTicketCreate;
- class GMTicketDelete;
class GMTicketGetSystemStatus;
class GMTicketGetCaseStatus;
- class GMTicketGetTicket;
- class GMTicketResponseResolve;
- class GMTicketUpdateText;
class SupportTicketSubmitBug;
class SupportTicketSubmitSuggestion;
class SupportTicketSubmitComplaint;
@@ -1034,14 +1027,8 @@ class WorldSession
void HandleLogoutCancelOpcode(WorldPackets::Character::LogoutCancel& logoutCancel);
// GM Ticket opcodes
- void HandleGMTicketCreateOpcode(WorldPackets::Ticket::GMTicketCreate& packet);
- void HandleGMTicketUpdateTextOpcode(WorldPackets::Ticket::GMTicketUpdateText& packet);
- void HandleGMTicketDeleteOpcode(WorldPackets::Ticket::GMTicketDelete& packet);
void HandleGMTicketGetCaseStatusOpcode(WorldPackets::Ticket::GMTicketGetCaseStatus& packet);
- void HandleGMTicketGetTicketOpcode(WorldPackets::Ticket::GMTicketGetTicket& packet);
void HandleGMTicketSystemStatusOpcode(WorldPackets::Ticket::GMTicketGetSystemStatus& packet);
- void HandleGMSurveySubmit(WorldPackets::Ticket::GMSurveySubmit& packet);
- void HandleGMResponseResolve(WorldPackets::Ticket::GMTicketResponseResolve& packet);
void HandleSupportTicketSubmitBug(WorldPackets::Ticket::SupportTicketSubmitBug& packet);
void HandleSupportTicketSubmitSuggestion(WorldPackets::Ticket::SupportTicketSubmitSuggestion& packet);
void HandleSupportTicketSubmitComplaint(WorldPackets::Ticket::SupportTicketSubmitComplaint& packet);
diff --git a/src/server/game/Support/SupportMgr.cpp b/src/server/game/Support/SupportMgr.cpp
index 5afd6fc1d81..43b754575ca 100644
--- a/src/server/game/Support/SupportMgr.cpp
+++ b/src/server/game/Support/SupportMgr.cpp
@@ -14,6 +14,7 @@
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+
#include "Chat.h"
#include "Language.h"
#include "SupportMgr.h"
@@ -34,7 +35,7 @@ void Ticket::TeleportTo(Player* player) const
player->TeleportTo(_mapId, _pos.x, _pos.y, _pos.z, 0.0f, 0);
}
-std::string Ticket::FormatViewMessageString(ChatHandler& handler, char const* closedName, char const* assignedToName, char const* unassignedName, char const* deletedName, char const* /*completedName*/) const
+std::string Ticket::FormatViewMessageString(ChatHandler& handler, char const* closedName, char const* assignedToName, char const* unassignedName, char const* deletedName) const
{
std::stringstream ss;
ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
@@ -50,165 +51,6 @@ std::string Ticket::FormatViewMessageString(ChatHandler& handler, char const* cl
return ss.str();
}
-GmTicket::GmTicket() : _lastModifiedTime(0), _completed(false), _assignedToStatus(GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED),
-_openedByGmStatus(GMTICKET_OPENEDBYGM_STATUS_NOT_OPENED), _needResponse(false), _needMoreHelp(false) { }
-
-GmTicket::GmTicket(Player* player) : Ticket(player), _lastModifiedTime(time(nullptr)), _completed(false), _assignedToStatus(GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED),
-_openedByGmStatus(GMTICKET_OPENEDBYGM_STATUS_NOT_OPENED), _needResponse(false), _needMoreHelp(false)
-{
- _id = sSupportMgr->GenerateGmTicketId();
-}
-
-GmTicket::~GmTicket() { }
-
-void GmTicket::SetGmAction(bool needResponse, bool needMoreHelp)
-{
- _needResponse = needResponse; // Requires GM response. 17 = true, 1 = false (17 is default)
- _needMoreHelp = needMoreHelp; // Requests further GM interaction on a ticket to which a GM has already responded. Basically means "has a new ticket"
-}
-
-void GmTicket::SetUnassigned()
-{
- if (_assignedToStatus != GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED)
- _assignedToStatus = GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED;
-
- _assignedTo.Clear();
-}
-
-void GmTicket::SetChatLog(std::list<uint32> time, std::string const& log)
-{
- std::stringstream ss(log);
- std::stringstream newss;
- std::string line;
- while (std::getline(ss, line) && !time.empty())
- {
- newss << secsToTimeString(time.front()) << ": " << line << "\n";
- time.pop_front();
- }
-
- _chatLog = newss.str();
-}
-
-void GmTicket::SendResponse(WorldSession* session) const
-{
- WorldPackets::Ticket::GMTicketResponse resp;
- resp.TicketID = GetId();
- resp.ResponseID = 2; //TODO : research
- resp.Description = GetDescription();
- resp.ResponseText = GetResponse();
-
- session->SendPacket(resp.Write());
-}
-
-void GmTicket::LoadFromDB(Field* fields)
-{
- uint8 idx = 0;
- _id = fields[ idx].GetUInt32();
- _playerGuid = ObjectGuid::Create<HighGuid::Player>(fields[++idx].GetUInt64());
- _description = fields[++idx].GetString();
- _createTime = fields[++idx].GetUInt32();
- _mapId = fields[++idx].GetUInt16();
- _pos.x = fields[++idx].GetFloat();
- _pos.y = fields[++idx].GetFloat();
- _pos.z = fields[++idx].GetFloat();
- _lastModifiedTime = fields[++idx].GetUInt32();
-
- int64 closedBy = fields[++idx].GetInt64();
- if (closedBy == 0)
- _closedBy = ObjectGuid::Empty;
- else if (closedBy < 0)
- _closedBy.SetRawValue(0, uint64(closedBy));
- else
- _closedBy = ObjectGuid::Create<HighGuid::Player>(uint64(closedBy));
-
- uint64 assignedTo = fields[++idx].GetUInt64();
- if (assignedTo == 0)
- _assignedTo = ObjectGuid::Empty;
- else
- _assignedTo = ObjectGuid::Create<HighGuid::Player>(assignedTo);
-
- _comment = fields[++idx].GetString();
- _response = fields[++idx].GetString();
- _completed = fields[++idx].GetBool();
- _assignedToStatus = GMTicketAssignedToGMStatus(fields[++idx].GetUInt8());
- _openedByGmStatus = GMTicketOpenedByGMStatus(fields[++idx].GetUInt8());
- _needMoreHelp = fields[++idx].GetBool();
-}
-
-void GmTicket::SaveToDB(SQLTransaction& trans) const
-{
- uint8 idx = 0;
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GM_TICKET);
- stmt->setUInt32(idx, _id);
- stmt->setUInt64(++idx, _playerGuid.GetCounter());
- stmt->setString(++idx, _description);
- stmt->setUInt32(++idx, _createTime);
- stmt->setUInt16(++idx, _mapId);
- stmt->setFloat(++idx, _pos.x);
- stmt->setFloat(++idx, _pos.y);
- stmt->setFloat(++idx, _pos.z);
- stmt->setUInt32(++idx, uint32(_lastModifiedTime));
- stmt->setInt64(++idx, int64(_closedBy.GetCounter()));
- stmt->setUInt64(++idx, _assignedTo.GetCounter());
- stmt->setString(++idx, _comment);
- stmt->setString(++idx, _response);
- stmt->setBool(++idx, _completed);
- stmt->setUInt8(++idx, uint8(_assignedToStatus));
- stmt->setUInt8(++idx, _openedByGmStatus);
- stmt->setBool(++idx, _needMoreHelp);
-
- CharacterDatabase.ExecuteOrAppend(trans, stmt);
-}
-
-void GmTicket::DeleteFromDB()
-{
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_GM_TICKET);
- stmt->setUInt32(0, _id);
- CharacterDatabase.Execute(stmt);
-}
-
-std::string GmTicket::FormatViewMessageString(ChatHandler& handler, bool detailed) const
-{
- time_t curTime = time(nullptr);
-
- std::stringstream ss;
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGECREATE, (secsToTimeString(curTime - _createTime, true, false)).c_str());
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTAGE, (secsToTimeString(curTime - _lastModifiedTime, true, false)).c_str());
-
- if (!_assignedTo.IsEmpty())
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, GetAssignedToName().c_str());
-
- if (detailed)
- {
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTMESSAGE, _description.c_str());
- if (!_comment.empty())
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTCOMMENT, _comment.c_str());
- if (!_response.empty())
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTRESPONSE, _response.c_str());
- }
- return ss.str();
-}
-
-std::string GmTicket::FormatViewMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName, const char* szCompletedName) const
-{
- std::stringstream ss;
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTGUID, _id);
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTNAME, GetPlayerName().c_str());
- if (szClosedName)
- ss << handler.PGetParseString(LANG_COMMAND_TICKETCLOSED, szClosedName);
- if (szAssignedToName)
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTASSIGNEDTO, szAssignedToName);
- if (szUnassignedName)
- ss << handler.PGetParseString(LANG_COMMAND_TICKETLISTUNASSIGNED, szUnassignedName);
- if (szDeletedName)
- ss << handler.PGetParseString(LANG_COMMAND_TICKETDELETED, szDeletedName);
- if (szCompletedName)
- ss << handler.PGetParseString(LANG_COMMAND_TICKETCOMPLETED, szCompletedName);
- return ss.str();
-}
-
BugTicket::BugTicket() : _facing(0.0f) { }
BugTicket::BugTicket(Player* player) : Ticket(player), _facing(0.0f)
@@ -248,7 +90,7 @@ void BugTicket::LoadFromDB(Field* fields)
_comment = fields[++idx].GetString();
}
-void BugTicket::SaveToDB(SQLTransaction& trans) const
+void BugTicket::SaveToDB() const
{
uint8 idx = 0;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GM_BUG);
@@ -264,7 +106,7 @@ void BugTicket::SaveToDB(SQLTransaction& trans) const
stmt->setUInt64(++idx, _assignedTo.GetCounter());
stmt->setString(++idx, _comment);
- CharacterDatabase.ExecuteOrAppend(trans, stmt);
+ CharacterDatabase.Execute(stmt);
}
void BugTicket::DeleteFromDB()
@@ -344,11 +186,9 @@ void ComplaintTicket::LoadChatLineFromDB(Field* fields)
_chatLog.Lines.emplace_back(fields[0].GetUInt32(), fields[1].GetString());
}
-void ComplaintTicket::SaveToDB(SQLTransaction& trans) const
+void ComplaintTicket::SaveToDB() const
{
- bool isInTransaction = bool(trans);
- if (!isInTransaction)
- trans = CharacterDatabase.BeginTransaction();
+ SQLTransaction trans = CharacterDatabase.BeginTransaction();
uint8 idx = 0;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GM_COMPLAINT);
@@ -385,8 +225,7 @@ void ComplaintTicket::SaveToDB(SQLTransaction& trans) const
++lineIndex;
}
- if (!isInTransaction)
- CharacterDatabase.CommitTransaction(trans);
+ CharacterDatabase.CommitTransaction(trans);
}
void ComplaintTicket::DeleteFromDB()
@@ -460,7 +299,7 @@ void SuggestionTicket::LoadFromDB(Field* fields)
_comment = fields[++idx].GetString();
}
-void SuggestionTicket::SaveToDB(SQLTransaction& trans) const
+void SuggestionTicket::SaveToDB() const
{
uint8 idx = 0;
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_REP_GM_SUGGESTION);
@@ -476,7 +315,7 @@ void SuggestionTicket::SaveToDB(SQLTransaction& trans) const
stmt->setUInt64(++idx, _assignedTo.GetCounter());
stmt->setString(++idx, _comment);
- CharacterDatabase.ExecuteOrAppend(trans, stmt);
+ CharacterDatabase.Execute(stmt);
}
void SuggestionTicket::DeleteFromDB()
@@ -508,14 +347,11 @@ std::string SuggestionTicket::FormatViewMessageString(ChatHandler& handler, bool
}
SupportMgr::SupportMgr() : _supportSystemStatus(false), _ticketSystemStatus(false), _bugSystemStatus(false), _complaintSystemStatus(false), _suggestionSystemStatus(false),
-_lastGmTicketId(0), _lastBugId(0), _lastComplaintId(0), _lastSuggestionId(0), _lastChange(0),
-_openGmTicketCount(0), _openBugTicketCount(0), _openComplaintTicketCount(0), _openSuggestionTicketCount(0) { }
+_lastBugId(0), _lastComplaintId(0), _lastSuggestionId(0), _lastChange(0),
+_openBugTicketCount(0), _openComplaintTicketCount(0), _openSuggestionTicketCount(0) { }
SupportMgr::~SupportMgr()
{
- for (auto const& t : _gmTicketList)
- delete t.second;
-
for (auto const& b : _bugTicketList)
delete b.second;
@@ -536,17 +372,6 @@ void SupportMgr::Initialize()
}
template<>
-GmTicket* SupportMgr::GetTicket<GmTicket>(uint32 ticketId)
-{
- GmTicketList::const_iterator itr = _gmTicketList.find(ticketId);
- if (itr != _gmTicketList.end())
- return itr->second;
-
- return nullptr;
-
-}
-
-template<>
BugTicket* SupportMgr::GetTicket<BugTicket>(uint32 bugId)
{
BugTicketList::const_iterator itr = _bugTicketList.find(bugId);
@@ -579,9 +404,6 @@ SuggestionTicket* SupportMgr::GetTicket<SuggestionTicket>(uint32 suggestionId)
}
template<>
-uint32 SupportMgr::GetOpenTicketCount<GmTicket>() const { return _openGmTicketCount; }
-
-template<>
uint32 SupportMgr::GetOpenTicketCount<BugTicket>() const { return _openBugTicketCount; }
template<>
@@ -590,46 +412,6 @@ uint32 SupportMgr::GetOpenTicketCount<ComplaintTicket>() const { return _openCom
template<>
uint32 SupportMgr::GetOpenTicketCount<SuggestionTicket>() const { return _openSuggestionTicketCount; }
-void SupportMgr::LoadGmTickets()
-{
- uint32 oldMSTime = getMSTime();
-
- for (auto const& c : _gmTicketList)
- delete c.second;
- _gmTicketList.clear();
-
- _lastGmTicketId = 0;
- _openGmTicketCount = 0;
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_SEL_GM_TICKETS);
- PreparedQueryResult result = CharacterDatabase.Query(stmt);
- if (!result)
- {
- TC_LOG_INFO("server.loading", ">> Loaded 0 GM tickets. DB table `gm_ticket` is empty!");
- return;
- }
-
- uint32 count = 0;
- do
- {
- Field* fields = result->Fetch();
- GmTicket* ticket = new GmTicket();
- ticket->LoadFromDB(fields);
-
- if (!ticket->IsClosed())
- ++_openGmTicketCount;
-
- uint32 id = ticket->GetId();
- if (_lastGmTicketId < id)
- _lastGmTicketId = id;
-
- _gmTicketList[id] = ticket;
- ++count;
- } while (result->NextRow());
-
- TC_LOG_INFO("server.loading", ">> Loaded %u GM tickets in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
-}
-
void SupportMgr::LoadBugTickets()
{
uint32 oldMSTime = getMSTime();
@@ -765,24 +547,13 @@ void SupportMgr::LoadSuggestionTickets()
TC_LOG_INFO("server.loading", ">> Loaded %u GM suggestions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
}
-void SupportMgr::AddTicket(GmTicket* ticket)
-{
- _gmTicketList[ticket->GetId()] = ticket;
- if (!ticket->IsClosed())
- ++_openGmTicketCount;
-
- SQLTransaction trans = SQLTransaction(nullptr);
- ticket->SaveToDB(trans);
-}
-
void SupportMgr::AddTicket(BugTicket* ticket)
{
_bugTicketList[ticket->GetId()] = ticket;
if (!ticket->IsClosed())
++_openBugTicketCount;
- SQLTransaction trans = SQLTransaction(nullptr);
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
}
void SupportMgr::AddTicket(ComplaintTicket* ticket)
@@ -791,8 +562,7 @@ void SupportMgr::AddTicket(ComplaintTicket* ticket)
if (!ticket->IsClosed())
++_openComplaintTicketCount;
- SQLTransaction trans = SQLTransaction(nullptr);
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
}
void SupportMgr::AddTicket(SuggestionTicket* ticket)
@@ -801,19 +571,7 @@ void SupportMgr::AddTicket(SuggestionTicket* ticket)
if (!ticket->IsClosed())
++_openSuggestionTicketCount;
- SQLTransaction trans = SQLTransaction(nullptr);
- ticket->SaveToDB(trans);
-}
-
-template<>
-void SupportMgr::RemoveTicket<GmTicket>(uint32 ticketId)
-{
- if (GmTicket* ticket = GetTicket<GmTicket>(ticketId))
- {
- ticket->DeleteFromDB();
- _gmTicketList.erase(ticketId);
- delete ticket;
- }
+ ticket->SaveToDB();
}
template<>
@@ -850,28 +608,14 @@ void SupportMgr::RemoveTicket<SuggestionTicket>(uint32 ticketId)
}
template<>
-void SupportMgr::CloseTicket<GmTicket>(uint32 ticketId, ObjectGuid closedBy)
-{
- if (GmTicket* ticket = GetTicket<GmTicket>(ticketId))
- {
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetClosedBy(closedBy);
- if (!closedBy.IsEmpty())
- --_openGmTicketCount;
- ticket->SaveToDB(trans);
- }
-}
-
-template<>
void SupportMgr::CloseTicket<BugTicket>(uint32 ticketId, ObjectGuid closedBy)
{
if (BugTicket* ticket = GetTicket<BugTicket>(ticketId))
{
- SQLTransaction trans = SQLTransaction(NULL);
ticket->SetClosedBy(closedBy);
if (!closedBy.IsEmpty())
--_openBugTicketCount;
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
}
}
@@ -880,11 +624,10 @@ void SupportMgr::CloseTicket<ComplaintTicket>(uint32 ticketId, ObjectGuid closed
{
if (ComplaintTicket* ticket = GetTicket<ComplaintTicket>(ticketId))
{
- SQLTransaction trans = SQLTransaction(NULL);
ticket->SetClosedBy(closedBy);
if (!closedBy.IsEmpty())
--_openComplaintTicketCount;
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
}
}
@@ -893,28 +636,14 @@ void SupportMgr::CloseTicket<SuggestionTicket>(uint32 ticketId, ObjectGuid close
{
if (SuggestionTicket* ticket = GetTicket<SuggestionTicket>(ticketId))
{
- SQLTransaction trans = SQLTransaction(NULL);
ticket->SetClosedBy(closedBy);
if (!closedBy.IsEmpty())
--_openSuggestionTicketCount;
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
}
}
template<>
-void SupportMgr::ResetTickets<GmTicket>()
-{
- for (auto const& c : _gmTicketList)
- delete c.second;
- _gmTicketList.clear();
-
- _lastGmTicketId = 0;
-
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_ALL_GM_TICKETS);
- CharacterDatabase.Execute(stmt);
-}
-
-template<>
void SupportMgr::ResetTickets<BugTicket>()
{
for (auto const& c : _bugTicketList)
@@ -956,25 +685,6 @@ void SupportMgr::ResetTickets<SuggestionTicket>()
}
template<>
-void SupportMgr::ShowList<GmTicket>(ChatHandler& handler, bool onlineOnly) const
-{
- handler.SendSysMessage(onlineOnly ? LANG_COMMAND_TICKETSHOWONLINELIST : LANG_COMMAND_TICKETSHOWLIST);
- for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
- if (!itr->second->IsClosed() && !itr->second->IsCompleted())
- if (!onlineOnly || itr->second->GetPlayer())
- handler.SendSysMessage(itr->second->FormatViewMessageString(handler).c_str());
-}
-
-template<>
-void SupportMgr::ShowList<GmTicket>(ChatHandler& handler) const
-{
- handler.SendSysMessage(LANG_COMMAND_TICKETSHOWLIST);
- for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
- if (!itr->second->IsClosed() && !itr->second->IsCompleted())
- handler.SendSysMessage(itr->second->FormatViewMessageString(handler).c_str());
-}
-
-template<>
void SupportMgr::ShowList<BugTicket>(ChatHandler& handler) const
{
handler.SendSysMessage(LANG_COMMAND_TICKETSHOWLIST);
@@ -1002,15 +712,6 @@ void SupportMgr::ShowList<SuggestionTicket>(ChatHandler& handler) const
}
template<>
-void SupportMgr::ShowClosedList<GmTicket>(ChatHandler& handler) const
-{
- handler.SendSysMessage(LANG_COMMAND_TICKETSHOWCLOSEDLIST);
- for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
- if (itr->second->IsClosed())
- handler.SendSysMessage(itr->second->FormatViewMessageString(handler).c_str());
-}
-
-template<>
void SupportMgr::ShowClosedList<BugTicket>(ChatHandler& handler) const
{
handler.SendSysMessage(LANG_COMMAND_TICKETSHOWCLOSEDLIST);
@@ -1036,45 +737,3 @@ void SupportMgr::ShowClosedList<SuggestionTicket>(ChatHandler& handler) const
if (itr->second->IsClosed())
handler.SendSysMessage(itr->second->FormatViewMessageString(handler).c_str());
}
-
-void SupportMgr::ShowGmEscalatedList(ChatHandler& handler) const
-{
- handler.SendSysMessage(LANG_COMMAND_TICKETSHOWESCALATEDLIST);
- for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
- if (!itr->second->IsClosed() && itr->second->GetAssigendToStatus() == GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED)
- handler.SendSysMessage(itr->second->FormatViewMessageString(handler).c_str());
-}
-
-void SupportMgr::SendGmTicket(WorldSession* session, GmTicket* ticket) const
-{
- WorldPackets::Ticket::GMTicketGetTicketResponse response;
-
- if (ticket)
- {
- response.Result = GMTICKET_STATUS_HASTEXT;
- response.Info = boost::in_place();
-
- response.Info->TicketID = ticket->GetId();
- response.Info->TicketDescription = ticket->GetDescription();
- response.Info->Category = 1;
- response.Info->TicketOpenTime = GetAge(ticket->GetLastModifiedTime());
- response.Info->OldestTicketTime = sSupportMgr->GetOldestOpenTicket() ? GetAge(sSupportMgr->GetOldestOpenTicket()->GetLastModifiedTime()) : float(0);
- response.Info->UpdateTime = GetAge(sSupportMgr->GetLastChange());
- response.Info->AssignedToGM = ticket->GetAssigendToStatus();
- response.Info->OpenedByGM = ticket->GetOpenedByGmStatus();
- response.Info->WaitTimeOverrideMessage = "";
- response.Info->WaitTimeOverrideMinutes = 0;
- }
- else
- response.Result = GMTICKET_STATUS_DEFAULT;
-
- session->SendPacket(response.Write());
-}
-
-void SupportMgr::SendGmTicketUpdate(WorldSession* session, GMTicketResponse response) const
-{
- WorldPackets::Ticket::GMTicketUpdate update;
- update.Result = response;
-
- session->SendPacket(update.Write());
-}
diff --git a/src/server/game/Support/SupportMgr.h b/src/server/game/Support/SupportMgr.h
index 10bd90d4f80..fd251f50110 100644
--- a/src/server/game/Support/SupportMgr.h
+++ b/src/server/game/Support/SupportMgr.h
@@ -31,41 +31,6 @@ enum GMTicketSystemStatus
GMTICKET_QUEUE_STATUS_ENABLED = 1
};
-enum GMTicketStatus
-{
- GMTICKET_STATUS_HASTEXT = 0x06,
- GMTICKET_STATUS_DEFAULT = 0x0A
-};
-
-enum GMTicketResponse
-{
- GMTICKET_RESPONSE_ALREADY_EXIST = 1,
- GMTICKET_RESPONSE_CREATE_SUCCESS = 2,
- GMTICKET_RESPONSE_CREATE_ERROR = 3,
- GMTICKET_RESPONSE_UPDATE_SUCCESS = 4,
- GMTICKET_RESPONSE_UPDATE_ERROR = 5,
- GMTICKET_RESPONSE_TICKET_DELETED = 9
-};
-
-// from blizzard lua
-enum GMTicketOpenedByGMStatus
-{
- GMTICKET_OPENEDBYGM_STATUS_NOT_OPENED = 0, // ticket has never been opened by a gm
- GMTICKET_OPENEDBYGM_STATUS_OPENED = 1 // ticket has been opened by a gm
-};
-
-// from Blizzard LUA:
-// GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED = 0; -- ticket is not currently assigned to a gm
-// GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED = 1; -- ticket is assigned to a normal gm
-// GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED = 2; -- ticket is in the escalation queue
-// 3 is a custom value and should never actually be sent
-enum GMTicketAssignedToGMStatus
-{
- GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED = 0,
- GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED = 1,
- GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED = 2
-};
-
enum GMSupportComplaintType
{
GMTICKET_SUPPORT_COMPLAINT_TYPE_NONE = 0,
@@ -125,13 +90,13 @@ public:
}
virtual void LoadFromDB(Field* fields) = 0;
- virtual void SaveToDB(SQLTransaction& trans) const = 0;
+ virtual void SaveToDB() const = 0;
virtual void DeleteFromDB() = 0;
void TeleportTo(Player* player) const;
virtual std::string FormatViewMessageString(ChatHandler& handler, bool detailed = false) const = 0;
- virtual std::string FormatViewMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName, const char* szCompletedName) const;
+ virtual std::string FormatViewMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName) const;
protected:
uint32 _id;
@@ -144,70 +109,6 @@ protected:
std::string _comment;
};
-
-class GmTicket : public Ticket
-{
-public:
- GmTicket();
- GmTicket(Player* player);
- ~GmTicket();
-
- bool IsCompleted() const { return _completed; }
- GMTicketOpenedByGMStatus GetOpenedByGmStatus() const { return _openedByGmStatus; }
-
- bool GetNeedMoreHelp() const { return _needMoreHelp; }
- std::string const& GetDescription() const { return _description; }
- uint64 GetLastModifiedTime() const { return _lastModifiedTime; }
- uint8 GetCategory() const { return _category; }
- GMTicketAssignedToGMStatus GetAssigendToStatus() const { return _assignedToStatus; }
- std::string const& GetResponse() const { return _response; }
-
- void SetAssignedTo(ObjectGuid guid, bool isAdmin = false) override
- {
- _assignedTo = guid;
- if (isAdmin)
- _assignedToStatus = GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED;
- else if (_assignedToStatus == GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED)
- _assignedToStatus = GMTICKET_ASSIGNEDTOGM_STATUS_ASSIGNED;
- }
- void SetAssignedToStatus(GMTicketAssignedToGMStatus assignedToStatus) { _assignedToStatus = assignedToStatus; }
- void SetCompleted() { _completed = true; }
- void SetDescription(std::string const& description)
- {
- _description = description;
- _lastModifiedTime = uint64(time(NULL));
- }
- void SetViewed() { _openedByGmStatus = GMTICKET_OPENEDBYGM_STATUS_OPENED; }
- void SetGmAction(bool needResponse, bool needMoreHelp);
- void SetUnassigned() override;
-
- void AppendResponse(std::string const& response) { _response += response; }
-
- void SetChatLog(std::list<uint32> time, std::string const& log);
- std::string const& GetChatLog() const { return _chatLog; }
-
- void SendResponse(WorldSession* session) const;
-
- void LoadFromDB(Field* fields) override;
- void SaveToDB(SQLTransaction& trans) const override;
- void DeleteFromDB() override;
-
- std::string FormatViewMessageString(ChatHandler& handler, bool detailed = false) const override;
- std::string FormatViewMessageString(ChatHandler& handler, const char* szClosedName, const char* szAssignedToName, const char* szUnassignedName, const char* szDeletedName, const char* szCompletedName) const override;
-
-private:
- std::string _description;
- uint64 _lastModifiedTime;
- bool _completed;
- uint8 _category;
- GMTicketAssignedToGMStatus _assignedToStatus;
- GMTicketOpenedByGMStatus _openedByGmStatus;
- bool _needResponse; ///< true if we want a GM to contact us when we open a new ticket (Note: This flag is always true right now)
- bool _needMoreHelp;
- std::string _response;
- std::string _chatLog; // No need to store in db, will be refreshed every session client side
-};
-
class BugTicket : public Ticket
{
public:
@@ -221,7 +122,7 @@ public:
void SetNote(std::string const& note) { _note = note; }
void LoadFromDB(Field* fields) override;
- void SaveToDB(SQLTransaction& trans) const override;
+ void SaveToDB() const override;
void DeleteFromDB() override;
using Ticket::FormatViewMessageString;
@@ -254,7 +155,7 @@ public:
void LoadFromDB(Field* fields) override;
void LoadChatLineFromDB(Field* fields);
- void SaveToDB(SQLTransaction& trans) const override;
+ void SaveToDB() const override;
void DeleteFromDB() override;
using Ticket::FormatViewMessageString;
@@ -281,7 +182,7 @@ public:
void SetFacing(float facing) { _facing = facing; }
void LoadFromDB(Field* fields) override;
- void SaveToDB(SQLTransaction& trans) const override;
+ void SaveToDB() const override;
void DeleteFromDB() override;
using Ticket::FormatViewMessageString;
@@ -295,7 +196,6 @@ private:
typedef std::map<uint32, BugTicket*> BugTicketList;
typedef std::map<uint32, ComplaintTicket*> ComplaintTicketList;
typedef std::map<uint32, SuggestionTicket*> SuggestionTicketList;
-typedef std::map<uint32, GmTicket*> GmTicketList;
class SupportMgr
{
@@ -313,15 +213,6 @@ public:
template<typename T>
T* GetTicket(uint32 ticketId);
- GmTicket* GetGmTicketByPlayerGuid(ObjectGuid playerGuid) const
- {
- for (auto const& c : _gmTicketList)
- if (c.second->GetPlayerGuid() == playerGuid && !c.second->IsClosed())
- return c.second;
-
- return nullptr;
- }
-
ComplaintTicketList GetComplaintsByPlayerGuid(ObjectGuid playerGuid) const
{
ComplaintTicketList ret;
@@ -332,15 +223,6 @@ public:
return ret;
}
- GmTicket* GetOldestOpenTicket()
- {
- for (GmTicketList::const_iterator itr = _gmTicketList.begin(); itr != _gmTicketList.end(); ++itr)
- if (itr->second && !itr->second->IsClosed() && !itr->second->IsCompleted())
- return itr->second;
-
- return nullptr;
- }
-
void Initialize();
bool GetSupportSystemStatus() { return _supportSystemStatus; }
@@ -358,12 +240,10 @@ public:
void SetComplaintSystemStatus(bool status) { _complaintSystemStatus = status; }
void SetSuggestionSystemStatus(bool status) { _suggestionSystemStatus = status; }
- void LoadGmTickets();
void LoadBugTickets();
void LoadComplaintTickets();
void LoadSuggestionTickets();
- void AddTicket(GmTicket* ticket);
void AddTicket(BugTicket* ticket);
void AddTicket(ComplaintTicket* ticket);
void AddTicket(SuggestionTicket* ticket);
@@ -386,14 +266,8 @@ public:
template<typename T>
void ShowClosedList(ChatHandler& handler) const;
- void ShowGmEscalatedList(ChatHandler& handler) const;
-
void UpdateLastChange() { _lastChange = uint64(time(nullptr)); }
- void SendGmTicket(WorldSession* session, GmTicket* ticket) const;
- void SendGmTicketUpdate(WorldSession* session, GMTicketResponse response) const;
-
- uint32 GenerateGmTicketId() { return ++_lastGmTicketId; }
uint32 GenerateBugId() { return ++_lastBugId; }
uint32 GenerateComplaintId() { return ++_lastComplaintId; }
uint32 GenerateSuggestionId() { return ++_lastSuggestionId; }
@@ -404,16 +278,13 @@ private:
bool _bugSystemStatus;
bool _complaintSystemStatus;
bool _suggestionSystemStatus;
- GmTicketList _gmTicketList;
BugTicketList _bugTicketList;
ComplaintTicketList _complaintTicketList;
SuggestionTicketList _suggestionTicketList;
- uint32 _lastGmTicketId;
uint32 _lastBugId;
uint32 _lastComplaintId;
uint32 _lastSuggestionId;
uint64 _lastChange;
- uint32 _openGmTicketCount;
uint32 _openBugTicketCount;
uint32 _openComplaintTicketCount;
uint32 _openSuggestionTicketCount;
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index dee5492dc65..7746607d9e6 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -445,7 +445,6 @@ void World::LoadConfigSettings(bool reload)
sSupportMgr->SetComplaintSystemStatus(m_bool_configs[CONFIG_SUPPORT_COMPLAINTS_ENABLED]);
sSupportMgr->SetSuggestionSystemStatus(m_bool_configs[CONFIG_SUPPORT_SUGGESTIONS_ENABLED]);
}
- m_float_configs[CONFIG_CHANCE_OF_GM_SURVEY] = sConfigMgr->GetFloatDefault("Support.ChanceOfGMSurvey", 50.0f);
///- Get string for new logins (newly created characters)
@@ -628,7 +627,6 @@ void World::LoadConfigSettings(bool reload)
m_int_configs[CONFIG_CHAT_WHISPER_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Whisper", 1);
m_int_configs[CONFIG_CHAT_SAY_LEVEL_REQ] = sConfigMgr->GetIntDefault("ChatLevelReq.Say", 1);
m_int_configs[CONFIG_TRADE_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Trade", 1);
- m_int_configs[CONFIG_TICKET_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Ticket", 1);
m_int_configs[CONFIG_AUCTION_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Auction", 1);
m_int_configs[CONFIG_MAIL_LEVEL_REQ] = sConfigMgr->GetIntDefault("LevelReq.Mail", 1);
m_bool_configs[CONFIG_PRESERVE_CUSTOM_CHANNELS] = sConfigMgr->GetBoolDefault("PreserveCustomChannels", false);
@@ -1843,9 +1841,6 @@ void World::SetInitialWorldSettings()
TC_LOG_INFO("server.loading", "Loading faction change title pairs...");
sObjectMgr->LoadFactionChangeTitles();
- TC_LOG_INFO("server.loading", "Loading GM tickets...");
- sSupportMgr->LoadGmTickets();
-
TC_LOG_INFO("server.loading", "Loading GM bugs...");
sSupportMgr->LoadBugTickets();
diff --git a/src/server/game/World/World.h b/src/server/game/World/World.h
index b169431f2fd..b72591e04fa 100644
--- a/src/server/game/World/World.h
+++ b/src/server/game/World/World.h
@@ -191,7 +191,6 @@ enum WorldFloatConfigs
CONFIG_CREATURE_FAMILY_FLEE_ASSISTANCE_RADIUS,
CONFIG_CREATURE_FAMILY_ASSISTANCE_RADIUS,
CONFIG_THREAT_RADIUS,
- CONFIG_CHANCE_OF_GM_SURVEY,
CONFIG_STATS_LIMITS_DODGE,
CONFIG_STATS_LIMITS_PARRY,
CONFIG_STATS_LIMITS_BLOCK,
@@ -252,7 +251,6 @@ enum WorldIntConfigs
CONFIG_MIN_PETITION_SIGNS,
CONFIG_GM_LOGIN_STATE,
CONFIG_GM_VISIBLE_STATE,
- CONFIG_GM_ACCEPT_TICKETS,
CONFIG_GM_CHAT,
CONFIG_GM_WHISPERING_TO,
CONFIG_GM_FREEZE_DURATION,
@@ -286,7 +284,6 @@ enum WorldIntConfigs
CONFIG_CHAT_WHISPER_LEVEL_REQ,
CONFIG_CHAT_SAY_LEVEL_REQ,
CONFIG_TRADE_LEVEL_REQ,
- CONFIG_TICKET_LEVEL_REQ,
CONFIG_AUCTION_LEVEL_REQ,
CONFIG_MAIL_LEVEL_REQ,
CONFIG_CORPSE_DECAY_NORMAL,
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index fcfee396627..19b714f6e61 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -49,7 +49,6 @@ public:
{ "trigger", rbac::RBAC_PERM_COMMAND_GO_TRIGGER, false, &HandleGoTriggerCommand, "", NULL },
{ "zonexy", rbac::RBAC_PERM_COMMAND_GO_ZONEXY, false, &HandleGoZoneXYCommand, "", NULL },
{ "xyz", rbac::RBAC_PERM_COMMAND_GO_XYZ, false, &HandleGoXYZCommand, "", NULL },
- { "ticket", rbac::RBAC_PERM_COMMAND_GO_TICKET, false, &HandleGoTicketCommand<GmTicket>, "", NULL },
{ "bugticket", rbac::RBAC_PERM_COMMAND_GO_BUG_TICKET, false, &HandleGoTicketCommand<BugTicket>, "", NULL },
{ "complaintticket", rbac::RBAC_PERM_COMMAND_GO_COMPLAINT_TICKET, false, &HandleGoTicketCommand<ComplaintTicket>, "", NULL },
{ "suggestionticket", rbac::RBAC_PERM_COMMAND_GO_SUGGESTION_TICKET, false, &HandleGoTicketCommand<SuggestionTicket>, "", NULL },
diff --git a/src/server/scripts/Commands/cs_reload.cpp b/src/server/scripts/Commands/cs_reload.cpp
index 556589e281d..c3ba942ef1f 100644
--- a/src/server/scripts/Commands/cs_reload.cpp
+++ b/src/server/scripts/Commands/cs_reload.cpp
@@ -167,7 +167,6 @@ public:
static bool HandleReloadSupportSystemCommand(ChatHandler* handler, const char* /*args*/)
{
TC_LOG_INFO("misc", "Re-Loading Support System Tables...");
- sSupportMgr->LoadGmTickets();
sSupportMgr->LoadBugTickets();
sSupportMgr->LoadComplaintTickets();
sSupportMgr->LoadSuggestionTickets();
diff --git a/src/server/scripts/Commands/cs_ticket.cpp b/src/server/scripts/Commands/cs_ticket.cpp
index 3847a74bc34..7591cbf1712 100644
--- a/src/server/scripts/Commands/cs_ticket.cpp
+++ b/src/server/scripts/Commands/cs_ticket.cpp
@@ -64,79 +64,15 @@ public:
template<typename T>
static bool HandleTicketGetByIdCommand(ChatHandler* handler, char const* args);
- static bool HandleGMTicketCompleteCommand(ChatHandler* handler, char const* args)
- {
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- if (Player* player = ticket->GetPlayer())
- ticket->SendResponse(player->GetSession());
-
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetCompleted();
- ticket->SaveToDB(trans);
-
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console");
- handler->SendGlobalGMSysMessage(msg.c_str());
- sSupportMgr->UpdateLastChange();
- return true;
- }
-
- static bool HandleGMTicketEscalateCommand(ChatHandler* handler, char const* args)
- {
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed() || ticket->IsCompleted() || ticket->GetAssigendToStatus() != GMTICKET_ASSIGNEDTOGM_STATUS_NOT_ASSIGNED)
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetAssignedToStatus(GMTICKET_ASSIGNEDTOGM_STATUS_ESCALATED);
- ticket->SaveToDB(trans);
-
- if (Player* player = ticket->GetPlayer())
- sSupportMgr->SendGmTicket(player->GetSession(), ticket);
-
- sSupportMgr->UpdateLastChange();
- return true;
- }
-
- static bool HandleGMTicketListEscalatedCommand(ChatHandler* handler, char const* /*args*/)
- {
- sSupportMgr->ShowGmEscalatedList(*handler);
- return true;
- }
-
- static bool HandleGMTicketListOnlineCommand(ChatHandler* handler, char const* /*args*/)
- {
- sSupportMgr->ShowList<GmTicket>(*handler, true);
- return true;
- }
-
static bool HandleTicketResetAllCommand(ChatHandler* handler, char const* /*args*/)
{
- if (sSupportMgr->GetOpenTicketCount<GmTicket>() || sSupportMgr->GetOpenTicketCount<BugTicket>()
- || sSupportMgr->GetOpenTicketCount<ComplaintTicket>() || sSupportMgr->GetOpenTicketCount<SuggestionTicket>())
+ if (sSupportMgr->GetOpenTicketCount<BugTicket>() || sSupportMgr->GetOpenTicketCount<ComplaintTicket>() || sSupportMgr->GetOpenTicketCount<SuggestionTicket>())
{
handler->SendSysMessage(LANG_COMMAND_TICKETPENDING);
return true;
}
else
{
- sSupportMgr->ResetTickets<GmTicket>();
sSupportMgr->ResetTickets<BugTicket>();
sSupportMgr->ResetTickets<ComplaintTicket>();
sSupportMgr->ResetTickets<SuggestionTicket>();
@@ -159,95 +95,6 @@ public:
return true;
}
- static bool HandleGMTicketGetByNameCommand(ChatHandler* handler, char const* args)
- {
- if (!*args)
- return false;
-
- std::string name(args);
- if (!normalizePlayerName(name))
- return false;
-
- // Detect target's GUID
- ObjectGuid guid;
- if (Player* player = ObjectAccessor::FindPlayerByName(name))
- guid = player->GetGUID();
- else
- guid = ObjectMgr::GetPlayerGUIDByName(name);
-
- // Target must exist
- if (!guid)
- {
- handler->SendSysMessage(LANG_NO_PLAYERS_FOUND);
- return true;
- }
-
- // Ticket must exist
- GmTicket* ticket = sSupportMgr->GetGmTicketByPlayerGuid(guid);
- if (!ticket)
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetViewed();
- ticket->SaveToDB(trans);
-
- if (Player* player = ticket->GetPlayer())
- sSupportMgr->SendGmTicket(player->GetSession(), ticket);
-
- handler->SendSysMessage(ticket->FormatViewMessageString(*handler, true).c_str());
- return true;
- }
-
- static bool _HandleGMTicketResponseAppendCommand(char const* args, bool newLine, ChatHandler* handler)
- {
- if (!*args)
- return false;
-
- char* ticketIdStr = strtok((char*)args, " ");
- uint32 ticketId = atoi(ticketIdStr);
-
- char* response = strtok(NULL, "\n");
- if (!response)
- return false;
-
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed())
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- // Cannot add response to ticket, assigned to someone else
- //! Console excluded
- Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : NULL;
- if (player && ticket->IsAssignedNotTo(player->GetGUID()))
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId());
- return true;
- }
-
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->AppendResponse(response);
- if (newLine)
- ticket->AppendResponse("\n");
- ticket->SaveToDB(trans);
-
- return true;
- }
-
- static bool HandleGMTicketResponseAppendCommand(ChatHandler* handler, char const* args)
- {
- return _HandleGMTicketResponseAppendCommand(args, false, handler);
- }
-
- static bool HandleGMTicketResponseAppendLnCommand(ChatHandler* handler, char const* args)
- {
- return _HandleGMTicketResponseAppendCommand(args, true, handler);
- }
-
ChatCommand* GetCommands() const override;
};
@@ -301,76 +148,16 @@ bool ticket_commandscript::HandleTicketAssignToCommand(ChatHandler* handler, cha
}
// Assign ticket
- SQLTransaction trans = SQLTransaction(nullptr);
ticket->SetAssignedTo(targetGuid);
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, target.c_str(), NULL, NULL, NULL);
+ std::string msg = ticket->FormatViewMessageString(*handler, NULL, target.c_str(), NULL, NULL);
handler->SendGlobalGMSysMessage(msg.c_str());
return true;
}
-template<>
-bool ticket_commandscript::HandleTicketAssignToCommand<GmTicket>(ChatHandler* handler, char const* args)
-{
- if (!*args)
- return false;
- char* ticketIdStr = strtok((char*)args, " ");
- uint32 ticketId = atoi(ticketIdStr);
-
- char* targetStr = strtok(NULL, " ");
- if (!targetStr)
- return false;
-
- std::string target(targetStr);
- if (!normalizePlayerName(target))
- return false;
-
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- ObjectGuid targetGuid = ObjectMgr::GetPlayerGUIDByName(target);
- uint32 accountId = ObjectMgr::GetPlayerAccountIdByGUID(targetGuid);
- // Target must exist and have administrative rights
- if (!AccountMgr::HasPermission(accountId, rbac::RBAC_PERM_COMMANDS_BE_ASSIGNED_TICKET, realmHandle.Index))
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETASSIGNERROR_A);
- return true;
- }
-
- // If already assigned, leave
- if (ticket->IsAssignedTo(targetGuid))
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETASSIGNERROR_B, ticket->GetId());
- return true;
- }
-
- // If assigned to different player other than current, leave
- //! Console can override though
- Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
- if (player && ticket->IsAssignedNotTo(player->GetGUID()))
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETALREADYASSIGNED, ticket->GetId(), target.c_str());
- return true;
- }
-
- // Assign ticket
- SQLTransaction trans = SQLTransaction(nullptr);
- ticket->SetAssignedTo(targetGuid, AccountMgr::IsAdminAccount(AccountMgr::GetSecurity(accountId, realmHandle.Index)));
- sSupportMgr->UpdateLastChange();
-
- ticket->SaveToDB(trans);
-
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, target.c_str(), NULL, NULL, NULL);
- handler->SendGlobalGMSysMessage(msg.c_str());
- return true;
-}
template<typename T>
bool ticket_commandscript::HandleTicketCloseByIdCommand(ChatHandler* handler, char const* args)
@@ -403,52 +190,9 @@ bool ticket_commandscript::HandleTicketCloseByIdCommand(ChatHandler* handler, ch
sSupportMgr->CloseTicket<T>(ticket->GetId(), closedByGuid);
- std::string msg = ticket->FormatViewMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL, NULL);
- handler->SendGlobalGMSysMessage(msg.c_str());
-
- return true;
-}
-
-template<>
-bool ticket_commandscript::HandleTicketCloseByIdCommand<GmTicket>(ChatHandler* handler, char const* args)
-{
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- // Ticket should be assigned to the player who tries to close it.
- // Console can override though
- Player* player = handler->GetSession() ? handler->GetSession()->GetPlayer() : nullptr;
- if (player && ticket->IsAssignedNotTo(player->GetGUID()))
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETCANNOTCLOSE, ticket->GetId());
- return true;
- }
-
- ObjectGuid closedByGuid;
- if (player)
- closedByGuid = player->GetGUID();
- else
- closedByGuid.SetRawValue(0, uint64(-1));
-
- std::string msg = ticket->FormatViewMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL, NULL);
+ std::string msg = ticket->FormatViewMessageString(*handler, player ? player->GetName().c_str() : "Console", NULL, NULL, NULL);
handler->SendGlobalGMSysMessage(msg.c_str());
-
- sSupportMgr->CloseTicket<GmTicket>(ticket->GetId(), closedByGuid);
- sSupportMgr->UpdateLastChange();
-
- // Inform player, who submitted this ticket, that it is closed
- if (Player* submitter = ticket->GetPlayer())
- sSupportMgr->SendGmTicketUpdate(submitter->GetSession(), GMTICKET_RESPONSE_TICKET_DELETED);
-
return true;
}
@@ -481,12 +225,11 @@ bool ticket_commandscript::HandleTicketCommentCommand(ChatHandler* handler, char
return true;
}
- SQLTransaction trans = SQLTransaction(nullptr);
ticket->SetComment(comment);
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
sSupportMgr->UpdateLastChange();
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL, NULL);
+ std::string msg = ticket->FormatViewMessageString(*handler, NULL, ticket->GetAssignedToName().c_str(), NULL, NULL);
msg += handler->PGetParseString(LANG_COMMAND_TICKETLISTADDCOMMENT, player ? player->GetName().c_str() : "Console", comment);
handler->SendGlobalGMSysMessage(msg.c_str());
@@ -527,7 +270,7 @@ bool ticket_commandscript::HandleTicketDeleteByIdCommand(ChatHandler* handler, c
return true;
}
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL);
+ std::string msg = ticket->FormatViewMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console");
handler->SendGlobalGMSysMessage(msg.c_str());
sSupportMgr->RemoveTicket<T>(ticket->GetId());
@@ -535,37 +278,6 @@ bool ticket_commandscript::HandleTicketDeleteByIdCommand(ChatHandler* handler, c
return true;
}
-template<>
-bool ticket_commandscript::HandleTicketDeleteByIdCommand<GmTicket>(ChatHandler* handler, char const* args)
-{
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket)
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- if (!ticket->IsClosed())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETCLOSEFIRST);
- return true;
- }
-
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, NULL, NULL, handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL);
- handler->SendGlobalGMSysMessage(msg.c_str());
-
- sSupportMgr->RemoveTicket<GmTicket>(ticket->GetId());
- sSupportMgr->UpdateLastChange();
-
- if (Player* player = ticket->GetPlayer())
- sSupportMgr->SendGmTicketUpdate(player->GetSession(), GMTICKET_RESPONSE_TICKET_DELETED);
-
- return true;
-}
template<typename T>
bool ticket_commandscript::HandleTicketResetCommand(ChatHandler* handler, char const* /*args*/)
@@ -625,67 +337,10 @@ bool ticket_commandscript::HandleTicketUnAssignCommand(ChatHandler* handler, cha
}
std::string assignedTo = ticket->GetAssignedToName(); // copy assignedto name because we need it after the ticket has been unnassigned
- SQLTransaction trans = SQLTransaction(NULL);
ticket->SetUnassigned();
- ticket->SaveToDB(trans);
+ ticket->SaveToDB();
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, assignedTo.c_str(), handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL, NULL);
- handler->SendGlobalGMSysMessage(msg.c_str());
-
- return true;
-}
-
-template<>
-bool ticket_commandscript::HandleTicketUnAssignCommand<GmTicket>(ChatHandler* handler, char const* args)
-{
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
- // Ticket must be assigned
- if (!ticket->IsAssigned())
- {
- handler->PSendSysMessage(LANG_COMMAND_TICKETNOTASSIGNED, ticket->GetId());
- return true;
- }
-
- // Get security level of player, whom this ticket is assigned to
- uint32 security = SEC_PLAYER;
- Player* assignedPlayer = ticket->GetAssignedPlayer();
- if (assignedPlayer)
- security = assignedPlayer->GetSession()->GetSecurity();
- else
- {
- ObjectGuid guid = ticket->GetAssignedToGUID();
- uint32 accountId = ObjectMgr::GetPlayerAccountIdByGUID(guid);
- security = AccountMgr::GetSecurity(accountId, realmHandle.Index);
- }
-
- // Check security
- //! If no m_session present it means we're issuing this command from the console
- uint32 mySecurity = handler->GetSession() ? handler->GetSession()->GetSecurity() : SEC_CONSOLE;
- if (security > mySecurity)
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETUNASSIGNSECURITY);
- return true;
- }
-
- std::string assignedTo = ticket->GetAssignedToName(); // copy assignedto name because we need it after the ticket has been unnassigned
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetUnassigned();
- ticket->SaveToDB(trans);
- sSupportMgr->UpdateLastChange();
-
- if (Player* player = ticket->GetPlayer())
- sSupportMgr->SendGmTicket(player->GetSession(), ticket);
-
- std::string msg = ticket->FormatViewMessageString(*handler, NULL, assignedTo.c_str(), handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL, NULL);
+ std::string msg = ticket->FormatViewMessageString(*handler, NULL, assignedTo.c_str(), handler->GetSession() ? handler->GetSession()->GetPlayer()->GetName().c_str() : "Console", NULL);
handler->SendGlobalGMSysMessage(msg.c_str());
return true;
@@ -709,31 +364,6 @@ bool ticket_commandscript::HandleTicketGetByIdCommand(ChatHandler* handler, char
return true;
}
-template<>
-bool ticket_commandscript::HandleTicketGetByIdCommand<GmTicket>(ChatHandler* handler, char const* args)
-{
- if (!*args)
- return false;
-
- uint32 ticketId = atoi(args);
- GmTicket* ticket = sSupportMgr->GetTicket<GmTicket>(ticketId);
- if (!ticket || ticket->IsClosed() || ticket->IsCompleted())
- {
- handler->SendSysMessage(LANG_COMMAND_TICKETNOTEXIST);
- return true;
- }
-
- SQLTransaction trans = SQLTransaction(NULL);
- ticket->SetViewed();
- ticket->SaveToDB(trans);
-
- if (Player* player = ticket->GetPlayer())
- sSupportMgr->SendGmTicket(player->GetSession(), ticket);
-
- handler->SendSysMessage(ticket->FormatViewMessageString(*handler, true).c_str());
- return true;
-}
-
ChatCommand* ticket_commandscript::GetCommands() const
{
static ChatCommand ticketBugCommandTable[] =
@@ -775,39 +405,18 @@ ChatCommand* ticket_commandscript::GetCommands() const
static ChatCommand ticketResetCommandTable[] =
{
{ "all", rbac::RBAC_PERM_COMMAND_TICKET_RESET_ALL, true, &HandleTicketResetAllCommand, "", NULL },
- { "gm", rbac::RBAC_PERM_COMMAND_TICKET_RESET_GM, true, &HandleTicketResetCommand<GmTicket>, "", NULL },
{ "bug", rbac::RBAC_PERM_COMMAND_TICKET_RESET_BUG, true, &HandleTicketResetCommand<BugTicket>, "", NULL },
{ "complaint", rbac::RBAC_PERM_COMMAND_TICKET_RESET_COMPLAINT, true, &HandleTicketResetCommand<ComplaintTicket>, "", NULL },
{ "suggestion", rbac::RBAC_PERM_COMMAND_TICKET_RESET_SUGGESTION, true, &HandleTicketResetCommand<SuggestionTicket>, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
- static ChatCommand ticketResponseCommandTable[] =
- {
- { "append", rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE_APPEND, true, &HandleGMTicketResponseAppendCommand, "", NULL },
- { "appendln", rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE_APPENDLN, true, &HandleGMTicketResponseAppendLnCommand, "", NULL },
- { NULL, 0, false, NULL, "", NULL }
- };
static ChatCommand ticketCommandTable[] =
{
- { "assign", rbac::RBAC_PERM_COMMAND_TICKET_ASSIGN, true, &HandleTicketAssignToCommand<GmTicket>, "", NULL },
{ "bug", rbac::RBAC_PERM_COMMAND_TICKET_BUG, true, NULL, "", ticketBugCommandTable },
- { "close", rbac::RBAC_PERM_COMMAND_TICKET_CLOSE, true, &HandleTicketCloseByIdCommand<GmTicket>, "", NULL },
- { "closedlist", rbac::RBAC_PERM_COMMAND_TICKET_CLOSEDLIST, true, &HandleTicketListClosedCommand<GmTicket>, "", NULL },
- { "comment", rbac::RBAC_PERM_COMMAND_TICKET_COMMENT, true, &HandleTicketCommentCommand<GmTicket>, "", NULL },
{ "complaint", rbac::RBAC_PERM_COMMAND_TICKET_COMPLAINT, true, NULL, "", ticketComplaintCommandTable },
- { "complete", rbac::RBAC_PERM_COMMAND_TICKET_COMPLETE, true, &HandleGMTicketCompleteCommand, "", NULL },
- { "delete", rbac::RBAC_PERM_COMMAND_TICKET_DELETE, true, &HandleTicketDeleteByIdCommand<GmTicket>, "", NULL },
- { "escalate", rbac::RBAC_PERM_COMMAND_TICKET_ESCALATE, true, &HandleGMTicketEscalateCommand, "", NULL },
- { "escalatedlist", rbac::RBAC_PERM_COMMAND_TICKET_ESCALATEDLIST, true, &HandleGMTicketListEscalatedCommand, "", NULL },
- { "list", rbac::RBAC_PERM_COMMAND_TICKET_LIST, true, &HandleTicketListCommand<GmTicket>, "", NULL },
- { "onlinelist", rbac::RBAC_PERM_COMMAND_TICKET_ONLINELIST, true, &HandleGMTicketListOnlineCommand, "", NULL },
{ "reset", rbac::RBAC_PERM_COMMAND_TICKET_RESET, true, NULL, "", ticketResetCommandTable },
- { "response", rbac::RBAC_PERM_COMMAND_TICKET_RESPONSE, true, NULL, "", ticketResponseCommandTable },
{ "suggestion", rbac::RBAC_PERM_COMMAND_TICKET_SUGGESTION, true, NULL, "", ticketSuggestionCommandTable },
{ "togglesystem", rbac::RBAC_PERM_COMMAND_TICKET_TOGGLESYSTEM, true, &HandleToggleGMTicketSystem, "", NULL },
- { "unassign", rbac::RBAC_PERM_COMMAND_TICKET_UNASSIGN, true, &HandleTicketUnAssignCommand<GmTicket>, "", NULL },
- { "viewid", rbac::RBAC_PERM_COMMAND_TICKET_VIEWID, true, &HandleTicketGetByIdCommand<GmTicket>, "", NULL },
- { "viewname", rbac::RBAC_PERM_COMMAND_TICKET_VIEWNAME, true, &HandleGMTicketGetByNameCommand, "", NULL },
{ NULL, 0, false, NULL, "", NULL }
};
static ChatCommand commandTable[] =
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.cpp b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
index 53fc0bba831..7ceb0931ecf 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.cpp
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.cpp
@@ -359,17 +359,6 @@ void CharacterDatabaseConnection::DoPrepareStatements()
PrepareStatement(CHAR_DEL_GO_RESPAWN, "DELETE FROM gameobject_respawn WHERE guid = ? AND mapId = ? AND instanceId = ?", CONNECTION_ASYNC);
PrepareStatement(CHAR_DEL_GO_RESPAWN_BY_INSTANCE, "DELETE FROM gameobject_respawn WHERE mapId = ? AND instanceId = ?", CONNECTION_ASYNC);
- // GM Tickets
- PrepareStatement(CHAR_SEL_GM_TICKETS, "SELECT id, playerGuid, description, createTime, mapId, posX, posY, posZ, lastModifiedTime, closedBy, assignedTo, comment, response, completed, escalated, viewed, needMoreHelp FROM gm_ticket", CONNECTION_SYNCH);
- PrepareStatement(CHAR_REP_GM_TICKET, "REPLACE INTO gm_ticket (id, playerGuid, description, createTime, mapId, posX, posY, posZ, lastModifiedTime, closedBy, assignedTo, comment, response, completed, escalated, viewed, needMoreHelp) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
- PrepareStatement(CHAR_DEL_GM_TICKET, "DELETE FROM gm_ticket WHERE id = ?", CONNECTION_ASYNC);
- PrepareStatement(CHAR_DEL_PLAYER_GM_TICKETS, "DELETE FROM gm_ticket WHERE playerGuid = ?", CONNECTION_ASYNC);
- PrepareStatement(CHAR_DEL_ALL_GM_TICKETS, "TRUNCATE TABLE gm_ticket", CONNECTION_ASYNC);
-
- // GM Survey/subsurvey
- PrepareStatement(CHAR_INS_GM_SURVEY, "INSERT INTO gm_survey (guid, surveyId, mainSurvey, comment, createTime) VALUES (?, ?, ?, ?, UNIX_TIMESTAMP(NOW()))", CONNECTION_ASYNC);
- PrepareStatement(CHAR_INS_GM_SUBSURVEY, "INSERT INTO gm_subsurvey (surveyId, questionID, answer, answerComment) VALUES (?, ?, ?, ?)", CONNECTION_ASYNC);
-
// GM Bug
PrepareStatement(CHAR_SEL_GM_BUGS, "SELECT id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, closedBy, assignedTo, comment FROM gm_bug", CONNECTION_SYNCH);
PrepareStatement(CHAR_REP_GM_BUG, "REPLACE INTO gm_bug (id, playerGuid, note, createTime, mapId, posX, posY, posZ, facing, closedBy, assignedTo, comment) VALUES (?, ?, ?, UNIX_TIMESTAMP(NOW()), ?, ?, ?, ?, ?, ?, ?, ?)", CONNECTION_ASYNC);
diff --git a/src/server/shared/Database/Implementation/CharacterDatabase.h b/src/server/shared/Database/Implementation/CharacterDatabase.h
index fc9c930e6b1..5fd73b6c494 100644
--- a/src/server/shared/Database/Implementation/CharacterDatabase.h
+++ b/src/server/shared/Database/Implementation/CharacterDatabase.h
@@ -310,15 +310,6 @@ enum CharacterDatabaseStatements
CHAR_DEL_GO_RESPAWN,
CHAR_DEL_GO_RESPAWN_BY_INSTANCE,
- CHAR_SEL_GM_TICKETS,
- CHAR_REP_GM_TICKET,
- CHAR_DEL_GM_TICKET,
- CHAR_DEL_ALL_GM_TICKETS,
- CHAR_DEL_PLAYER_GM_TICKETS,
-
- CHAR_INS_GM_SURVEY,
- CHAR_INS_GM_SUBSURVEY,
-
CHAR_SEL_GM_BUGS,
CHAR_REP_GM_BUG,
CHAR_DEL_GM_BUG,
diff --git a/src/server/worldserver/worldserver.conf.dist b/src/server/worldserver/worldserver.conf.dist
index 668cec43aca..4b8ab7c3ded 100644
--- a/src/server/worldserver/worldserver.conf.dist
+++ b/src/server/worldserver/worldserver.conf.dist
@@ -1773,14 +1773,6 @@ Support.ComplaintsEnabled = 0
Support.SuggestionsEnabled = 0
#
-# Support.ChanceOfGMSurvey
-# Description: Chance of sending a GM survey after ticket completion.
-# Default: 50 - (Enabled)
-# 0 - (Disabled)
-
-Support.ChanceOfGMSurvey = 50
-
-#
###################################################################################################
###################################################################################################
@@ -2767,20 +2759,13 @@ MinRecordUpdateTimeDiff = 100
PlayerStart.String = ""
#
-# LevelReq.Trade
+# rade
# Description: Level requirement for characters to be able to trade.
# Default: 1
LevelReq.Trade = 1
#
-# LevelReq.Ticket
-# Description: Level requirement for characters to be able to write tickets.
-# Default: 1
-
-LevelReq.Ticket = 1
-
-#
# LevelReq.Auction
# Description: Level requirement for characters to be able to use the auction house.
# Default: 1