]> git.deb.at Git - rhonda/impostor.git/log
rhonda/impostor.git
2 years agoAdd dirty tracking to PlayerOutfit
miniduikboot [Sun, 21 Jul 2024 20:31:41 +0000 (22:31 +0200)]
Add dirty tracking to PlayerOutfit

To prevent excessive modifications in the codebase, which is prone to
issues if a callsite is missed, automatically do this using properties.

Keep the access modifiers intact for now.

2 years agoAdd sequence id's to playeroutfit
miniduikboot [Wed, 19 Jun 2024 18:33:53 +0000 (20:33 +0200)]
Add sequence id's to playeroutfit

2 years agoAdd canOverrideRole param to SetRole
miniduikboot [Sat, 22 Jun 2024 10:53:02 +0000 (12:53 +0200)]
Add canOverrideRole param to SetRole

This is currently unused by Innersloth

2 years agoImplement GameOptions V8
miniduikboot [Tue, 18 Jun 2024 17:45:17 +0000 (19:45 +0200)]
Implement GameOptions V8

This adds a field for RulesPresets and SpecialGameModes, as well as
RoleOptions for the new roles.

2 years agoVoteBanSystem now contains itself as a component
miniduikboot [Tue, 23 Jul 2024 19:34:28 +0000 (21:34 +0200)]
VoteBanSystem now contains itself as a component

This makes it consistent with the other spawnables.

2 years agoUpdate Dumpostor to v1.0.1 and run for 6.18
miniduikboot [Tue, 18 Jun 2024 16:07:02 +0000 (18:07 +0200)]
Update Dumpostor to v1.0.1 and run for 6.18

Add the RulesPresets and SpecialGamemodes enums

2 years agoPrepare for 2024.6.18 update
miniduikboot [Tue, 18 Jun 2024 15:30:16 +0000 (17:30 +0200)]
Prepare for 2024.6.18 update

Major changes are incoming, this doesn't yet work.

2 years agoAdd scene param to forbidden scene log statement
miniduikboot [Thu, 8 Aug 2024 19:31:07 +0000 (21:31 +0200)]
Add scene param to forbidden scene log statement

I'm seeing multiple warnings in my server log about forbidden scene
changes. Unfortunately this warning does not include the actual scene
that was triggering the issue, which makes diagnosis/remediation difficult.

Additionally change this logging call to use names suitable for
structured logging.

2 years agoChange default ListenIp to match with config
miniduikboot [Sat, 10 Aug 2024 16:24:21 +0000 (18:24 +0200)]
Change default ListenIp to match with config

The default ListenIp for the base game server has been set to 0.0.0.0 in
config.json for as long as I remember, and a different value is only
sporadically used. I remember a case where someone was fancy with Split
DNS. 0 is better as a default than localhost, so change the code
accordingly to aligh with config.json

2 years agoModify config.json GameRecorderEnabled Default Value
Bilibili_MengChu [Sat, 10 Aug 2024 09:01:06 +0000 (17:01 +0800)]
Modify config.json GameRecorderEnabled Default Value

2 years agoUpdate docs/Server-configuration.md File Description
Bilibili_MengChu [Fri, 9 Aug 2024 08:50:12 +0000 (16:50 +0800)]
Update docs/Server-configuration.md File Description

2 years agoDelete full-config-example.json and merge it into config.json
Bilibili_MengChu [Fri, 9 Aug 2024 07:28:44 +0000 (15:28 +0800)]
Delete full-config-example.json and merge it into config.json

2 years agoBump System.Text.Json to 8.0.4
miniduikboot [Sun, 28 Jul 2024 20:30:55 +0000 (22:30 +0200)]
Bump System.Text.Json to 8.0.4

Fixes CVE-2024-30105 (High 7.5/10)
https://github.com/advisories/GHSA-hh2w-p6rv-4g7w

Impostor doesn't use the affected
JsonSerializer.DeserializeAsyncEnumerable method as it doesn't accept
JSON formatted payloads, but the NU1903 warning is shown on all builds,
leading to warning fatigue.

2 years agoLet hosts handle exiles
miniduikboot [Wed, 3 Jul 2024 21:01:51 +0000 (23:01 +0200)]
Let hosts handle exiles

