Compare commits

...

4 Commits

Author SHA1 Message Date
Nereziel
e5f98077f3 Update build.yml 2023-11-18 15:12:57 +01:00
Nereziel
3296055841 Merge pull request #42 from daffyyyy/enhancement/mysql-wrapper
Creating tables fix
2023-11-18 11:18:15 +01:00
Dawid Bepierszcz
89de192c20 Update WeaponPaints.cs
Additional check
2023-11-18 09:15:20 +01:00
Dawid Bepierszcz
a1297b9cbe Update WeaponPaints.cs
Creating tables fix
2023-11-18 08:54:33 +01:00
2 changed files with 33 additions and 18 deletions

View File

@@ -18,6 +18,21 @@ jobs:
permissions: write-all
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 7.0.x
- name: Restore
run: dotnet restore
- name: Build
run: dotnet build ${{ env.PROJECT_PATH }} -c WeaponPaints -o ${{ env.OUTPUT_PATH }}
publish:
permissions: write-all
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup .NET
@@ -57,4 +72,4 @@ jobs:
name: "Build ${{ env.BUILD_NUMBER }}"
tag: "build-${{ env.BUILD_NUMBER }}"
body: |
Place the plugin in game/csgo/addons/counterstrikesharp/plugins/WeaponPaints
Place the plugin in game/csgo/addons/counterstrikesharp/plugins/WeaponPaints

View File

@@ -127,29 +127,29 @@ public class WeaponPaints : BasePlugin, IPluginConfig<WeaponPaintsConfig>
CheckDatabaseTables();
}
private void CheckDatabaseTables()
async private void CheckDatabaseTables()
{
try
{
using var connection = new MySqlConnection(DatabaseConnectionString);
connection.OpenAsync();
using var connection = new MySqlConnection(DatabaseConnectionString);
await connection.OpenAsync();
using var transaction = connection.BeginTransaction();
using var transaction = await connection.BeginTransactionAsync();
try
{
string createTable1 = "CREATE TABLE IF NOT EXISTS `wp_player_skins` (`steamid` varchar(64) NOT NULL, `weapon_defindex` int(6) NOT NULL, `weapon_paint_id` int(6) NOT NULL, `weapon_wear` float NOT NULL DEFAULT 0.0001, `weapon_seed` int(16) NOT NULL DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci;";
string createTable2 = "CREATE TABLE IF NOT EXISTS `wp_player_knife` (`steamid` varchar(64) NOT NULL, `knife` varchar(64) NOT NULL, UNIQUE (`steamid`)) ENGINE = InnoDB;";
string createTable1 = "CREATE TABLE IF NOT EXISTS `wp_player_skins` (`steamid` varchar(64) NOT NULL, `weapon_defindex` int(6) NOT NULL, `weapon_paint_id` int(6) NOT NULL, `weapon_wear` float NOT NULL DEFAULT 0.0001, `weapon_seed` int(16) NOT NULL DEFAULT 0) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_unicode_ci";
string createTable2 = "CREATE TABLE IF NOT EXISTS `wp_player_knife` (`steamid` varchar(64) NOT NULL, `knife` varchar(64) NOT NULL, UNIQUE (`steamid`)) ENGINE = InnoDB";
connection.ExecuteAsync(createTable1);
connection.ExecuteAsync(createTable2);
await connection.ExecuteAsync(createTable1, transaction: transaction);
await connection.ExecuteAsync(createTable2, transaction: transaction);
transaction.Commit();
await transaction.CommitAsync();
}
catch (Exception)
{
transaction.RollbackAsync();
throw new Exception("Unable to create tables!");
await transaction.RollbackAsync();
throw new Exception("Unable to create tables!");
}
}
catch (Exception ex)
@@ -220,12 +220,12 @@ public override void Unload(bool hotReload)
private void OnClientDisconnect(int playerSlot)
{
CCSPlayerController player = Utilities.GetPlayerFromSlot(playerSlot);
// TODO: Clean up after player
if (Config.Additional.KnifeEnabled)
g_playersKnife.Remove(playerSlot+1);
if (Config.Additional.SkinEnabled)
gPlayerWeaponPaints.Remove(new SteamID(player.SteamID).SteamId64);
if (!player.IsValid || player.IsBot) return;
if (Config.Additional.KnifeEnabled)
g_playersKnife.Remove(playerSlot+1);
if (Config.Additional.SkinEnabled)
gPlayerWeaponPaints.Remove(new SteamID(player.SteamID).SteamId64);
}
private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info)