New Feature: Admin Only messages in AHelp (#35283)
* Feature * Update * Update * Update * Update Resources/Locale/en-US/administration/bwoink.ftl Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com> * Yes --------- Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
This commit is contained in:
@@ -640,7 +640,7 @@ namespace Content.Server.Administration.Systems
|
||||
var personalChannel = senderSession.UserId == message.UserId;
|
||||
var senderAdmin = _adminManager.GetAdminData(senderSession);
|
||||
var senderAHelpAdmin = senderAdmin?.HasFlag(AdminFlags.Adminhelp) ?? false;
|
||||
var authorized = personalChannel || senderAHelpAdmin;
|
||||
var authorized = personalChannel && !message.AdminOnly || senderAHelpAdmin;
|
||||
if (!authorized)
|
||||
{
|
||||
// Unauthorized bwoink (log?)
|
||||
@@ -676,11 +676,11 @@ namespace Content.Server.Administration.Systems
|
||||
bwoinkText = $"{senderSession.Name}";
|
||||
}
|
||||
|
||||
bwoinkText = $"{(message.PlaySound ? "" : "(S) ")}{bwoinkText}: {escapedText}";
|
||||
bwoinkText = $"{(message.AdminOnly ? Loc.GetString("bwoink-message-admin-only") : !message.PlaySound ? Loc.GetString("bwoink-message-silent") : "")} {bwoinkText}: {escapedText}";
|
||||
|
||||
// If it's not an admin / admin chooses to keep the sound then play it.
|
||||
var playSound = !senderAHelpAdmin || message.PlaySound;
|
||||
var msg = new BwoinkTextMessage(message.UserId, senderSession.UserId, bwoinkText, playSound: playSound);
|
||||
// If it's not an admin / admin chooses to keep the sound and message is not an admin only message, then play it.
|
||||
var playSound = (!senderAHelpAdmin || message.PlaySound) && !message.AdminOnly;
|
||||
var msg = new BwoinkTextMessage(message.UserId, senderSession.UserId, bwoinkText, playSound: playSound, adminOnly: message.AdminOnly);
|
||||
|
||||
LogBwoink(msg);
|
||||
|
||||
@@ -700,7 +700,7 @@ namespace Content.Server.Administration.Systems
|
||||
}
|
||||
|
||||
// Notify player
|
||||
if (_playerManager.TryGetSessionById(message.UserId, out var session))
|
||||
if (_playerManager.TryGetSessionById(message.UserId, out var session) && !message.AdminOnly)
|
||||
{
|
||||
if (!admins.Contains(session.Channel))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user