Previously Impostor liked to kill exiled players server side to raise an
event. This is quite early, as the host will SetRole them to a ghost
role later.

However as PlayerInfo is server-owned by default in 2024.6.18, it starts
killing players client side. This caused meetings to immediately
conclude if the final impostor was voted out, ruining the cutscene.

So this commit makes Impostor wait for hosts to actually kill the player
using SetRole. Do set the LastDeathReason property though for players
using the API.

2 years agoMake Start/Finish GameData API public
miniduikboot [Thu, 25 Jul 2024 17:08:34 +0000 (19:08 +0200)]
Make Start/Finish GameData API public

2 years agoRefactor Start/FinishRpc to add GameData methods
miniduikboot [Sun, 30 Jun 2024 12:21:54 +0000 (14:21 +0200)]
Refactor Start/FinishRpc to add GameData methods

Rpc's are a specific sort of GameData packets, so it makes sense to
split and extract a method for sending GameData packets from these functions.

2 years agoDon't DC the client if they send an unknown flag
miniduikboot [Wed, 19 Jun 2024 20:45:47 +0000 (22:45 +0200)]
Don't DC the client if they send an unknown flag

This item is only used in a LogTrace call, so it seems excessive to kick
a player on servers just for a log statement

Co-Authored-By: js6pak <me@6pak.dev>
2 years agoAdd compatibility option to allow host authority
miniduikboot [Tue, 9 Jul 2024 20:41:27 +0000 (22:41 +0200)]
Add compatibility option to allow host authority

There are various bugs in the 2024.6.18 implementation of host-authoritive
multiplayer such that I can't recommend players to use it. Fixing these
issues on the server side is impossible, and I can't smell remotely if
clients have applied the necessary fixes. The currently known bugs
include at least:

- Unable to join more than 8 players in a room
- Unable for new players to join if host switched from host authoritive
  to server authoritive
- Host is unable to kill if it is in a host authoritive game while it
  thinks it is in server authoritive mode

If Innersloth fixes this mode in future game patches, this option may be
reconsidered.

2 years agoAdd new option to full config example
miniduikboot [Tue, 9 Jul 2024 20:50:02 +0000 (22:50 +0200)]
Add new option to full config example

Some people were confused by config-full.json, thinking that this file
should be edited too. This is not the case and the values in this file
don't apply as it was only meant as an example, so rename the file to
make that more clear.

Also update this file to add the options from the Modular Anticheat

2 years agoMerge pull request #599 from miniduikboot/fix/compatman-no-invalid-clients
miniduikboot [Fri, 19 Jul 2024 18:11:44 +0000 (20:11 +0200)]
Merge pull request #599 from miniduikboot/fix/compatman-no-invalid-clients

Improve CompatMgr behaviour for unknown versions

2 years agoImprove CompatMgr behaviour for unknown versions
miniduikboot [Fri, 14 Jun 2024 19:49:12 +0000 (21:49 +0200)]
Improve CompatMgr behaviour for unknown versions

Currently, Impostor will show an "Client is in an invalid state."
message if a player tries to join a match where the host or the joining
player is using a version unknown to Impostor.

This message confused a *lot* of people, so this PR changes the API such
that if the version is not registered, the version itself is put in a
compatibility group and compared, assuming no other game versions are
compatible with it. This works fine in most cases, as Among Us network
versions generally increase over time.

Failure on 2222.2.2 (which is ancient at this point, so likely no longer
used) and future cases where Innersloth messes up (which is unlikely) is
an acceptable consequence to me.

2 years agoMerge pull request #598 from miniduikboot/fix/custom-rpc-gamelogic
miniduikboot [Fri, 14 Jun 2024 05:13:20 +0000 (07:13 +0200)]
Merge pull request #598 from miniduikboot/fix/custom-rpc-gamelogic

Accept RPC's called on GameManager

2 years agoAccept RPC's called on GameManager
miniduikboot [Thu, 13 Jun 2024 18:52:25 +0000 (20:52 +0200)]
Accept RPC's called on GameManager

