mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-20 01:46:11 +00:00
Fix KeyNotFoundException for nonexistent vents (#413)
Some mods add extra vents that don't yet exist, this commit checks if a given vent exists and if it doesn't, throw an AC violation instead of disconnecting the player One downside is that the Enter/ExitVent events are no longer called, but this would require the vent in that event to become nullable
This commit is contained in:
1 parent
adc0e6fe9b
commit
a13fee108f
1 file changed
+10
-1
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Impostor.Api.Events.Managers;
|
||||
using Impostor.Api.Innersloth;
|
||||
using Impostor.Api.Net;
|
||||
using Impostor.Api.Net.Custom;
|
||||
using Impostor.Api.Net.Inner;
|
||||
@@ -65,7 +66,15 @@ namespace Impostor.Server.Net.Inner.Objects.Components
|
||||
throw new ArgumentOutOfRangeException(nameof(call), call, null);
|
||||
}
|
||||
|
||||
var vent = Game.GameNet.ShipStatus!.Data.Vents[ventId];
|
||||
if (!Game.GameNet.ShipStatus!.Data.Vents.TryGetValue(ventId, out var vent))
|
||||
{
|
||||
if (await sender.Client.ReportCheatAsync(call, "Client interacted with nonexistent vent"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
switch (call)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user