aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorr4dish <ovitnez@gmail.com>2024-01-06 12:51:24 +0200
committerShauren <shauren.trinity@gmail.com>2024-01-06 23:43:59 +0100
commitc2831bafded61dcd417535a444c2dfbb454171bb (patch)
tree2b48e27af6cbd5d7c99f974c7022f5047f3d995a
parent554fc8eee0bcbb70acd012c04f6f02197c6d949c (diff)
Scripts/Commands: Implemented .bg start and .bg stop commands.
-rw-r--r--sql/base/auth_database.sql9
-rw-r--r--sql/updates/auth/3.3.5/2024_01_06_02_auth.sql10
-rw-r--r--sql/updates/world/3.3.5/2024_01_06_00_world.sql7
-rw-r--r--src/server/game/Accounts/RBAC.h2
-rw-r--r--src/server/game/Miscellaneous/Language.h4
-rw-r--r--src/server/scripts/Commands/cs_bg.cpp76
-rw-r--r--src/server/scripts/Commands/cs_script_loader.cpp2
7 files changed, 107 insertions, 3 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql
index da86b9094d6..1e48c9e75b6 100644
--- a/sql/base/auth_database.sql
+++ b/sql/base/auth_database.sql
@@ -995,6 +995,8 @@ INSERT INTO `rbac_linked_permissions` VALUES
(197,863),
(197,864),
(197,865),
+(197,884),
+(197,885),
(198,218),
(198,300),
(198,312),
@@ -1794,7 +1796,9 @@ INSERT INTO `rbac_permissions` VALUES
(878,'Command: debug questreset'),
(879,'Command: debug poolstatus'),
(880,'Command: pdump copy'),
-(881,'Command: reload vehicle_template');
+(881,'Command: reload vehicle_template'),
+(884,'Command: bg start'),
+(885,'Command: bg stop');
/*!40000 ALTER TABLE `rbac_permissions` ENABLE KEYS */;
UNLOCK TABLES;
@@ -2016,7 +2020,8 @@ INSERT INTO `updates` VALUES
('2023_06_14_00_auth.sql','BB8A7EB214F4F3632C4F54EA596CB7C8FBA305D5','ARCHIVED','2023-06-14 19:34:24',0),
('2023_11_21_00_auth.sql','146E5E6EF94C5DB78343372A8FDB32B062B80040','RELEASED','2023-11-21 11:24:11',0),
('2024_01_06_00_auth.sql','767D697594D5471B67CC0FDF0D7BB15374116A71','RELEASED','2024-01-06 09:53:51',0),
-('2024_01_06_01_auth.sql','3D9E0A906A357877DB8E7B72E0797AB38EF884BC','RELEASED','2024-01-06 11:33:07',0);
+('2024_01_06_01_auth.sql','3D9E0A906A357877DB8E7B72E0797AB38EF884BC','RELEASED','2024-01-06 11:33:07',0),
+('2024_01_06_02_auth.sql','B14F889C198A4F640A968BAB8A4C262AC61634C7','RELEASED','2024-01-06 12:43:47',0);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/updates/auth/3.3.5/2024_01_06_02_auth.sql b/sql/updates/auth/3.3.5/2024_01_06_02_auth.sql
new file mode 100644
index 00000000000..2e3b0616aa3
--- /dev/null
+++ b/sql/updates/auth/3.3.5/2024_01_06_02_auth.sql
@@ -0,0 +1,10 @@
+--
+DELETE FROM `rbac_permissions` WHERE `id` IN (884, 885);
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES
+(884, "Command: bg start"),
+(885, "Command: bg stop");
+
+DELETE FROM `rbac_linked_permissions` WHERE `linkedId` IN (884, 885);
+INSERT INTO `rbac_linked_permissions` (`id`, `linkedId`) VALUES
+(197, 884),
+(197, 885);
diff --git a/sql/updates/world/3.3.5/2024_01_06_00_world.sql b/sql/updates/world/3.3.5/2024_01_06_00_world.sql
new file mode 100644
index 00000000000..57ffdac7986
--- /dev/null
+++ b/sql/updates/world/3.3.5/2024_01_06_00_world.sql
@@ -0,0 +1,7 @@
+--
+DELETE FROM `trinity_string` WHERE `entry` IN (395, 396);
+INSERT INTO `trinity_string` (`entry`,`content_default`) VALUES
+(395, '### USAGE: .bg start
+Skips battleground preparation time and starts the battle.'),
+(396, '### USAGE: .bg stop
+Immediately ends the battleground.');
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 6e9f3718482..3b6437c1bfe 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -746,6 +746,8 @@ enum RBACPermissions
// 878-879 previously used, do not reuse
RBAC_PERM_COMMAND_PDUMP_COPY = 880,
RBAC_PERM_COMMAND_RELOAD_VEHICLE_TEMPLATE = 881,
+ RBAC_PERM_COMMAND_BG_START = 884,
+ RBAC_PERM_COMMAND_BG_STOP = 885,
//
// IF YOU ADD NEW PERMISSIONS, ADD THEM IN MASTER BRANCH AS WELL!
//
diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h
index ef7ec55a435..725bdd7d672 100644
--- a/src/server/game/Miscellaneous/Language.h
+++ b/src/server/game/Miscellaneous/Language.h
@@ -447,7 +447,9 @@ enum TrinityStrings
LANG_COMMAND_LEARN_ALL_RECIPES_HELP = 392,
LANG_COMMAND_LEARN_ALL_TALENTS_HELP = 393,
LANG_COMMAND_LEARN_ALL_PETTALENT_HELP = 394,
- // Room for more level 2 395-399 not used
+ LANG_COMMAND_BG_START_HELP = 395,
+ LANG_COMMAND_BG_STOP_HELP = 396,
+ // Room for more level 2 397-399 not used
// level 3 chat
LANG_SCRIPTS_RELOADED = 400,
diff --git a/src/server/scripts/Commands/cs_bg.cpp b/src/server/scripts/Commands/cs_bg.cpp
new file mode 100644
index 00000000000..7751c124982
--- /dev/null
+++ b/src/server/scripts/Commands/cs_bg.cpp
@@ -0,0 +1,76 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * 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 "Battleground.h"
+#include "Chat.h"
+#include "Language.h"
+#include "Player.h"
+#include "RBAC.h"
+#include "ScriptMgr.h"
+
+using namespace Trinity::ChatCommands;
+
+class bg_commandscript : public CommandScript
+{
+public:
+ bg_commandscript() : CommandScript("bg_commandscript") { }
+
+ ChatCommandTable GetCommands() const override
+ {
+ static ChatCommandTable commandTable =
+ {
+ { "bg start", HandleBgStartCommand, LANG_COMMAND_BG_START_HELP, rbac::RBAC_PERM_COMMAND_BG_START, Console::No },
+ { "bg stop", HandleBgStopCommand, LANG_COMMAND_BG_STOP_HELP, rbac::RBAC_PERM_COMMAND_BG_STOP, Console::No }
+ };
+ return commandTable;
+ }
+
+ static bool HandleBgStartCommand(ChatHandler* handler)
+ {
+ Battleground* bg = handler->GetPlayer()->GetBattleground();
+ if (!bg)
+ {
+ handler->SendSysMessage(LANG_COMMAND_NO_BATTLEGROUND_FOUND);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ bg->SetStartDelayTime(0);
+
+ return true;
+ }
+
+ static bool HandleBgStopCommand(ChatHandler* handler)
+ {
+ Battleground* bg = handler->GetPlayer()->GetBattleground();
+ if (!bg)
+ {
+ handler->SendSysMessage(LANG_COMMAND_NO_BATTLEGROUND_FOUND);
+ handler->SetSentErrorMessage(true);
+ return false;
+ }
+
+ bg->EndBattleground(0);
+
+ return true;
+ }
+};
+
+void AddSC_bg_commandscript()
+{
+ new bg_commandscript();
+}
diff --git a/src/server/scripts/Commands/cs_script_loader.cpp b/src/server/scripts/Commands/cs_script_loader.cpp
index dd8fb48f22f..db22b83eeda 100644
--- a/src/server/scripts/Commands/cs_script_loader.cpp
+++ b/src/server/scripts/Commands/cs_script_loader.cpp
@@ -22,6 +22,7 @@ void AddSC_ahbot_commandscript();
void AddSC_arena_commandscript();
void AddSC_ban_commandscript();
void AddSC_bf_commandscript();
+void AddSC_bg_commandscript();
void AddSC_cast_commandscript();
void AddSC_character_commandscript();
void AddSC_cheat_commandscript();
@@ -67,6 +68,7 @@ void AddCommandsScripts()
AddSC_arena_commandscript();
AddSC_ban_commandscript();
AddSC_bf_commandscript();
+ AddSC_bg_commandscript();
AddSC_cast_commandscript();
AddSC_character_commandscript();
AddSC_cheat_commandscript();