Previously Impostor would just throw when a method was called on a
GameManager, but this caused issues with client mods that did just this,
even through vanilla never calls an RPC on GameManager.

This commit changes that throw statement to pass the exception to the
custom message handler/anticheat instead, which is also how it works for
the other NetObjects

2 years agoMerge pull request #597 from Impostor/feature/2024.6.4 v1.9.3
miniduikboot [Wed, 5 Jun 2024 17:43:03 +0000 (19:43 +0200)]
Merge pull request #597 from Impostor/feature/2024.6.4

Add 2024.6.4 game version

2 years agoBump Impostor version
miniduikboot [Wed, 5 Jun 2024 17:16:59 +0000 (19:16 +0200)]
Bump Impostor version

2 years agoAdd 2024.6.4 game version
miniduikboot [Tue, 4 Jun 2024 18:42:18 +0000 (20:42 +0200)]
Add 2024.6.4 game version

Officials allow crossplay and after inspecting the Mono I don't see any
major changes, so I'm following officials here

2 years agoPrepare release 1.9.2 v1.9.2
miniduikboot [Sat, 1 Jun 2024 14:12:10 +0000 (16:12 +0200)]
Prepare release 1.9.2

2 years agoMerge pull request #596 from miniduikboot/fix/cleanup-disposed-clients
miniduikboot [Thu, 30 May 2024 19:47:31 +0000 (21:47 +0200)]
Merge pull request #596 from miniduikboot/fix/cleanup-disposed-clients

Clean up clients that refuse to quit properly

2 years agoClean up clients that refuse to quit properly
miniduikboot [Sun, 26 May 2024 20:05:21 +0000 (22:05 +0200)]
Clean up clients that refuse to quit properly

When a player is kicked or banned from a game, the client is expected to
disconnect in response. When they decide not to *or* the disconnect
packet is lost, Impostor just silently disposes of the connection.
This does not remove them from ClientManager, which is how I tracked
this bug down.

By sending them a proper disconnect message, clients should have
received *a* disconnection message before dropping their connection.

Future work should split this entire method in removing players from a
game and processing kick/bans because the latter feature is not relevant
for other callers of this method.

2 years agoMerge pull request #594 from miniduikboot/feature/refine-modular-ac
miniduikboot [Sat, 11 May 2024 11:54:49 +0000 (13:54 +0200)]
Merge pull request #594 from miniduikboot/feature/refine-modular-ac

Change some anticheat checks categories

2 years agoAdd similar AC check to HandleSetName
miniduikboot [Sun, 28 Apr 2024 16:01:59 +0000 (18:01 +0200)]
Add similar AC check to HandleSetName

2 years agoMove Name checks to NameLimits
miniduikboot [Sun, 28 Apr 2024 15:45:23 +0000 (17:45 +0200)]
Move Name checks to NameLimits

2 years agoMove remaining Color checks to ColorLimits
miniduikboot [Sun, 28 Apr 2024 15:00:30 +0000 (17:00 +0200)]
Move remaining Color checks to ColorLimits

Some mods add custom colors and still use the standard vanilla SetColor
RPC, which leads to issues with this check.

2 years agoMerge pull request #593 from Pietrodjaowjao/master
miniduikboot [Sun, 28 Apr 2024 18:44:40 +0000 (20:44 +0200)]
Merge pull request #593 from Pietrodjaowjao/master

Patch game-breaking exploits

2 years agoDocumentation: Update .NET 7 to .NET 8
miniduikboot [Sun, 28 Apr 2024 16:31:34 +0000 (18:31 +0200)]
Documentation: Update .NET 7 to .NET 8

2 years agoForgot to actually return
Pietrodjaowjao [Sun, 28 Apr 2024 08:12:29 +0000 (05:12 -0300)]
Forgot to actually return

2 years agogamedata
Pietrodjaowjao [Sun, 28 Apr 2024 07:28:09 +0000 (04:28 -0300)]
gamedata

2 years agoMerge pull request #591 from NikoCat233/add-broadcast-check-to-most-of-calls
miniduikboot [Sun, 28 Apr 2024 06:22:55 +0000 (08:22 +0200)]
Merge pull request #591 from NikoCat233/add-broadcast-check-to-most-of-calls

