Skip to content

Conversation

@tslashd
Copy link
Member

@tslashd tslashd commented Sep 12, 2025

Implement significant improvements across the SurfTimer project, including database access optimization, error handling enhancements, and refactoring of various components. Introduce new features such as transaction handling, logging, and localization. Update project structure and dependencies, ensuring compatibility with .NET 8.0. Address multiple issues related to replay handling, player interactions, and timer functionalities. Improve code readability and maintainability throughout the codebase. Migrate to new .NET API

tslashd and others added 30 commits January 29, 2024 11:35
* cs# version bump

* add transaction method

* save cps with transaction;dot for millis

co-pilot = op
Summary of completed items:
- Resolved hibernation issues with timers.
- Implemented async queries and methods with multiple database connections.
- Moved PlayerProfile and Map queries to respective classes.
- Added ReplayFrame Situations for situation-specific replay handling.
- Corrected Map Replays reload and ReplayFrameSituations usage.
- Updated Checkpoints comparison messages for correct display.
- Adjusted Stage Replays tracking, saving, and reloading during map runs.
- Fixed checkpoint saving on first map run.
- Refer to TODO for more information
Fix `TODO` link
* hi

Summary of completed items:
- Resolved hibernation issues with timers.
- Implemented async queries and methods with multiple database connections.
- Moved PlayerProfile and Map queries to respective classes.
- Added ReplayFrame Situations for situation-specific replay handling.
- Corrected Map Replays reload and ReplayFrameSituations usage.
- Updated Checkpoints comparison messages for correct display.
- Adjusted Stage Replays tracking, saving, and reloading during map runs.
- Fixed checkpoint saving on first map run.
- Refer to TODO for more information

* bonus replays

* readme + todo

* Update README.md

* Update README.md

* Update README.md

Fix `TODO` link
Replaces base CSSharp vector class with one that doesn't have a memory leak!!!!!
When ReplayPlayer() was being called bot naming would cause a threading error since FormatBotName() was being called on a background thread, but needed to be moved to the main thread. (thanks chatgpt!)
Implemented Fix Vector Leak
Slumey Vector Leak Fix
tslashd and others added 26 commits July 10, 2025 19:03
- Replace `SurfTimer.csproj` with `SurfTimer.Plugin.csproj` in `tasks.json` for build configurations.
- Add new project entries for `SurfTimer.Plugin`, `SurfTimer.Api`, and `SurfTimer.Shared` in the solution file (`CS2SurfTimer.sln`).
- Add a project reference to `SurfTimer.Shared` in `SurfTimer.Plugin.csproj`.
- Introduce new data models from `SurfTimer.Shared` for consistency across `Plugin` and `API`
- Remove overlapping models
- Update `AccessService`s to match new structures (MySQL **NOT** tested)
- `ApiMethod` includes custom JSON serialization option for `ReplayFramesStringConverter` to match with `API`
- Fully use SurfTimer.Shared entities
- Delete unused files and methods
- Get rid of some comments and messages
- Rename classes to follow PascalCase
- Better(?) error handling
- Change types to match with DB
- Start using `timer_settings.json` (does NOT stop replays atm)
- Added null check for `CurrentMap` in `Tick.cs` to prevent errors.
- Adjusted timing logic for saving stage mode run times for last stage in `ZoneEventHandlers.cs`.
- Changed initialization of stage and bonus completions to use dynamically sized arrays in `Map.cs`.
- Updated `ReplayManager` to handle stages and bonuses dynamically, removing hardcoded values.
- Modified `SurfTimer` to use a static property for `CurrentMap` for better encapsulation.
- Converted `LocalizationService` to a static class for intended usage without instantiation.
- Updated timer delays for better replay frame handling.
- Added HUD for when spectating a replay bot.
- Added new methods in `PlayerHUD` for building HUD modules with color coding and improved formatting.
- Enhanced `ReplayPlayer` to update ticks when replay has left the "start zone".
- Introduced a plugin logo in `Config.cs` for improved visual representation.
- Added a method in `Extensions.cs` for generating speed-based color gradients.
- Updated MySQL database schema link in README.md.
- Reformatted entries in `en.json` without content changes.
- Refactored `IsPrivateIP` method to `Extensions` class.
- Changed access modifiers of methods in `PlayerHUD.cs` to internal.
- Commented out addition to `ConnectedMapTimes`.
- Updated `CounterStrikeSharp.API` package reference in project file.
- Changed `NextWorldUpdate` to `NextWorldUpdateAsync` for async execution.
- Added the `Dapper.dll` binary file to the project.
…the SurfTimer project.

- Streamlining database access with Dapper through `SurfTimer.Shared` library, removing unused MySQL code.
- Enhancing error handling and logging in `ApiDataAccessService` and `MySqlDataAccessService`.
- Improving readability and maintainability
…n the server

- Created api_config.json for API configuration
- Update release.yml
- Added them to the build sequence
- Bump CounterStrikeSharp version
- Bump minimum CounterStrikeVersion to avoid broken EyeAngles
- Wrong minimum CS# version
@tslashd tslashd self-assigned this Sep 12, 2025
@tslashd tslashd added the enhancement New feature or request label Sep 12, 2025
@tslashd tslashd merged commit 0f0477e into CS2Surf:main Sep 12, 2025
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants