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; } } }