[AntiCheat] Add ValidateBroadCast check to most of the rpc calls

2 years agoFix embarrassing bugs
miniduikboot [Sat, 27 Apr 2024 15:01:01 +0000 (17:01 +0200)]
Fix embarrassing bugs

2 years agoRemove use of SetInfected RPC
miniduikboot [Sat, 27 Apr 2024 14:55:50 +0000 (16:55 +0200)]
Remove use of SetInfected RPC

Client no longer sends the RPC nor does anything with it when receiving it

2 years agoRefactor if statements to be more vertically dense
miniduikboot [Sat, 27 Apr 2024 14:45:15 +0000 (16:45 +0200)]
Refactor if statements to be more vertically dense

Multiple guard clauses make the file harder to navigate, so put them in
a single guard clause with one validation rule per line. Some statements
in the file were already set up like this, so this commit makes it consistent

2 years agoAdd Broadcast checks to remaining RPC's
miniduikboot [Sat, 27 Apr 2024 14:43:50 +0000 (16:43 +0200)]
Add Broadcast checks to remaining RPC's

2 years agoMerge pull request #589 from miniduikboot/feature/game-created-event-add-host
miniduikboot [Sun, 21 Apr 2024 19:44:24 +0000 (21:44 +0200)]
Merge pull request #589 from miniduikboot/feature/game-created-event-add-host

Add Host property to IGameCreatedEvent

2 years agoAdd broadcast
Niko233 [Sun, 21 Apr 2024 06:48:54 +0000 (14:48 +0800)]
Add broadcast

2 years agoAdd Host property to IGameCreatedEvent
miniduikboot [Fri, 12 Apr 2024 20:42:27 +0000 (22:42 +0200)]
Add Host property to IGameCreatedEvent

When a game has just been created, it does not yet have any players in
them, and as a result you can't get the host or its connection id when
this event is called. This makes it annoying to link between this event
and the IGameCreationEvent that came just before it.

Having this link is useful for the usecase of a game code allocation
plugin that allocates codes from a pool, and needs to return codes to
a pool if these codes weren't picked.

2 years agoMerge pull request #571 from Impostor/bugfix/misc-ac
miniduikboot [Thu, 4 Apr 2024 18:17:44 +0000 (20:17 +0200)]
Merge pull request #571 from Impostor/bugfix/misc-ac

Miscellaneous Anticheat fixes

2 years agoRework Color calculation loop to always terminate
miniduikboot [Wed, 3 Apr 2024 19:18:08 +0000 (21:18 +0200)]
Rework Color calculation loop to always terminate

2 years agoDon't dequeue a color when none are available
miniduikboot [Sat, 16 Mar 2024 19:31:17 +0000 (20:31 +0100)]
Don't dequeue a color when none are available

2 years agoCheck AC config in SetName/Color checks
miniduikboot [Wed, 13 Mar 2024 18:23:56 +0000 (19:23 +0100)]
Check AC config in SetName/Color checks

Previously this was not done causing these checks to be unconditionally enabled

2 years agoAllow host-only mods to desync kill timeouts
miniduikboot [Sat, 9 Mar 2024 11:51:57 +0000 (12:51 +0100)]
Allow host-only mods to desync kill timeouts

2 years agoAllow host-only mods to desync murder roles
miniduikboot [Sat, 9 Mar 2024 11:19:49 +0000 (12:19 +0100)]
Allow host-only mods to desync murder roles

2 years agoMake Impostor's AC modular (#559)
miniduikboot [Thu, 4 Apr 2024 18:09:59 +0000 (20:09 +0200)]
Make Impostor's AC modular (#559)

* Add extra configuration options for the anticheat

* Implement option to exempt hosts from AC checks

* Add AntiCheatConfig to InnerNetObject and friends

* Categorize calls in InnerNetObject.Anticheat

* Categorize other calls to ReportCheatAsync

* Update cosmetics AC handling

When Innersloth changed SetHat etc to SetHatStr as part of the cosmicube
update we accidentally created a few dead methods. Restore and update
the code.

* Push up cheat category to ReportCheatAsync

