Skip to content

Releases: MrDave1999/Capture-The-Flag

v9.0.0 Release

11 Nov 17:11
6563624
Compare
Choose a tag to compare

What's Changed

  • Refactor (globals namespaces and file scoped namespaces) by @Ts-Pytham in #11
  • restruct: Create new project structure by @MrDave1999 in #12
  • cleanup: Remove Domain Project by @MrDave1999 in #13
  • Implement the Result pattern by @MrDave1999 in #14
  • Create resource file to save messages by @MrDave1999 in #15
  • feat: Create the rank module by @MrDave1999 in #16
  • ci: Create workflow by @MrDave1999 in #17
  • feat: Create the weapon module by @MrDave1999 in #18
  • feat: Create the account module by @MrDave1999 in #19
  • feat: Get rank by required kills by @MrDave1999 in #20
  • feat: Verify if a player has a lower role than X by @MrDave1999 in #21
  • feat: Create the flag module by @MrDave1999 in #22
  • refactor: Use ShowAsync instead of Show by @MrDave1999 in #23
  • test: Use FakeCarrier in the tests by @MrDave1999 in #24
  • feat: Create the Teams module by @MrDave1999 in #25
  • test: Add missing tests to PlayerStatsPerRound type by @MrDave1999 in #26
  • feat: Allow to set the team from the PlayerInfo type by @MrDave1999 in #27
  • refactor: Convert types to public from the application layer by @MrDave1999 in #28
  • feat: Check if the player has captured the opposing team's flag by @MrDave1999 in #29
  • feat: Check if the player has not been assigned to a team by @MrDave1999 in #30
  • BREAKING CHANGE: Remove AccountStatus type by @MrDave1999 in #31
  • BREAKING CHANGE: Rename the property that gets the number of elements in a collection by @MrDave1999 in #32
  • test: Use parameterized tests on types such as RankCollection and GtaWeaponsTests by @MrDave1999 in #33
  • feat: Create the Maps module by @MrDave1999 in #34
  • feat: Set the flag location of both teams (Alpha and Beta) by @MrDave1999 in #35
  • feat: Create IPlayerRepository interface by @MrDave1999 in #36
  • feat: Create a project called Persistence.InMemory by @MrDave1999 in #37
  • feat: Choose database provider from a configuration file by @MrDave1999 in #38
  • feat: Add service to encrypt passwords with bcrypt by @MrDave1999 in #39
  • feat: Add support for streamer by @MrDave1999 in #40
  • feat: Inject IPasswordHasher to encrypt passwords from FakePlayerRepository by @MrDave1999 in #41
  • refactor: Rename property to PasswordHash in FakePlayer class by @MrDave1999 in #42
  • test: Create unit tests for the SetValue method by @MrDave1999 in #43
  • feat: Add login and signup system by @MrDave1999 in #44
  • fix: Remove private field called _connectedPlayer from AccountSystem by @MrDave1999 in #45
  • feat: Validate whether the player can move up in rank when killing a player by @MrDave1999 in #46
  • feat: Add team sounds via OpenDrive to generate mp3 links by @MrDave1999 in #47
  • feat: Execute the native function gettime from C# code by @MrDave1999 in #48
  • feat: Add a command to show player statistics by @MrDave1999 in #49
  • feat: Allow the player to change their name by @MrDave1999 in #50
  • feat: Add support for auto-increment IDs in InMemoryDb provider by @MrDave1999 in #51
  • feat: Allow the player to change their password by @MrDave1999 in #52
  • BREAKING CHANGE: Remove 'EntityId' property from 'PlayerInfo' class by @MrDave1999 in #53
  • feat: Add combos system by @MrDave1999 in #54
  • refactor: Use GetInfo method instead of GetComponent by @MrDave1999 in #55
  • fix!: Fix misspelling of SatchelChargesAmour and MolotovAmour by @MrDave1999 in #56
  • refactor: Initialize dialog object in constructor to reduce memory allocations by @MrDave1999 in #57
  • BREAKING CHANGE: Use ICombo interface instead of IBenefit by @MrDave1999 in #58
  • feat!: Add new combos that improve the player's health and armour by @MrDave1999 in #60
  • fix: Set new ammo to FlameThrower by @MrDave1999 in #61
  • refactor: Improve test names by @MrDave1999 in #62
  • feat: Implement class for upgrading player's rank by @MrDave1999 in #63
  • feat: Implement killing spree system by @MrDave1999 in #64
  • feat!: Update player's rank from the accounts module by @MrDave1999 in #65
  • feat: Implement a service to create pickups for each team (Alpha and Beta) by @MrDave1999 in #66
  • feat: Implement a service to create icons for each team (Alpha and Beta) by @MrDave1999 in #67
  • feat: Enable team selection in class selection screen by @MrDave1999 in #68
  • feat: Implement player spawn system by @MrDave1999 in #69
  • BREAKING CHANGE: Rename class to PlayerDeathSystem by @MrDave1999 in #70
  • fix: Add/remove players when spawned or disconnected by @MrDave1999 in #71
  • fix: Verify if the entered password is null by @MrDave1999 in #72
  • fix: Prevent the player from returning to class selection after death by @MrDave1999 in #73
  • BREAKING CHANGE: Rename method to EnableClassSelection by @MrDave1999 in #74
  • BREAKING CHANGE: Rename method to DisableClassSelection by @MrDave1999 in #75
  • test: Add tests for flag counters by @MrDave1999 in #76
  • Update team icons to Colored Square/Triangle by @MrDave1999 in #77
  • feat: Load SA-MP server info from configuration file by @MrDave1999 in #78
  • feat: Add textdraws to class selection screen by @MrDave1999 in #79
  • feat: Create class selection module by @MrDave1999 in #80
  • fix: Fix bug with outdated map information due to singleton registration by @MrDave1999 in #81
  • feat: Update player's last connection when disconnected by @MrDave1999 in #82
  • feat: Implement headshot system by @MrDave1999 in #83
  • feat: Implement team text draw renderer by @MrDave1999 in #84
  • feat: Implement map text draw renderer by @MrDave1999 in #85
  • BREAKING CHANGE: Add “Renderer” suffix to follow project convention by @MrDave1999 in #86
  • restruct: Move 'ClassSelection' submodule to 'Teams' for better organization by @MrDave1999 in #87
  • refactor: Create 'ServiceCollectionExtensions' for Players and Maps modules by @MrDave1999 in #88
  • BREAKING CHANGE: Minimize GameModeInit class dependencies by @MrDave1999 in #89
  • feat: Implement a map rotation system by @MrDave1999 in #90
    ...
