From c0c1fe25666ae8515471d6f63d78601a81d4e38f Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Thu, 16 Nov 2023 00:05:34 +0100 Subject: [PATCH 1/4] Update WeaponPaints.cs --- WeaponPaints.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/WeaponPaints.cs b/WeaponPaints.cs index 5b2eda63..24bb735c 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -282,6 +282,8 @@ public class WeaponPaints : BasePlugin, IPluginConfig { commandCooldown[playerIndex] = DateTime.UtcNow; Task.Run(async () => await GetWeaponPaintsFromDatabase(playerIndex)); + if (Config.Additional.KnifeEnabled) + Task.Run(async () => await GetKnifeFromDatabase(playerIndex)); if (!string.IsNullOrEmpty(Config.Messages.SuccessRefreshCommand)) { temp = $"{Config.Prefix} {Config.Messages.SuccessRefreshCommand}"; player.PrintToChat(ReplaceTags(temp)); From 005ef18338ebbf03a9483dc8dc07febffcbde577 Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Thu, 16 Nov 2023 00:06:16 +0100 Subject: [PATCH 2/4] Update index.php --- website/index.php | 62 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 54 insertions(+), 8 deletions(-) diff --git a/website/index.php b/website/index.php index 458300af..6082d688 100644 --- a/website/index.php +++ b/website/index.php @@ -15,18 +15,24 @@ if (isset($_SESSION['steamid'])) { $skins = UtilsClass::skinsFromJson(); $querySelected = $query3 = $db->select("SELECT `weapon_defindex`, `weapon_paint_id` FROM `wp_player_skins` WHERE `wp_player_skins`.`steamid` = :steamid", ["steamid" => $steamid]); $selectedSkins = UtilsClass::getSelectedSkins($querySelected); + $selectedKnife = $db->select("SELECT * FROM `wp_player_knife` WHERE `wp_player_knife`.`steamid` = :steamid", ["steamid" => $steamid])[0]; + $knifes = UtilsClass::getKnifeTypes(); if (isset($_POST['forma'])) { $ex = explode("-", $_POST['forma']); - if (array_key_exists($ex[1], $skins[$ex[0]])) { - if (array_key_exists($ex[0], $selectedSkins)) { - $db->query("UPDATE wp_player_skins SET weapon_paint_id = :weapon_paint_id WHERE steamid = :steamid AND weapon_defindex = :weapon_defindex", ["steamid" => $steamid, "weapon_defindex" => $ex[0], "weapon_paint_id" => $ex[1]]); - } else { - $db->query("INSERT INTO wp_player_skins (`steamid`, `weapon_defindex`, `weapon_paint_id`) VALUES (:steamid, :weapon_defindex, :weapon_paint_id)", ["steamid" => $steamid, "weapon_defindex" => $ex[0], "weapon_paint_id" => $ex[1]]); + if ($ex[0] == "knife") { + $db->query("INSERT INTO `wp_player_knife` (`steamid`, `knife`) VALUES(:steamid, :knife) ON DUPLICATE KEY UPDATE `knife` = :knife", ["steamid" => $steamid, "knife" => $knifes[$ex[1]]['weapon_name']]); + } else { + if (array_key_exists($ex[1], $skins[$ex[0]])) { + if (array_key_exists($ex[0], $selectedSkins)) { + $db->query("UPDATE wp_player_skins SET weapon_paint_id = :weapon_paint_id WHERE steamid = :steamid AND weapon_defindex = :weapon_defindex", ["steamid" => $steamid, "weapon_defindex" => $ex[0], "weapon_paint_id" => $ex[1]]); + } else { + $db->query("INSERT INTO wp_player_skins (`steamid`, `weapon_defindex`, `weapon_paint_id`) VALUES (:steamid, :weapon_defindex, :weapon_paint_id)", ["steamid" => $steamid, "weapon_defindex" => $ex[0], "weapon_paint_id" => $ex[1]]); + } } - header("Location: index.php"); } + header("Location: index.php"); } } ?> @@ -54,7 +60,47 @@ if (isset($_SESSION['steamid'])) { echo ""; } else { echo "
Your current weapon skin loadout
"; - echo "
"; + echo "
"; + ?> + +
+
+
+ "; + echo "
Knife type
"; + echo "
{$actualKnife["paint_name"]}
"; + echo "
"; + echo ""; + ?> +
+ +
+
+ + $default) { ?>
@@ -64,7 +110,7 @@ if (isset($_SESSION['steamid'])) { echo "
"; echo "
{$skins[$defindex][$selectedSkins[$defindex]]["paint_name"]}
"; echo "
"; - echo ""; + echo ""; } else { echo "
"; echo "
{$default["paint_name"]}
"; From 63d059b6079f1b2c0c3dfed0c708a1913f5c6eed Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Thu, 16 Nov 2023 00:07:27 +0100 Subject: [PATCH 3/4] Update utils.php --- website/class/utils.php | 62 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/website/class/utils.php b/website/class/utils.php index aceb6c7b..2bc90926 100644 --- a/website/class/utils.php +++ b/website/class/utils.php @@ -7,7 +7,8 @@ class UtilsClass $json = json_decode(file_get_contents(__DIR__ . "/../data/skins.json"), true); foreach ($json as $skin) { - $skins[(int)$skin['weapon_defindex']][(int)$skin['paint']] = [ + $skins[(int) $skin['weapon_defindex']][(int) $skin['paint']] = [ + 'weapon_name' => $skin['weapon_name'], 'paint_name' => $skin['paint_name'], 'image_url' => $skin['image'], ]; @@ -21,11 +22,12 @@ class UtilsClass $weapons = []; $temp = self::skinsFromJson(); - foreach ($temp as $key => $value) - { - if (key_exists($key, $weapons)) continue; + foreach ($temp as $key => $value) { + if (key_exists($key, $weapons)) + continue; $weapons[$key] = [ + 'weapon_name' => $value[0]['weapon_name'], 'paint_name' => $value[0]['paint_name'], 'image_url' => $value[0]['image_url'], ]; @@ -34,15 +36,61 @@ class UtilsClass return $weapons; } + public static function getKnifeTypes() + { + $knifes = []; + $temp = self::getWeaponsFromArray(); + + foreach ($temp as $key => $weapon) { + if ( + !in_array($key, [ + 500, + 503, + 505, + 506, + 507, + 508, + 509, + 512, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 525 + ]) + ) + continue; + + $knifes[$key] = [ + 'weapon_name' => $weapon['weapon_name'], + 'paint_name' => rtrim(explode("|", $weapon['paint_name'])[0]), + 'image_url' => $weapon['image_url'], + ]; + $knifes[0] = [ + 'weapon_name' => "weapon_knife", + 'paint_name' => "Default knife", + 'image_url' => "https://raw.githubusercontent.com/Nereziel/cs2-WeaponPaints/main/website/img/skins/weapon_knife.png", + ]; + } + + ksort($knifes); + return $knifes; + } + public static function getSelectedSkins(array $temp) { $selected = []; - foreach ($temp as $weapon) - { + foreach ($temp as $weapon) { $selected[$weapon['weapon_defindex']] = $weapon['weapon_paint_id']; } return $selected; } -} \ No newline at end of file +} From 46a720ff83e47bda6e4c6e703fad86767bc64b52 Mon Sep 17 00:00:00 2001 From: Dawid Bepierszcz <41084667+daffyyyy@users.noreply.github.com> Date: Thu, 16 Nov 2023 00:10:26 +0100 Subject: [PATCH 4/4] default knife image --- website/img/skins/weapon_knife.png | Bin 0 -> 19167 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 website/img/skins/weapon_knife.png diff --git a/website/img/skins/weapon_knife.png b/website/img/skins/weapon_knife.png new file mode 100644 index 0000000000000000000000000000000000000000..df5fe5514598965c7bcc71a14a149e61050e70ed GIT binary patch literal 19167 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 JPDHLkV1i35l>Pt! literal 0 HcmV?d00001