This makes it possible to log failed checks for diagnosis. Also much
cleaner now that we don't have to push AntiCheatConfig everywhere.
Should've done this immediately q.q

* Add back old version of ReportCheatAsync

some plugins used this method. affected plugins should rebuild after the
next impostor release

* Add documentation for modular anticheat

* Address comments

* Sort AntiCheatConfig keys

* Rework the option to allow cheating hosts

This option should actually be tristate: to not break host-only mods we
should disable the anticheat for hosts running host-only mods.

* Document CheatingHostMode

* Split Limits category in Color and Name Limits

2 years agoPrepare release 1.9.1 v1.9.1
miniduikboot [Wed, 3 Apr 2024 17:59:30 +0000 (19:59 +0200)]
Prepare release 1.9.1

2 years agoMerge pull request #573 from ykundesu/fix/AprilFools2024
miniduikboot [Mon, 1 Apr 2024 11:30:35 +0000 (13:30 +0200)]
Merge pull request #573 from ykundesu/fix/AprilFools2024

fixed AprilFools2024 Deserialize error

2 years agoFix compile warning
miniduikboot [Mon, 1 Apr 2024 11:23:18 +0000 (13:23 +0200)]
Fix compile warning

2 years agofixed AprilFools2024 Deserialize error
ykundesu [Mon, 1 Apr 2024 08:33:38 +0000 (17:33 +0900)]
fixed AprilFools2024 Deserialize error

2 years agoMerge pull request #569 from Impostor/feature/2024.3.5
miniduikboot [Sat, 30 Mar 2024 15:25:41 +0000 (16:25 +0100)]
Merge pull request #569 from Impostor/feature/2024.3.5

Feature/2024.3.5

2 years agoRun Dumpostor on 2024.3.5
miniduikboot [Wed, 6 Mar 2024 20:07:09 +0000 (21:07 +0100)]
Run Dumpostor on 2024.3.5

2 years agoAdd new game version for 2024.3.5
miniduikboot [Wed, 6 Mar 2024 20:06:16 +0000 (21:06 +0100)]
Add new game version for 2024.3.5

Officials don't allow crosplay either, so neither should we

2 years agoMerge pull request #563 from Impostor/feature/net8 v1.9.0 v1.9.0-rc.1
miniduikboot [Thu, 25 Jan 2024 11:31:07 +0000 (12:31 +0100)]
Merge pull request #563 from Impostor/feature/net8

Upgrade to net8.0

2 years agoMerge pull request #564 from Impostor/hotfix/docker-actions
miniduikboot [Thu, 25 Jan 2024 11:26:35 +0000 (12:26 +0100)]
Merge pull request #564 from Impostor/hotfix/docker-actions

Migrate to environment files correctly

2 years agoMigrate to environment files correctly
miniduikboot [Thu, 25 Jan 2024 11:21:56 +0000 (12:21 +0100)]
Migrate to environment files correctly

See https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/

2 years agoMerge pull request #562 from Impostor/fix/http2-warning
miniduikboot [Thu, 25 Jan 2024 11:15:43 +0000 (12:15 +0100)]
Merge pull request #562 from Impostor/fix/http2-warning

Don't set HTTP protocols explicitly

2 years agoMerge pull request #561 from miniduikboot/chore/update-gh-actions
miniduikboot [Thu, 25 Jan 2024 11:15:26 +0000 (12:15 +0100)]
Merge pull request #561 from miniduikboot/chore/update-gh-actions

Update Github actions

2 years agoMerge pull request #560 from Impostor/fix/dleks
miniduikboot [Thu, 25 Jan 2024 11:14:59 +0000 (12:14 +0100)]
Merge pull request #560 from Impostor/fix/dleks

Allow spawning in the Dleks map

2 years agoMerge pull request #557 from miniduikboot/fix/http-default-listenip
miniduikboot [Thu, 25 Jan 2024 11:14:31 +0000 (12:14 +0100)]
Merge pull request #557 from miniduikboot/fix/http-default-listenip

Change default ListenIp of Http server to 0.0.0.0

