mirror of
https://github.com/wega-team/ss14-wega.git
synced 2026-02-14 19:30:01 +01:00
@@ -75,7 +75,7 @@ public sealed class PrayerSystem : EntitySystem
|
||||
/// <param name="source">The IPlayerSession that sent the message</param>
|
||||
/// <param name="messageString">The main message sent to the player via the chatbox</param>
|
||||
/// <param name="popupMessage">The popup to notify the player, also prepended to the messageString</param>
|
||||
public void SendSubtleMessage(ICommonSession target, ICommonSession source, string messageString, string popupMessage)
|
||||
public void SendSubtleMessage(ICommonSession target, ICommonSession? source, string messageString, string popupMessage)
|
||||
{
|
||||
if (target.AttachedEntity == null)
|
||||
return;
|
||||
@@ -84,7 +84,7 @@ public sealed class PrayerSystem : EntitySystem
|
||||
|
||||
_popupSystem.PopupEntity(popupMessage, target.AttachedEntity.Value, target, PopupType.Large);
|
||||
_chatManager.ChatMessageToOne(ChatChannel.Local, messageString, message, EntityUid.Invalid, false, target.Channel);
|
||||
_adminLogger.Add(LogType.AdminMessage, LogImpact.Low, $"{ToPrettyString(target.AttachedEntity.Value):player} received subtle message from {source.Name}: {message}");
|
||||
_adminLogger.Add(LogType.AdminMessage, LogImpact.Low, $"{ToPrettyString(target.AttachedEntity.Value):player} received subtle message from {source?.Name ?? "unknown source"}: {message}");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
83
Content.Server/Toolshed/Commands/Misc/MsgCommand.cs
Normal file
83
Content.Server/Toolshed/Commands/Misc/MsgCommand.cs
Normal file
@@ -0,0 +1,83 @@
|
||||
using Content.Server.Administration;
|
||||
using Content.Server.Chat.Managers;
|
||||
using Content.Server.Popups;
|
||||
using Content.Server.Prayer;
|
||||
using Content.Server.Tips;
|
||||
using Content.Shared.Administration;
|
||||
using Content.Shared.Chat;
|
||||
using Content.Shared.Popups;
|
||||
using Robust.Shared.Player;
|
||||
using Robust.Shared.Prototypes;
|
||||
using Robust.Shared.Toolshed;
|
||||
|
||||
namespace Content.Server.Toolshed.Commands.Misc;
|
||||
|
||||
[ToolshedCommand, AdminCommand(AdminFlags.Fun)]
|
||||
public sealed class MsgCommand : ToolshedCommand
|
||||
{
|
||||
[Dependency] private IChatManager _chatManager = default!;
|
||||
|
||||
private PrayerSystem? _prayer;
|
||||
private PopupSystem? _popup;
|
||||
private TipsSystem? _tips;
|
||||
|
||||
[CommandImplementation("subtle")]
|
||||
public IEnumerable<EntityUid> Subtle(IInvocationContext ctx, [PipedArgument] IEnumerable<EntityUid> targets, string popup, string message)
|
||||
{
|
||||
_prayer ??= GetSys<PrayerSystem>();
|
||||
|
||||
foreach (var ent in targets)
|
||||
{
|
||||
if (!TryComp<ActorComponent>(ent, out var actor))
|
||||
continue;
|
||||
|
||||
_prayer.SendSubtleMessage(actor.PlayerSession, ctx.Session, message, popup);
|
||||
|
||||
yield return ent;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandImplementation("chat")]
|
||||
public IEnumerable<EntityUid> Chat([PipedArgument] IEnumerable<EntityUid> targets, string message)
|
||||
{
|
||||
foreach (var ent in targets)
|
||||
{
|
||||
if (!TryComp<ActorComponent>(ent, out var actor))
|
||||
continue;
|
||||
|
||||
_chatManager.ChatMessageToOne(ChatChannel.Local, message, message, EntityUid.Invalid, false, actor.PlayerSession.Channel);
|
||||
yield return ent;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandImplementation("popup")]
|
||||
public IEnumerable<EntityUid> Popup([PipedArgument] IEnumerable<EntityUid> targets, string popup, PopupType type, bool recipientOnly)
|
||||
{
|
||||
_popup ??= GetSys<PopupSystem>();
|
||||
|
||||
foreach (var ent in targets)
|
||||
{
|
||||
if (recipientOnly)
|
||||
_popup.PopupEntity(popup, ent, ent, type); // If recipientOnly, show the popup only to the recipient.
|
||||
else
|
||||
_popup.PopupEntity(popup, ent, type); // Otherwise, show it to everyone within PVS of the target entity.
|
||||
yield return ent;
|
||||
}
|
||||
}
|
||||
|
||||
[CommandImplementation("tippy")]
|
||||
public IEnumerable<EntityUid> Tippy([PipedArgument] IEnumerable<EntityUid> targets, string message, EntProtoId prototype, float speakTime, float slideTime, float waddleInterval)
|
||||
{
|
||||
_tips ??= GetSys<TipsSystem>();
|
||||
|
||||
foreach (var ent in targets)
|
||||
{
|
||||
if (!TryComp<ActorComponent>(ent, out var actor))
|
||||
continue;
|
||||
|
||||
_tips.SendTippy(actor.PlayerSession, message, prototype, speakTime, slideTime, waddleInterval);
|
||||
|
||||
yield return ent;
|
||||
}
|
||||
}
|
||||
}
|
||||
5
Resources/Locale/en-US/commands/toolshed/msg-command.ftl
Normal file
5
Resources/Locale/en-US/commands/toolshed/msg-command.ftl
Normal file
@@ -0,0 +1,5 @@
|
||||
# Msg
|
||||
command-description-msg-subtle = Sends a combination of a popup and a message to the input entities. Behaves same as the Subtle Message admin verb. Outputs entities that successfuly received a message.
|
||||
command-description-msg-chat = Sends a chat message to the sessions of the input entities. Outputs entities that successfuly received a message.
|
||||
command-description-msg-popup = Displays a popup above the input entiites. Can specify to only be visible to the target.
|
||||
command-description-msg-tippy = Sends a Tippy to the sessions of the input entities. All parameters must be specified. Outputs entities that successfuly received a tippy.
|
||||
@@ -1,3 +1,5 @@
|
||||
# Please add future toolshed locale to their own files. This needs to be cleaned up.
|
||||
|
||||
command-description-visualize =
|
||||
Takes the input list of entities and puts them into a UI window for easy browsing.
|
||||
command-description-runverbas =
|
||||
Reference in New Issue
Block a user