import { UpdateSkillValueRequest, UpdateAttributeRequest } from "../../_proto/cofd_api_pb"; import * as api from "../api"; (async () => { type Option = T | null | undefined; //TODO start refactoring these into a separate script, and make API calls //take all necessary info (e.g. username and character ID, plus other stuff) //as object params. //const root = await protobuf.load("/protos/cofd_api.proto"); const [, , USERNAME, CHARACTER_ID] = window.location.pathname.split('/'); function setupAttributes() { const attributeInputs = document.querySelectorAll('#attributes input[type="number"]'); async function attributeHandler(event: Event) { const input = event.target as Option; if (!input) return; console.log("updating attr"); const attribute = input.id; const newValue = parseInt(input.value); const params = new UpdateAttributeRequest(); params.setCharacterUsername(USERNAME); params.setCharacterId(parseInt(CHARACTER_ID)); params.setAttributeName(attribute); params.setAttributeValue(newValue); await api.updateAttributeValue(params); } Array.from(attributeInputs).forEach(input => { input.addEventListener('change', attributeHandler); }); } function setupSkills() { const skillInputs = document.querySelectorAll('#skills input[type="number"]'); async function skillValueHandler(event: Event) { const input = event.target as Option; if (!input) return; console.log("updating skill"); const attribute = input.id; const newValue = parseInt(input.value); const params = new UpdateSkillValueRequest(); params.setCharacterUsername(USERNAME); params.setCharacterId(parseInt(CHARACTER_ID)); params.setSkillName(attribute); params.setSkillValue(newValue); await api.updateSkillValue(params); } Array.from(skillInputs).forEach(input => { input.addEventListener('change', skillValueHandler); }); } setupAttributes(); setupSkills(); })().catch(e => { alert(e); });