2 years agoMerge pull request #552 from Impostor/feature/options-changed-event
miniduikboot [Thu, 25 Jan 2024 11:14:02 +0000 (12:14 +0100)]
Merge pull request #552 from Impostor/feature/options-changed-event

Implement event to detect game option changes

2 years agoUpdate ReadFrom.Configuration call
js6pak [Thu, 25 Jan 2024 11:13:12 +0000 (12:13 +0100)]
Update ReadFrom.Configuration call

2 years agoDrop BinaryFormatter override in ImpostorException
js6pak [Thu, 25 Jan 2024 11:10:36 +0000 (12:10 +0100)]
Drop BinaryFormatter override in ImpostorException

2 years agoRemove unnecessary using directive
miniduikboot [Thu, 25 Jan 2024 11:05:09 +0000 (12:05 +0100)]
Remove unnecessary using directive

2 years agoUpgrade to net8.0
js6pak [Wed, 24 Jan 2024 23:41:03 +0000 (00:41 +0100)]
Upgrade to net8.0

2 years agoDon't set HTTP protocols explicitly
js6pak [Wed, 24 Jan 2024 23:44:41 +0000 (00:44 +0100)]
Don't set HTTP protocols explicitly

2 years agoUpdate Github actions
miniduikboot [Wed, 24 Jan 2024 20:37:37 +0000 (21:37 +0100)]
Update Github actions

- Update versions to the latest one
- Get rid of .gitmodules as we dumped that years ago
- Change ::set-output to output files as the former is slated for removal

2 years agoOnly throw warning outside of docker containers
miniduikboot [Wed, 24 Jan 2024 20:18:42 +0000 (21:18 +0100)]
Only throw warning outside of docker containers

2 years agoAllow spawning in the Dleks map
miniduikboot [Wed, 24 Jan 2024 19:45:21 +0000 (20:45 +0100)]
Allow spawning in the Dleks map

Now with 100% less crash cascades on spawn attempts and it even includes
working map data!

2 years agoShow both warnings
miniduikboot [Wed, 24 Jan 2024 18:55:35 +0000 (19:55 +0100)]
Show both warnings

2 years agoAdd warning message for direct configuration
miniduikboot [Wed, 24 Jan 2024 17:13:02 +0000 (18:13 +0100)]
Add warning message for direct configuration

2 years agoChange default ListenIp of Http server to 0.0.0.0
miniduikboot [Wed, 10 Jan 2024 18:06:15 +0000 (19:06 +0100)]
Change default ListenIp of Http server to 0.0.0.0

We see that a lot of support tickets are caused by this default setting,
as it is one of the things that blocks connections to the server with no
obvious indication that this is happening. To make it easier for first
time users to set up Impostor, it is important that this setting is
changed.

Previously we also recommended against direct exposing due to security
reasons, but I believe this fear to be unfounded: Microsoft claims that
the Kestrel server is hardened against web server vulnerabilities and
supports its use both with and without a reverse proxy.[1]

We still recommend using reverse proxies if HTTPS support is needed, so
that section of documentation still remains. Setting the ListenIp to
127.0.0.1 is still recommended when using a reverse proxy to remove the
ability for people to connect directly, so we add it there as a recommendation.

[1]: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/servers/kestrel/when-to-use-a-reverse-proxy?view=aspnetcore-8.0

2 years agoMerge branch 'master' into feature/options-changed-event
js6pak [Sun, 17 Dec 2023 19:23:01 +0000 (20:23 +0100)]
Merge branch 'master' into feature/options-changed-event

