/* global MSP, defaultSkin */ 'use strict'; $('body').on('click', '.player', function () { $('.player-selected').removeClass('player-selected'); $(this).addClass('player-selected'); showPlayerTexturePreview(this.id); }).on('click', '#preview-switch', () => { TexturePreview.previewType === '3D' ? TexturePreview.show2dPreview() : TexturePreview.show3dPreview(); }).on('change', '#preference', async function () { try { const { errno, msg } = await fetch({ type: 'POST', url: url('user/player/preference'), dataType: 'json', data: { pid: $(this).attr('pid'), preference: $(this).val() } }); errno === 0 ? toastr.success(msg) : toastr.warning(msg); } catch (error) { showAjaxError(error); } }); async function showPlayerTexturePreview(pid) { try { const result = await fetch({ type: 'GET', url: url('user/player/show'), dataType: 'json', data: { pid: pid } }); // Render skin preview of selected player ['steve', 'alex', 'cape'].forEach((type) => { const tid = result[`tid_${type}`]; const preview = new TexturePreview(type, tid, result.preference); if (tid) { preview.change2dPreview().change3dPreview(); } else { preview.showNotUploaded(); } }); if ((result.preference === 'default' && !result.tid_steve) || (result.preference === 'slim' && !result.tid_alex)) { // show default skin MSP.changeSkin(defaultSkin); } console.log(`Texture previews of player ${result.player_name} rendered.`); } catch (error) { showAjaxError(error); } } async function changePlayerName(pid) { let newPlayerName = ''; const $playerName = $(`td:contains("${pid}")`).next(); try { newPlayerName = await swal({ title: trans('user.changePlayerName'), text: $('#player_name').attr('placeholder'), inputValue: $playerName.html(), input: 'text', showCancelButton: true, inputValidator: value => (new Promise((resolve, reject) => { value ? resolve() : reject(trans('user.emptyPlayerName')); })) }); } catch (error) { return; } try { const { errno, msg } = await fetch({ type: 'POST', url: url('user/player/rename'), dataType: 'json', data: { pid: pid, new_player_name: newPlayerName } }); if (errno === 0) { swal({ type: 'success', html: msg }); $playerName.html(newPlayerName); } else { swal({ type: 'warning', html: msg }); } } catch (error) { showAjaxError(error); } } function clearTexture(pid) { const dom = `