Read more

v9.0.0 Release Candidate 4 (RC4)

09 Nov 19:52
868cbd8
Compare
Choose a tag to compare

What's Changed

  • feat: Implement global exception handler to prevent server crashes by @MrDave1999 in #217
  • chore: Allow to set docker container time zone from .env file by @MrDave1999 in #218
  • chore: Add workflow to upload artifacts when a release is published by @MrDave1999 in #219
  • chore: Remove platform-specific conditions from Copy task by @MrDave1999 in #220

Full Changelog: v9.0.0-rc.3...v9.0.0-rc.4

v9.0.0 Release Candidate 3 (RC3)

07 Nov 14:35
db82539
Compare
Choose a tag to compare

What's Changed

  • chore: Update SampSharp version by @MrDave1999 in #204
  • chore: Add support for .NET 6.0 to run game mode on Linux by @MrDave1999 in #205
  • build: Create Docker image using .NET 6.0 SDK by @MrDave1999 in #207
  • chore: Add volume to store the gamemode.db file in docker container by @MrDave1999 in #208
  • refactor: Throw .env file not found exception only in DEBUG mode by @MrDave1999 in #209
  • deploy: Add workflow to perform the deployment by @MrDave1999 in #210
  • feat: Allow the server owner to give themselves admin by @MrDave1999 in #211
  • chore: Specify container memory limit from .env file by @MrDave1999 in #212
  • feat: Prevent player from logging in as RCON, even with correct password by @MrDave1999 in #213
  • refactor: Use primary constructors to simplify code by @MrDave1999 in #215
  • chore: Redirect the console output to the server by @MrDave1999 in #216