2 years agoUpdate docs to reflect http plugin merge (#546)
miniduikboot [Sun, 17 Dec 2023 19:22:36 +0000 (20:22 +0100)]
Update docs to reflect http plugin merge (#546)

Co-authored-by: js6pak <me@6pak.dev>
2 years agoMerge Impostor.Http into core (#533)
js6pak [Sun, 17 Dec 2023 19:19:27 +0000 (20:19 +0100)]
Merge Impostor.Http into core (#533)

2 years agoImplement MushroomMixupSabotage
js6pak [Fri, 24 Nov 2023 17:35:33 +0000 (18:35 +0100)]
Implement MushroomMixupSabotage

2 years agoDrop the RpcSnapTo anticheat
js6pak [Tue, 21 Nov 2023 18:14:58 +0000 (19:14 +0100)]
Drop the RpcSnapTo anticheat

2 years agoImplement fungle rpcs
js6pak [Tue, 21 Nov 2023 16:15:52 +0000 (17:15 +0100)]
Implement fungle rpcs

2 years agoSource generate map data and enums (#548)
js6pak [Sat, 16 Dec 2023 22:36:02 +0000 (23:36 +0100)]
Source generate map data and enums (#548)

2 years agoMerge pull request #553 from Impostor/feature/2023.11.28
miniduikboot [Sun, 3 Dec 2023 22:27:05 +0000 (23:27 +0100)]
Merge pull request #553 from Impostor/feature/2023.11.28

Add new network version for 2023.11.28

2 years agoMake GameLogicComponent methods async
js6pak [Sun, 3 Dec 2023 21:59:05 +0000 (22:59 +0100)]
Make GameLogicComponent methods async

2 years agomore comments sent over discord pm's
miniduikboot [Sun, 3 Dec 2023 21:55:05 +0000 (22:55 +0100)]
more comments sent over discord pm's

2 years agoProcess comments
miniduikboot [Sun, 3 Dec 2023 21:49:13 +0000 (22:49 +0100)]
Process comments

2 years agoGet rid of Rpc02 SyncSettings
miniduikboot [Wed, 29 Nov 2023 21:14:59 +0000 (22:14 +0100)]
Get rid of Rpc02 SyncSettings

This RPC is still sent by clients, but no longer used by clients. As the
server can get the info it wants from LogicOptions instead, remove this
RPC to prevent people from using it accidentally

2 years agoProcess comments
miniduikboot [Tue, 28 Nov 2023 22:09:39 +0000 (23:09 +0100)]
Process comments

2 years agoAdd new network version for 2023.11.28
miniduikboot [Tue, 28 Nov 2023 19:25:38 +0000 (20:25 +0100)]
Add new network version for 2023.11.28

Did a quick run through, didn't seem too broken

2 years agoImplement event to detect game option changes
miniduikboot [Sun, 26 Nov 2023 22:01:54 +0000 (23:01 +0100)]
Implement event to detect game option changes

This can be triggered by both RPC 02 and a(nother) plugin calling
SyncSettings to force certain settings on the host. Users of this API
could cause this event to recurse by calling SyncSettingsAsync inside an
event handler, so we prevent such reasonable foreseeable misuse.

2 years agoMerge pull request #549 from Impostor/feature/2023.10.24
miniduikboot [Fri, 17 Nov 2023 21:08:18 +0000 (22:08 +0100)]
Merge pull request #549 from Impostor/feature/2023.10.24

Feature/2023.10.24

2 years agoRevert the rpc debug log
js6pak [Fri, 17 Nov 2023 19:04:16 +0000 (20:04 +0100)]
Revert the rpc debug log

2 years agoDebounce CheckMurder calls
miniduikboot [Thu, 16 Nov 2023 16:55:50 +0000 (17:55 +0100)]
Debounce CheckMurder calls

In games where players have a high ping, they can get disconnected if
they try and murder a player twice. If a player tries to kill a player
again while they are still under a cooldown from their previous kill,
cancel their request if the game is server authoritive and don't process
it anymore if the game is host authoritive

2 years agoFix host authoritive murder
js6pak [Sun, 12 Nov 2023 20:33:54 +0000 (21:33 +0100)]
Fix host authoritive murder

2 years agoFix SA1629 violations
miniduikboot [Fri, 10 Nov 2023 18:09:07 +0000 (19:09 +0100)]
Fix SA1629 violations

2 years agoActually implement CNT serialization
miniduikboot [Fri, 10 Nov 2023 18:07:39 +0000 (19:07 +0100)]
Actually implement CNT serialization

2 years agoUpdate src/Impostor.Server/Net/State/Game.cs
miniduikboot [Fri, 10 Nov 2023 15:13:10 +0000 (16:13 +0100)]
Update src/Impostor.Server/Net/State/Game.cs

Co-authored-by: js6pak <kubastaron@hotmail.com>