Browse Source

more player management;

master
Nero Ignis 3 years ago
parent
commit
661d1bd0b9
  1. 32
      src/components/HelloWorld.vue
  2. 40
      src/store/index.js

32
src/components/HelloWorld.vue

@ -1,44 +1,40 @@
<template> <template>
<div> <div>
<div v-if="!$store.state.player"> <div v-if="!$store.state.player">
<input type="text" name="username" v-model="userNameInput"><br> <input type="text" name="username" v-model="playerNameInput"><br>
<button @click="createNewPlayer">Erstellen</button> <button @click="createNewPlayer">Erstellen</button>
{{ response }} {{ response }}
</div> </div>
<div v-else> <div v-else>
Hello, {{ $store.state.player.name }} Hello, {{ $store.state.player.name }}<br>
<br>
<button @click="destroyPlayer">Spielstand löschen</button>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import axios from "axios";
export default { export default {
name: 'HelloWorld', name: 'HelloWorld',
data() { data() {
return { return {
userNameInput: "", playerNameInput: "",
response: '' response: ''
} }
}, },
mounted() { mounted() {
this.$store.commit('fetchUser'); this.$store.commit('fetchPlayer');
}, },
methods: { methods: {
createNewPlayer() { createNewPlayer() {
let component = this; if (this.playerNameInput.trim().length > 0) {
this.$store.commit('createNewPlayer', this.playerNameInput);
axios.post('http://api.luna-development.net/api/player/create', { } else {
name: this.userNameInput.trim(), alert('User name was not provided');
game_id: 1 }
}).then((response) => { },
console.log(response); destroyPlayer() {
component.response = response.data; this.$store.commit('destroyPlayer');
localStorage.setItem('farmfresh_uuid', response.data.uuid);
}).catch((error) => {
console.log(error);
})
} }
} }
} }

40
src/store/index.js

@ -8,7 +8,8 @@ export default createStore({
}, },
getters: {}, getters: {},
mutations: { mutations: {
fetchUser(state) { fetchPlayer(state) {
let vuex = this;
let existingUserUuid = localStorage.getItem('farmfresh_uuid'); let existingUserUuid = localStorage.getItem('farmfresh_uuid');
if (existingUserUuid != null) { if (existingUserUuid != null) {
@ -17,13 +18,48 @@ export default createStore({
).then((response) => { ).then((response) => {
if (response.data && response.data.uuid) { if (response.data && response.data.uuid) {
state.player = response.data; state.player = response.data;
vuex.commit('fetchInventory');
} else { } else {
alert('User not found'); alert('User not found');
} }
}).catch((error) => {
alert('User not found');
console.log(error);
});
}
},
fetchInventory(state) {
axios.get(
'http://api.luna-development.net/api/inventory/fetch/'+state.player.uuid
).then((response) => {
if (response.data.success) {
state.inventory = response.data.inventory;
}
});
},
createNewPlayer(state, userName) {
axios.post('http://api.luna-development.net/api/player/create', {
name: userName.trim(),
game_id: 1
}).then((response) => {
if (response.data.success) {
state.player = response.data.player;
localStorage.setItem('farmfresh_uuid', response.data.player.uuid);
}
}); });
},
destroyPlayer(state) {
axios.post('http://api.luna-development.net/api/player/destroy', {
name: state.player.name,
uuid: state.player.uuid
}).then((response) => {
if (response.data.success) {
state.player = null;
localStorage.removeItem('farmfresh_uuid');
} }
});
} }
}, },
actions: {}, actions: {},
modules: {} modules: {}
}) });

Loading…
Cancel
Save