Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
48e03a8
Allow Crewlink to connect to server over TLS
sjoerdthedev Nov 30, 2020
65c9766
Bump version
sjoerdthedev Nov 30, 2020
bf45a44
Allow protocol specifier in Voice Server field
sjoerdthedev Dec 1, 2020
efa1ece
Use matching Ajv constructor settings to electron-store
sjoerdthedev Dec 2, 2020
79e5c87
tweak UI, embed chime, and don't keep mounted
ottomated Dec 4, 2020
1df65b4
Merge branch 'sjoerd108/master'
ottomated Dec 4, 2020
ef62036
clean up
ottomated Dec 4, 2020
ad23db7
Disable offset caching temporarily
ottomated Dec 4, 2020
21af2ea
v1.1.4
ottomated Dec 4, 2020
c28fa2e
Merge pull request #2 from ottomated/master
orendain Dec 4, 2020
2b33244
Voice audio calculated using modified pan positions.
orendain Dec 5, 2020
4da133a
Merge pull request #138 from orendain/master
ottomated Dec 5, 2020
f1e784c
Re-enable caching and more verbose error
ottomated Dec 8, 2020
bf0277e
More error handling
ottomated Dec 8, 2020
38ae71a
Migrate to https://crewl.ink
ottomated Dec 8, 2020
7e4054a
v1.1.5
ottomated Dec 8, 2020
6e2773b
Further SSL migrations
ottomated Dec 8, 2020
88df2a2
Add support link
ottomated Dec 8, 2020
586db21
Changed regex to include device name
KindarConrath Dec 8, 2020
65340ad
docs: fix the donate link
MarshallOfSound Dec 9, 2020
b0988fa
Merge pull request #254 from MarshallOfSound/patch-1
ottomated Dec 9, 2020
57d503a
Rm circular deps & rm x dep between main/renderer
OiYouYeahYou Dec 6, 2020
eac315f
Add a window state keeper
OiYouYeahYou Dec 7, 2020
c06fe9a
Using props instead of context
OiYouYeahYou Dec 8, 2020
887a947
Remove cruft and add some comments
OiYouYeahYou Dec 9, 2020
bda8247
Add Issue templates and config to help reduce spam
OiYouYeahYou Dec 9, 2020
2f94367
Adjust templates
ottomated Dec 9, 2020
3a53b50
Create FUNDING.yml
ottomated Dec 10, 2020
b4615d9
expand issue templates
ottomated Dec 10, 2020
eaf2629
Merge branch 'master' of https://github.com/ottomated/CrewLink
ottomated Dec 10, 2020
9a99329
fix yml
ottomated Dec 10, 2020
6465e88
Replace on-the-fly player image generation with static images
vrnagy Dec 10, 2020
74e1a05
Attempt to fix microphone fuckery
ottomated Dec 10, 2020
88194fd
Merge branch 'avatar-fix'
ottomated Dec 10, 2020
0590bb0
Merge branch 'master' into feature/ImprovedDeviceDropdowns
ottomated Dec 10, 2020
27866b7
Max mic test at 100%
ottomated Dec 10, 2020
ca8cb3e
Merge branch 'master' into wip2
ottomated Dec 10, 2020
9cf439b
Add .eslintrc
ottomated Dec 10, 2020
04d6202
Add linter
ottomated Dec 10, 2020
7974358
COMPLETELY LINT EVERYTHING
ottomated Dec 10, 2020
e0d9006
Fix structron defs
ottomated Dec 10, 2020
1e62e99
Add settings indicator and fix css
ottomated Dec 10, 2020
54ee065
Add twitter
ottomated Dec 10, 2020
054fbc6
remove comment
ottomated Dec 10, 2020
9e1c990
update error message
ottomated Dec 10, 2020
80056d5
v1.1.6
ottomated Dec 11, 2020
ddcd9ca
try to fix audio stuff?
ottomated Dec 11, 2020
689319a
Delete word
micwoj92 Dec 11, 2020
2c5a3e4
fix migration issue
ottomated Dec 11, 2020
84a5979
Merge pull request #307 from micwoj92/patch-1
ottomated Dec 11, 2020
e01b9b2
Force window size
vladdeSV Dec 11, 2020
c7151d0
Merge pull request #333 from vladdeSV/patch/fixed-window-size
ottomated Dec 12, 2020
c973aa3
Create TODO.md
ottomated Dec 13, 2020
7911215
Trim Server URL
stevebell117 Dec 14, 2020
6718850
Update Settings.tsx
stevebell117 Dec 14, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
env:
browser: true
es2021: true
node: true
extends:
- 'eslint:recommended'
- 'plugin:react/recommended'
- 'plugin:@typescript-eslint/recommended'
parser: '@typescript-eslint/parser'
parserOptions:
ecmaFeatures:
jsx: true
ecmaVersion: 12
sourceType: module
plugins:
- react
- '@typescript-eslint'
rules:
indent:
- error
- tab
linebreak-style:
- error
- unix
quotes:
- error
- single
semi:
- error
- always
'@typescript-eslint/ban-ts-comment': off
4 changes: 4 additions & 0 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# These are supported funding model platforms

