aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/base/auth_database.sql5
-rw-r--r--sql/updates/auth/3.3.5/2024_01_06_01_auth.sql7
-rw-r--r--src/server/game/Accounts/RBAC.h1
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
4 files changed, 13 insertions, 2 deletions
diff --git a/sql/base/auth_database.sql b/sql/base/auth_database.sql
index d61a6fbced4..da86b9094d6 100644
--- a/sql/base/auth_database.sql
+++ b/sql/base/auth_database.sql
@@ -474,6 +474,7 @@ INSERT INTO `rbac_linked_permissions` VALUES
(192,835),
(193,48),
(193,52),
+(193,53),
(193,194),
(193,197),
(194,1),
@@ -1173,6 +1174,7 @@ INSERT INTO `rbac_permissions` VALUES
(50,'Allow user to check his own email with .account'),
(51,'Allow trading between factions'),
(52,'No battleground deserter debuff'),
+(53,'Can be AFK on the battleground'),
(192,'Role: Sec Level Administrator'),
(193,'Role: Sec Level Gamemaster'),
(194,'Role: Sec Level Moderator'),
@@ -2013,7 +2015,8 @@ INSERT INTO `updates` VALUES
('2023_05_05_00_auth.sql','DEEB1D5533658E3479FC3C988EF4B9816C511BC3','ARCHIVED','2023-05-07 11:52:00',0),
('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_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);
/*!40000 ALTER TABLE `updates` ENABLE KEYS */;
UNLOCK TABLES;
diff --git a/sql/updates/auth/3.3.5/2024_01_06_01_auth.sql b/sql/updates/auth/3.3.5/2024_01_06_01_auth.sql
new file mode 100644
index 00000000000..f09d9139e4a
--- /dev/null
+++ b/sql/updates/auth/3.3.5/2024_01_06_01_auth.sql
@@ -0,0 +1,7 @@
+--
+DELETE FROM `rbac_permissions` WHERE `id` = 53;
+INSERT INTO `rbac_permissions` (`id`, `name`) VALUES (53, "Can be AFK on the battleground");
+
+DELETE FROM `rbac_linked_permissions` WHERE `linkedId` = 53;
+INSERT INTO `rbac_linked_permissions` (`id`, `linkedId`) VALUES
+(193, 53);
diff --git a/src/server/game/Accounts/RBAC.h b/src/server/game/Accounts/RBAC.h
index 3cfb386f016..6e9f3718482 100644
--- a/src/server/game/Accounts/RBAC.h
+++ b/src/server/game/Accounts/RBAC.h
@@ -103,6 +103,7 @@ enum RBACPermissions
RBAC_PERM_MAY_CHECK_OWN_EMAIL = 50,
RBAC_PERM_ALLOW_TWO_SIDE_TRADE = 51,
RBAC_PERM_NO_BATTLEGROUND_DESERTER_DEBUFF = 52,
+ RBAC_PERM_CAN_AFK_ON_BATTLEGROUND = 53,
// Free space for core permissions (till 149)
// Roles (Permissions with delegated permissions) use 199 and descending
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ea3cfdb1b8b..4bc613bb04d 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -1596,7 +1596,7 @@ void Player::ToggleAFK()
ToggleFlag(PLAYER_FLAGS, PLAYER_FLAGS_AFK);
// afk player not allowed in battleground
- if (!IsGameMaster() && isAFK() && InBattleground() && !InArena())
+ if (!GetSession()->HasPermission(rbac::RBAC_PERM_CAN_AFK_ON_BATTLEGROUND) && isAFK() && InBattleground() && !InArena())
LeaveBattleground();
}