Full Changelog: v9.0.0-rc.2...v9.0.0-rc.3

v9.0.0 Release Candidate 2 (RC2)

01 Nov 21:41
Compare
Choose a tag to compare

What's Changed

Full Changelog: v9.0.0-rc.1...v9.0.0-rc.2

v9.0.0 Release Candidate 1 (RC1)

20 Oct 16:49
01bf3ad
Compare
Choose a tag to compare
Pre-release

What's Changed

  • test: Create a single persistence test project that includes testing against repositories by @MrDave1999 in #166
  • test: Add integration tests for repositories using MariaDB by @MrDave1999 in #167
  • test: Add integration tests for repositories using SQLite by @MrDave1999 in #168
  • test: Organize code by use cases in persistence project by @MrDave1999 in #169
  • ci: Import database once MariaDB service is ready by @MrDave1999 in #170
  • refactor: Remove 'PlayerInfo' type parameter in ShowSignupDialog by @MrDave1999 in #171
  • feat: Add kick system after 4 incorrect password attempts by @MrDave1999 in #172
  • fix: Year 2038 problem by @MrDave1999 in #174
  • feat: Allow players to view the top players via commands by @MrDave1999 in #175
  • ci: Use 'setup-mariadb' action instead of docker container by @MrDave1999 in #176
  • refactor: Add 'STRICT' keyword to ensure strict typing rules by @MrDave1999 in #177
  • ci: Implement health check for MariaDB in docker container by @MrDave1999 in #178
  • db: Add CHECK constraints on 'players' to ensure data consistency by @MrDave1999 in #179
  • fix: Enable REGEXP function to fix 'unknown function: REGEXP()' by @MrDave1999 in #180
  • feat: Allow players to become VIP when reaching Legendary rank by @MrDave1999 in #181
  • db: Allow the 'skin_id' column to accept the value '-1' by @MrDave1999 in #182
  • fix!: Start at level 1 (noob rank) instead of 0 by @MrDave1999 in #183
  • feat: Allow admins to set total kills to other players by @MrDave1999 in #184
  • refactor: Update variable and macro names to improve code readability by @MrDave1999 in #185

Full Changelog: v9.0.0-preview.5...v9.0.0-rc.1

v9.0.0-preview.5

13 Oct 13:00
ef018aa
Compare
Choose a tag to compare
v9.0.0-preview.5 Pre-release
Pre-release

What's Changed

Full Changelog: v9.0.0-preview.4...v9.0.0-preview.5

v9.0.0-preview.4

10 Oct 21:07
d401015
Compare
Choose a tag to compare
v9.0.0-preview.4 Pre-release
Pre-release

What's Changed

  • feat: Add welcome message when player connects to the server by @MrDave1999 in #157
  • refactor: Create the 'WelcomeSystem' class to welcome players by @MrDave1999 in #158
  • feat!: Implement team balancer based on players' scores by @MrDave1999 in #159
  • feat: Make the color visible on the radar for the player who captures the flag by @MrDave1999 in #160

Full Changelog: v9.0.0-preview.3...v9.0.0-preview.4

v9.0.0-preview.3

09 Oct 19:58
0a71485
Compare
Choose a tag to compare
v9.0.0-preview.3 Pre-release
Pre-release

What's Changed

Full Changelog: v9.0.0-preview.2...v9.0.0-preview.3

v9.0.0-preview.2

03 Oct 18:08
8196899
Compare
Choose a tag to compare
v9.0.0-preview.2 Pre-release
Pre-release

