Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Scoreboard theme xpevo #315

Merged
merged 161 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
676e475
Update current map design to fit mockup
araszka Aug 20, 2024
f669ff6
Update next map widget design
araszka Aug 20, 2024
fe7f07c
Center author name in next map widget
araszka Aug 20, 2024
1f3da08
Merge remote-tracking branch 'origin/master' into 277-current-map-red…
araszka Aug 24, 2024
7dd5d85
Show correct diffs in spectator target info and update design
araszka Aug 24, 2024
9b94fc4
Stash
araszka Aug 26, 2024
face066
Add SpectatorTargetInfo tests
araszka Sep 1, 2024
8795740
Add more spectator target info tests
araszka Sep 1, 2024
3b4644d
Send updated widget to spectators if target player changes or is updated
araszka Sep 1, 2024
05c6614
Reset spectator info widgets on new round and hide on podium start
araszka Sep 1, 2024
31e8358
Remove spectators on disconnect and do not update widget if spec targ…
araszka Sep 1, 2024
5a3bdbf
Add team colors in spectator target info
araszka Sep 3, 2024
4cf93fa
Implement change spec target
araszka Sep 7, 2024
63fd01c
Make spectator info module hide Nadeo counterpart
araszka Sep 11, 2024
485d64a
Add request current spectator target after controller start to show w…
araszka Sep 11, 2024
e6a3914
Add custom cam mode widget
araszka Sep 14, 2024
51ed44f
Improve spectator info pad/keyboard detections
araszka Sep 14, 2024
635b3fe
Improve showing/hiding of spectator target info
araszka Sep 14, 2024
1066869
Simplify spectator cam mode module
araszka Sep 15, 2024
06531c4
Add dropup to select cam mode
araszka Sep 15, 2024
68fade0
Add tests for SpectatorCamModeModule
araszka Sep 15, 2024
9eb15f3
Make cam mode menu hidden by default
araszka Sep 15, 2024
c34949f
Improve detection of spectator target and simplify code
araszka Sep 18, 2024
897133e
Use 1 default rank in spectator target
araszka Sep 18, 2024
dce72d3
Fix existing spectator target tests
araszka Sep 18, 2024
751e83a
Remove redundant spec target reporting
araszka Sep 18, 2024
3cf1b98
Add tests for spectator target manialink controller
araszka Sep 18, 2024
e2bf309
Add doc comments for ISpectatorTargetInfoService
araszka Sep 20, 2024
7bbd370
Clean up GameModeUiModule
araszka Sep 21, 2024
ffb3dd6
Remove unnecessary code and add another overload to GameModeUiModuleS…
araszka Sep 21, 2024
6a0bada
Use GameModeUiModule in Scoreboard
araszka Sep 21, 2024
abd2d0f
Load GameModeUiModule before any other module else depndency might fail
araszka Sep 21, 2024
ef652c4
Add SpectatorTargetEventControllerTests
araszka Sep 21, 2024
9cd5692
Add tests for SpectatorTargetInfoService
araszka Sep 21, 2024
e677517
Add tests for CheckpointGroup
araszka Sep 21, 2024
ae3f0db
Fix TeamInfoEventControllerTests
araszka Sep 21, 2024
d262fa5
Merge remote-tracking branch 'origin/master' into 276-spec-info
araszka Sep 21, 2024
0400dc5
Merge fix
araszka Sep 21, 2024
eae31c1
Revert "Merge fix"
araszka Sep 21, 2024
328d6a9
Update SpectatorTargetInfoServiceTests
araszka Sep 21, 2024
77e599f
Remove commented out code from tests
araszka Sep 21, 2024
87a6685
Convert constants to static readonly properties
araszka Sep 21, 2024
c9cd6f9
Replace Moq with EvoSC.Testing reference
araszka Sep 21, 2024
f0e7f13
Fix dependencies in csproj
araszka Sep 21, 2024
7108c29
Add async suffix to methods
araszka Sep 21, 2024
8cfebb9
Add async suffix
araszka Sep 21, 2024
9fa18f1
Use Find instead of FirstOrDefault on List
araszka Sep 21, 2024
bdc18d0
Add curly braces
araszka Sep 21, 2024
0177d13
Fix spectator target tests
araszka Sep 21, 2024
e2b6fc9
Rename tests project to fit module name
araszka Sep 21, 2024
d625024
Rename Scoreboard to ScoreboardModule
araszka Sep 22, 2024
9b4dba4
Create ScoreboardNicknamesService
araszka Sep 22, 2024
44a8799
Properly escape nicknames for scoreboard
araszka Sep 22, 2024
4639f44
Start scoreboard theme update
araszka Sep 22, 2024
5a0fca0
Advance scoreboard theme update
araszka Sep 27, 2024
b3bcd08
Update player actions design in scoreboard
araszka Sep 28, 2024
13bdcc9
Fix player row hover
araszka Sep 28, 2024
5c7ae6b
Update scoreboard default theme
araszka Sep 28, 2024
2ce2f14
Add scoreboard settings
araszka Sep 29, 2024
212678e
Make position box and flag configurable/themeable
araszka Sep 29, 2024
34bd0db
Update scoreboard header
araszka Sep 29, 2024
18b0ece
Scoreboard improvements
araszka Sep 29, 2024
6e975fb
Remove old scoreboard theme entries
araszka Sep 29, 2024
751ca50
Add default logo to theme
araszka Sep 29, 2024
d9273a7
Remove old components
araszka Sep 29, 2024
6c4d70c
Scoreboard improvements
araszka Sep 29, 2024
ab6685e
Remove unused code
araszka Sep 29, 2024
5bb6510
Update src/EvoSC.Common/Interfaces/Models/IPlayer.cs
araszka Sep 29, 2024
c7b685a
Add property comments to GameModeUiComponentSettings
araszka Sep 29, 2024
dbac768
Remove debug code
araszka Sep 29, 2024
9cf59fb
Make GameModeUiModuleService transient lifecycle
araszka Sep 29, 2024
99f2b96
Change log level in SpectatorTargetInfoService
araszka Sep 29, 2024
d8a66e6
Move maniascript of spectator mode to own file
araszka Sep 29, 2024
28df54d
Move SpectatorTargetInfo maniascript to own file
araszka Sep 29, 2024
c14d11b
Follow AAA principle in tests
araszka Sep 29, 2024
92ce113
Fix tests
araszka Sep 29, 2024
f468a93
Add reference to script
araszka Sep 29, 2024
cf1458d
Remove unnecessary using
araszka Sep 29, 2024
5991ee4
Remove unnecessary import
araszka Sep 29, 2024
876a74c
Set string comparison type when escaping nicknames
araszka Sep 29, 2024
6b67864
Add doc comments to IScoreboardNicknamesService
araszka Sep 29, 2024
968b806
Merge branch '276-spec-info' into scoreboard-theme
araszka Sep 29, 2024
875b6e4
Merge remote-tracking branch 'origin/master' into scoreboard-theme
araszka Sep 29, 2024
b61a9f7
Merge branch 'master' into scoreboard-theme
araszka Sep 29, 2024
02fecce
Upgrading hawf to be compatible with ToornamentModule.
AtomicLiquid Sep 29, 2024
b59e66b
Serversync and toornament as internal modules.
AtomicLiquid Sep 29, 2024
5292e40
Merge pull request #1 from EvoEsports/upgrade-hawf
AtomicLiquid Sep 29, 2024
31fa165
Fox show cam mode widget in warmups and do not reset on each new round
araszka Sep 30, 2024
732d691
Make cam mode selection equal width
araszka Sep 30, 2024
2d2c9ce
Prevent script error when changing spec target with one player on server
araszka Sep 30, 2024
1bceaa1
Always format time the same way in spec info
araszka Sep 30, 2024
0d508c7
Add warmup round mode script events
araszka Sep 30, 2024
f5efb78
Reset spectator target info on new warmup rounds
araszka Sep 30, 2024
ebc1916
Resend spectator target info to spectators on new rounds
araszka Sep 30, 2024
c9adf6e
Only show spec info and cam selection if UI sequence "playing"
araszka Sep 30, 2024
69ebdad
Merge remote-tracking branch 'origin/master' into 276-spec-info
araszka Sep 30, 2024
4bf996f
Remove controller
araszka Sep 30, 2024
7f8d426
Merge remote-tracking branch 'origin/master' into scoreboard-theme
araszka Sep 30, 2024
6b39129
Merge remote-tracking branch 'origin/scoreboard-theme' into scoreboar…
araszka Sep 30, 2024
4cf4ef3
Get max player for scoreboard dynamically
araszka Sep 30, 2024
12635a7
Correct default scoreboard X
araszka Sep 30, 2024
3efe2bd
Correctly map custom winner/finalist color
araszka Sep 30, 2024
aacc420
Replace readonly property with const
araszka Sep 30, 2024
27c9a8d
Fix whitelist and forceSpectate, Fix update MapName on Toornament sit…
glocom Oct 2, 2024
d2ac49b
Fix Ready Widget
glocom Oct 2, 2024
73c15c2
Fix Whitelist players and kick if they shouldnt be there
glocom Oct 2, 2024
4cb7583
Working on fixing jetstream error.
AtomicLiquid Oct 2, 2024
3ba0421
Working on fixing jetstream error.
AtomicLiquid Oct 2, 2024
335ca4d
Merge branch 'toornament_fixes' into jetstream-fix
AtomicLiquid Oct 2, 2024
7792977
Merge branch 'toornament_fixes' into jetstream-fix
AtomicLiquid Oct 2, 2024
760bd83
Fixes jetstream issue when match exists already aswell as other minor…
AtomicLiquid Oct 2, 2024
4923f11
Fixes jetstream issue when match exists already aswell as other minor…
AtomicLiquid Oct 2, 2024
3179282
Fix Force Spectate, change some logging
glocom Oct 2, 2024
0b0efa1
Merge pull request #2 from EvoEsports/toornament_fixes
AtomicLiquid Oct 3, 2024
23f66cb
Adding some todos.
AtomicLiquid Oct 3, 2024
d0afaeb
Fixed merge conflicts.
AtomicLiquid Oct 3, 2024
f1181b9
Merged in from master.
AtomicLiquid Oct 3, 2024
f58f307
Add Contact Admin Module
Nsgr Oct 3, 2024
77ecac6
Merge branch 'master' into scoreboard-theme
araszka Oct 4, 2024
8940dda
Merge remote-tracking branch 'origin/master' into 276-spec-info
araszka Oct 4, 2024
9dba754
Create RoundRankingModule
araszka Oct 4, 2024
3f7d8c5
Fix ManiaTemplate
Nsgr Oct 4, 2024
89a2fdf
Implement proper request handling
Nsgr Oct 4, 2024
238f535
Collect checkpoint data and render round ranking widget
araszka Oct 4, 2024
6424bdf
Improve round ranking
araszka Oct 4, 2024
1eaafdb
Add gained points
araszka Oct 4, 2024
baa5388
Remove players individually from round ranking in TA mode
araszka Oct 4, 2024
01a7deb
Round ranking improvements
araszka Oct 4, 2024
5ae1966
Add teams support to round ranking module
araszka Oct 4, 2024
c5ae5b8
Started work on restructuring the matchservice.
AtomicLiquid Oct 4, 2024
127ba63
Split up method
araszka Oct 5, 2024
8530c4b
Remove unused constructor parameter
araszka Oct 5, 2024
bd44385
Add show time difference instead of individual times
araszka Oct 5, 2024
408f470
Add doc comments for round ranking service
araszka Oct 5, 2024
29bb413
Restructure code in RoundRankingModule
araszka Oct 5, 2024
d52cba8
Add possibility to turn off gained points display in round ranking
araszka Oct 5, 2024
65718d2
Fix broken services, Add DiscordNotifyService
glocom Oct 5, 2024
053b0f7
Merge branch 'EvoEsports:master' into contact-admin
Nsgr Oct 5, 2024
4142de5
Add confirmation dialog for setup when a match is in progress
glocom Oct 5, 2024
720abc2
Updated credentials for docker-compose.
AtomicLiquid Oct 5, 2024
41c4801
Merge pull request #3 from EvoEsports/jetstream-fix
AtomicLiquid Oct 5, 2024
08f762f
Merge remote-tracking branch 'upstream/master'
AtomicLiquid Oct 5, 2024
e881621
Merge branch 'master' into contact-admin
Nsgr Oct 5, 2024
6a31f15
Merge pull request #5 from EvoEsports/contact-admin
AtomicLiquid Oct 5, 2024
25f796e
Fix GameMode detection
glocom Oct 5, 2024
c6208c3
Fix Join as Spectator not in whitelist
glocom Oct 5, 2024
80fb3d6
Add round rnaking tests project
araszka Oct 6, 2024
a4d1589
Prevent scoreboard script crash if max players is lower than actual p…
araszka Oct 6, 2024
e3782c2
Use max players and spectators to calculate scoreboard rows
araszka Oct 6, 2024
a362737
Merge branch 'master' into restructure-matchservice
AtomicLiquid Oct 7, 2024
34d0927
Merge pull request #4 from EvoEsports/restructure-matchservice
AtomicLiquid Oct 7, 2024
9cc48ae
Merge branch 'master' into scoreboard-theme
araszka Oct 7, 2024
4fc8492
Merge branch 'EvoEsports:master' into master
araszka Oct 8, 2024
7e8eaf3
Merge branch 'EvoEsports:master' into master
araszka Oct 8, 2024
a815688
Merge remote-tracking branch 'xpevo/master' into 311-round-ranking-xpevo
Oct 8, 2024
5580d3b
Merge pull request #9 from EvoEsports/311-round-ranking-xpevo
araszka Oct 8, 2024
d0db645
Merge remote-tracking branch 'xpevo/master' into scoreboard-theme-xpevo
Oct 8, 2024
67fc827
Merge fix
Oct 8, 2024
a227c97
Merge fix 2
Oct 8, 2024
4df9fbc
Prevent round ranking exception if S_PointsRepartition is empty string
Oct 8, 2024
60f130f
Update scoreboard header
Oct 8, 2024
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
37 changes: 36 additions & 1 deletion EvoSC.sln
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatchTrackerModule", "src\M
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MatchReadyModule", "src\Modules\MatchReadyModule\MatchReadyModule.csproj", "{0538B9AB-B556-45BF-8230-53087BA9D353}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scoreboard", "src\Modules\Scoreboard\Scoreboard.csproj", "{CD032D37-3BC8-4DE8-8C5B-45A0DE36932E}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ScoreboardModule", "src\Modules\ScoreboardModule\ScoreboardModule.csproj", "{CD032D37-3BC8-4DE8-8C5B-45A0DE36932E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NextMapModule", "src\Modules\NextMapModule\NextMapModule.csproj", "{64688FA7-136C-4BB9-B716-4E96DD0AA82F}"
EndProject
Expand Down Expand Up @@ -148,6 +148,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpectatorCamModeModule", "s
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SpectatorCamModeModule.Tests", "tests\Modules\SpectatorCamModeModule.Tests\SpectatorCamModeModule.Tests.csproj", "{09A88256-8008-4085-A8E6-CA6DEFAC63E3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServerSyncModule", "src\Modules\ServerSyncModule\ServerSyncModule.csproj", "{AB39B49E-729D-42EF-93DE-98AD6329AAEC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ToornamentModule", "src\Modules\ToornamentModule\ToornamentModule.csproj", "{6F12A74A-BC4B-426D-B094-638FCB266FC6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ContactAdminModule", "src\Modules\ContactAdminModule\ContactAdminModule.csproj", "{056D6390-6A39-4A5B-BFCE-7694CDD4EA62}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoundRankingModule", "src\Modules\RoundRankingModule\RoundRankingModule.csproj", "{41FD20E7-5064-425F-B110-CEBD53F80ECA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoundRankingModule.Tests", "tests\Modules\RoundRankingModule.Tests\RoundRankingModule.Tests.csproj", "{2623A6E2-125F-49B5-B8E1-5883B6E36C1A}"
EndProject



Expand Down Expand Up @@ -447,6 +457,26 @@ Global
{09A88256-8008-4085-A8E6-CA6DEFAC63E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09A88256-8008-4085-A8E6-CA6DEFAC63E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{09A88256-8008-4085-A8E6-CA6DEFAC63E3}.Release|Any CPU.Build.0 = Release|Any CPU
{AB39B49E-729D-42EF-93DE-98AD6329AAEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB39B49E-729D-42EF-93DE-98AD6329AAEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB39B49E-729D-42EF-93DE-98AD6329AAEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB39B49E-729D-42EF-93DE-98AD6329AAEC}.Release|Any CPU.Build.0 = Release|Any CPU
{6F12A74A-BC4B-426D-B094-638FCB266FC6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F12A74A-BC4B-426D-B094-638FCB266FC6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F12A74A-BC4B-426D-B094-638FCB266FC6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F12A74A-BC4B-426D-B094-638FCB266FC6}.Release|Any CPU.Build.0 = Release|Any CPU
{056D6390-6A39-4A5B-BFCE-7694CDD4EA62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{056D6390-6A39-4A5B-BFCE-7694CDD4EA62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{056D6390-6A39-4A5B-BFCE-7694CDD4EA62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{056D6390-6A39-4A5B-BFCE-7694CDD4EA62}.Release|Any CPU.Build.0 = Release|Any CPU
{41FD20E7-5064-425F-B110-CEBD53F80ECA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{41FD20E7-5064-425F-B110-CEBD53F80ECA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{41FD20E7-5064-425F-B110-CEBD53F80ECA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{41FD20E7-5064-425F-B110-CEBD53F80ECA}.Release|Any CPU.Build.0 = Release|Any CPU
{2623A6E2-125F-49B5-B8E1-5883B6E36C1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2623A6E2-125F-49B5-B8E1-5883B6E36C1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2623A6E2-125F-49B5-B8E1-5883B6E36C1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2623A6E2-125F-49B5-B8E1-5883B6E36C1A}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -517,5 +547,10 @@ Global
{E4BF17BE-A517-4D3C-8DCA-DA99A100EBFE} = {6D75D6A2-6ECD-4DE4-96C5-CAD7D134407A}
{E9806703-6E24-4F05-A728-A04F7EB31749} = {DC47658A-F421-4BA4-B617-090A7DFB3900}
{09A88256-8008-4085-A8E6-CA6DEFAC63E3} = {6D75D6A2-6ECD-4DE4-96C5-CAD7D134407A}
{41FD20E7-5064-425F-B110-CEBD53F80ECA} = {DC47658A-F421-4BA4-B617-090A7DFB3900}
{2623A6E2-125F-49B5-B8E1-5883B6E36C1A} = {6D75D6A2-6ECD-4DE4-96C5-CAD7D134407A}
{AB39B49E-729D-42EF-93DE-98AD6329AAEC} = {DC47658A-F421-4BA4-B617-090A7DFB3900}
{6F12A74A-BC4B-426D-B094-638FCB266FC6} = {DC47658A-F421-4BA4-B617-090A7DFB3900}
{056D6390-6A39-4A5B-BFCE-7694CDD4EA62} = {DC47658A-F421-4BA4-B617-090A7DFB3900}
EndGlobalSection
EndGlobal
22 changes: 5 additions & 17 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ services:
image: evoesports/trackmania
restart: always
ports:
- 2350:2350/udp
- 2350:2350/tcp
- "2350:2350/udp"
- "2350:2350/tcp"
- "5001:5000"
environment:
- MASTER_LOGIN=
- MASTER_PASSWORD=
Expand All @@ -19,21 +20,8 @@ services:
- POSTGRES_PASSWORD=evosc_sharp
- POSTGRES_USER=evosc_sharp
- POSTGRES_DB=evosc_sharp

evosc_sharp:
image: evoscsharp:latest
restart: always
depends_on:
- trackmania
- postgres
environment:
- EVOSC_DATABASE_HOST=postgres
- EVOSC_DATABASE_NAME=evosc_sharp
- EVOSC_DATABASE_USERNAME=evosc_sharp
- EVOSC_DATABASE_PASSWORD=evosc_sharp
- EVOSC_SERVER_HOST=trackmania
volumes:
- UserData:/server/UserData
ports:
- "5432:5432"

volumes:
PostgresData: null
Expand Down
15 changes: 15 additions & 0 deletions src/EvoSC/EvoSC.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,22 @@
<PackageReference Include="linq2db" Version="5.3.2" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging" Version="8.0.0" />
<PackageReference Include="NATS.Client" Version="1.1.6" />
<PackageReference Include="NATS.Client" Version="1.1.6" />
<PackageReference Include="SonarAnalyzer.CSharp" Version="9.15.0.81779">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.CommandLine" Version="2.0.0-beta4.22272.1" />
<PackageReference Include="System.CommandLine.Rendering" Version="0.4.0-alpha.22272.1" />
<PackageReference Include="toornamentapi" Version="1.2.0" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\EvoSC.CLI\EvoSC.CLI.csproj" />
<ProjectReference Include="..\EvoSC.Manialinks\EvoSC.Manialinks.csproj" />
<ProjectReference Include="..\EvoSC.Modules\EvoSC.Modules.csproj" />
<ProjectReference Include="..\Modules\ContactAdminModule\ContactAdminModule.csproj" />
<ProjectReference Include="..\Modules\ExampleModule\ExampleModule.csproj" />
<ProjectReference Include="..\Modules\ForceTeamModule\ForceTeamModule.csproj" />
<ProjectReference Include="..\Modules\LiveRankingModule\LiveRankingModule.csproj" />
Expand All @@ -34,6 +38,8 @@
<ProjectReference Include="..\Modules\MatchReadyModule\MatchReadyModule.csproj" />
<ProjectReference Include="..\Modules\MatchTrackerModule\MatchTrackerModule.csproj" />
<ProjectReference Include="..\Modules\NextMapModule\NextMapModule.csproj" />
<ProjectReference Include="..\Modules\ScoreboardModule\ScoreboardModule.csproj" />
<ProjectReference Include="..\Modules\RoundRankingModule\RoundRankingModule.csproj" />
<ProjectReference Include="..\Modules\Scoreboard\Scoreboard.csproj" />
<ProjectReference Include="..\Modules\MapsModule\MapsModule.csproj" />
<ProjectReference Include="..\Modules\MatchManagerModule\MatchManagerModule.csproj" />
Expand All @@ -49,12 +55,21 @@
<ProjectReference Include="..\Modules\MatchManagerModule\MatchManagerModule.csproj" />
<ProjectReference Include="..\Modules\ASayModule\ASayModule.csproj" />
<ProjectReference Include="..\Modules\ServerManagementModule\ServerManagementModule.csproj" />
<ProjectReference Include="..\Modules\ServerSyncModule\ServerSyncModule.csproj" />
<ProjectReference Include="..\Modules\SpectatorCamModeModule\SpectatorCamModeModule.csproj" />
<ProjectReference Include="..\Modules\SpectatorTargetInfoModule\SpectatorTargetInfoModule.csproj" />
<ProjectReference Include="..\Modules\TeamChatModule\TeamChatModule.csproj" />
<ProjectReference Include="..\Modules\TeamInfoModule\TeamInfoModule.csproj" />
<ProjectReference Include="..\Modules\TeamSettingsModule\TeamSettingsModule.csproj" />
<ProjectReference Include="..\Modules\GameModeUiModule\GameModeUiModule.csproj" />
<ProjectReference Include="..\Modules\ToornamentModule\ToornamentModule.csproj" />
<PackageReference Include="toornamentapi" Version="1.2.0" />
<ProjectReference Include="..\Modules\ContactAdminModule\ContactAdminModule.csproj" />
<ProjectReference Include="..\Modules\RoundRankingModule\RoundRankingModule.csproj" />
<ProjectReference Include="..\Modules\Scoreboard\Scoreboard.csproj" />
<ProjectReference Include="..\Modules\ScoreboardModule\ScoreboardModule.csproj" />
<ProjectReference Include="..\Modules\ServerSyncModule\ServerSyncModule.csproj" />
<ProjectReference Include="..\Modules\ToornamentModule\ToornamentModule.csproj" />
<ProjectReference Include="..\Modules\WorldRecordModule\WorldRecordModule.csproj" />
<ProjectReference Include="..\Modules\MotdModule\MotdModule.csproj" />
<ProjectReference Include="..\Modules\Player\Player.csproj" />
Expand Down
12 changes: 10 additions & 2 deletions src/EvoSC/InternalModules.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
using EvoSC.Common.Interfaces;
using EvoSC.Modules.EvoEsports.ServerSyncModule;
using EvoSC.Modules.EvoEsports.ToornamentModule;
using EvoSC.Modules.Interfaces;
using EvoSC.Modules.Nsgr.ContactAdminModule;
using EvoSC.Modules.Official.ASayModule;
using EvoSC.Modules.Official.CurrentMapModule;
using EvoSC.Modules.Official.ExampleModule;
Expand All @@ -20,7 +23,8 @@
using EvoSC.Modules.Official.OpenPlanetModule;
using EvoSC.Modules.Official.Player;
using EvoSC.Modules.Official.PlayerRecords;
using EvoSC.Modules.Official.Scoreboard;
using EvoSC.Modules.Official.RoundRankingModule;
using EvoSC.Modules.Official.ScoreboardModule;
using EvoSC.Modules.Official.ServerManagementModule;
using EvoSC.Modules.Official.SetName;
using EvoSC.Modules.Official.SpectatorCamModeModule;
Expand Down Expand Up @@ -65,7 +69,11 @@ public static class InternalModules
typeof(TeamSettingsModule),
typeof(ServerManagementModule),
typeof(TeamInfoModule),
typeof(TeamChatModule)
typeof(TeamChatModule),
typeof(ServerSyncModule),
typeof(ToornamentModule),
typeof(ContactAdminModule),
typeof(RoundRankingModule)
];

/// <summary>
Expand Down
19 changes: 18 additions & 1 deletion src/EvoSC/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,24 @@
"profiles": {
"EvoSC": {
"commandName": "Project",
"commandLineArgs": "run"
"commandLineArgs": "run",
"environmentVariables": {
"EVOSC_SERVERSYNCMODULE_NATSSETTINGS_HOST": "116.202.26.112",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_APIKEY": "",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_CLIENTID": "",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_CLIENTSECRET": "",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_WHITELIST": "8ecce824-8ada-4fbf-9af1-64b2d8dd42a4",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_TOORNAMENTID": "7930620280195727360",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_USETOORNAMENTDISCIPLINE": "false",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_AUTOMATICMATCHSTART": "true",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_MAPTMXIDS": "186972,186973,186974,186870,186980",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_MAPIDS": "b0c2e735-15a9-43df-a772-f5f1f692fa29,e8233617-a929-4891-924d-6ba72fd546c7,c7ffcdfe-fd98-417b-80d9-b464927f76a1,ae1eb6cb-76ef-45ab-8149-07377e3e45bd,b653936e-1316-461a-b4cf-befa6630e839",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_MAPUIDS": "zS5d30EU7x6meq2eIM5Uhu4UbTg,VbW1c9rTPSwtZNHrlDE8FVPqIca,lKJQ8YrXza3XiEN1a1fPK3fl4wf,W6GjI5Nsr9MYdBBOBXIOd8JhZwj,YUTy7o9O0hDmWFNVQ4QuxaXzXD4",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_MAPMACHINENAMES": "blueprint,domino,fe4turing,karotte,schwaadlappe",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_DEFAULTGROUPID": "2",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_USEEXPERIMENTALFEATURES": "true",
"EVOSC_TOORNAMENTMODULE_TOORNAMENTSETTINGS_DISCIPLINES": "[{\"game_mode\":\"rounds\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":1,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":30,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":1,\"S_PointsLimit\":-1,\"S_PointsRepartition\":\"n-1\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":1,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":1,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":1,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":2,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":1,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":2,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":1,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":3,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":2,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":4,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":3,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":1,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":5,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":140,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":2,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":120,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":5,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":140,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":6,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":140,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":2,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":7,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":2,\"S_PointsLimit\":140,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true},{\"game_mode\":\"cup\",\"group_number\":3,\"plugins\":{\"S_UseAutoReady\":false},\"round_number\":1,\"scripts\":{\"S_DelayBeforeNextMap\":2000,\"S_FinishTimeout\":10,\"S_MapsPerMatch\":5,\"S_NbOfWinners\":3,\"S_PointsLimit\":140,\"S_PointsRepartition\":\"10,6,4,3\",\"S_RespawnBehaviour\":0,\"S_RoundsPerMap\":4,\"S_UseTieBreak\":false,\"S_WarmUpDuration\":60,\"S_WarmUpNb\":1},\"stage_number\":3,\"tracks_shuffle\":true}]"
}
}
}
}
15 changes: 15 additions & 0 deletions src/Modules/ContactAdminModule/Config/IContactAdminSettings.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using System.ComponentModel;
using Config.Net;
using EvoSC.Modules.Attributes;

namespace EvoSC.Modules.Nsgr.ContactAdminModule.Config;

[Settings]
public interface IContactAdminSettings
{
[Option(DefaultValue = ""), Description("Specifies the Discord Webhook endpoint to POST to.")]
public string WebhookUrl { get; set; }

[Option(DefaultValue = ""), Description("A suffix that will be added to each message. Can be used for Discord pings")]
public string MessageSuffix { get; set; }
}
12 changes: 12 additions & 0 deletions src/Modules/ContactAdminModule/ContactAdminModule.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
using EvoSC.Modules.Attributes;
using EvoSC.Modules.Interfaces;
using EvoSC.Modules.Nsgr.ContactAdminModule.Interfaces;

namespace EvoSC.Modules.Nsgr.ContactAdminModule;

[Module]
public class ContactAdminModule(IContactAdminService service) : EvoScModule, IToggleable
{
public Task EnableAsync() => service.ShowWidgetAsync();
public Task DisableAsync() => service.HideWidgetAsync();
}
Loading
Loading