From: Niko233 <139348239+NikoCat233@users.noreply.github.com> Date: Sun, 21 Apr 2024 06:48:54 +0000 (+0800) Subject: Add broadcast X-Git-Tag: v1.9.2~5^2~4 X-Git-Url: https://git.deb.at/?a=commitdiff_plain;h=3c9b0c305c1748c1bf029fc4a1b2fc67eb19c4be;p=rhonda%2Fimpostor.git Add broadcast --- diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs index 3426317..68cbbb1 100644 --- a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs +++ b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs @@ -118,6 +118,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc00PlayAnimation.Deserialize(reader, out var task); break; } @@ -129,6 +134,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc01CompleteTask.Deserialize(reader, out var taskId); await HandleCompleteTask(sender, taskId); break; @@ -263,6 +273,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc11ReportDeadBody.Deserialize(reader, out var targetId); break; } @@ -274,6 +289,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc12MurderPlayer.Deserialize(reader, Game, out var murdered, out var result); return await HandleMurderPlayer(sender, (InnerPlayerControl?)murdered, result); } @@ -285,6 +305,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc13SendChat.Deserialize(reader, out var message); return await HandleSendChat(sender, message); } @@ -296,6 +321,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc14StartMeeting.Deserialize(reader, out var targetId); await HandleStartMeeting(targetId); break; @@ -308,6 +338,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc15SetScanner.Deserialize(reader, out var on, out var scannerCount); break; } @@ -319,6 +354,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc16SendChatNote.Deserialize(reader, out var playerId, out var chatNoteType); break; } @@ -363,6 +403,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + // TODO: deserialize and expose the result in an API break; } @@ -374,6 +419,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc44SetRole.Deserialize(reader, out var role); PlayerInfo.RoleType = role; @@ -392,6 +442,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc45ProtectPlayer.Deserialize(reader, Game, out var protectTarget, out _); return await HandleProtectPlayer(sender, protectTarget); } @@ -408,6 +463,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc46Shapeshift.Deserialize(reader, Game, out _, out _); break; @@ -425,6 +485,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + Rpc47CheckMurder.Deserialize(reader, Game, out var murdered); return await HandleCheckMurder(sender, (InnerPlayerControl?)murdered); } @@ -441,6 +506,12 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateBroadcast(call, sender, target)) + { + return false; + } + + // CheckProtect should only be passed to Host Rpc48CheckProtect.Deserialize(reader, Game, out _); break; } @@ -452,6 +523,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateCmd(call, sender, target)) + { + return false; + } + Rpc51CheckZipline.Deserialize(reader, out var fromTop); break; } @@ -485,6 +561,11 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateCmd(call, sender, target)) + { + return false; + } + Rpc54CheckSpore.Deserialize(reader, out var mushroomId); break; } @@ -496,6 +577,16 @@ namespace Impostor.Server.Net.Inner.Objects return false; } + if (!await ValidateRole(call, sender, PlayerInfo, RoleTypes.Shapeshifter)) + { + return false; + } + + if (!await ValidateCmd(call, sender ,target)) + { + return false; + } + Rpc46Shapeshift.Deserialize(reader, Game, out var playerControl, out var shouldAnimate); break; }