What's Changed

  • refactor!: Use 'Exterior Marker' terminology instead of 'Pickup Info' by @MrDave1999 in #109
  • feat: Allow players to view statistics of both teams (Alpha and Beta) by @MrDave1999 in #110
  • feat: Allow players to change teams by @MrDave1999 in #111
  • feat: Allow to view the members of both teams (Alpha and Beta) by @MrDave1999 in #112
  • feat: Implement chat system by @MrDave1999 in #113
  • feat: Implement command locking mechanism for player inputs by @MrDave1999 in #114
  • feat: Allow players to change skins by @MrDave1999 in #115
  • refactor: Rename 'SkinSystem' class to 'ChangeSkinSystem' by @MrDave1999 in #116
  • refactor: Ammo balancing and item adjustments by @MrDave1999 in #117
  • feat: Set the player's score by @MrDave1999 in #118
  • feat: Include 'Score' column in the scoreboard by @MrDave1999 in #119
  • feat: Show current team and score in the stats by @MrDave1999 in #120
  • refactor!: Add 'OnPlayerDeath' method to 'PlayerStatsSystem' by @MrDave1999 in #121
  • feat: Allow players to view others' stats by @MrDave1999 in #122
  • fix: An exception is thrown when executing a command with the argument [playerId] by @MrDave1999 in #124
  • fix: Avoid throwing an exception when an unauthenticated player disconnects by @MrDave1999 in #125

Full Changelog: v9.0.0-preview.1...v9.0.0-preview.2

v9.0.0-preview.1

22 Sep 18:20
3268b4d
Compare
Choose a tag to compare
v9.0.0-preview.1 Pre-release
Pre-release

