From 0e6aec0e56eb5c0a2d284196a279598903d3f5e8 Mon Sep 17 00:00:00 2001
From: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Date: Sun, 13 Feb 2022 11:18:24 +1300
Subject: [PATCH] Make more network-events check EntitySessionEventArgs.
(#6612)
---
Content.Client/Inventory/ClientInventorySystem.cs | 2 +-
Content.Client/Tabletop/TabletopSystem.cs | 4 ++--
Content.Server/Inventory/ServerInventorySystem.cs | 11 +++++++----
.../Tabletop/TabletopSystem.Draggable.cs | 4 ++--
.../Events/OpenSlotStorageNetworkMessage.cs | 8 ++------
.../Events/TabletopDraggingPlayerChangedEvent.cs | 14 ++++----------
6 files changed, 18 insertions(+), 25 deletions(-)
diff --git a/Content.Client/Inventory/ClientInventorySystem.cs b/Content.Client/Inventory/ClientInventorySystem.cs
index 075dfc9941..d923da9ddf 100644
--- a/Content.Client/Inventory/ClientInventorySystem.cs
+++ b/Content.Client/Inventory/ClientInventorySystem.cs
@@ -256,7 +256,7 @@ namespace Content.Client.Inventory
if (e.Function != EngineKeyFunctions.UIClick &&
e.Function != ContentKeyFunctions.ActivateItemInWorld)
return;
- RaiseNetworkEvent(new OpenSlotStorageNetworkMessage(entityUid, definition.Name));
+ RaiseNetworkEvent(new OpenSlotStorageNetworkMessage(definition.Name));
}
};
btn.OnHover = (_) =>
diff --git a/Content.Client/Tabletop/TabletopSystem.cs b/Content.Client/Tabletop/TabletopSystem.cs
index c89f9285d8..a872355a64 100644
--- a/Content.Client/Tabletop/TabletopSystem.cs
+++ b/Content.Client/Tabletop/TabletopSystem.cs
@@ -225,7 +225,7 @@ namespace Content.Client.Tabletop
/// The viewport in which we are dragging.
private void StartDragging(EntityUid draggedEntity, ScalingViewport viewport)
{
- RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(draggedEntity, _playerManager.LocalPlayer?.UserId));
+ RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(draggedEntity, true));
if (EntityManager.TryGetComponent(draggedEntity, out var appearance))
{
@@ -246,7 +246,7 @@ namespace Content.Client.Tabletop
// Set the dragging player on the component to noone
if (broadcast && _draggedEntity != null && EntityManager.HasComponent(_draggedEntity.Value))
{
- RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(_draggedEntity.Value, null));
+ RaiseNetworkEvent(new TabletopDraggingPlayerChangedEvent(_draggedEntity.Value, false));
}
_draggedEntity = null;
diff --git a/Content.Server/Inventory/ServerInventorySystem.cs b/Content.Server/Inventory/ServerInventorySystem.cs
index 9920f3f909..15d5f72aaf 100644
--- a/Content.Server/Inventory/ServerInventorySystem.cs
+++ b/Content.Server/Inventory/ServerInventorySystem.cs
@@ -7,7 +7,7 @@ using InventoryComponent = Content.Shared.Inventory.InventoryComponent;
namespace Content.Server.Inventory
{
- class ServerInventorySystem : InventorySystem
+ sealed class ServerInventorySystem : InventorySystem
{
public override void Initialize()
{
@@ -20,11 +20,14 @@ namespace Content.Server.Inventory
SubscribeNetworkEvent(OnOpenSlotStorage);
}
- private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev)
+ private void OnOpenSlotStorage(OpenSlotStorageNetworkMessage ev, EntitySessionEventArgs args)
{
- if (TryGetSlotEntity(ev.Uid, ev.Slot, out var entityUid) && TryComp(entityUid, out var storageComponent))
+ if (args.SenderSession.AttachedEntity is not EntityUid { Valid: true } uid)
+ return;
+
+ if (TryGetSlotEntity(uid, ev.Slot, out var entityUid) && TryComp(entityUid, out var storageComponent))
{
- storageComponent.OpenStorageUI(ev.Uid);
+ storageComponent.OpenStorageUI(uid);
}
}
}
diff --git a/Content.Server/Tabletop/TabletopSystem.Draggable.cs b/Content.Server/Tabletop/TabletopSystem.Draggable.cs
index 384d8234ac..e11cb43311 100644
--- a/Content.Server/Tabletop/TabletopSystem.Draggable.cs
+++ b/Content.Server/Tabletop/TabletopSystem.Draggable.cs
@@ -56,13 +56,13 @@ namespace Content.Server.Tabletop
transform.Coordinates = entityCoordinates;
}
- private void OnDraggingPlayerChanged(TabletopDraggingPlayerChangedEvent msg)
+ private void OnDraggingPlayerChanged(TabletopDraggingPlayerChangedEvent msg, EntitySessionEventArgs args)
{
var dragged = msg.DraggedEntityUid;
if (!EntityManager.TryGetComponent(dragged, out var draggableComponent)) return;
- draggableComponent.DraggingPlayer = msg.DraggingPlayer;
+ draggableComponent.DraggingPlayer = msg.IsDragging ? args.SenderSession.UserId : null;
if (!EntityManager.TryGetComponent(dragged, out var appearance)) return;
diff --git a/Content.Shared/Inventory/Events/OpenSlotStorageNetworkMessage.cs b/Content.Shared/Inventory/Events/OpenSlotStorageNetworkMessage.cs
index 006336b101..3cdf0aac1d 100644
--- a/Content.Shared/Inventory/Events/OpenSlotStorageNetworkMessage.cs
+++ b/Content.Shared/Inventory/Events/OpenSlotStorageNetworkMessage.cs
@@ -1,18 +1,14 @@
-using System;
-using Robust.Shared.GameObjects;
using Robust.Shared.Serialization;
namespace Content.Shared.Inventory.Events;
[NetSerializable, Serializable]
-public class OpenSlotStorageNetworkMessage : EntityEventArgs
+public sealed class OpenSlotStorageNetworkMessage : EntityEventArgs
{
- public readonly EntityUid Uid;
public readonly string Slot;
- public OpenSlotStorageNetworkMessage(EntityUid uid, string slot)
+ public OpenSlotStorageNetworkMessage(string slot)
{
- Uid = uid;
Slot = slot;
}
}
diff --git a/Content.Shared/Tabletop/Events/TabletopDraggingPlayerChangedEvent.cs b/Content.Shared/Tabletop/Events/TabletopDraggingPlayerChangedEvent.cs
index 9ad2e08f50..8f32327db0 100644
--- a/Content.Shared/Tabletop/Events/TabletopDraggingPlayerChangedEvent.cs
+++ b/Content.Shared/Tabletop/Events/TabletopDraggingPlayerChangedEvent.cs
@@ -1,6 +1,3 @@
-using System;
-using Robust.Shared.GameObjects;
-using Robust.Shared.Network;
using Robust.Shared.Serialization;
namespace Content.Shared.Tabletop.Events
@@ -10,22 +7,19 @@ namespace Content.Shared.Tabletop.Events
/// trying to move a single item at the same time.
///
[Serializable, NetSerializable]
- public class TabletopDraggingPlayerChangedEvent : EntityEventArgs
+ public sealed class TabletopDraggingPlayerChangedEvent : EntityEventArgs
{
///
/// The UID of the entity being dragged.
///
public EntityUid DraggedEntityUid;
- ///
- /// The NetUserID of the player that is now dragging the item.
- ///
- public NetUserId? DraggingPlayer;
+ public bool IsDragging;
- public TabletopDraggingPlayerChangedEvent(EntityUid draggedEntityUid, NetUserId? draggingPlayer)
+ public TabletopDraggingPlayerChangedEvent(EntityUid draggedEntityUid, bool isDragging)
{
DraggedEntityUid = draggedEntityUid;
- DraggingPlayer = draggingPlayer;
+ IsDragging = isDragging;
}
}
}