Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Choosing knife on website #34

Merged
merged 4 commits into from
Nov 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions WeaponPaints.cs
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,8 @@
{
commandCooldown[playerIndex] = DateTime.UtcNow;
Task.Run(async () => await GetWeaponPaintsFromDatabase(playerIndex));
if (Config.Additional.KnifeEnabled)

Check failure on line 285 in WeaponPaints.cs

View workflow job for this annotation

GitHub Actions / build

'WeaponPaintsConfig' does not contain a definition for 'Additional' and no accessible extension method 'Additional' accepting a first argument of type 'WeaponPaintsConfig' could be found (are you missing a using directive or an assembly reference?)

Check failure on line 285 in WeaponPaints.cs

View workflow job for this annotation

GitHub Actions / build

'WeaponPaintsConfig' does not contain a definition for 'Additional' and no accessible extension method 'Additional' accepting a first argument of type 'WeaponPaintsConfig' could be found (are you missing a using directive or an assembly reference?)
Task.Run(async () => await GetKnifeFromDatabase(playerIndex));
if (!string.IsNullOrEmpty(Config.Messages.SuccessRefreshCommand)) {
temp = $"{Config.Prefix} {Config.Messages.SuccessRefreshCommand}";
player.PrintToChat(ReplaceTags(temp));
Expand Down
62 changes: 55 additions & 7 deletions website/class/utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ public static function skinsFromJson(): array
$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'],
];
Expand All @@ -21,11 +22,12 @@ public static function getWeaponsFromArray()
$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'],
];
Expand All @@ -34,15 +36,61 @@ public static function getWeaponsFromArray()
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;
}
}
}
Binary file added website/img/skins/weapon_knife.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
62 changes: 54 additions & 8 deletions website/index.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,24 @@
$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");
}
}
?>
Expand Down Expand Up @@ -54,7 +60,47 @@
echo "</h2></div>";
} else {
echo "<div class='bg-primary'>Your current weapon skin loadout<form action='' method='get'><button class='btn btn-secondary' name='logout' type='submit'>Logout</button></form></div>";
echo "<div class='card-group'>";
echo "<div class='card-group mt-2'>";
?>

<div class="col-sm-2">
<div class="card text-center mb-3 border border-primary">
<div class="card-body">
<?php
$actualKnife = $knifes[0];
foreach ($knifes as $knife) {
if ($selectedKnife['knife'] == $knife['weapon_name']) {
$actualKnife = $knife;
break;
}
}

echo "<div class='card-header'>";
echo "<h6 class='card-title item-name'>Knife type</h6>";
echo "<h5 class='card-title item-name'>{$actualKnife["paint_name"]}</h5>";
echo "</div>";
echo "<img src='{$actualKnife["image_url"]}' class='skin-image'>";
?>
</div>
<div class="card-footer">
<form action="" method="POST">
<select name="forma" class="form-control select" onchange="this.form.submit()" class="SelectWeapon">
<option>Select knife</option>
<?php
foreach ($knifes as $knifeKey => $knife) {
if ($selectedKnife['knife'] == $knife['weapon_name'])
echo "<option selected value=\"knife-{$knifeKey}\">{$knife['paint_name']}</option>";
else
echo "<option value=\"knife-{$knifeKey}\">{$knife['paint_name']}</option>";
}
?>
</select>
</form>
</div>
</div>
</div>

<?php
foreach ($weapons as $defindex => $default) { ?>
<div class="col-sm-2">
<div class="card text-center mb-3">
Expand All @@ -64,7 +110,7 @@
echo "<div class='card-header'>";
echo "<h5 class='card-title item-name'>{$skins[$defindex][$selectedSkins[$defindex]]["paint_name"]}</h5>";
echo "</div>";
echo "<img src='{$skins[$defindex][$selectedSkins[$defindex]]['image_url']}' class='skin-image' >";
echo "<img src='{$skins[$defindex][$selectedSkins[$defindex]]['image_url']}' class='skin-image'>";
} else {
echo "<div class='card-header'>";
echo "<h5 class='card-title item-name'>{$default["paint_name"]}</h5>";
Expand Down
Loading