spell fixes
This commit is contained in:
@@ -1,55 +0,0 @@
|
||||
using Content.Server.Discord;
|
||||
using Content.Shared.CCVar;
|
||||
using Robust.Shared.Configuration;
|
||||
using Robust.Shared.Player;
|
||||
using Serilog;
|
||||
|
||||
namespace Content.Server.Chat.Managers;
|
||||
|
||||
/// <summary>
|
||||
/// OOC Relay module
|
||||
/// </summary>
|
||||
internal sealed partial class ChatManager
|
||||
{
|
||||
[Dependency] private readonly DiscordWebhook _discord = default!;
|
||||
[Dependency] private readonly IConfigurationManager _cfgManager = default!;
|
||||
|
||||
private WebhookIdentifier? _OOCwebhook;
|
||||
|
||||
private void CP14InitializeOOCRelay()
|
||||
{
|
||||
var webhookUrl = _cfgManager.GetCVar(CCVars.DiscordRoundUpdateWebhook);
|
||||
|
||||
if (webhookUrl == string.Empty)
|
||||
return;
|
||||
|
||||
_discord.GetWebhook(webhookUrl,
|
||||
data =>
|
||||
{
|
||||
_OOCwebhook = data.ToIdentifier();
|
||||
});
|
||||
}
|
||||
|
||||
private async void CP14SendOOCInDiscord(ICommonSession player, string message)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (_OOCwebhook == null)
|
||||
return;
|
||||
|
||||
var name = player.Name;
|
||||
var content =
|
||||
message.Replace("@", "\\@")
|
||||
.Replace("<", "\\<")
|
||||
.Replace("/",
|
||||
"\\/"); // @ and < are both problematic for discord due to pinging. / is sanitized solely to kneecap links to murder embeds via blunt force
|
||||
|
||||
var payload = new WebhookPayload {Content = $"**`{name}`**: {content}"};
|
||||
await _discord.CreateMessage(_OOCwebhook.Value, payload);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Log.Error($"Error while sending discord OOC message:\n{e}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public abstract partial class CP14SharedMagicSystem
|
||||
RaiseLocalEvent(action, ref endEv);
|
||||
|
||||
if (cooldown is not null)
|
||||
_action.CP14StartCustomDelay(action, TimeSpan.FromSeconds(cooldown.Value));
|
||||
_action.SetCooldown(action.Owner, TimeSpan.FromSeconds(cooldown.Value));
|
||||
}
|
||||
|
||||
private bool UseDelayedAction(ICP14DelayedMagicEffect delayedEffect, Entity<CP14MagicEffectComponent> action, DoAfterEvent doAfter, EntityUid performer, EntityUid? target = null, EntityCoordinates? worldTarget = null)
|
||||
@@ -120,11 +120,11 @@ public abstract partial class CP14SharedMagicSystem
|
||||
return;
|
||||
|
||||
var doAfter = new CP14DelayedEntityWorldTargetActionDoAfterEvent(
|
||||
EntityManager.GetNetCoordinates(args.Coords),
|
||||
EntityManager.GetNetCoordinates(args.Target),
|
||||
EntityManager.GetNetEntity(args.Entity),
|
||||
args.Cooldown);
|
||||
|
||||
if (!UseDelayedAction(delayedEffect, (args.Action, magicEffect), doAfter, args.Performer, args.Entity, args.Coords))
|
||||
if (!UseDelayedAction(delayedEffect, (args.Action, magicEffect), doAfter, args.Performer, args.Entity, args.Target))
|
||||
return;
|
||||
|
||||
args.Handled = true;
|
||||
|
||||
@@ -27,7 +27,7 @@ public abstract partial class CP14SharedMagicSystem
|
||||
return;
|
||||
|
||||
CastSpell((args.Action, magicEffect), spellArgs);
|
||||
_action.CP14StartCustomDelay(args.Action, args.Cooldown);
|
||||
_action.SetCooldown(args.Action.Owner, args.Cooldown);
|
||||
}
|
||||
|
||||
private void OnMagicEntityWorldTargetAction(CP14EntityWorldTargetActionEvent args)
|
||||
@@ -38,13 +38,13 @@ public abstract partial class CP14SharedMagicSystem
|
||||
if (!TryComp<CP14MagicEffectComponent>(args.Action, out var magicEffect))
|
||||
return;
|
||||
|
||||
var spellArgs = new CP14SpellEffectBaseArgs(args.Performer, magicEffect.SpellStorage, args.Entity, args.Coords);
|
||||
var spellArgs = new CP14SpellEffectBaseArgs(args.Performer, magicEffect.SpellStorage, args.Entity, args.Target);
|
||||
|
||||
if (!CanCastSpell((args.Action, magicEffect), spellArgs))
|
||||
return;
|
||||
|
||||
CastSpell((args.Action, magicEffect), spellArgs);
|
||||
_action.CP14StartCustomDelay(args.Action, args.Cooldown);
|
||||
_action.SetCooldown(args.Action.Owner, args.Cooldown);
|
||||
}
|
||||
|
||||
private void OnMagicEntityTargetAction(CP14EntityTargetActionEvent args)
|
||||
@@ -61,6 +61,6 @@ public abstract partial class CP14SharedMagicSystem
|
||||
return;
|
||||
|
||||
CastSpell((args.Action, magicEffect), spellArgs);
|
||||
_action.CP14StartCustomDelay(args.Action, args.Cooldown);
|
||||
_action.SetCooldown(args.Action.Owner, args.Cooldown);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public abstract partial class CP14SharedMagicSystem
|
||||
private void EndToggleableAction(Entity<CP14MagicEffectComponent> action, EntityUid performer, float? cooldown = null)
|
||||
{
|
||||
if (cooldown is not null)
|
||||
_action.CP14StartCustomDelay(action, TimeSpan.FromSeconds(cooldown.Value));
|
||||
_action.SetCooldown(action.Owner, TimeSpan.FromSeconds(cooldown.Value));
|
||||
RemCompDeferred<CP14MagicEffectToggledComponent>(action);
|
||||
|
||||
var endEv = new CP14EndCastMagicEffectEvent(performer);
|
||||
@@ -161,10 +161,10 @@ public abstract partial class CP14SharedMagicSystem
|
||||
return;
|
||||
|
||||
var doAfter = new CP14ToggleableEntityWorldTargetActionDoAfterEvent(
|
||||
EntityManager.GetNetCoordinates(args.Coords),
|
||||
EntityManager.GetNetCoordinates(args.Target),
|
||||
EntityManager.GetNetEntity(args.Entity),
|
||||
args.Cooldown);
|
||||
ToggleToggleableAction(toggleable, doAfter, (args.Action, magicEffect), args.Performer, args.Entity, args.Coords);
|
||||
ToggleToggleableAction(toggleable, doAfter, (args.Action, magicEffect), args.Performer, args.Entity, args.Target);
|
||||
|
||||
args.Handled = true;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ public interface ICP14MagicEffect
|
||||
public TimeSpan Cooldown { get; }
|
||||
}
|
||||
|
||||
public sealed partial class CP14EntityWorldTargetActionEvent : EntityWorldTargetActionEvent, ICP14MagicEffect
|
||||
public sealed partial class CP14EntityWorldTargetActionEvent : WorldTargetActionEvent, ICP14MagicEffect
|
||||
{
|
||||
[DataField]
|
||||
public TimeSpan Cooldown { get; private set; } = TimeSpan.FromSeconds(1f);
|
||||
|
||||
@@ -22,7 +22,7 @@ public interface ICP14DelayedMagicEffect
|
||||
public bool RequireCanInteract { get; }
|
||||
}
|
||||
|
||||
public sealed partial class CP14DelayedEntityWorldTargetActionEvent : EntityWorldTargetActionEvent,
|
||||
public sealed partial class CP14DelayedEntityWorldTargetActionEvent : WorldTargetActionEvent,
|
||||
ICP14DelayedMagicEffect
|
||||
{
|
||||
[DataField]
|
||||
|
||||
@@ -46,7 +46,7 @@ public sealed partial class CP14ToggleableInstantActionEvent : InstantActionEven
|
||||
public bool Hidden { get; private set; } = false;
|
||||
}
|
||||
|
||||
public sealed partial class CP14ToggleableEntityWorldTargetActionEvent : EntityWorldTargetActionEvent, ICP14ToggleableMagicEffect
|
||||
public sealed partial class CP14ToggleableEntityWorldTargetActionEvent : WorldTargetActionEvent, ICP14ToggleableMagicEffect
|
||||
{
|
||||
[DataField]
|
||||
public float EffectFrequency { get; private set; } = 1f;
|
||||
|
||||
Reference in New Issue
Block a user