Advertisement
Rochet2

Bugreport command

Apr 4th, 2012
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.98 KB | None | 0 0
  1. #include "ScriptPCH.h"
  2. #include "Chat.h"
  3.  
  4. /* SQL
  5.  
  6. DROP TABLE IF EXISTS `report_bg`;
  7. CREATE TABLE IF NOT EXISTS `report_bg` (
  8.   `TicketID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  9.   `Name` varchar(10) NOT NULL,
  10.   `GUID` int(10) unsigned NOT NULL,
  11.   `Report` text,
  12.   `Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  13.   `Solved` tinyint(1) NOT NULL DEFAULT '0',
  14.   `Unk` varchar(50) DEFAULT NULL,
  15.   PRIMARY KEY (`TicketID`)
  16. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
  17.  
  18. DROP TABLE IF EXISTS `report_general`;
  19. CREATE TABLE IF NOT EXISTS `report_general` (
  20.   `TicketID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  21.   `Name` varchar(10) NOT NULL,
  22.   `GUID` int(10) unsigned NOT NULL,
  23.   `Report` text,
  24.   `Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  25.   `Solved` tinyint(1) NOT NULL DEFAULT '0',
  26.   `Unk` varchar(50) DEFAULT NULL,
  27.   PRIMARY KEY (`TicketID`)
  28. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
  29.  
  30. DROP TABLE IF EXISTS `report_object`;
  31. CREATE TABLE IF NOT EXISTS `report_object` (
  32.   `TicketID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  33.   `Name` varchar(10) NOT NULL,
  34.   `GUID` int(10) unsigned NOT NULL,
  35.   `Report` text,
  36.   `Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  37.   `Solved` tinyint(1) NOT NULL DEFAULT '0',
  38.   `Unk` varchar(50) DEFAULT NULL,
  39.   PRIMARY KEY (`TicketID`)
  40. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
  41.  
  42. DROP TABLE IF EXISTS `report_quest`;
  43. CREATE TABLE IF NOT EXISTS `report_quest` (
  44.   `TicketID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  45.   `Name` varchar(10) NOT NULL,
  46.   `GUID` int(10) unsigned NOT NULL,
  47.   `Report` text,
  48.   `Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  49.   `Solved` tinyint(1) NOT NULL DEFAULT '0',
  50.   `Unk` varchar(50) DEFAULT NULL,
  51.   PRIMARY KEY (`TicketID`)
  52. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
  53.  
  54. DROP TABLE IF EXISTS `report_spell`;
  55. CREATE TABLE IF NOT EXISTS `report_spell` (
  56.   `TicketID` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  57.   `Name` varchar(10) NOT NULL,
  58.   `GUID` int(10) unsigned NOT NULL,
  59.   `Report` text,
  60.   `Time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  61.   `Solved` tinyint(1) NOT NULL DEFAULT '0',
  62.   `Unk` varchar(50) DEFAULT NULL,
  63.   PRIMARY KEY (`TicketID`)
  64. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=COMPACT;
  65.  
  66. */
  67.  
  68. class BugReport_commandscript : public CommandScript
  69. {
  70.     public:
  71.         BugReport_commandscript() : CommandScript("BugReport_commandscript") { }
  72.  
  73.         ChatCommand* GetCommands() const
  74.         {
  75.             static ChatCommand BugReportCommandTable[] =
  76.             {
  77.                 { "object",             SEC_PLAYER,      false, &HandleReportObjectCommand,     "", NULL },
  78.                 { "spell",              SEC_PLAYER,      false, &HandleReportSpellCommand,      "", NULL },
  79.                 { "quest",              SEC_PLAYER,      false, &HandleReportQuestCommand,      "", NULL },
  80.                 { "bg",                 SEC_PLAYER,      false, &HandleReportBgCommand,         "", NULL },
  81.                 { "general",            SEC_PLAYER,      false, &HandleReportGeneralCommand,    "", NULL },
  82.                 { NULL,                 0,               false, NULL,                           "", NULL }
  83.             };
  84.             static ChatCommand commandTable[] =
  85.             {
  86.                 { "bugreport",          SEC_PLAYER,      false, NULL,                           "", BugReportCommandTable },
  87.                 { NULL,                 0,               false, NULL,                           "", NULL }
  88.             };
  89.             return commandTable;
  90.         }
  91.  
  92.         static void Execute(const char* DB, WorldSession * Session, const char* args)
  93.         {
  94.             Player* pPlayer = Session->GetPlayer();
  95.             if (pPlayer)
  96.             {
  97.                 WorldDatabase.PExecute("INSERT INTO `%s` (`Name`, `GUID`, `Unk`, `Report`) VALUES (\"%s\", %u, \"%s\", \"%s\")", DB, pPlayer->GetName(), pPlayer->GetGUID(), (char*)args, (char*)args);
  98.                 Session->SendAreaTriggerMessage("Your bugreport has been succesfully saved");
  99.             }
  100.         }
  101.  
  102.         static bool HandleReportObjectCommand(ChatHandler* handler, const char* args)
  103.         {
  104.             if(!*args)
  105.                 return false;
  106.             Execute("report_object", handler->GetSession(), args);
  107.             return true;
  108.         }
  109.  
  110.         static bool HandleReportSpellCommand(ChatHandler* handler, const char* args)
  111.         {
  112.             if(!*args)
  113.                 return false;
  114.             Execute("report_spell", handler->GetSession(), args);
  115.             return true;
  116.         }
  117.  
  118.         static bool HandleReportQuestCommand(ChatHandler* handler, const char* args)
  119.         {
  120.             if(!*args)
  121.                 return false;
  122.             Execute("report_quest", handler->GetSession(), args);
  123.             return true;
  124.         }
  125.  
  126.         static bool HandleReportBgCommand(ChatHandler* handler, const char* args)
  127.         {
  128.             if(!*args)
  129.                 return false;
  130.             Execute("report_bg", handler->GetSession(), args);
  131.             return true;
  132.         }
  133.  
  134.         static bool HandleReportGeneralCommand(ChatHandler* handler, const char* args)
  135.         {
  136.             if(!*args)
  137.                 return false;
  138.             Execute("report_general", handler->GetSession(), args);
  139.             return true;
  140.         }
  141. };
  142.  
  143. void AddSC_BugReport_commandscript()
  144. {
  145.     new BugReport_commandscript();
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement