diff --git a/WeaponPaints.cs b/WeaponPaints.cs index 38ce1768..5cb8ac10 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -298,6 +298,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)); 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 +} diff --git a/website/img/skins/weapon_knife.png b/website/img/skins/weapon_knife.png new file mode 100644 index 00000000..df5fe551 Binary files /dev/null and b/website/img/skins/weapon_knife.png differ 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"]}
";