Skip to content
This repository was archived by the owner on Mar 3, 2021. It is now read-only.

Draft console input #1

Open
wants to merge 83 commits into
base: reactor
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
87a062c
Sync Impostor with 6pak fork (#327)
js6pak Mar 3, 2021
d4bffd2
[skip ci] Update Building-from-source.md
js6pak Mar 3, 2021
bbbf368
Bump version
js6pak Mar 3, 2021
020a1b6
Implement IInnerNetObject in IInnerMeetingHud (#256)
112batman Mar 3, 2021
be19b15
Warn if plugin loader paths don't exist (#330)
miniduikboot Mar 3, 2021
e769b87
Add create game api (#241)
js6pak Mar 4, 2021
9bd43b4
2021.3.5
js6pak Mar 5, 2021
781ba34
Fix Impostor.Tools.ServerReplay compilation
AeonLucid Mar 6, 2021
575ad25
New GameDataTags
js6pak Mar 6, 2021
acd2a56
Simplify Message01JoinGameC2S
js6pak Mar 6, 2021
1059a4d
Add debug logs in AnnouncementsService
js6pak Mar 6, 2021
3090cea
Remove fake player joining (#341)
miniduikboot Mar 7, 2021
0901be5
Implement GameData 205
js6pak Mar 7, 2021
9915f8b
Expose IsCancelled to IPlayerChatEvent
js6pak Mar 7, 2021
20d5284
minor README.md changes (#342)
Galster-dev Mar 10, 2021
443168e
Add DateTime to server replays (#349)
js6pak Mar 14, 2021
72f1e81
Merge branch '2021.3.5'
js6pak Mar 14, 2021
e359f0a
Update README.md
js6pak Mar 14, 2021
ea10854
Fix typo in README.md
js6pak Mar 14, 2021
a1c5936
Merge remote-tracking branch 'origin/2021.3.5'
js6pak Mar 14, 2021
7e16b55
Include AntiCheat.Enabled in default config.json
js6pak Mar 14, 2021
f04bacf
Update Server-configuration.md
js6pak Mar 14, 2021
e0041e8
Update docker CI
js6pak Mar 16, 2021
fe7a641
Set VERSIONSUFFIX to docker by default
js6pak Mar 16, 2021
be332e2
Add IInnerPlayerControl#ExileAsync (#271)
Minorusama Mar 23, 2021
dc759b1
Fix FloatRange ranges
js6pak Mar 18, 2021
0f6bfb3
Fix warnings
js6pak Mar 24, 2021
e90ba73
Code cleanup
js6pak Mar 24, 2021
bc85ef6
Fix xmldoc warnings
js6pak Mar 24, 2021
ef5320c
Update cake
js6pak Mar 24, 2021
fbed06b
Add icon to nuspec
js6pak Mar 24, 2021
f4dc0cd
Revert hazel changes for easier merging with its upstream
js6pak Mar 24, 2021
a90bbeb
Update appveyor.yml for the ultimate yellow-less experience
js6pak Mar 24, 2021
3321e30
Make configs actually work with dependency injection
js6pak Mar 24, 2021
8621f09
Merge pull request #333 from Impostor/fix/style-warnings
js6pak Mar 25, 2021
40a41f3
Fix a bug causing InnerPlayerInfo.Controller to be always null
js6pak Mar 28, 2021
a0627bb
Always hook control with playerInfo
js6pak Mar 28, 2021
b90e5b2
Switch back hazel to submodule
js6pak Apr 2, 2021
11e87e5
Update airship constants
js6pak Apr 2, 2021
989b06d
Use BitConverter.Int32BitsToSingle in SpanReaderExtensions
js6pak Apr 2, 2021
7c34836
Remove reactor stuff
js6pak Mar 25, 2021
a39fae3
Initial auth implementation
js6pak Apr 2, 2021
4f53d3f
Hopefully fix the submodule
js6pak Apr 2, 2021
a63fc40
Gamedata packets are now have initial state false
miniduikboot Mar 31, 2021
92e3506
First attempt at getting some airship stuff online
miniduikboot Mar 31, 2021
d311150
API: update enums for airship
miniduikboot Apr 1, 2021
4c1bd4a
editorconfig: Don't indent blocks in case contents
miniduikboot Apr 1, 2021
16a2b0a
I counted the doors on Airship
miniduikboot Apr 1, 2021
d5ae007
implement rpc 31: climb ladder
miniduikboot Apr 1, 2021
c01062e
implement rpc 32: use platform
miniduikboot Apr 1, 2021
66c2434
Implement HeliSabotageSystemType
miniduikboot Apr 2, 2021
47aebe7
Fix InnerShipStatus deserializing
miniduikboot Apr 2, 2021
7fd68e3
Fix Docker container build
miniduikboot Apr 2, 2021
441d9c3
Move PlayerVentEvent call to applicable RPC's
miniduikboot Apr 2, 2021
d801a36
Rename things for 6pak
miniduikboot Apr 4, 2021
c750c65
Merge pull request #372 from miniduikboot/2021.3.31
js6pak Apr 4, 2021
b5cee48
Airship Vent Enums (#373)
JohnTranQUT Apr 4, 2021
60bf6b5
Fix namespaces
js6pak Apr 4, 2021
225b56e
Fix cheatcontext in ValidateImpostor calls
js6pak Apr 4, 2021
13bddeb
Split ShipStatus to multiple classes, implement new door types
js6pak Apr 4, 2021
4866a35
Implement airship spawning, closes #376
js6pak Apr 4, 2021
0a30fe5
Bring back tar.gz for unix builds
js6pak Apr 5, 2021
970f826
Allow Android Versions (#375)
JohnTranQUT Apr 6, 2021
304b4bb
Rework vent api
js6pak Apr 6, 2021
f03e722
Update example plugin
js6pak Apr 6, 2021
bfba438
Make PlayerVentEvent an actual PlayerVentEvent
js6pak Apr 6, 2021
7764987
Specify enum values for Platforms
js6pak Apr 9, 2021
1d66f07
Make vent data initialization much cleaner
js6pak Apr 10, 2021
e941796
Bump version
js6pak Apr 10, 2021
8d27016
Fix xmldoc warnings
js6pak Apr 10, 2021
f0434f0
Merge pull request #377 from Impostor/airship
js6pak Apr 11, 2021
a56eed2
Use actual disconnect message in ClientBase#DisconnectAsync
js6pak Apr 11, 2021
f43577b
Add simple ping toleration to murder player check
js6pak Apr 11, 2021
fbd9f12
Add GameHostChange event (#277)
112batman Apr 12, 2021
7ac6c32
Set configuration's BasePath to CurrentDirectory
js6pak Apr 13, 2021
0bb5442
Merge pull request #387 from Impostor/murder-check-ping
js6pak Apr 13, 2021
d47343d
BeforeGameCreatedEvent (#266)
Minorusama Apr 13, 2021
283f59b
Allow plugins to set dependencies, softdependencies and loadbefores t…
HarmHoog Apr 13, 2021
bffa557
Add console input using SusLine
js6pak Apr 12, 2021
788eb69
Hide cursor when clearing line because windows is bad
js6pak Apr 12, 2021
b2efec1
Fix some wrapping issues
js6pak Apr 12, 2021
9560e5f
Fix CTRL + C
js6pak Apr 13, 2021
4b4b4bd
Trade legacy windows support for deadlock fix
js6pak Apr 14, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"cake.tool": {
"version": "0.38.5",
"version": "1.1.0",
"commands": [
"dotnet-cake"
]
Expand Down
17 changes: 0 additions & 17 deletions .github/stale.yml

This file was deleted.

14 changes: 9 additions & 5 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Docker

on:
push:
branches: dev
branches: master
paths:
- 'src/Impostor.Server/**'
- 'src/Impostor.Shared/**'
Expand Down Expand Up @@ -33,22 +33,24 @@ jobs:
run: |
DOCKER_IMAGE=aeonlucid/impostor
VERSION=noop
VERSIONSUFFIX=docker
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
VERSIONSUFFIX=none
elif [[ $GITHUB_REF == refs/heads/* ]]; then
VERSION=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's#/+#-#g')
if [ "${{ github.event.repository.default_branch }}" = "dev" ]; then
VERSION=nightly
fi
VERSION=nightly
VERSIONSUFFIX=docker.${{ github.run_number }}
elif [[ $GITHUB_REF == refs/pull/* ]]; then
VERSION=pr-${{ github.event.number }}
VERSIONSUFFIX=pr.${{ github.event.number }}
fi
TAGS="${DOCKER_IMAGE}:${VERSION}"
if [[ $VERSION =~ ^v[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$ ]]; then
TAGS="$TAGS,${DOCKER_IMAGE}:latest"
fi
echo ::set-output name=version::${VERSION}
echo ::set-output name=tags::${TAGS}
echo ::set-output name=versionsuffix::${VERSIONSUFFIX}
echo ::set-output name=created::$(date -u +'%Y-%m-%dT%H:%M:%SZ')
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
Expand All @@ -68,3 +70,5 @@ jobs:
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.prep.outputs.tags }}
build-args: |
VERSIONSUFFIX=${{ steps.prep.outputs.versionsuffix }}
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "src/Impostor.Hazel"]
path = src/Impostor.Hazel
url = https://github.com/Impostor/Impostor.Hazel
9 changes: 6 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ FROM --platform=$BUILDPLATFORM mcr.microsoft.com/dotnet/sdk:5.0 AS build
# https://github.com/containerd/containerd/blob/master/platforms/platforms.go#L17
ARG TARGETARCH

ARG VERSIONSUFFIX="docker"

WORKDIR /source

# Copy csproj and restore.
COPY src/Impostor.Server/Impostor.Server.csproj ./src/Impostor.Server/Impostor.Server.csproj
COPY src/Impostor.Api/Impostor.Api.csproj ./src/Impostor.Api/Impostor.Api.csproj
COPY src/Impostor.Hazel/Impostor.Hazel.csproj ./src/Impostor.Hazel/Impostor.Hazel.csproj
COPY src/Impostor.Hazel/Hazel/Hazel.csproj ./src/Impostor.Hazel/Hazel/Hazel.csproj

RUN case "$TARGETARCH" in \
amd64) NETCORE_PLATFORM='linux-x64';; \
Expand All @@ -19,7 +21,7 @@ RUN case "$TARGETARCH" in \
esac && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Server/Impostor.Server.csproj && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Api/Impostor.Api.csproj && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Hazel/Impostor.Hazel.csproj
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Hazel/Hazel/Hazel.csproj

# Copy everything else.
COPY src/. ./src/
Expand All @@ -29,7 +31,8 @@ RUN case "$TARGETARCH" in \
arm) NETCORE_PLATFORM='linux-arm';; \
*) echo "unsupported architecture"; exit 1 ;; \
esac && \
dotnet publish -c release -o /app -r "$NETCORE_PLATFORM" --no-restore ./src/Impostor.Server/Impostor.Server.csproj
[[ $VERSIONSUFFIX = "none" ]] && VERSIONSUFFIX=; \
dotnet publish -c release -o /app -r "$NETCORE_PLATFORM" -p:VersionSuffix="$VERSIONSUFFIX" --no-restore ./src/Impostor.Server/Impostor.Server.csproj

# Final image.
FROM --platform=$TARGETPLATFORM mcr.microsoft.com/dotnet/runtime:5.0
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Impostor

[![Discord](https://img.shields.io/badge/Discord-chat-blue?style=flat-square)](https://discord.gg/Mk3w6Tb)
[![AppVeyor](https://img.shields.io/appveyor/build/Impostor/Impostor/dev?style=flat-square)](https://ci.appveyor.com/project/Impostor/Impostor/branch/dev)
[![AppVeyor](https://img.shields.io/appveyor/build/Impostor/Impostor/master?style=flat-square)](https://ci.appveyor.com/project/Impostor/Impostor/branch/master)

Impostor is one of the first **Among Us** private servers, written in C#.

We support Steam, Itch, Android and iOS. The latest version supported is `2020.9.22`, the `dev` build currently supports `2020.11.17`.

| Impostor version | Among Us version | Experimental | Download |
|-|-|-|-|
| 1.1.0 | 2020.09.07 - 2020.09.22 | No | [![Download](https://img.shields.io/badge/Download-v1.1.0-blue?style=flat-square)](https://github.com/Impostor/Impostor/releases/tag/v1.1.0) |
| 1.2.2 | 2020.09.22 - 2020.11.17 | Yes | [![Download](https://img.shields.io/badge/Download-v1.2.2-blue?style=flat-square)](https://ci.appveyor.com/project/Impostor/Impostor/branch/dev/artifacts) |
| 1.2.2 | 2020.09.22 - 2020.11.17 | No | [![Download](https://img.shields.io/badge/Download-v1.2.2-blue?style=flat-square)](https://github.com/Impostor/Impostor/releases/tag/v1.2.2) |
| 1.3.0 | 2021.3.5 | No | [![Download](https://img.shields.io/badge/Download-v1.3.0-blue?style=flat-square)](https://github.com/Impostor/Impostor/releases/tag/v1.3.0) |
| 1.4.0 | 2021.3.31 - 2021.4.2 | Yes | [![Download](https://img.shields.io/badge/Download-master-blue?style=flat-square)](https://ci.appveyor.com/project/Impostor/Impostor/branch/master/artifacts) |

## Features

Expand All @@ -27,9 +27,9 @@ If you just want to play on a server hosted by someone else, you need to follow
#### Windows

1. Find the [latest release](https://github.com/AeonLucid/Impostor/releases/latest).
2. Download `Impostor-Client-win-x64.zip`.
2. Download `Impostor-Patcher-win-x64.zip`.
3. Extract the zip.
4. Run `Impostor.Client.exe`.
4. Run `Impostor.Patcher.exe`.
5. Follow the instructions inside the application.

![Client](docs/images/client.jpg)
Expand Down
5 changes: 2 additions & 3 deletions appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
version: '{build}'

environment:
IMPOSTOR_VERSION: '1.2.2'
DOTNET_CLI_TELEMETRY_OPTOUT: 1

branches:
except:
- gh-pages
- gh-pages

pull_requests:
do_not_increment_build_number: true
Expand All @@ -17,7 +16,7 @@ assembly_info:
dotnet_csproj:
patch: false

image: Visual Studio 2019 Preview
image: Ubuntu2004

install:
- git submodule update --init --recursive
Expand Down
97 changes: 40 additions & 57 deletions build.cake
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
#addin "nuget:?package=SharpZipLib&Version=1.3.0"
#addin "nuget:?package=Cake.Compression&Version=0.2.4"
#addin "nuget:?package=Cake.FileHelpers&Version=3.3.0"
#addin "nuget:?package=SharpZipLib&Version=1.3.1"
#addin "nuget:?package=Cake.Compression&Version=0.2.6"
#addin "nuget:?package=Cake.FileHelpers&Version=4.0.1"


var buildId = EnvironmentVariable("APPVEYOR_BUILD_VERSION") ?? "0";
var buildVersion = EnvironmentVariable("IMPOSTOR_VERSION") ?? "1.0.0";
var buildBranch = EnvironmentVariable("APPVEYOR_REPO_BRANCH") ?? "dev";
var buildId = EnvironmentVariable("GITHUB_RUN_NUMBER") ?? EnvironmentVariable("APPVEYOR_BUILD_VERSION");
var buildRelease = EnvironmentVariable("APPVEYOR_REPO_TAG") == "true";
var buildVersion = FindRegexMatchGroupInFile("./src/Directory.Build.props", @"\<VersionPrefix\>(.*?)\<\/VersionPrefix\>", 1, System.Text.RegularExpressions.RegexOptions.None).Value;
var buildDir = MakeAbsolute(Directory("./build"));

var prNumber = EnvironmentVariable("APPVEYOR_PULL_REQUEST_NUMBER");
var target = Argument("target", "Deploy");
var configuration = Argument("configuration", "Release");

// On any branch that is not master, we need to tag the version as prerelease.
if (buildBranch != "master") {
buildVersion = buildVersion + "-ci." + buildId;
var msbuildSettings = new DotNetCoreMSBuildSettings();

if (buildRelease)
{
msbuildSettings.Properties["Version"] = new[] { buildVersion };
}
else if (buildId != null)
{
msbuildSettings.Properties["VersionSuffix"] = new[] { "ci." + buildId };
buildVersion += "-ci." + buildId;
}

//////////////////////////////////////////////////////////////////////
Expand All @@ -34,7 +39,8 @@ private void ImpostorPublish(string name, string project, string runtime, bool i
SelfContained = false,
PublishSingleFile = true,
PublishTrimmed = false,
OutputDirectory = projBuildDir
OutputDirectory = projBuildDir,
MSBuildSettings = msbuildSettings
});

if (isServer) {
Expand Down Expand Up @@ -62,7 +68,8 @@ private void ImpostorPublishNF(string name, string project) {
Configuration = configuration,
NoRestore = true,
Framework = "net472",
OutputDirectory = projBuildDir
OutputDirectory = projBuildDir,
MSBuildSettings = msbuildSettings
});

Zip(projBuildDir, projBuildZip);
Expand All @@ -86,13 +93,6 @@ Task("Restore")
DotNetCoreRestore("./src/Impostor.sln");
});

Task("Patch")
.WithCriteria(BuildSystem.AppVeyor.IsRunningOnAppVeyor)
.Does(() => {
ReplaceRegexInFiles("./src/**/*.csproj", @"<Version>.*?<\/Version>", "<Version>" + buildVersion + "</Version>");
ReplaceRegexInFiles("./src/**/*.props", @"<Version>.*?<\/Version>", "<Version>" + buildVersion + "</Version>");
});

Task("Replay")
.Does(() => {
// D:\Projects\GitHub\Impostor\Impostor\src\Impostor.Tools.ServerReplay\sessions
Expand All @@ -107,7 +107,6 @@ Task("Replay")

Task("Build")
.IsDependentOn("Clean")
.IsDependentOn("Patch")
.IsDependentOn("Restore")
.IsDependentOn("Replay")
.Does(() => {
Expand All @@ -116,44 +115,28 @@ Task("Build")
Configuration = configuration,
});

// Only build artifacts if;
// - buildBranch is master/dev
// - it is not a pull request
if ((buildBranch == "master" || buildBranch == "dev") && string.IsNullOrEmpty(prNumber)) {
// Client.
ImpostorPublishNF("Impostor-Patcher", "./src/Impostor.Patcher/Impostor.Patcher.WinForms/Impostor.Patcher.WinForms.csproj");
// Client.
ImpostorPublishNF("Impostor-Patcher", "./src/Impostor.Patcher/Impostor.Patcher.WinForms/Impostor.Patcher.WinForms.csproj");

ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "win-x64");
ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "osx-x64");
ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "linux-x64");
ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "win-x64");
ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "osx-x64");
ImpostorPublish("Impostor-Patcher-Cli", "./src/Impostor.Patcher/Impostor.Patcher.Cli/Impostor.Patcher.Cli.csproj", "linux-x64");

// Server.
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "win-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "osx-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-arm", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-arm64", true);

// API.
DotNetCorePack("./src/Impostor.Api/Impostor.Api.csproj", new DotNetCorePackSettings {
Configuration = configuration,
OutputDirectory = buildDir,
IncludeSource = true,
IncludeSymbols = true
});
} else {
DotNetCoreBuild("./src/Impostor.Patcher/Impostor.Patcher.WinForms/Impostor.Patcher.WinForms.csproj", new DotNetCoreBuildSettings {
Configuration = configuration,
NoRestore = true,
Framework = "net472"
});

DotNetCoreBuild("./src/Impostor.Server/Impostor.Server.csproj", new DotNetCoreBuildSettings {
Configuration = configuration,
NoRestore = true,
Framework = "net5.0"
});
}
// Server.
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "win-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "osx-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-x64", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-arm", true);
ImpostorPublish("Impostor-Server", "./src/Impostor.Server/Impostor.Server.csproj", "linux-arm64", true);

// API.
DotNetCorePack("./src/Impostor.Api/Impostor.Api.csproj", new DotNetCorePackSettings {
Configuration = configuration,
OutputDirectory = buildDir,
IncludeSource = true,
IncludeSymbols = true,
MSBuildSettings = msbuildSettings
});
});

Task("Test")
Expand Down
25 changes: 8 additions & 17 deletions docs/Building-from-source.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,20 @@
# Building from source

The solution contains two main projects, the Impostor client and server. The client is built using [.NET Framework 4.7.2](https://dotnet.microsoft.com/download/dotnet-framework/net472) and the server with [.NET 5](https://dotnet.microsoft.com/download/dotnet/5.0).

Currently .NET 5 is not yet officially released, so in order to build using Visual Studio, you should have Visual Studio 2019 **Preview** installed.
This documentation will go over building both the [Server](#building-the-server) and the [Client](#building-the-client) and their requirements.
The solution contains two main projects, the Impostor server and patcher. The server is built using [.NET 5](https://dotnet.microsoft.com/download/dotnet/5.0) and the winforms patcher is with [.NET Framework 4.7.2](https://dotnet.microsoft.com/download/dotnet-framework/net472).

## Cloning Impostor

You need to clone Impostor with all submodules.

```bash
git clone --recursive https://github.com/AeonLucid/Impostor.git
```

If you already have cloned Impostor but have errors related to Hazel, run the following.
You need to clone Impostor using git.

```bash
git submodule update --init
git clone https://github.com/AeonLucid/Impostor.git
```

## Building the server

### Dependencies
- [.NET 5 SDK](https://dotnet.microsoft.com/download/dotnet/5.0)
- [Visual Studio Preview](https://visualstudio.microsoft.com/vs/preview/) (Optional, only if you want the full IDE experience)
- [Rider](https://www.jetbrains.com/rider/) or [Visual Studio](https://visualstudio.microsoft.com/vs/) (Optional, only if you want the full IDE experience)

### Build using the CLI

Expand All @@ -33,13 +24,13 @@ dotnet build
```
To setup the server, please look at [Running the server](Running-the-server.md).

## Building the client
## Building the winforms patcher

### Dependencies
* [.NET Framework 4.7.2 Developer Pack](https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net472-developer-pack-offline-installer)
* [.NET Framework 4.7.2 Developer Pack](https://dotnet.microsoft.com/download/dotnet-framework/thank-you/net472-developer-pack-offline-installer) or [Mono](https://www.mono-project.com/download/)

### Build using the CLI
```bash
cd src/Impostor.Client/Impostor.Client.WinForms
cd src/Impostor.Patcher/Impostor.Patcher.WinForms
dotnet build
```
```
3 changes: 3 additions & 0 deletions docs/Server-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Some information about all the possible configurations. Click [here](https://git

| Key | Default | Value |
|-|-|-|
| **Enabled** | `true` | Whether the anticheat should be enabled. |
| **BanIpFromGame** | `true` | When a player is caught hacking, they will be kicked from the server. If this value is set to `true`, the player will be banned instead and will not be able to rejoin that specific game. **(Setting this to false does not disable the anti-cheat!)** |

### ServerRedirector
Expand Down Expand Up @@ -45,6 +46,7 @@ Server:PublicIp=127.0.0.1
Server:PublicPort=22023
Server:ListenIp=0.0.0.0
Server:ListenPort=22023
AntiCheat:Enabled=true
AntiCheat:BanIpFromGame=true
ServerRedirector:Enabled=false
ServerRedirector:Master=true
Expand All @@ -65,6 +67,7 @@ IMPOSTOR_Server__PublicIp=127.0.0.1
IMPOSTOR_Server__PublicPort=22023
IMPOSTOR_Server__ListenIp=0.0.0.0
IMPOSTOR_Server__ListenPort=22023
IMPOSTOR_AntiCheat__Enabled=true
IMPOSTOR_AntiCheat__BanIpFromGame=true
IMPOSTOR_ServerRedirector__Enabled=false
IMPOSTOR_ServerRedirector__Master=true
Expand Down
Loading