diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1bb1fe36..9c62f265 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -64,6 +64,8 @@ jobs: run: cp website/data/gloves.json ${{ env.OUTPUT_PATH }}/gloves.json - name: Copy agents.json run: cp website/data/agents.json ${{ env.OUTPUT_PATH }}/agents.json + - name: Copy music.json + run: cp website/data/music.json ${{ env.OUTPUT_PATH }}/music.json - name: Zip run: zip -r "${{ env.PROJECT_NAME }}.zip" "${{ env.OUTPUT_PATH }}" gamedata/ - name: Clean files Website diff --git a/Commands.cs b/Commands.cs index 2895a984..b3ad9f0b 100644 --- a/Commands.cs +++ b/Commands.cs @@ -33,30 +33,26 @@ namespace WeaponPaints if (weaponSync != null) { - var weaponTasks = new List(); - - weaponTasks.Add(Task.Run(async () => + if (Config.Additional.SkinEnabled) { - await weaponSync.GetWeaponPaintsFromDatabase(playerInfo); - })); - - if (Config.Additional.GloveEnabled) - { - weaponTasks.Add(Task.Run(async () => - { - await weaponSync.GetGloveFromDatabase(playerInfo); - })); + _ = Task.Run(async () => await weaponSync.GetWeaponPaintsFromDatabase(playerInfo)); } - if (Config.Additional.KnifeEnabled) { - weaponTasks.Add(Task.Run(async () => - { - await weaponSync.GetKnifeFromDatabase(playerInfo); - })); + _ = Task.Run(async () => await weaponSync.GetKnifeFromDatabase(playerInfo)); + } + if (Config.Additional.GloveEnabled) + { + _ = Task.Run(async () => await weaponSync.GetGloveFromDatabase(playerInfo)); + } + if (Config.Additional.AgentEnabled) + { + _ = Task.Run(async () => await weaponSync.GetAgentFromDatabase(playerInfo)); + } + if (Config.Additional.MusicEnabled) + { + _ = Task.Run(async () => await weaponSync.GetMusicFromDatabase(playerInfo)); } - - Task.WaitAll(weaponTasks.ToArray()); RefreshGloves(player); RefreshWeapons(player); @@ -102,6 +98,12 @@ namespace WeaponPaints player!.Print(Localizer["wp_info_agent"]); } + if (Config.Additional.MusicEnabled) + if (!string.IsNullOrEmpty(Localizer["wp_info_music"])) + { + player!.Print(Localizer["wp_info_music"]); + } + if (Config.Additional.KnifeEnabled) if (!string.IsNullOrEmpty(Localizer["wp_info_knife"])) { @@ -175,7 +177,7 @@ namespace WeaponPaints RefreshWeapons(player); if (weaponSync != null) - Task.Run(async () => await weaponSync.SyncKnifeToDatabase(playerInfo, knifeKey)); + _ = Task.Run(async () => await weaponSync.SyncKnifeToDatabase(playerInfo, knifeKey)); } }; foreach (var knifePair in knivesOnly) @@ -288,7 +290,7 @@ namespace WeaponPaints try { - Task.Run(async () => await weaponSync.SyncWeaponPaintsToDatabase(playerInfo)); + _ = Task.Run(async () => await weaponSync.SyncWeaponPaintsToDatabase(playerInfo)); } catch (Exception ex) { @@ -409,7 +411,7 @@ namespace WeaponPaints if (weaponSync != null) { - Task.Run(async () => + _ = Task.Run(async () => { await weaponSync.SyncGloveToDatabase(playerInfo, weaponDefindex); @@ -422,9 +424,9 @@ namespace WeaponPaints value.Paint = paint; value.Wear = 0.00f; value.Seed = 0; - }); - Task.Run(async () => await weaponSync.SyncWeaponPaintsToDatabase(playerInfo)); + await weaponSync.SyncWeaponPaintsToDatabase(playerInfo); + }); } RefreshGloves(player); @@ -516,7 +518,7 @@ namespace WeaponPaints if (weaponSync != null) { - Task.Run(async () => + _ = Task.Run(async () => { await weaponSync.SyncAgentToDatabase(playerInfo); }); @@ -570,5 +572,128 @@ namespace WeaponPaints } }); } + + private void SetupMusicMenu() + { + var musicSelectionMenu = new ChatMenu(Localizer["wp_music_menu_title"]); + musicSelectionMenu.PostSelectAction = PostSelectAction.Close; + + var handleMusicSelection = (CCSPlayerController? player, ChatMenuOption option) => + { + if (!Utility.IsPlayerValid(player) || player is null) return; + + string selectedPaintName = option.Text; + + var selectedMusic = musicList.FirstOrDefault(g => g.ContainsKey("name") && g["name"]?.ToString() == selectedPaintName); + if (selectedMusic != null) + { + if ( + selectedMusic != null && + selectedMusic.ContainsKey("id") && + selectedMusic.ContainsKey("name") && + int.TryParse(selectedMusic["id"]?.ToString(), out int paint) + ) + { + if (Config.Additional.ShowSkinImage) + { + string image = selectedMusic["image"]?.ToString() ?? ""; + PlayerWeaponImage[player.Slot] = image; + AddTimer(2.0f, () => PlayerWeaponImage.Remove(player.Slot), CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE); + } + + PlayerInfo playerInfo = new PlayerInfo + { + UserId = player.UserId, + Slot = player.Slot, + Index = (int)player.Index, + SteamId = player.SteamID.ToString(), + Name = player.PlayerName, + IpAddress = player.IpAddress?.Split(":")[0] + }; + + if (paint != 0) + { + g_playersMusic[player.Slot] = (ushort)paint; + } + else + { + g_playersMusic[player.Slot] = 0; + } + + if (!string.IsNullOrEmpty(Localizer["wp_music_menu_select"])) + { + player!.Print(Localizer["wp_music_menu_select", selectedPaintName]); + } + + if (weaponSync != null) + { + _ = Task.Run(async () => + { + await weaponSync.SyncMusicToDatabase(playerInfo, (ushort)paint); + }); + } + + //RefreshGloves(player); + } + } + else + { + PlayerInfo playerInfo = new PlayerInfo + { + UserId = player.UserId, + Slot = player.Slot, + Index = (int)player.Index, + SteamId = player.SteamID.ToString(), + Name = player.PlayerName, + IpAddress = player.IpAddress?.Split(":")[0] + }; + + g_playersMusic[player.Slot] = 0; + + if (!string.IsNullOrEmpty(Localizer["wp_music_menu_select"])) + { + player!.Print(Localizer["wp_music_menu_select", Localizer["None"]]); + } + + if (weaponSync != null) + { + _ = Task.Run(async () => + { + await weaponSync.SyncMusicToDatabase(playerInfo, 0); + }); + } + } + }; + + musicSelectionMenu.AddMenuOption(Localizer["None"], handleMusicSelection); + // Add weapon options to the weapon selection menu + foreach (var musicObject in musicList) + { + string paintName = musicObject["name"]?.ToString() ?? ""; + + if (paintName.Length > 0) + musicSelectionMenu.AddMenuOption(paintName, handleMusicSelection); + } + + // Command to open the weapon selection menu for players + AddCommand($"css_{Config.Additional.CommandMusic}", "Music selection menu", (player, info) => + { + if (!Utility.IsPlayerValid(player) || !g_bCommandsAllowed) return; + + if (player == null || player.UserId == null) return; + + if (player != null && !commandsCooldown.TryGetValue(player.Slot, out DateTime cooldownEndTime) || + player != null && DateTime.UtcNow >= (commandsCooldown.TryGetValue(player.Slot, out cooldownEndTime) ? cooldownEndTime : DateTime.UtcNow)) + { + commandsCooldown[player.Slot] = DateTime.UtcNow.AddSeconds(Config.CmdRefreshCooldownSeconds); + MenuManager.OpenChatMenu(player, musicSelectionMenu); + return; + } + if (!string.IsNullOrEmpty(Localizer["wp_command_cooldown"])) + { + player!.Print(Localizer["wp_command_cooldown"]); + } + }); + } } } \ No newline at end of file diff --git a/Config.cs b/Config.cs index 537fd616..bbb988a4 100644 --- a/Config.cs +++ b/Config.cs @@ -11,6 +11,9 @@ namespace WeaponPaints [JsonPropertyName("GloveEnabled")] public bool GloveEnabled { get; set; } = true; + [JsonPropertyName("MusicEnabled")] + public bool MusicEnabled { get; set; } = true; + [JsonPropertyName("AgentEnabled")] public bool AgentEnabled { get; set; } = true; @@ -26,6 +29,9 @@ namespace WeaponPaints [JsonPropertyName("CommandKnife")] public string CommandKnife { get; set; } = "knife"; + [JsonPropertyName("CommandMusic")] + public string CommandMusic { get; set; } = "music"; + [JsonPropertyName("CommandGlove")] public string CommandGlove { get; set; } = "gloves"; diff --git a/Events.cs b/Events.cs index 59cf66df..d270853f 100644 --- a/Events.cs +++ b/Events.cs @@ -1,6 +1,7 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes.Registration; +using CounterStrikeSharp.API.Modules.Entities; namespace WeaponPaints { @@ -26,35 +27,30 @@ namespace WeaponPaints try { - List tasks = new List(); - if (Config.Additional.SkinEnabled) { - tasks.Add(Task.Run(() => weaponSync.GetWeaponPaintsFromDatabase(playerInfo))); + _ = Task.Run(async () => await weaponSync.GetWeaponPaintsFromDatabase(playerInfo)); } if (Config.Additional.KnifeEnabled) { - tasks.Add(Task.Run(() => weaponSync.GetKnifeFromDatabase(playerInfo))); + _ = Task.Run(async () => await weaponSync.GetKnifeFromDatabase(playerInfo)); } if (Config.Additional.GloveEnabled) { - tasks.Add(Task.Run(() => weaponSync.GetGloveFromDatabase(playerInfo))); + _ = Task.Run(async () => await weaponSync.GetGloveFromDatabase(playerInfo)); } if (Config.Additional.AgentEnabled) { - tasks.Add(Task.Run(() => weaponSync.GetAgentFromDatabase(playerInfo))); + _ = Task.Run(async () => await weaponSync.GetAgentFromDatabase(playerInfo)); } - - Task.WaitAll(tasks.ToArray()); - } - catch (AggregateException ex) - { - // Handle the exception - foreach (var innerException in ex.InnerExceptions) + if (Config.Additional.MusicEnabled) { - Console.WriteLine($"An error occurred for player {player}: {innerException.Message}"); + _ = Task.Run(async () => await weaponSync.GetMusicFromDatabase(playerInfo)); } } + catch (Exception) + { + } return HookResult.Continue; } @@ -93,6 +89,10 @@ namespace WeaponPaints { g_playersAgent.TryRemove(player.Slot, out _); } + if (Config.Additional.MusicEnabled) + { + g_playersMusic.TryRemove(player.Slot, out _); + } commandsCooldown.Remove(player.Slot); @@ -160,7 +160,8 @@ namespace WeaponPaints return; } - if (!gPlayerWeaponsInfo[player.Slot].ContainsKey(weaponDefIndex)) return; + if (!gPlayerWeaponsInfo[player.Slot].ContainsKey(weaponDefIndex) || gPlayerWeaponsInfo[player.Slot][weaponDefIndex].Paint == 0) return; + WeaponInfo weaponInfo = gPlayerWeaponsInfo[player.Slot][weaponDefIndex]; //Log($"Apply on {weapon.DesignerName}({weapon.AttributeManager.Item.ItemDefinitionIndex}) paint {gPlayerWeaponPaints[steamId.SteamId64][weapon.AttributeManager.Item.ItemDefinitionIndex]} seed {gPlayerWeaponSeed[steamId.SteamId64][weapon.AttributeManager.Item.ItemDefinitionIndex]} wear {gPlayerWeaponWear[steamId.SteamId64][weapon.AttributeManager.Item.ItemDefinitionIndex]}"); weapon.AttributeManager.Item.ItemID = 16384; @@ -211,6 +212,7 @@ namespace WeaponPaints g_knifePickupCount[player.Slot] = 0; + GivePlayerMusicKit(player); GivePlayerAgent(player); Server.NextFrame(() => { @@ -266,10 +268,37 @@ namespace WeaponPaints var weapon = new CBasePlayerWeapon(entity.Handle); if (weapon == null || !weapon.IsValid || weapon.OwnerEntity.Value == null) return; - CCSPlayerController? player = Utilities.GetPlayerFromSteamId(weapon.OriginalOwnerXuidLow); - if (player is null || !player.IsValid || !Utility.IsPlayerValid(player)) return; + try + { + SteamID? _steamid = null; - GivePlayerWeaponSkin(player, weapon); + if (weapon.OriginalOwnerXuidLow > 0) + _steamid = new(weapon.OriginalOwnerXuidLow); + + CCSPlayerController? player = null; + + if (_steamid != null && _steamid.IsValid()) + { + player = Utilities.GetPlayers().Where(p => p is not null && p.IsValid && p.SteamID == _steamid.SteamId64).FirstOrDefault(); + + if (player == null) + player = Utilities.GetPlayerFromSteamId(weapon.OriginalOwnerXuidLow); + } + else + { + CCSWeaponBaseGun gun = weapon.As(); + player = Utilities.GetPlayerFromIndex((int)weapon.OwnerEntity.Index) ?? Utilities.GetPlayerFromIndex((int)gun.OwnerEntity.Value!.Index); + } + + if (string.IsNullOrEmpty(player?.PlayerName)) return; + if (player is null || !Utility.IsPlayerValid(player)) return; + + GivePlayerWeaponSkin(player, weapon); + } + catch (Exception) + { + return; + } }); } } diff --git a/Utility.cs b/Utility.cs index f700c2a9..8bd8b0d1 100644 --- a/Utility.cs +++ b/Utility.cs @@ -60,12 +60,17 @@ namespace WeaponPaints `weapon_defindex` int(11) NOT NULL, UNIQUE (`steamid`) ) ENGINE=InnoDB", - @"CREATE TABLE `wp_player_agents` ( + @"CREATE TABLE IF NOT EXISTS `wp_player_agents` ( `steamid` varchar(18) NOT NULL, `agent_ct` varchar(64) DEFAULT NULL, `agent_t` varchar(64) DEFAULT NULL, - UNIQUE KEY `steamid` (`steamid`) - ) ENGINE=InnoDB" + UNIQUE (`steamid`) + ) ENGINE=InnoDB", + @"CREATE TABLE IF NOT EXISTS `wp_player_music` ( + `steamid` varchar(64) NOT NULL, + `music_id` int(11) NOT NULL, + UNIQUE (`steamid`) + ) ENGINE=InnoDB", }; foreach (var query in createTableQueries) @@ -136,6 +141,20 @@ namespace WeaponPaints } } + internal static void LoadMusicFromFile(string filePath) + { + try + { + string json = File.ReadAllText(filePath); + var deserializedSkins = JsonConvert.DeserializeObject>(json); + WeaponPaints.musicList = deserializedSkins ?? new List(); + } + catch (FileNotFoundException) + { + throw; + } + } + internal static void Log(string message) { Console.BackgroundColor = ConsoleColor.DarkGray; diff --git a/VERSION b/VERSION index 572c7afb..c3b75c88 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.2d \ No newline at end of file +2.3a \ No newline at end of file diff --git a/WeaponAction.cs b/WeaponAction.cs index 81e30672..3b968b92 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -300,14 +300,17 @@ namespace WeaponPaints { if (!g_playersAgent.ContainsKey(player.Slot)) return; + string? model = player.TeamNum == 3 ? g_playersAgent[player.Slot].CT : g_playersAgent[player.Slot].T; + if (string.IsNullOrEmpty(model)) return; + + if (player.PlayerPawn.Value == null) + return; + try { Server.NextFrame(() => { - string? model = player.TeamNum == 3 ? g_playersAgent[player.Slot].CT : g_playersAgent[player.Slot].T; - if (string.IsNullOrEmpty(model)) return; - - player.PlayerPawn.Value!.SetModel( + player.PlayerPawn.Value.SetModel( $"characters/models/{model}.vmdl" ); }); @@ -317,6 +320,16 @@ namespace WeaponPaints } } + public static void GivePlayerMusicKit(CCSPlayerController player) + { + if (!g_playersMusic.ContainsKey(player.Slot)) return; + if (player.InventoryServices == null) return; + + Console.WriteLine(g_playersMusic[player.Slot]); + + player.InventoryServices.MusicID = g_playersMusic[player.Slot]; + } + public static CCSPlayerController? GetPlayerFromItemServices(CCSPlayer_ItemServices itemServices) { var pawn = itemServices.Pawn.Value; diff --git a/WeaponPaints.cs b/WeaponPaints.cs index 62d62187..19bd3949 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -80,11 +80,13 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig g_knifePickupCount = new Dictionary(); internal static ConcurrentDictionary g_playersKnife = new ConcurrentDictionary(); internal static ConcurrentDictionary g_playersGlove = new ConcurrentDictionary(); + internal static ConcurrentDictionary g_playersMusic = new ConcurrentDictionary(); internal static ConcurrentDictionary g_playersAgent = new ConcurrentDictionary(); internal static ConcurrentDictionary> gPlayerWeaponsInfo = new ConcurrentDictionary>(); internal static List skinsList = new List(); internal static List glovesList = new List(); internal static List agentsList = new List(); + internal static List musicList = new List(); internal static WeaponSynchronization? weaponSync; public static bool g_bCommandsAllowed = true; internal Dictionary PlayerWeaponImage = new(); @@ -158,7 +160,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig "Nereziel & daffyy"; public override string ModuleDescription => "Skin, gloves, agents and knife selector, standalone and web-based"; public override string ModuleName => "WeaponPaints"; - public override string ModuleVersion => "2.2d"; + public override string ModuleVersion => "2.3a"; public static WeaponPaintsConfig GetWeaponPaintsConfig() { @@ -197,19 +199,23 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig weaponSync.GetWeaponPaintsFromDatabase(playerInfo)); + _ = Task.Run(async () => await weaponSync.GetWeaponPaintsFromDatabase(playerInfo)); } if (Config.Additional.KnifeEnabled) { - Task.Run(() => weaponSync.GetKnifeFromDatabase(playerInfo)); + _ = Task.Run(async () => await weaponSync.GetKnifeFromDatabase(playerInfo)); } if (Config.Additional.GloveEnabled) { - Task.Run(() => weaponSync.GetGloveFromDatabase(playerInfo)); + _ = Task.Run(async () => await weaponSync.GetGloveFromDatabase(playerInfo)); } if (Config.Additional.AgentEnabled) { - Task.Run(() => weaponSync.GetAgentFromDatabase(playerInfo)); + _ = Task.Run(async () => await weaponSync.GetAgentFromDatabase(playerInfo)); + } + if (Config.Additional.MusicEnabled) + { + _ = Task.Run(async () => await weaponSync.GetMusicFromDatabase(playerInfo)); } } } @@ -217,6 +223,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig(query, new { steamid = player.SteamId }); + + if (musicData != null) + { + WeaponPaints.g_playersMusic[player.Slot] = musicData.Value; + } + } + catch (Exception ex) + { + Utility.Log($"An error occurred in GetMusicFromDatabase: {ex.Message}"); + } + } + internal async Task SyncKnifeToDatabase(PlayerInfo player, string knife) { if (!_config.Additional.KnifeEnabled || player == null || string.IsNullOrEmpty(player.SteamId) || string.IsNullOrEmpty(knife)) return; @@ -231,5 +253,21 @@ namespace WeaponPaints Utility.Log($"Error syncing weapon paints to database: {e.Message}"); } } + + internal async Task SyncMusicToDatabase(PlayerInfo player, ushort music) + { + if (!_config.Additional.MusicEnabled || player == null || string.IsNullOrEmpty(player.SteamId)) return; + + try + { + await using var connection = await _database.GetConnectionAsync(); + string query = "INSERT INTO `wp_player_music` (`steamid`, `music_id`) VALUES(@steamid, @newMusic) ON DUPLICATE KEY UPDATE `music_id` = @newMusic"; + await connection.ExecuteAsync(query, new { steamid = player.SteamId, newMusic = music }); + } + catch (Exception e) + { + Utility.Log($"Error syncing music kit to database: {e.Message}"); + } + } } } \ No newline at end of file diff --git a/lang/en.json b/lang/en.json index 34eebeba..b0f91dd9 100644 --- a/lang/en.json +++ b/lang/en.json @@ -5,6 +5,7 @@ "wp_info_knife": "Type {lime}!knife{default} to open knife menu", "wp_info_glove": "Type {lime}!gloves{default} to open gloves menu", "wp_info_agent": "Type {lime}!agents{default} to open agents menu", + "wp_info_music": "Type {lime}!music{default} to open music menu", "wp_command_cooldown": "{lightred}You can't refresh weapon paints right now", "wp_command_refresh_done": "{lime}Refreshing weapon paints", "wp_knife_menu_select": "You have chosen {lime}{0}{default} as your knife", @@ -14,6 +15,8 @@ "wp_glove_menu_title": "Gloves Menu", "wp_agent_menu_select": "You have chosen {lime}{0}{default} as your agent", "wp_agent_menu_title": "Agents Menu", + "wp_music_menu_title": "Music Menu", + "wp_music_menu_select": "You have chosen {lime}{0}{default} as your music kit", "wp_skin_menu_weapon_title": "Weapon Menu", "wp_skin_menu_skin_title": "Select skin for {lime}{0}{default}", "wp_skin_menu_select": "You have chosen {lime}{0}{default} as your skin", diff --git a/lang/lv.json b/lang/lv.json index 96fbeeca..7daeeea7 100644 --- a/lang/lv.json +++ b/lang/lv.json @@ -1,21 +1,24 @@ { "wp_prefix": "{lightblue}[WeaponPaints] {default}", - "wp_info_website": "Apmeklējiet {lime}{0}{default}, kur varat mainīt ādas", + "wp_info_website": "Apmeklē {lime}{0}{default}, kur varat mainīt ādas", "wp_info_refresh": "Ievadiet {lime}!wp{default}, lai sinhronizētu izvēlētās ādas", "wp_info_knife": "Ievadiet {lime}!knife{default}, lai atvērtu nazis izvēlni", "wp_info_glove": "Ievadiet {lime}!gloves{default}, lai atvērtu cimdi izvēlni", - "wp_info_agent": "Ierakstiet {lime}!agents{default}, lai atvērtu aģentu izvēlni", - "wp_command_cooldown": "{lightred}Šobrīd jūs nevarat atjaunot ieroču ādas", - "wp_command_refresh_done": "{lime}Atjauno ieroču ādas", + "wp_info_agent": "Ievadiet {lime}!agents{default}, lai atvērtu aģentu izvēlni", + "wp_info_music": "Ievadiet {lime}!music{default}, lai atvērtu mūzikas izvēlni", + "wp_command_cooldown": "{lightred}Šobrīd nevarat atsvaidzināt ieroča krāsas", + "wp_command_refresh_done": "{lime}Atsvaidzinot ieroča krāsas", "wp_knife_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu nazi", "wp_knife_menu_kill": "", - "wp_knife_menu_title": "Nazis Izvēlne", - "wp_glove_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savus cimdus", + "wp_knife_menu_title": "Nazi Izvēlne", + "wp_glove_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu cimdu", "wp_glove_menu_title": "Cimdu Izvēlne", - "wp_agent_menu_select": "Jūs esat izvēlējušies {lime}{0}{default} kā savu aģentu", - "wp_agent_menu_title": "Aģentu izvēlnes", + "wp_agent_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu aģentu", + "wp_agent_menu_title": "Aģentu Izvēlne", + "wp_music_menu_title": "Mūzikas Izvēlne", + "wp_music_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu mūzikas komplektu", "wp_skin_menu_weapon_title": "Ieroču Izvēlne", - "wp_skin_menu_skin_title": "Izvēlieties ādu {lime}{0}{default}", + "wp_skin_menu_skin_title": "Izvēlieties ādu priekš {lime}{0}{default}", "wp_skin_menu_select": "Jūs esat izvēlējies {lime}{0}{default} kā savu ādu", "None": "Nav" diff --git a/lang/pl.json b/lang/pl.json index cd3ff681..22e2f55a 100644 --- a/lang/pl.json +++ b/lang/pl.json @@ -3,17 +3,20 @@ "wp_info_website": "Odwiedź {lime}{0}{default}, gdzie możesz zmieniać skórki", "wp_info_refresh": "Wpisz {lime}!wp{default}, aby zsynchronizować wybrane skórki", "wp_info_knife": "Wpisz {lime}!knife{default}, aby otworzyć menu noży", - "wp_info_glove": "Wpisz {lime}!gloves{default}, aby otworzyć menu rękawiczek", + "wp_info_glove": "Wpisz {lime}!gloves{default}, aby otworzyć menu rękawic", "wp_info_agent": "Wpisz {lime}!agents{default}, aby otworzyć menu agentów", - "wp_command_cooldown": "{lightred}Nie możesz teraz odświeżyć skórek broni", - "wp_command_refresh_done": "{lime}Odświeżanie skórek broni", + "wp_info_music": "Wpisz {lime}!music{default}, aby otworzyć menu muzyczne", + "wp_command_cooldown": "{lightred}Nie możesz teraz odświeżyć kolorów broni", + "wp_command_refresh_done": "{lime}Odświeżanie kolorów broni", "wp_knife_menu_select": "Wybrałeś {lime}{0}{default} jako swój nóż", - "wp_knife_menu_kill": "{lime}Wybrane skiny będą ustawione dopiero po ponownym wejściu na serwer lub wpisaniu komendy {orange}!kill", + "wp_knife_menu_kill": "", "wp_knife_menu_title": "Menu Noży", - "wp_glove_menu_select": "Wybrałeś {lime}{0}{default} jako swoje rękawiczki", + "wp_glove_menu_select": "Wybrałeś {lime}{0}{default} jako swoją rękawiczkę", "wp_glove_menu_title": "Menu Rękawiczek", "wp_agent_menu_select": "Wybrałeś {lime}{0}{default} jako swojego agenta", - "wp_agent_menu_title": "Menu agentów", + "wp_agent_menu_title": "Menu Agentów", + "wp_music_menu_title": "Menu Muzyczne", + "wp_music_menu_select": "Wybrałeś {lime}{0}{default} jako swój zestaw muzyczny", "wp_skin_menu_weapon_title": "Menu Broni", "wp_skin_menu_skin_title": "Wybierz skórkę dla {lime}{0}{default}", "wp_skin_menu_select": "Wybrałeś {lime}{0}{default} jako swoją skórkę", diff --git a/lang/pt-BR.json b/lang/pt-BR.json index 98926304..f7921f8c 100644 --- a/lang/pt-BR.json +++ b/lang/pt-BR.json @@ -1,21 +1,24 @@ { "wp_prefix": "{lightblue}[WeaponPaints] {default}", - "wp_info_website": "Visite {lime}{0}{default}, onde você pode alterar skins", - "wp_info_refresh": "Digite {lime}!wp{default} para sincronizar as skins selecionadas", + "wp_info_website": "Visite {lime}{0}{default}, onde você pode alterar as skins", + "wp_info_refresh": "Digite {lime}!wp{default} para sincronizar as skins escolhidas", "wp_info_knife": "Digite {lime}!knife{default} para abrir o menu de facas", "wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas", "wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes", - "wp_command_cooldown": "{lightred}Você não pode atualizar as skins de arma agora", - "wp_command_refresh_done": "{lime}Atualizando as skins de arma", + "wp_info_music": "Digite {lime}!music{default} para abrir o menu de música", + "wp_command_cooldown": "{lightred}Você não pode atualizar as skins de armas agora", + "wp_command_refresh_done": "{lime}Atualizando as skins de armas", "wp_knife_menu_select": "Você escolheu {lime}{0}{default} como sua faca", "wp_knife_menu_kill": "", "wp_knife_menu_title": "Menu de Facas", - "wp_glove_menu_select": "Você escolheu {lime}{0}{default} como suas luvas", + "wp_glove_menu_select": "Você escolheu {lime}{0}{default} como sua luva", "wp_glove_menu_title": "Menu de Luvas", "wp_agent_menu_select": "Você escolheu {lime}{0}{default} como seu agente", "wp_agent_menu_title": "Menu de Agentes", + "wp_music_menu_title": "Menu de Música", + "wp_music_menu_select": "Você escolheu {lime}{0}{default} como seu kit de música", "wp_skin_menu_weapon_title": "Menu de Armas", - "wp_skin_menu_skin_title": "Selecione uma skin para {lime}{0}{default}", + "wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}", "wp_skin_menu_select": "Você escolheu {lime}{0}{default} como sua skin", "None": "Nenhum" diff --git a/lang/pt-PT.json b/lang/pt-PT.json index fa32a676..36f32e1c 100644 --- a/lang/pt-PT.json +++ b/lang/pt-PT.json @@ -1,22 +1,25 @@ { "wp_prefix": "{lightblue}[WeaponPaints] {default}", - "wp_info_website": "Visite {lime}{0}{default}, onde pode alterar skins", - "wp_info_refresh": "Digite {lime}!wp{default} para sincronizar as skins selecionadas", + "wp_info_website": "Visite {lime}{0}{default}, onde pode alterar as skins", + "wp_info_refresh": "Digite {lime}!wp{default} para sincronizar as skins escolhidas", "wp_info_knife": "Digite {lime}!knife{default} para abrir o menu de facas", "wp_info_glove": "Digite {lime}!gloves{default} para abrir o menu de luvas", "wp_info_agent": "Digite {lime}!agents{default} para abrir o menu de agentes", - "wp_command_cooldown": "{lightred}Você não pode atualizar as skins de arma agora", - "wp_command_refresh_done": "{lime}Atualizando as skins de arma", - "wp_knife_menu_select": "Você escolheu {lime}{0}{default} como sua faca", + "wp_info_music": "Digite {lime}!music{default} para abrir o menu de música", + "wp_command_cooldown": "{lightred}Não pode atualizar as skins de armas de momento", + "wp_command_refresh_done": "{lime}Atualizando as skins de armas", + "wp_knife_menu_select": "Escolheu {lime}{0}{default} como a sua faca", "wp_knife_menu_kill": "", "wp_knife_menu_title": "Menu de Facas", - "wp_glove_menu_select": "Você escolheu {lime}{0}{default} como suas luvas", + "wp_glove_menu_select": "Escolheu {lime}{0}{default} como a sua luva", "wp_glove_menu_title": "Menu de Luvas", - "wp_agent_menu_select": "Escolheste {lime}{0}{default} como teu agente", + "wp_agent_menu_select": "Escolheu {lime}{0}{default} como o seu agente", "wp_agent_menu_title": "Menu de Agentes", + "wp_music_menu_title": "Menu de Música", + "wp_music_menu_select": "Escolheu {lime}{0}{default} como o seu kit de música", "wp_skin_menu_weapon_title": "Menu de Armas", - "wp_skin_menu_skin_title": "Selecione uma skin para {lime}{0}{default}", - "wp_skin_menu_select": "Você escolheu {lime}{0}{default} como sua skin", + "wp_skin_menu_skin_title": "Selecione a skin para {lime}{0}{default}", + "wp_skin_menu_select": "Escolheu {lime}{0}{default} como a sua skin", "None": "Nenhum" } \ No newline at end of file diff --git a/lang/ru.json b/lang/ru.json index d2f91a71..034f60a5 100644 --- a/lang/ru.json +++ b/lang/ru.json @@ -5,15 +5,18 @@ "wp_info_knife": "Введите {lime}!knife{default}, чтобы открыть меню ножей", "wp_info_glove": "Введите {lime}!gloves{default}, чтобы открыть меню перчаток", "wp_info_agent": "Введите {lime}!agents{default}, чтобы открыть меню агентов", - "wp_command_cooldown": "{lightred}Вы не можете обновить скины оружия сейчас", - "wp_command_refresh_done": "{lime}Обновление скинов оружия", + "wp_info_music": "Введите {lime}!music{default}, чтобы открыть меню музыки", + "wp_command_cooldown": "{lightred}Вы не можете обновить раскраску оружия сейчас", + "wp_command_refresh_done": "{lime}Обновление раскраски оружия", "wp_knife_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего ножа", "wp_knife_menu_kill": "", "wp_knife_menu_title": "Меню Ножей", "wp_glove_menu_select": "Вы выбрали {lime}{0}{default} в качестве ваших перчаток", "wp_glove_menu_title": "Меню Перчаток", - "wp_agent_menu_select": "Вы выбрали {lime}{0}{default} в качестве своего агента", - "wp_agent_menu_title": "Меню агентов", + "wp_agent_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего агента", + "wp_agent_menu_title": "Меню Агентов", + "wp_music_menu_title": "Меню Музыки", + "wp_music_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего музыкального набора", "wp_skin_menu_weapon_title": "Меню Оружия", "wp_skin_menu_skin_title": "Выберите скин для {lime}{0}{default}", "wp_skin_menu_select": "Вы выбрали {lime}{0}{default} в качестве вашего скина", diff --git a/lang/tr.json b/lang/tr.json index b88be7c7..7f1737e1 100644 --- a/lang/tr.json +++ b/lang/tr.json @@ -1,22 +1,25 @@ { "wp_prefix": "{lightblue}[WeaponPaints] {default}", - "wp_info_website": "Ziyaret edin {lime}{0}{default}, burada skinleri değiştirebilirsiniz", - "wp_info_refresh": "Senkronize edilen skinleri görmek için {lime}!wp{default} yazın", + "wp_info_website": "Ziyaret edin {lime}{0}{default}, nerede derileri değiştirebilirsiniz", + "wp_info_refresh": "Senkronize etmek için {lime}!wp{default} yazın seçilen deriler", "wp_info_knife": "Bıçak menüsünü açmak için {lime}!knife{default} yazın", - "wp_info_glove": "Eldiven menüsünü açmak için {lime}!gloves{default} yazın", - "wp_info_agent": "Ajanlar menüsünü açmak için {lime}!agents{default} yazın", - "wp_command_cooldown": "{lightred}Şu anda silah skinlerini yenileyemezsiniz", - "wp_command_refresh_done": "{lime}Silah skinleri yenileniyor", + "wp_info_glove": "Handskar menüsünü açmak için {lime}!gloves{default} yazın", + "wp_info_agent": "Ajan menüsünü açmak için {lime}!agents{default} yazın", + "wp_info_music": "Müzik menüsünü açmak için {lime}!music{default} yazın", + "wp_command_cooldown": "{lightred}Şu anda silah boyalarını yenileyemezsiniz", + "wp_command_refresh_done": "{lime}Silah boyaları yenileniyor", "wp_knife_menu_select": "{lime}{0}{default} olarak bıçağınızı seçtiniz", "wp_knife_menu_kill": "", "wp_knife_menu_title": "Bıçak Menüsü", "wp_glove_menu_select": "{lime}{0}{default} olarak eldiveninizi seçtiniz", "wp_glove_menu_title": "Eldiven Menüsü", - "wp_agent_menu_select": "Ajanınız olarak {lime}{0}{default} seçtiniz", - "wp_agent_menu_title": "Ajan Menüsü", + "wp_agent_menu_select": "{lime}{0}{default} olarak ajanınızı seçtiniz", + "wp_agent_menu_title": "Ajanlar Menüsü", + "wp_music_menu_title": "Müzik Menüsü", + "wp_music_menu_select": "{lime}{0}{default} olarak müzik setinizi seçtiniz", "wp_skin_menu_weapon_title": "Silah Menüsü", - "wp_skin_menu_skin_title": "{lime}{0}{default} için bir skin seçin", - "wp_skin_menu_select": "{lime}{0}{default} olarak bir skin seçtiniz", + "wp_skin_menu_skin_title": "{lime}{0}{default} için cilt seçin", + "wp_skin_menu_select": "{lime}{0}{default} olarak cildinizi seçtiniz", "None": "Hiçbiri" } \ No newline at end of file diff --git a/lang/ua.json b/lang/ua.json index 5c5f4f51..17367faa 100644 --- a/lang/ua.json +++ b/lang/ua.json @@ -4,19 +4,22 @@ "wp_info_refresh": "Введіть {lime}!wp{default}, щоб синхронізувати обрані шкури", "wp_info_knife": "Введіть {lime}!knife{default}, щоб відкрити меню ножів", "wp_info_glove": "Введіть {lime}!gloves{default}, щоб відкрити меню рукавичок", - "wp_info_agent": "Введіть {lime}!агенти{default}, щоб відкрити меню агентів", - "wp_command_cooldown": "{lightred}Наразі ви не можете оновлювати шкіри зброї", - "wp_command_refresh_done": "{lime}Оновлення шкірок зброї", - "wp_knife_menu_select": "Ви вибрали {lime}{0}{default} як ваш ніж", + "wp_info_agent": "Введіть {lime}!agents{default}, щоб відкрити меню агентів", + "wp_info_music": "Введіть {lime}!music{default}, щоб відкрити меню музики", + "wp_command_cooldown": "{lightred}Ви не можете оновити фарби зброї зараз", + "wp_command_refresh_done": "{lime}Оновлення фарби зброї", + "wp_knife_menu_select": "Ви обрали {lime}{0}{default} як свій ніж", "wp_knife_menu_kill": "", "wp_knife_menu_title": "Меню Ножів", - "wp_glove_menu_select": "Ви вибрали {lime}{0}{default} як ваші рукавички", + "wp_glove_menu_select": "Ви обрали {lime}{0}{default} як свої рукавички", "wp_glove_menu_title": "Меню Рукавичок", - "wp_agent_menu_select": "Ви обрали {lime}{0}{default} як вашого агента", - "wp_agent_menu_title": "Меню агентів", + "wp_agent_menu_select": "Ви обрали {lime}{0}{default} як свого агента", + "wp_agent_menu_title": "Меню Агентів", + "wp_music_menu_title": "Меню Музики", + "wp_music_menu_select": "Ви обрали {lime}{0}{default} як свій набір музики", "wp_skin_menu_weapon_title": "Меню Зброї", "wp_skin_menu_skin_title": "Виберіть шкіру для {lime}{0}{default}", - "wp_skin_menu_select": "Ви вибрали {lime}{0}{default} як вашу шкіру", + "wp_skin_menu_select": "Ви обрали {lime}{0}{default} як свою шкіру", "None": "Немає" } \ No newline at end of file diff --git a/lang/zh-Hans.json b/lang/zh-Hans.json new file mode 100644 index 00000000..b03c1796 --- /dev/null +++ b/lang/zh-Hans.json @@ -0,0 +1,25 @@ +{ + "wp_prefix": "{lightblue}[WeaponPaints] {default}", + "wp_info_website": "您可以在浏览器访问 {lime}{0}{default} 来更改您的饰品", + "wp_info_refresh": "输入 {lime}!wp{default} 来刷新武器皮肤", + "wp_info_knife": "输入 {lime}!knife{default} 来打开选刀菜单", + "wp_info_glove": "输入 {lime}!gloves{default} 来打开手套菜单", + "wp_info_agent": "输入 {lime}!agents{default} 来打开探员菜单", + "wp_info_music": "输入 {lime}!music{default} 来打开音乐盒菜单", + "wp_command_cooldown": "{lightred}饰品刷新冷却中!请稍后再试!", + "wp_command_refresh_done": "{lime}饰品已刷新", + "wp_knife_menu_select": "您的刀已更改为 {lime}{0}{default}", + "wp_knife_menu_kill": "", + "wp_knife_menu_title": "选刀菜单", + "wp_glove_menu_select": "您的手套已更改为 {lime}{0}{default}", + "wp_glove_menu_title": "手套菜单", + "wp_agent_menu_select": "您的探员已更改为 {lime}{0}{default}", + "wp_agent_menu_title": "探员菜单", + "wp_music_menu_title": "音乐盒菜单", + "wp_music_menu_select": "您的音乐盒已更改为 {lime}{0}{default}", + "wp_skin_menu_weapon_title": "武器菜单", + "wp_skin_menu_skin_title": "为 {lime}{0}{default} 更换皮肤", + "wp_skin_menu_select": "皮肤已更换为 {lime}{0}{default} ", + + "None": "无" +} \ No newline at end of file diff --git a/lang/zh-cn.json b/lang/zh-cn.json index d431a7b9..4b3dc5f8 100644 --- a/lang/zh-cn.json +++ b/lang/zh-cn.json @@ -1,22 +1,25 @@ { "wp_prefix": "{lightblue}[WeaponPaints] {default}", - "wp_info_website": "您可以在浏览器访问 {lime}{0}{default} 来更改皮肤", - "wp_info_refresh": "输入 {lime}!wp{default} 来刷新武器皮肤", - "wp_info_knife": "输入 {lime}!knife{default} 来打开选刀菜单", - "wp_info_glove": "输入 {lime}!gloves{default} 来打开手套菜单", - "wp_info_agent": "输入 {lime}!agents{default} 来打开探员菜单", - "wp_command_cooldown": "{lightred}刷新皮肤功能冷却中!请稍后再试!", - "wp_command_refresh_done": "{lime}武器皮肤已刷新", - "wp_knife_menu_select": "您的刀已更改为 {lime}{0}{default}", + "wp_info_website": "访问 {lime}{0}{default},您可以更改皮肤", + "wp_info_refresh": "输入 {lime}!wp{default} 同步选择的皮肤", + "wp_info_knife": "输入 {lime}!knife{default} 打开刀具菜单", + "wp_info_glove": "输入 {lime}!gloves{default} 打开手套菜单", + "wp_info_agent": "输入 {lime}!agents{default} 打开代理菜单", + "wp_info_music": "输入 {lime}!music{default} 打开音乐菜单", + "wp_command_cooldown": "{lightred}您现在无法刷新武器涂装", + "wp_command_refresh_done": "{lime}正在刷新武器涂装", + "wp_knife_menu_select": "您选择了 {lime}{0}{default} 作为您的刀具", "wp_knife_menu_kill": "", - "wp_knife_menu_title": "选刀菜单", - "wp_glove_menu_select": "您的手套已更改为 {lime}{0}{default}", + "wp_knife_menu_title": "刀具菜单", + "wp_glove_menu_select": "您选择了 {lime}{0}{default} 作为您的手套", "wp_glove_menu_title": "手套菜单", - "wp_agent_menu_select": "您的探员已更改为 {lime}{0}{default}", - "wp_agent_menu_title": "探员菜单", + "wp_agent_menu_select": "您选择了 {lime}{0}{default} 作为您的代理", + "wp_agent_menu_title": "代理菜单", + "wp_music_menu_title": "音乐菜单", + "wp_music_menu_select": "您选择了 {lime}{0}{default} 作为您的音乐包", "wp_skin_menu_weapon_title": "武器菜单", - "wp_skin_menu_skin_title": "为 {lime}{0}{default} 更换皮肤", - "wp_skin_menu_select": "皮肤已更换为 {lime}{0}{default} ", + "wp_skin_menu_skin_title": "选择 {lime}{0}{default} 的皮肤", + "wp_skin_menu_select": "您选择了 {lime}{0}{default} 作为您的皮肤", "None": "无" } \ No newline at end of file diff --git a/website/data/music.json b/website/data/music.json new file mode 100644 index 00000000..77c30c4d --- /dev/null +++ b/website/data/music.json @@ -0,0 +1,367 @@ +[ + { + "id": "3", + "name": "Music Kit | Daniel Sadowski, Crimson Assault", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-3.png" + }, + { + "id": "4", + "name": "Music Kit | Noisia, Sharpened", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-4.png" + }, + { + "id": "5", + "name": "Music Kit | Robert Allaire, Insurgency", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-5.png" + }, + { + "id": "6", + "name": "Music Kit | Sean Murray, A*D*8", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-6.png" + }, + { + "id": "7", + "name": "Music Kit | Feed Me, High Noon", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-7.png" + }, + { + "id": "8", + "name": "Music Kit | Dren, Death's Head Demolition", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-8.png" + }, + { + "id": "9", + "name": "Music Kit | Austin Wintory, Desert Fire", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-9.png" + }, + { + "id": "10", + "name": "Music Kit | Sasha, LNOE", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-10.png" + }, + { + "id": "11", + "name": "Music Kit | Skog, Metal", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-11.png" + }, + { + "id": "12", + "name": "Music Kit | Midnight Riders, All I Want for Christmas", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-12.png" + }, + { + "id": "13", + "name": "Music Kit | Matt Lange, IsoRhythm", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-13.png" + }, + { + "id": "14", + "name": "Music Kit | Mateo Messina, For No Mankind", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-14.png" + }, + { + "id": "15", + "name": "Music Kit | Various Artists, Hotline Miami", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-15.png" + }, + { + "id": "16", + "name": "Music Kit | Daniel Sadowski, Total Domination", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-16.png" + }, + { + "id": "17", + "name": "Music Kit | Damjan Mravunac, The Talos Principle", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-17.png" + }, + { + "id": "18", + "name": "Music Kit | Proxy, Battlepack", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-18.png" + }, + { + "id": "19", + "name": "Music Kit | Ki:Theory, MOLOTOV", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-19.png" + }, + { + "id": "20", + "name": "Music Kit | Troels Folmann, Uber Blasto Phone", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-20.png" + }, + { + "id": "21", + "name": "Music Kit | Kelly Bailey, Hazardous Environments", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-21.png" + }, + { + "id": "22", + "name": "Music Kit | Skog, II-Headshot", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-22.png" + }, + { + "id": "23", + "name": "Music Kit | Daniel Sadowski, The 8-Bit Kit", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-23.png" + }, + { + "id": "24", + "name": "Music Kit | AWOLNATION, I Am", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-24.png" + }, + { + "id": "25", + "name": "Music Kit | Mord Fustang, Diamonds", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-25.png" + }, + { + "id": "26", + "name": "Music Kit | Michael Bross, Invasion!", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-26.png" + }, + { + "id": "27", + "name": "Music Kit | Ian Hultquist, Lion's Mouth", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-27.png" + }, + { + "id": "28", + "name": "Music Kit | New Beat Fund, Sponge Fingerz", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-28.png" + }, + { + "id": "29", + "name": "Music Kit | Beartooth, Disgusting", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-29.png" + }, + { + "id": "30", + "name": "Music Kit | Lennie Moore, Java Havana Funkaloo", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-30.png" + }, + { + "id": "31", + "name": "Music Kit | Darude, Moments CS:GO", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-31.png" + }, + { + "id": "32", + "name": "Music Kit | Beartooth, Aggressive", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-32.png" + }, + { + "id": "33", + "name": "Music Kit | Blitz Kids, The Good Youth", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-33.png" + }, + { + "id": "34", + "name": "Music Kit | Hundredth, FREE", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-34.png" + }, + { + "id": "35", + "name": "Music Kit | Neck Deep, Life's Not Out To Get You", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-35.png" + }, + { + "id": "36", + "name": "Music Kit | Roam, Backbone", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-36.png" + }, + { + "id": "37", + "name": "Music Kit | Twin Atlantic, GLA", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-37.png" + }, + { + "id": "38", + "name": "Music Kit | Skog, III-Arena", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-38.png" + }, + { + "id": "39", + "name": "Music Kit | The Verkkars, EZ4ENCE", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-39.png" + }, + { + "id": "40", + "name": "Halo, The Master Chief Collection", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-40.png" + }, + { + "id": "41", + "name": "Music Kit | Scarlxrd: King, Scar", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-41.png" + }, + { + "id": "42", + "name": "Half-Life: Alyx, Anti-Citizen", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-42.png" + }, + { + "id": "43", + "name": "Music Kit | Austin Wintory, Bachram", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-43.png" + }, + { + "id": "44", + "name": "Music Kit | Dren, Gunman Taco Truck", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-44.png" + }, + { + "id": "45", + "name": "Music Kit | Daniel Sadowski, Eye of the Dragon", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-45.png" + }, + { + "id": "46", + "name": "Music Kit | Tree Adams and Ben Bromfield, M.U.D.D. FORCE", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-46.png" + }, + { + "id": "47", + "name": "Music Kit | Tim Huling, Neo Noir", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-47.png" + }, + { + "id": "48", + "name": "Music Kit | Sam Marshall, Bodacious", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-48.png" + }, + { + "id": "49", + "name": "Music Kit | Matt Levine, Drifter", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-49.png" + }, + { + "id": "50", + "name": "Music Kit | Amon Tobin, All for Dust", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-50.png" + }, + { + "id": "51", + "name": "Darren Korb, Hades Music Kit", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-51.png" + }, + { + "id": "52", + "name": "Music Kit | Neck Deep, The Lowlife Pack", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-52.png" + }, + { + "id": "53", + "name": "Music Kit | Scarlxrd, CHAIN$AW.LXADXUT.", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-53.png" + }, + { + "id": "54", + "name": "Music Kit | Austin Wintory, Mocha Petal", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-54.png" + }, + { + "id": "55", + "name": "Music Kit | Chipzel, ~Yellow Magic~", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-55.png" + }, + { + "id": "56", + "name": "Music Kit | Freaky DNA, Vici", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-56.png" + }, + { + "id": "57", + "name": "Music Kit | Jesse Harlin, Astro Bellum", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-57.png" + }, + { + "id": "58", + "name": "Music Kit | Laura Shigihara: Work Hard, Play Hard", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-58.png" + }, + { + "id": "59", + "name": "Music Kit | Sarah Schachner, KOLIBRI", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-59.png" + }, + { + "id": "60", + "name": "Music Kit | bbno$, u mad!", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-60.png" + }, + { + "id": "61", + "name": "Music Kit | The Verkkars & n0thing, Flashbang Dance", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-61.png" + }, + { + "id": "62", + "name": "Music Kit | 3kliksphilip, Heading for the Source", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-62.png" + }, + { + "id": "63", + "name": "Music Kit | Humanity's Last Breath, Void", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-63.png" + }, + { + "id": "64", + "name": "Music Kit | Juelz, Shooters", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-64.png" + }, + { + "id": "65", + "name": "Music Kit | Knock2, dashstar*", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-65.png" + }, + { + "id": "66", + "name": "Music Kit | Meechy Darko, Gothic Luxury", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-66.png" + }, + { + "id": "67", + "name": "Music Kit | Sullivan King, Lock Me Up", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-67.png" + }, + { + "id": "68", + "name": "Music Kit | Perfect World, 花脸 Hua Lian (Painted Face)", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-68.png" + }, + { + "id": "69", + "name": "Music Kit | Denzel Curry, ULTIMATE", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-69.png" + }, + { + "id": "71", + "name": "Music Kit | DRYDEN, Feel The Power", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-71.png" + }, + { + "id": "72", + "name": "Music Kit | ISOxo, inhuman", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-72.png" + }, + { + "id": "73", + "name": "Music Kit | KILL SCRIPT, All Night", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-73.png" + }, + { + "id": "74", + "name": "Music Kit | Knock2, Make U SWEAT!", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-74.png" + }, + { + "id": "75", + "name": "Music Kit | Rad Cat, Reason", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-75.png" + }, + { + "id": "76", + "name": "Music Kit | TWERL, Ekko & Sidetrack, Under Bright Lights", + "image": "https://raw.githubusercontent.com/daffyyyy/cs2-WeaponPaints/main/website/img/skins/music_kit-76.png" + } +] \ No newline at end of file diff --git a/website/img/skins/music_kit-10.png b/website/img/skins/music_kit-10.png new file mode 100644 index 00000000..956f3830 Binary files /dev/null and b/website/img/skins/music_kit-10.png differ diff --git a/website/img/skins/music_kit-11.png b/website/img/skins/music_kit-11.png new file mode 100644 index 00000000..05044985 Binary files /dev/null and b/website/img/skins/music_kit-11.png differ diff --git a/website/img/skins/music_kit-12.png b/website/img/skins/music_kit-12.png new file mode 100644 index 00000000..a44e9dbf Binary files /dev/null and b/website/img/skins/music_kit-12.png differ diff --git a/website/img/skins/music_kit-13.png b/website/img/skins/music_kit-13.png new file mode 100644 index 00000000..9a01ad9a Binary files /dev/null and b/website/img/skins/music_kit-13.png differ diff --git a/website/img/skins/music_kit-14.png b/website/img/skins/music_kit-14.png new file mode 100644 index 00000000..797ded53 Binary files /dev/null and b/website/img/skins/music_kit-14.png differ diff --git a/website/img/skins/music_kit-15.png b/website/img/skins/music_kit-15.png new file mode 100644 index 00000000..c4e06e5d Binary files /dev/null and b/website/img/skins/music_kit-15.png differ diff --git a/website/img/skins/music_kit-16.png b/website/img/skins/music_kit-16.png new file mode 100644 index 00000000..2fb0eb81 Binary files /dev/null and b/website/img/skins/music_kit-16.png differ diff --git a/website/img/skins/music_kit-17.png b/website/img/skins/music_kit-17.png new file mode 100644 index 00000000..10bb99d7 Binary files /dev/null and b/website/img/skins/music_kit-17.png differ diff --git a/website/img/skins/music_kit-18.png b/website/img/skins/music_kit-18.png new file mode 100644 index 00000000..27c68ce3 Binary files /dev/null and b/website/img/skins/music_kit-18.png differ diff --git a/website/img/skins/music_kit-19.png b/website/img/skins/music_kit-19.png new file mode 100644 index 00000000..86953d84 Binary files /dev/null and b/website/img/skins/music_kit-19.png differ diff --git a/website/img/skins/music_kit-20.png b/website/img/skins/music_kit-20.png new file mode 100644 index 00000000..d694b0ca Binary files /dev/null and b/website/img/skins/music_kit-20.png differ diff --git a/website/img/skins/music_kit-21.png b/website/img/skins/music_kit-21.png new file mode 100644 index 00000000..c92aabe5 Binary files /dev/null and b/website/img/skins/music_kit-21.png differ diff --git a/website/img/skins/music_kit-22.png b/website/img/skins/music_kit-22.png new file mode 100644 index 00000000..259c0343 Binary files /dev/null and b/website/img/skins/music_kit-22.png differ diff --git a/website/img/skins/music_kit-23.png b/website/img/skins/music_kit-23.png new file mode 100644 index 00000000..97c86e43 Binary files /dev/null and b/website/img/skins/music_kit-23.png differ diff --git a/website/img/skins/music_kit-24.png b/website/img/skins/music_kit-24.png new file mode 100644 index 00000000..cfb55243 Binary files /dev/null and b/website/img/skins/music_kit-24.png differ diff --git a/website/img/skins/music_kit-25.png b/website/img/skins/music_kit-25.png new file mode 100644 index 00000000..5ecb4438 Binary files /dev/null and b/website/img/skins/music_kit-25.png differ diff --git a/website/img/skins/music_kit-26.png b/website/img/skins/music_kit-26.png new file mode 100644 index 00000000..63161fcb Binary files /dev/null and b/website/img/skins/music_kit-26.png differ diff --git a/website/img/skins/music_kit-27.png b/website/img/skins/music_kit-27.png new file mode 100644 index 00000000..37d3531e Binary files /dev/null and b/website/img/skins/music_kit-27.png differ diff --git a/website/img/skins/music_kit-28.png b/website/img/skins/music_kit-28.png new file mode 100644 index 00000000..cb906fd0 Binary files /dev/null and b/website/img/skins/music_kit-28.png differ diff --git a/website/img/skins/music_kit-29.png b/website/img/skins/music_kit-29.png new file mode 100644 index 00000000..d4ad9478 Binary files /dev/null and b/website/img/skins/music_kit-29.png differ diff --git a/website/img/skins/music_kit-3.png b/website/img/skins/music_kit-3.png new file mode 100644 index 00000000..c6e6faa0 Binary files /dev/null and b/website/img/skins/music_kit-3.png differ diff --git a/website/img/skins/music_kit-30.png b/website/img/skins/music_kit-30.png new file mode 100644 index 00000000..3edbbbf6 Binary files /dev/null and b/website/img/skins/music_kit-30.png differ diff --git a/website/img/skins/music_kit-31.png b/website/img/skins/music_kit-31.png new file mode 100644 index 00000000..361524e4 Binary files /dev/null and b/website/img/skins/music_kit-31.png differ diff --git a/website/img/skins/music_kit-32.png b/website/img/skins/music_kit-32.png new file mode 100644 index 00000000..a229c4bc Binary files /dev/null and b/website/img/skins/music_kit-32.png differ diff --git a/website/img/skins/music_kit-33.png b/website/img/skins/music_kit-33.png new file mode 100644 index 00000000..9f19d4ec Binary files /dev/null and b/website/img/skins/music_kit-33.png differ diff --git a/website/img/skins/music_kit-34.png b/website/img/skins/music_kit-34.png new file mode 100644 index 00000000..306b1fd7 Binary files /dev/null and b/website/img/skins/music_kit-34.png differ diff --git a/website/img/skins/music_kit-35.png b/website/img/skins/music_kit-35.png new file mode 100644 index 00000000..452a2702 Binary files /dev/null and b/website/img/skins/music_kit-35.png differ diff --git a/website/img/skins/music_kit-36.png b/website/img/skins/music_kit-36.png new file mode 100644 index 00000000..4d982e12 Binary files /dev/null and b/website/img/skins/music_kit-36.png differ diff --git a/website/img/skins/music_kit-37.png b/website/img/skins/music_kit-37.png new file mode 100644 index 00000000..77d126ea Binary files /dev/null and b/website/img/skins/music_kit-37.png differ diff --git a/website/img/skins/music_kit-38.png b/website/img/skins/music_kit-38.png new file mode 100644 index 00000000..6aba0f3d Binary files /dev/null and b/website/img/skins/music_kit-38.png differ diff --git a/website/img/skins/music_kit-39.png b/website/img/skins/music_kit-39.png new file mode 100644 index 00000000..798db2e4 Binary files /dev/null and b/website/img/skins/music_kit-39.png differ diff --git a/website/img/skins/music_kit-4.png b/website/img/skins/music_kit-4.png new file mode 100644 index 00000000..7c1387e3 Binary files /dev/null and b/website/img/skins/music_kit-4.png differ diff --git a/website/img/skins/music_kit-40.png b/website/img/skins/music_kit-40.png new file mode 100644 index 00000000..d6e22947 Binary files /dev/null and b/website/img/skins/music_kit-40.png differ diff --git a/website/img/skins/music_kit-41.png b/website/img/skins/music_kit-41.png new file mode 100644 index 00000000..365740a0 Binary files /dev/null and b/website/img/skins/music_kit-41.png differ diff --git a/website/img/skins/music_kit-42.png b/website/img/skins/music_kit-42.png new file mode 100644 index 00000000..bfaa86ec Binary files /dev/null and b/website/img/skins/music_kit-42.png differ diff --git a/website/img/skins/music_kit-43.png b/website/img/skins/music_kit-43.png new file mode 100644 index 00000000..123b1a1f Binary files /dev/null and b/website/img/skins/music_kit-43.png differ diff --git a/website/img/skins/music_kit-44.png b/website/img/skins/music_kit-44.png new file mode 100644 index 00000000..f8635c11 Binary files /dev/null and b/website/img/skins/music_kit-44.png differ diff --git a/website/img/skins/music_kit-45.png b/website/img/skins/music_kit-45.png new file mode 100644 index 00000000..bad0ccef Binary files /dev/null and b/website/img/skins/music_kit-45.png differ diff --git a/website/img/skins/music_kit-46.png b/website/img/skins/music_kit-46.png new file mode 100644 index 00000000..514701ed Binary files /dev/null and b/website/img/skins/music_kit-46.png differ diff --git a/website/img/skins/music_kit-47.png b/website/img/skins/music_kit-47.png new file mode 100644 index 00000000..6a1e9a77 Binary files /dev/null and b/website/img/skins/music_kit-47.png differ diff --git a/website/img/skins/music_kit-48.png b/website/img/skins/music_kit-48.png new file mode 100644 index 00000000..f93912a9 Binary files /dev/null and b/website/img/skins/music_kit-48.png differ diff --git a/website/img/skins/music_kit-49.png b/website/img/skins/music_kit-49.png new file mode 100644 index 00000000..562c719c Binary files /dev/null and b/website/img/skins/music_kit-49.png differ diff --git a/website/img/skins/music_kit-5.png b/website/img/skins/music_kit-5.png new file mode 100644 index 00000000..2b97932b Binary files /dev/null and b/website/img/skins/music_kit-5.png differ diff --git a/website/img/skins/music_kit-50.png b/website/img/skins/music_kit-50.png new file mode 100644 index 00000000..8b6ac385 Binary files /dev/null and b/website/img/skins/music_kit-50.png differ diff --git a/website/img/skins/music_kit-51.png b/website/img/skins/music_kit-51.png new file mode 100644 index 00000000..c897b715 Binary files /dev/null and b/website/img/skins/music_kit-51.png differ diff --git a/website/img/skins/music_kit-52.png b/website/img/skins/music_kit-52.png new file mode 100644 index 00000000..172d0589 Binary files /dev/null and b/website/img/skins/music_kit-52.png differ diff --git a/website/img/skins/music_kit-53.png b/website/img/skins/music_kit-53.png new file mode 100644 index 00000000..6c9403c9 Binary files /dev/null and b/website/img/skins/music_kit-53.png differ diff --git a/website/img/skins/music_kit-54.png b/website/img/skins/music_kit-54.png new file mode 100644 index 00000000..39910ba8 Binary files /dev/null and b/website/img/skins/music_kit-54.png differ diff --git a/website/img/skins/music_kit-55.png b/website/img/skins/music_kit-55.png new file mode 100644 index 00000000..a4ed7044 Binary files /dev/null and b/website/img/skins/music_kit-55.png differ diff --git a/website/img/skins/music_kit-56.png b/website/img/skins/music_kit-56.png new file mode 100644 index 00000000..955b1ee6 Binary files /dev/null and b/website/img/skins/music_kit-56.png differ diff --git a/website/img/skins/music_kit-57.png b/website/img/skins/music_kit-57.png new file mode 100644 index 00000000..7752c51e Binary files /dev/null and b/website/img/skins/music_kit-57.png differ diff --git a/website/img/skins/music_kit-58.png b/website/img/skins/music_kit-58.png new file mode 100644 index 00000000..ec575fe3 Binary files /dev/null and b/website/img/skins/music_kit-58.png differ diff --git a/website/img/skins/music_kit-59.png b/website/img/skins/music_kit-59.png new file mode 100644 index 00000000..66ec638d Binary files /dev/null and b/website/img/skins/music_kit-59.png differ diff --git a/website/img/skins/music_kit-6.png b/website/img/skins/music_kit-6.png new file mode 100644 index 00000000..672b58ee Binary files /dev/null and b/website/img/skins/music_kit-6.png differ diff --git a/website/img/skins/music_kit-60.png b/website/img/skins/music_kit-60.png new file mode 100644 index 00000000..fab37329 Binary files /dev/null and b/website/img/skins/music_kit-60.png differ diff --git a/website/img/skins/music_kit-61.png b/website/img/skins/music_kit-61.png new file mode 100644 index 00000000..b1b4007b Binary files /dev/null and b/website/img/skins/music_kit-61.png differ diff --git a/website/img/skins/music_kit-62.png b/website/img/skins/music_kit-62.png new file mode 100644 index 00000000..156ff8f5 Binary files /dev/null and b/website/img/skins/music_kit-62.png differ diff --git a/website/img/skins/music_kit-63.png b/website/img/skins/music_kit-63.png new file mode 100644 index 00000000..f7afff3a Binary files /dev/null and b/website/img/skins/music_kit-63.png differ diff --git a/website/img/skins/music_kit-64.png b/website/img/skins/music_kit-64.png new file mode 100644 index 00000000..a2d109dc Binary files /dev/null and b/website/img/skins/music_kit-64.png differ diff --git a/website/img/skins/music_kit-65.png b/website/img/skins/music_kit-65.png new file mode 100644 index 00000000..f85223ef Binary files /dev/null and b/website/img/skins/music_kit-65.png differ diff --git a/website/img/skins/music_kit-66.png b/website/img/skins/music_kit-66.png new file mode 100644 index 00000000..28d6e20a Binary files /dev/null and b/website/img/skins/music_kit-66.png differ diff --git a/website/img/skins/music_kit-67.png b/website/img/skins/music_kit-67.png new file mode 100644 index 00000000..8b746a9c Binary files /dev/null and b/website/img/skins/music_kit-67.png differ diff --git a/website/img/skins/music_kit-68.png b/website/img/skins/music_kit-68.png new file mode 100644 index 00000000..22547368 Binary files /dev/null and b/website/img/skins/music_kit-68.png differ diff --git a/website/img/skins/music_kit-69.png b/website/img/skins/music_kit-69.png new file mode 100644 index 00000000..9d4f8cf0 Binary files /dev/null and b/website/img/skins/music_kit-69.png differ diff --git a/website/img/skins/music_kit-7.png b/website/img/skins/music_kit-7.png new file mode 100644 index 00000000..c2d372e1 Binary files /dev/null and b/website/img/skins/music_kit-7.png differ diff --git a/website/img/skins/music_kit-71.png b/website/img/skins/music_kit-71.png new file mode 100644 index 00000000..725b2d19 Binary files /dev/null and b/website/img/skins/music_kit-71.png differ diff --git a/website/img/skins/music_kit-72.png b/website/img/skins/music_kit-72.png new file mode 100644 index 00000000..8be7e9a4 Binary files /dev/null and b/website/img/skins/music_kit-72.png differ diff --git a/website/img/skins/music_kit-73.png b/website/img/skins/music_kit-73.png new file mode 100644 index 00000000..9d387464 Binary files /dev/null and b/website/img/skins/music_kit-73.png differ diff --git a/website/img/skins/music_kit-74.png b/website/img/skins/music_kit-74.png new file mode 100644 index 00000000..30859d38 Binary files /dev/null and b/website/img/skins/music_kit-74.png differ diff --git a/website/img/skins/music_kit-75.png b/website/img/skins/music_kit-75.png new file mode 100644 index 00000000..0e7e39e3 Binary files /dev/null and b/website/img/skins/music_kit-75.png differ diff --git a/website/img/skins/music_kit-76.png b/website/img/skins/music_kit-76.png new file mode 100644 index 00000000..3c90a049 Binary files /dev/null and b/website/img/skins/music_kit-76.png differ diff --git a/website/img/skins/music_kit-8.png b/website/img/skins/music_kit-8.png new file mode 100644 index 00000000..00d78b59 Binary files /dev/null and b/website/img/skins/music_kit-8.png differ diff --git a/website/img/skins/music_kit-9.png b/website/img/skins/music_kit-9.png new file mode 100644 index 00000000..8d3759a3 Binary files /dev/null and b/website/img/skins/music_kit-9.png differ