diff --git a/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs b/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs index 816dd89f37..e248993a75 100644 --- a/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs +++ b/Content.Client/GameObjects/Components/Actor/CharacterInterface.cs @@ -78,10 +78,9 @@ namespace Content.Client.GameObjects.Components.Actor inputMgr.SetInputCommand(ContentKeyFunctions.OpenCharacterMenu, null); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Client/GameObjects/Components/Construction/ConstructorComponent.cs b/Content.Client/GameObjects/Components/Construction/ConstructorComponent.cs index 8c7a8d6722..68da2348a4 100644 --- a/Content.Client/GameObjects/Components/Construction/ConstructorComponent.cs +++ b/Content.Client/GameObjects/Components/Construction/ConstructorComponent.cs @@ -12,6 +12,7 @@ using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Map; using Robust.Shared.Maths; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Construction { @@ -33,9 +34,9 @@ namespace Content.Client.GameObjects.Components.Construction Owner.GetComponent(); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); switch (message) { diff --git a/Content.Client/GameObjects/Components/HUD/Inventory/ClientInventoryComponent.cs b/Content.Client/GameObjects/Components/HUD/Inventory/ClientInventoryComponent.cs index d0290052eb..c4bd9b4489 100644 --- a/Content.Client/GameObjects/Components/HUD/Inventory/ClientInventoryComponent.cs +++ b/Content.Client/GameObjects/Components/HUD/Inventory/ClientInventoryComponent.cs @@ -181,10 +181,9 @@ namespace Content.Client.GameObjects SendNetworkMessage(new OpenSlotStorageUIMessage(slot)); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Client/GameObjects/Components/Instruments/InstrumentComponent.cs b/Content.Client/GameObjects/Components/Instruments/InstrumentComponent.cs index 80fc60360c..db85f689e1 100644 --- a/Content.Client/GameObjects/Components/Instruments/InstrumentComponent.cs +++ b/Content.Client/GameObjects/Components/Instruments/InstrumentComponent.cs @@ -9,6 +9,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using Timer = Robust.Shared.Timers.Timer; @@ -109,10 +110,9 @@ namespace Content.Client.GameObjects.Components.Instruments serializer.DataField(ref _instrumentProgram, "program", 1); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); if (_renderer == null) { diff --git a/Content.Client/GameObjects/Components/Items/ClientHandsComponent.cs b/Content.Client/GameObjects/Components/Items/ClientHandsComponent.cs index 6f7c193068..8981267f51 100644 --- a/Content.Client/GameObjects/Components/Items/ClientHandsComponent.cs +++ b/Content.Client/GameObjects/Components/Items/ClientHandsComponent.cs @@ -12,6 +12,7 @@ using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -144,10 +145,35 @@ namespace Content.Client.GameObjects } } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); + + switch (message) + { + case PlayerAttachedMsg _: + if (_gui == null) + { + _gui = new HandsGui(); + } + else + { + _gui.Parent?.RemoveChild(_gui); + } + + _gameHud.HandsContainer.AddChild(_gui); + _gui.UpdateHandIcons(); + break; + + case PlayerDetachedMsg _: + _gui.Parent?.RemoveChild(_gui); + break; + } + } + + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) + { + base.HandleNetworkMessage(message, channel, session); switch (message) { diff --git a/Content.Client/GameObjects/Components/Mobs/CameraRecoilComponent.cs b/Content.Client/GameObjects/Components/Mobs/CameraRecoilComponent.cs index d150eb7108..134869504b 100644 --- a/Content.Client/GameObjects/Components/Mobs/CameraRecoilComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/CameraRecoilComponent.cs @@ -6,6 +6,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.Log; using Robust.Shared.Maths; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Mobs { @@ -62,9 +63,21 @@ namespace Content.Client.GameObjects.Components.Mobs _updateEye(); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); + + switch (message) + { + case RecoilKickMessage msg: + Kick(msg.Recoil); + break; + } + } + + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) + { + base.HandleNetworkMessage(message, channel, session); switch (message) { diff --git a/Content.Client/GameObjects/Components/Mobs/ClientOverlayEffectsComponent.cs b/Content.Client/GameObjects/Components/Mobs/ClientOverlayEffectsComponent.cs index 60ac58ea9e..71da8c2294 100644 --- a/Content.Client/GameObjects/Components/Mobs/ClientOverlayEffectsComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/ClientOverlayEffectsComponent.cs @@ -10,6 +10,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Log; +using Robust.Shared.Players; namespace Content.Client.GameObjects { @@ -53,7 +54,20 @@ namespace Content.Client.GameObjects }; } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) + { + switch (message) + { + case PlayerAttachedMsg _: + SetOverlay(_currentEffect); + break; + case PlayerDetachedMsg _: + RemoveOverlay(); + break; + } + } + + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { switch (message) { diff --git a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs index e3edf3d34b..9c177b31c9 100644 --- a/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/ClientStatusEffectsComponent.cs @@ -13,6 +13,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Log; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Mobs { @@ -40,10 +41,9 @@ namespace Content.Client.GameObjects.Components.Mobs PlayerDetached(); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { case PlayerAttachedMsg _: diff --git a/Content.Client/GameObjects/Components/Mobs/CombatModeComponent.cs b/Content.Client/GameObjects/Components/Mobs/CombatModeComponent.cs index d2fd6acd48..4e08edbd12 100644 --- a/Content.Client/GameObjects/Components/Mobs/CombatModeComponent.cs +++ b/Content.Client/GameObjects/Components/Mobs/CombatModeComponent.cs @@ -7,6 +7,7 @@ using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Mobs { @@ -39,9 +40,9 @@ namespace Content.Client.GameObjects.Components.Mobs } } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs index c71e04a56b..611476f9be 100644 --- a/Content.Client/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Client/GameObjects/Components/Observer/GhostComponent.cs @@ -57,10 +57,9 @@ namespace Content.Client.GameObjects.Components.Observer component.Visible = _playerManager.LocalPlayer.ControlledEntity?.HasComponent() ?? false; } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Client/GameObjects/Components/Power/PowerDebugTool.cs b/Content.Client/GameObjects/Components/Power/PowerDebugTool.cs index 21e7452068..4bc96dafc4 100644 --- a/Content.Client/GameObjects/Components/Power/PowerDebugTool.cs +++ b/Content.Client/GameObjects/Components/Power/PowerDebugTool.cs @@ -4,6 +4,7 @@ using Robust.Client.UserInterface.CustomControls; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Power { @@ -11,9 +12,9 @@ namespace Content.Client.GameObjects.Components.Power public class PowerDebugTool : SharedPowerDebugTool { SS14Window LastWindow; - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); switch (message) { diff --git a/Content.Client/GameObjects/Components/Sound/SoundComponent.cs b/Content.Client/GameObjects/Components/Sound/SoundComponent.cs index e5579e3b80..c36f79fe83 100644 --- a/Content.Client/GameObjects/Components/Sound/SoundComponent.cs +++ b/Content.Client/GameObjects/Components/Sound/SoundComponent.cs @@ -6,6 +6,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Random; using Robust.Shared.IoC; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.Timers; @@ -68,9 +69,9 @@ namespace Content.Client.GameObjects.Components.Sound }); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); switch (message) { case ScheduledSoundMessage msg: diff --git a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs index f66c6c7751..3084c2af1d 100644 --- a/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs +++ b/Content.Client/GameObjects/Components/Storage/ClientStorageComponent.cs @@ -12,6 +12,7 @@ using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Maths; +using Robust.Shared.Players; namespace Content.Client.GameObjects.Components.Storage { @@ -40,9 +41,10 @@ namespace Content.Client.GameObjects.Components.Storage base.OnRemove(); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { + base.HandleNetworkMessage(message, channel, session); + switch (message) { //Updates what we are storing for the UI diff --git a/Content.Client/GameObjects/Components/Weapons/Ranged/BallisticMagazineWeaponComponent.cs b/Content.Client/GameObjects/Components/Weapons/Ranged/BallisticMagazineWeaponComponent.cs index d800e7cb5e..ce6e540298 100644 --- a/Content.Client/GameObjects/Components/Weapons/Ranged/BallisticMagazineWeaponComponent.cs +++ b/Content.Client/GameObjects/Components/Weapons/Ranged/BallisticMagazineWeaponComponent.cs @@ -14,6 +14,7 @@ using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; using Robust.Shared.Maths; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; using static Content.Client.StaticIoC; @@ -108,17 +109,16 @@ namespace Content.Client.GameObjects.Components.Weapons.Ranged _statusControl?.Update(); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { + base.HandleNetworkMessage(message, channel, session); + switch (message) { case BmwComponentAutoEjectedMessage _: _statusControl?.PlayAlarmAnimation(); return; } - - base.HandleMessage(message, netChannel, component); } public Control MakeControl() diff --git a/Content.Server/GameObjects/Components/Construction/ConstructorComponent.cs b/Content.Server/GameObjects/Components/Construction/ConstructorComponent.cs index 4a036e0cb8..314eaa59cd 100644 --- a/Content.Server/GameObjects/Components/Construction/ConstructorComponent.cs +++ b/Content.Server/GameObjects/Components/Construction/ConstructorComponent.cs @@ -14,6 +14,7 @@ using Robust.Shared.IoC; using Robust.Shared.Localization; using Robust.Shared.Map; using Robust.Shared.Maths; +using Robust.Shared.Players; using Robust.Shared.Prototypes; namespace Content.Server.GameObjects.Components.Construction @@ -30,9 +31,10 @@ namespace Content.Server.GameObjects.Components.Construction [Dependency] private readonly ILocalizationManager _localizationManager; #pragma warning restore 649 - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); + switch (message) { case TryStartStructureConstructionMessage tryStart: diff --git a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs index ee13193892..443c0fae96 100644 --- a/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs +++ b/Content.Server/GameObjects/Components/Doors/ServerDoorComponent.cs @@ -85,9 +85,9 @@ namespace Content.Server.GameObjects ActivateImpl(eventArgs); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Server/GameObjects/Components/GUI/HumanInventoryControllerComponent.cs b/Content.Server/GameObjects/Components/GUI/HumanInventoryControllerComponent.cs index a22e4d32d7..7b373a9016 100644 --- a/Content.Server/GameObjects/Components/GUI/HumanInventoryControllerComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/HumanInventoryControllerComponent.cs @@ -51,9 +51,9 @@ namespace Content.Server.GameObjects return flagsCheck; } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs b/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs index 4ec867e9b2..f88159845b 100644 --- a/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/InventoryComponent.cs @@ -11,6 +11,7 @@ using Robust.Shared.Interfaces.GameObjects.Components; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Map; +using Robust.Shared.Players; using Robust.Shared.ViewVariables; using static Content.Shared.GameObjects.Components.Inventory.EquipmentSlotDefines; using static Content.Shared.GameObjects.SharedInventoryComponent.ClientInventoryMessage; @@ -304,16 +305,35 @@ namespace Content.Server.GameObjects } /// - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); + + switch (message) + { + case ContainerContentsModifiedMessage msg: + if (msg.Removed) + ForceUnequip(msg.Container, msg.Entity); + break; + + default: + break; + } + } + + /// + public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession session = null) + { + base.HandleNetworkMessage(message, netChannel, session); + + if (session == null) + { + throw new ArgumentNullException(nameof(session)); + } switch (message) { case ClientInventoryMessage msg: - var playerMan = IoCManager.Resolve(); - var session = playerMan.GetSessionByChannel(netChannel); var playerentity = session.AttachedEntity; if (playerentity == Owner) @@ -327,11 +347,6 @@ namespace Content.Server.GameObjects if (item != null && item.Owner.TryGetComponent(out ServerStorageComponent storage)) storage.OpenStorageUI(Owner); break; - - case ContainerContentsModifiedMessage msg: - if (msg.Removed) - ForceUnequip(msg.Container, msg.Entity); - break; } } diff --git a/Content.Server/GameObjects/Components/GUI/ServerHandsComponent.cs b/Content.Server/GameObjects/Components/GUI/ServerHandsComponent.cs index 8a8d748b02..853645d34b 100644 --- a/Content.Server/GameObjects/Components/GUI/ServerHandsComponent.cs +++ b/Content.Server/GameObjects/Components/GUI/ServerHandsComponent.cs @@ -17,6 +17,7 @@ using Robust.Shared.IoC; using Robust.Shared.Log; using Robust.Shared.Map; using Robust.Shared.Maths; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -448,17 +449,19 @@ namespace Content.Server.GameObjects return false; } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); + + if (session == null) + { + throw new ArgumentNullException(nameof(session)); + } switch (message) { case ClientChangedHandMsg msg: { - var playerMan = IoCManager.Resolve(); - var session = playerMan.GetSessionByChannel(netChannel); var playerEntity = session.AttachedEntity; if (playerEntity == Owner && HasHand(msg.Index)) @@ -475,8 +478,6 @@ namespace Content.Server.GameObjects return; } - var playerMan = IoCManager.Resolve(); - var session = playerMan.GetSessionByChannel(netChannel); var playerEntity = session.AttachedEntity; var used = GetActiveHand?.Owner; @@ -502,8 +503,6 @@ namespace Content.Server.GameObjects case UseInHandMsg msg: { - var playerMan = IoCManager.Resolve(); - var session = playerMan.GetSessionByChannel(netChannel); var playerEntity = session.AttachedEntity; var used = GetActiveHand?.Owner; @@ -518,8 +517,6 @@ namespace Content.Server.GameObjects case ActivateInHandMsg msg: { - var playerMan = IoCManager.Resolve(); - var session = playerMan.GetSessionByChannel(netChannel); var playerEntity = session.AttachedEntity; var used = GetHand(msg.Index)?.Owner; diff --git a/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs b/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs index bd81840479..a4ad5d6b00 100644 --- a/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs +++ b/Content.Server/GameObjects/Components/Instruments/InstrumentComponent.cs @@ -7,6 +7,7 @@ using Robust.Server.Interfaces.Player; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; +using Robust.Shared.Players; using Robust.Shared.Serialization; using Robust.Shared.ViewVariables; @@ -45,11 +46,11 @@ namespace Content.Server.GameObjects.Components.Instruments serializer.DataField(ref _handheld, "handheld", false); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); // If the client that sent the message isn't the client playing this instrument, we ignore it. - if (netChannel != _instrumentPlayer) return; + if (channel != _instrumentPlayer) return; switch (message) { case InstrumentMidiEventMessage midiEventMsg: diff --git a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs index 75fa7111c2..89243c45c7 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/EntityStorageComponent.cs @@ -272,9 +272,9 @@ namespace Content.Server.GameObjects.Components } /// - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs b/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs index 0b0f0c35fe..3f451a2ce4 100644 --- a/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs +++ b/Content.Server/GameObjects/Components/Items/Storage/ServerStorageComponent.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using Content.Server.GameObjects.Components; using Content.Server.GameObjects.Components.Items.Storage; @@ -19,6 +20,7 @@ using Robust.Shared.Interfaces.Map; using Robust.Shared.Interfaces.Network; using Robust.Shared.IoC; using Robust.Shared.Log; +using Robust.Shared.Players; using Robust.Shared.Serialization; namespace Content.Server.GameObjects @@ -33,7 +35,6 @@ namespace Content.Server.GameObjects { #pragma warning disable 649 [Dependency] private readonly IMapManager _mapManager; - [Dependency] private readonly IPlayerManager _playerManager; [Dependency] private readonly IEntityManager _entityManager; #pragma warning restore 649 @@ -255,18 +256,22 @@ namespace Content.Server.GameObjects /// and puts the removed entity in hand or on the ground /// /// - /// - /// - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + /// + /// + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); + + if (session == null) + { + throw new ArgumentException(nameof(session)); + } switch (message) { case RemoveEntityMessage _: { _ensureInitialCalculated(); - var session = _playerManager.GetSessionByChannel(netChannel); var playerentity = session.AttachedEntity; var ourtransform = Owner.GetComponent(); @@ -296,7 +301,7 @@ namespace Content.Server.GameObjects case InsertEntityMessage _: { _ensureInitialCalculated(); - var playerEntity = _playerManager.GetSessionByChannel(netChannel).AttachedEntity; + var playerEntity = session.AttachedEntity; var storageTransform = Owner.GetComponent(); var playerTransform = playerEntity.GetComponent(); // TODO: Replace by proper entity range check once it is implemented. @@ -311,9 +316,7 @@ namespace Content.Server.GameObjects } case CloseStorageUIMessage _: { - var session = _playerManager.GetSessionByChannel(netChannel); - - UnsubscribeSession(session); + UnsubscribeSession(session as IPlayerSession); break; } } diff --git a/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs b/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs index d3db6ac632..c26c109d70 100644 --- a/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs +++ b/Content.Server/GameObjects/Components/Mobs/SpeciesComponent.cs @@ -54,9 +54,10 @@ namespace Content.Server.GameObjects serializer.DataFieldCached(ref _heatResistance, "HeatResistance", 323); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { + base.HandleMessage(message, component); + switch (message) { case PlayerAttachedMsg _: diff --git a/Content.Server/GameObjects/Components/Movement/ShuttleControllerComponent.cs b/Content.Server/GameObjects/Components/Movement/ShuttleControllerComponent.cs index 82e3a479e4..9bc123c88a 100644 --- a/Content.Server/GameObjects/Components/Movement/ShuttleControllerComponent.cs +++ b/Content.Server/GameObjects/Components/Movement/ShuttleControllerComponent.cs @@ -105,12 +105,9 @@ namespace Content.Server.GameObjects.Components.Movement } /// - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); - - if(netChannel != null) - return; + base.HandleMessage(message, component); switch (message) { diff --git a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs index bcb1365b56..b2d2881fcd 100644 --- a/Content.Server/GameObjects/Components/Observer/GhostComponent.cs +++ b/Content.Server/GameObjects/Components/Observer/GhostComponent.cs @@ -7,6 +7,7 @@ using Robust.Server.Interfaces.GameObjects; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; using Robust.Shared.Interfaces.Network; +using Robust.Shared.Players; using Robust.Shared.ViewVariables; using Timer = Robust.Shared.Timers.Timer; @@ -38,10 +39,27 @@ namespace Content.Server.GameObjects.Components.Observer public override ComponentState GetComponentState() => new GhostComponentState(CanReturnToBody); - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleMessage(ComponentMessage message, IComponent component) { - base.HandleMessage(message, netChannel, component); + base.HandleMessage(message, component); + + switch (message) + { + case PlayerAttachedMsg msg: + msg.NewPlayer.VisibilityMask |= (int)VisibilityFlags.Ghost; + Dirty(); + break; + case PlayerDetachedMsg msg: + msg.OldPlayer.VisibilityMask &= ~(int)VisibilityFlags.Ghost; + break; + default: + break; + } + } + + public override void HandleNetworkMessage(ComponentMessage message, INetChannel netChannel, ICommonSession session = null) + { + base.HandleNetworkMessage(message, netChannel, session); switch (message) { @@ -53,13 +71,6 @@ namespace Content.Server.GameObjects.Components.Observer Owner.Delete(); } break; - case PlayerAttachedMsg msg: - msg.NewPlayer.VisibilityMask |= (int)VisibilityFlags.Ghost; - Dirty(); - break; - case PlayerDetachedMsg msg: - msg.OldPlayer.VisibilityMask &= ~(int)VisibilityFlags.Ghost; - break; default: break; } diff --git a/Content.Server/GameObjects/Components/Weapon/Ranged/RangedWeapon.cs b/Content.Server/GameObjects/Components/Weapon/Ranged/RangedWeapon.cs index 0417729934..27eebae68e 100644 --- a/Content.Server/GameObjects/Components/Weapon/Ranged/RangedWeapon.cs +++ b/Content.Server/GameObjects/Components/Weapon/Ranged/RangedWeapon.cs @@ -9,6 +9,7 @@ using Robust.Shared.Interfaces.Network; using Robust.Shared.Interfaces.Timing; using Robust.Shared.IoC; using Robust.Shared.Map; +using Robust.Shared.Players; using Robust.Shared.Timers; namespace Content.Server.GameObjects.Components.Weapon.Ranged @@ -40,16 +41,18 @@ namespace Content.Server.GameObjects.Components.Weapon.Ranged FireHandler?.Invoke(user, clickLocation); } - public override void HandleMessage(ComponentMessage message, INetChannel netChannel = null, - IComponent component = null) + public override void HandleNetworkMessage(ComponentMessage message, INetChannel channel, ICommonSession session = null) { - base.HandleMessage(message, netChannel, component); + base.HandleNetworkMessage(message, channel, session); + + if (session == null) + { + throw new ArgumentNullException(nameof(session)); + } switch (message) { case SyncFirePosMessage msg: - var playerMgr = IoCManager.Resolve(); - var session = playerMgr.GetSessionByChannel(netChannel); var user = session.AttachedEntity; if (user == null) { diff --git a/RobustToolbox b/RobustToolbox index 0c8f869cb4..1021b00fea 160000 --- a/RobustToolbox +++ b/RobustToolbox @@ -1 +1 @@ -Subproject commit 0c8f869cb4834fa7f03ce56bf3e74953c594e02b +Subproject commit 1021b00feaa44442e84c2bf8f12312c4a19bcf79