patreon: ottomated
custom: https://www.paypal.me/ottomated
43 changes: 43 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
---
name: Bug report
about: Create a report to help us improve
title: '[BUG REPORT]'
labels: 'bug'
assignees: ''
---
# You MUST use this template or your issue will be deleted.

# Pre-Flight Checklist
Please use this checklist to avoid spamming:

1. [ ] I am not asking a question => use the [Discord](https://discord.gg/9mwuVNA) if you are
2. [ ] I am using the Steam version of Among Us
3. [ ] I have tried to use an [alternative voice server](https://status.crewl.ink/)
4. [ ] I have checked everyone in my lobby is on the same CrewLink server
5. [ ] I have used `Ctrl+R` on the CrewLink app when I can't hear some people (this is a known issue)
6. [ ] I have checked that the CrewLink server I'm using is up to date
7. [ ] I have a screenshot of any errors
8. [ ] I have checked that someone else has not reported this using the [search bar](https://github.com/ottomated/CrewLink/issues?q=is%3Aissue)

**Describe the bug**
<!-- A clear and concise description of what the bug is. -->

**To Reproduce**
Steps to reproduce the behaviour:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behaviour**
<!-- A clear and concise description of what you expected to happen. -->

**Screenshots**
<!-- If applicable, add screenshots to help explain your problem. -->

**Desktop (please complete the following information):**
- OS: [e.g. Windows 10]
- Version: [e.g. 1.1.5]

**Additional context**
<!-- Add any other context about the problem here. -->
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
blank_issues_enabled: false
contact_links:
- name: YOU MUST USE ONE OF THE ABOVE TEMPLATES OR YOUR ISSUE WILL BE DELETED!
url: https://github.com/ottomated/CrewLink/issues/new/choose
about: This is to prevent duplicate issues and spam.
- name: I need help
url: https://discord.gg/9mwuVNA
about: Please ask and answer questions here.
- name: Security issue
url: https://discord.gg/9mwuVNA
about: Please report security vulnerabilities directly to Ottomated#9999.
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
name: Feature request
about: Suggest an idea for this project
title: '[FEATURE]'
labels: 'enhancement'
assignees: ''
---

# Pre-Flight Checklist
Please use this checklist to avoid spamming:

1. [ ] I am not asking a question => use the [Discord](https://discord.gg/9mwuVNA) if you are
2. [ ] I have checked that someone else has not suggested this using the [search bar](https://github.com/ottomated/CrewLink/issues?q=is%3Aissue)
3. [ ] My feature request is not one of the **commonly suggested features**:
- Adjustable voice radius
- Mobile support
- Linux / MacOS support
- Itch.io support

**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->

**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->
5 changes: 4 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@
·
<a href="#installation"><b>INSTALLATION INSTRUCTIONS</b></a>
</p>
<p align="center">
<b><a href="https://paypal.me/ottomated">DONATE TO THE PROJECT</a></b>
(all donations will be used for server costs or paying for college)
</p>
</p>



<!-- TABLE OF CONTENTS -->
## Table of Contents

Expand Down
40 changes: 40 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# TODO before CrewLink 2.0.0

## Server

- [ ] Migrate from socket.io to a raw websocket connection. Ensure it auto-reconnects.
- [ ] Request offsets over the websocket connection, to keep the number of open sockets down.
- [ ] Move the default server to a better host.
- [ ] Rewrite all error messages to be even more human-readable.
- [ ] Integrate an official server list into the client.
- [ ] Detect the reason *why* the server can't provide offsets: i.e. Among Us just updated, it's an old version of Among Us, the server hasn't updated, etc.

### Stretch

- [ ] Distribute the server load, with a centralized matchmaking database.
- [ ] Re-write the server in Rust.

## Voice / WebRTC

- [ ] Add a microphone boost slider.
- [ ] Add a speaker adjustment slider.
- [ ] Add individual adjustment sliders to each of the players.
- [ ] Handle all RTC errors to make it unnecessary to ever re-open an RTC connection.
- [ ] Detect reason for RTC failure: NAT type, etc?
- [ ] Re-enable all `navigator.getUserMedia` functions that can be re-enabled with autoGainControl kicking in.
- [ ] Move all player-to-player communication logic to RTC data channels, versus sending them over the websocket.

### Stretch

- [ ] Implement an optional TURN server.

## Game Reader

- [ ] Fix unicode characters in player names
- [ ] Indicate to the user when it can't read memory properly. Example: screen displays `MENU` while in lobby due to some misplaced offset.
- [ ] Don't use the Unity Analytics file to read the game version. Use either a hash of the GameAssembly dll, or DMA it from the process.

### Stretch

- [ ] Move away from DMA and towards a different method. Probably network packet sniffing? Maybe DLL injection?
- [ ] Add itch.io and Linux/Mac support. This will be easiest with packet sniffing.
13 changes: 9 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "crewlink",
"version": "1.1.2",
"version": "1.1.6",
"license": "GPL-3.0-or-later",
"description": "Free, open, Among Us proximity voice chat",
"repository": {
Expand All @@ -18,22 +18,23 @@
},
"scripts": {
"postinstall": "electron-builder install-app-deps",
"lint": "eslint src",
"dev": "electron-webpack dev",
"compile": "electron-webpack",
"dist": "yarn compile && electron-builder --win --x64",
"publish": "yarn compile && electron-builder --win --x64 --publish always"
},
"dependencies": {
"ajv": "^6.12.6",
"analyser-frequency-average": "^1.0.0",
"audio-activity": "^1.0.0",
"axios": "^0.21.0",
"color": "^3.1.3",
"cross-spawn": "^7.0.3",
"electron-store": "^6.0.1",
"electron-updater": "^4.3.5",
"electron-window-state": "^5.0.3",
"iohook": "git://github.com/ykhwong/iohook",
"jsondiffpatch": "^0.4.1",
"memoryjs": "https://github.com/Rob--/memoryjs",
"memoryjs": "git://github.com/Rob--/memoryjs",
"react": "^17.0.1",
"react-dom": "^17.0.1",
"react-spinners-kit": "^1.9.1",
Expand All @@ -56,10 +57,14 @@
"@types/simple-peer": "^9.6.1",
"@types/socket.io-client": "^1.4.34",
"@types/webpack-env": "^1.15.3",
"@typescript-eslint/eslint-plugin": "^4.9.1",
"@typescript-eslint/parser": "^4.9.1",
"electron": "9.3.3",
"electron-builder": "^22.9.1",
"electron-webpack": "^2.8.2",
"electron-webpack-ts": "^4.0.1",
"eslint": "^7.15.0",
"eslint-plugin-react": "^7.21.5",
"ts-interface-builder": "^0.2.2",
"typescript": "^4.0.3",
"webpack": "~4.42.1"
Expand Down
29 changes: 29 additions & 0 deletions src/common/AmongUsState.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@

export interface AmongUsState {
gameState: GameState;
oldGameState: GameState;
lobbyCode: string;
players: Player[];
}
export interface Player {
ptr: number;
id: number;
name: string;
colorId: number;
hatId: number;
petId: number;
skinId: number;
disconnected: boolean;
isImpostor: boolean;
isDead: boolean;
taskPtr: number;
objectPtr: number;
isLocal: boolean;

x: number;
y: number;
inVent: boolean;
}
export enum GameState {
LOBBY, TASKS, DISCUSSION, MENU, UNKNOWN
}
16 changes: 16 additions & 0 deletions src/common/ISettings.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

export interface ISettings {
alwaysOnTop: boolean;
microphone: string;
speaker: string;
pushToTalk: boolean;
serverURL: string;
pushToTalkShortcut: string;
deafenShortcut: string;
offsets: {
version: string;
data: string;
},
hideCode: boolean;
enableSpatialAudio: boolean;
}
Loading