What's Changed

  • Refactor (globals namespaces and file scoped namespaces) by @Ts-Pytham in #11
  • restruct: Create new project structure by @MrDave1999 in #12
  • cleanup: Remove Domain Project by @MrDave1999 in #13
  • Implement the Result pattern by @MrDave1999 in #14
  • Create resource file to save messages by @MrDave1999 in #15
  • feat: Create the rank module by @MrDave1999 in #16
  • ci: Create workflow by @MrDave1999 in #17
  • feat: Create the weapon module by @MrDave1999 in #18
  • feat: Create the account module by @MrDave1999 in #19
  • feat: Get rank by required kills by @MrDave1999 in #20
  • feat: Verify if a player has a lower role than X by @MrDave1999 in #21
  • feat: Create the flag module by @MrDave1999 in #22
  • refactor: Use ShowAsync instead of Show by @MrDave1999 in #23
  • test: Use FakeCarrier in the tests by @MrDave1999 in #24
  • feat: Create the Teams module by @MrDave1999 in #25
  • test: Add missing tests to PlayerStatsPerRound type by @MrDave1999 in #26
  • feat: Allow to set the team from the PlayerInfo type by @MrDave1999 in #27
  • refactor: Convert types to public from the application layer by @MrDave1999 in #28
  • feat: Check if the player has captured the opposing team's flag by @MrDave1999 in #29
  • feat: Check if the player has not been assigned to a team by @MrDave1999 in #30
  • BREAKING CHANGE: Remove AccountStatus type by @MrDave1999 in #31
  • BREAKING CHANGE: Rename the property that gets the number of elements in a collection by @MrDave1999 in #32
  • test: Use parameterized tests on types such as RankCollection and GtaWeaponsTests by @MrDave1999 in #33
  • feat: Create the Maps module by @MrDave1999 in #34
  • feat: Set the flag location of both teams (Alpha and Beta) by @MrDave1999 in #35
  • feat: Create IPlayerRepository interface by @MrDave1999 in #36
  • feat: Create a project called Persistence.InMemory by @MrDave1999 in #37
  • feat: Choose database provider from a configuration file by @MrDave1999 in #38
  • feat: Add service to encrypt passwords with bcrypt by @MrDave1999 in #39
  • feat: Add support for streamer by @MrDave1999 in #40
  • feat: Inject IPasswordHasher to encrypt passwords from FakePlayerRepository by @MrDave1999 in #41
  • refactor: Rename property to PasswordHash in FakePlayer class by @MrDave1999 in #42
  • test: Create unit tests for the SetValue method by @MrDave1999 in #43
  • feat: Add login and signup system by @MrDave1999 in #44
  • fix: Remove private field called _connectedPlayer from AccountSystem by @MrDave1999 in #45
  • feat: Validate whether the player can move up in rank when killing a player by @MrDave1999 in #46
  • feat: Add team sounds via OpenDrive to generate mp3 links by @MrDave1999 in #47
  • feat: Execute the native function gettime from C# code by @MrDave1999 in #48
  • feat: Add a command to show player statistics by @MrDave1999 in #49
  • feat: Allow the player to change their name by @MrDave1999 in #50
  • feat: Add support for auto-increment IDs in InMemoryDb provider by @MrDave1999 in #51
  • feat: Allow the player to change their password by @MrDave1999 in #52
  • BREAKING CHANGE: Remove 'EntityId' property from 'PlayerInfo' class by @MrDave1999 in #53
  • feat: Add combos system by @MrDave1999 in #54
  • refactor: Use GetInfo method instead of GetComponent by @MrDave1999 in #55
  • fix!: Fix misspelling of SatchelChargesAmour and MolotovAmour by @MrDave1999 in #56
  • refactor: Initialize dialog object in constructor to reduce memory allocations by @MrDave1999 in #57
  • BREAKING CHANGE: Use ICombo interface instead of IBenefit by @MrDave1999 in #58
  • feat!: Add new combos that improve the player's health and armour by @MrDave1999 in #60
  • fix: Set new ammo to FlameThrower by @MrDave1999 in #61
  • refactor: Improve test names by @MrDave1999 in #62
  • feat: Implement class for upgrading player's rank by @MrDave1999 in #63
  • feat: Implement killing spree system by @MrDave1999 in #64
  • feat!: Update player's rank from the accounts module by @MrDave1999 in #65
  • feat: Implement a service to create pickups for each team (Alpha and Beta) by @MrDave1999 in #66
  • feat: Implement a service to create icons for each team (Alpha and Beta) by @MrDave1999 in #67
  • feat: Enable team selection in class selection screen by @MrDave1999 in #68
  • feat: Implement player spawn system by @MrDave1999 in #69
  • BREAKING CHANGE: Rename class to PlayerDeathSystem by @MrDave1999 in #70
  • fix: Add/remove players when spawned or disconnected by @MrDave1999 in #71
  • fix: Verify if the entered password is null by @MrDave1999 in #72
  • fix: Prevent the player from returning to class selection after death by @MrDave1999 in #73
  • BREAKING CHANGE: Rename method to EnableClassSelection by @MrDave1999 in #74
  • BREAKING CHANGE: Rename method to DisableClassSelection by @MrDave1999 in #75
  • test: Add tests for flag counters by @MrDave1999 in #76
  • Update team icons to Colored Square/Triangle by @MrDave1999 in #77
  • feat: Load SA-MP server info from configuration file by @MrDave1999 in #78
  • feat: Add textdraws to class selection screen by @MrDave1999 in #79
  • feat: Create class selection module by @MrDave1999 in #80
  • fix: Fix bug with outdated map information due to singleton registration by @MrDave1999 in #81
  • feat: Update player's last connection when disconnected by @MrDave1999 in #82
  • feat: Implement headshot system by @MrDave1999 in #83
  • feat: Implement team text draw renderer by @MrDave1999 in #84
  • feat: Implement map text draw renderer by @MrDave1999 in #85
  • BREAKING CHANGE: Add “Renderer” suffix to follow project convention by @MrDave1999 in #86
  • restruct: Move 'ClassSelection' submodule to 'Teams' for better organization by @MrDave1999 in #87
  • refactor: Create 'ServiceCollectionExtensions' for Players and Maps modules by @MrDave1999 in #88
  • BREAKING CHANGE: Minimize GameModeInit class dependencies by @MrDave1999 in #89
  • feat: Implement a map rotation system by @MrDave1999 in #90
    ...
Read more