mirror of
https://github.com/Impostor/Impostor.git
synced 2026-10-19 15:51:42 +00:00
Set PlayerLevel in PlayerInfo on RPC SetLevel
Previously this used to be done by the host, but this is now the server's responsibility.
This commit is contained in:
1 parent
fc79bd1536
commit
01e9cccdf5
1 file changed
+14
-1
@@ -251,7 +251,7 @@ namespace Impostor.Server.Net.Inner.Objects
|
||||
}
|
||||
|
||||
Rpc38SetLevel.Deserialize(reader, out var level);
|
||||
return true;
|
||||
return await HandleSetLevel(sender, level);
|
||||
}
|
||||
|
||||
case RpcCalls.ReportDeadBody:
|
||||
@@ -834,6 +834,19 @@ namespace Impostor.Server.Net.Inner.Objects
|
||||
return true;
|
||||
}
|
||||
|
||||
private async ValueTask<bool> HandleSetLevel(ClientPlayer sender, uint level)
|
||||
{
|
||||
if (Game.GameState == GameStates.Started &&
|
||||
await sender.Client.ReportCheatAsync(RpcCalls.SetLevel, CheatCategory.GameFlow, "Client tried to set level while not in game"))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
PlayerInfo.PlayerLevel = level;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private async ValueTask<bool> HandleCheckMurder(ClientPlayer sender, InnerPlayerControl? target)
|
||||
{
|
||||
if (!PlayerInfo.CanMurder(Game, _dateTimeProvider))
|
||||
|
||||
Reference in new issue
Block a user