add websockets
This commit is contained in:
+54
-29
@@ -1,3 +1,4 @@
|
|||||||
|
/* eslint-disable camelcase */
|
||||||
import { createApp, ref, unref } from 'vue'
|
import { createApp, ref, unref } from 'vue'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
@@ -8,9 +9,9 @@ const pinia = createPinia()
|
|||||||
|
|
||||||
createApp(App).use(pinia).use(router).mount('#app')
|
createApp(App).use(pinia).use(router).mount('#app')
|
||||||
|
|
||||||
const websocketData = {
|
const dummyData = {
|
||||||
attacker_id: '1010035351172',
|
attacker_id: '1008704914497',
|
||||||
attacker_name: 'Iverral',
|
attacker_name: 'DarkwinV1',
|
||||||
cause_of_death: 'mp_weapon_car',
|
cause_of_death: 'mp_weapon_car',
|
||||||
victim_id: '1008553404453',
|
victim_id: '1008553404453',
|
||||||
victim_name: 'GURENTITANIUM',
|
victim_name: 'GURENTITANIUM',
|
||||||
@@ -23,67 +24,91 @@ const websocketData = {
|
|||||||
host: 1
|
host: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setInterval(() => registerWebSocketKill(dummyData), 100)
|
||||||
|
|
||||||
|
type websocketData = {
|
||||||
|
attacker_id: string,
|
||||||
|
attacker_name: string,
|
||||||
|
cause_of_death: string,
|
||||||
|
victim_id: string,
|
||||||
|
victim_name: string,
|
||||||
|
attacker_current_weapon: string,
|
||||||
|
victim_current_weapon: string,
|
||||||
|
distance: number,
|
||||||
|
game_mode: string,
|
||||||
|
servername: string,
|
||||||
|
map: string,
|
||||||
|
host: number
|
||||||
|
}
|
||||||
|
|
||||||
// dev stuff
|
// dev stuff
|
||||||
|
|
||||||
const store = useKillStore()
|
const store = useKillStore()
|
||||||
function registerWebSocketKill () {
|
const socket = new WebSocket('wss://tone.sleepycat.date/v2/client/websocket')
|
||||||
|
socket.onmessage = function (e) {
|
||||||
|
if (e.data === 'ping') return socket.send('pong')
|
||||||
|
const data = JSON.parse(e.data)
|
||||||
|
registerWebSocketKill(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
function registerWebSocketKill (data : websocketData) {
|
||||||
const allPlayerArrays = store.$state.players.filter((e) => {
|
const allPlayerArrays = store.$state.players.filter((e) => {
|
||||||
return (
|
return (
|
||||||
(!e.value.filter.server ||
|
(!e.value.filter.server ||
|
||||||
e.value.filter.server === websocketData.servername) &&
|
e.value.filter.server === data.servername) &&
|
||||||
(!e.value.filter.weapon ||
|
(!e.value.filter.weapon ||
|
||||||
e.value.filter.weapon === websocketData.cause_of_death)
|
e.value.filter.weapon === data.cause_of_death)
|
||||||
// Handle other types of filters once those are implemented
|
// Handle other types of filters once those are implemented
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
allPlayerArrays.forEach(e => {
|
allPlayerArrays.forEach(e => {
|
||||||
if (!e.value.data[websocketData.attacker_id]) {
|
if (!e.value.data[data.attacker_id]) {
|
||||||
e.value.data[websocketData.attacker_id] = ref({
|
e.value.data[data.attacker_id] = ref({
|
||||||
deaths: 0,
|
deaths: 0,
|
||||||
kills: 500,
|
kills: 500,
|
||||||
max_distance: 0,
|
max_distance: 0,
|
||||||
total_distance: 0,
|
total_distance: 0,
|
||||||
username: websocketData.attacker_name
|
username: data.attacker_name
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
if (!e.value.data[websocketData.victim_id]) {
|
if (!e.value.data[data.victim_id]) {
|
||||||
e.value.data[websocketData.victim_id] = ref({
|
e.value.data[data.victim_id] = ref({
|
||||||
deaths: 0,
|
deaths: 0,
|
||||||
kills: 0,
|
kills: 0,
|
||||||
max_distance: 0,
|
max_distance: 0,
|
||||||
total_distance: 0,
|
total_distance: 0,
|
||||||
username: websocketData.victim_name
|
username: data.victim_name
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
// handle deaths with equipped, eventually
|
// handle deaths with equipped, eventually
|
||||||
/*
|
/*
|
||||||
if(e.value.filter.weapon){
|
if(e.value.filter.weapon){
|
||||||
!e.value.data[websocketData.victim_id] = e.value.data[websocketData.victim_id] = {
|
!e.value.data[data.victim_id] = e.value.data[data.victim_id] = {
|
||||||
deaths: 0,
|
deaths: 0,
|
||||||
kills: 0,
|
kills: 0,
|
||||||
max_distance: 0,
|
max_distance: 0,
|
||||||
total_distance: 0,
|
total_distance: 0,
|
||||||
username: websocketData.victim_name,
|
username: data.victim_name,
|
||||||
}
|
}
|
||||||
} */
|
} */
|
||||||
|
|
||||||
unref(e.value.data[websocketData.victim_id]).deaths++
|
unref(e.value.data[data.victim_id]).deaths++
|
||||||
unref(e.value.data[websocketData.victim_id]).username = websocketData.victim_name
|
unref(e.value.data[data.victim_id]).username = data.victim_name
|
||||||
unref(e.value.data[websocketData.attacker_id]).username = websocketData.attacker_name
|
unref(e.value.data[data.attacker_id]).username = data.attacker_name
|
||||||
unref(e.value.data[websocketData.attacker_id]).kills++
|
unref(e.value.data[data.attacker_id]).kills++
|
||||||
unref(e.value.data[websocketData.attacker_id]).total_distance += websocketData.distance
|
unref(e.value.data[data.attacker_id]).total_distance += data.distance
|
||||||
unref(e.value.data[websocketData.attacker_id]).max_distance = Math.max(websocketData.distance, unref(e.value.data[websocketData.attacker_id]).max_distance)
|
unref(e.value.data[data.attacker_id]).max_distance = Math.max(data.distance, unref(e.value.data[data.attacker_id]).max_distance)
|
||||||
})
|
})
|
||||||
const allWeaponsArrays = store.$state.weapons.filter((e) => {
|
const allWeaponsArrays = store.$state.weapons.filter((e) => {
|
||||||
return (
|
return (
|
||||||
(!e.value.filter.player || e.value.filter.player === websocketData.attacker_id)
|
(!e.value.filter.player || e.value.filter.player === data.attacker_id)
|
||||||
// Handle other types of filters once those are implemented
|
// Handle other types of filters once those are implemented
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
allWeaponsArrays.forEach(e => {
|
allWeaponsArrays.forEach(e => {
|
||||||
if (!e.value.data[websocketData.cause_of_death]) {
|
if (!e.value.data[data.cause_of_death]) {
|
||||||
e.value.data[websocketData.cause_of_death] = ref({
|
e.value.data[data.cause_of_death] = ref({
|
||||||
deaths: 0,
|
deaths: 0,
|
||||||
kills: 500,
|
kills: 500,
|
||||||
max_distance: 0,
|
max_distance: 0,
|
||||||
@@ -94,18 +119,18 @@ function registerWebSocketKill () {
|
|||||||
// handle deaths with equipped, eventually
|
// handle deaths with equipped, eventually
|
||||||
/*
|
/*
|
||||||
if(e.value.filter.weapon){
|
if(e.value.filter.weapon){
|
||||||
!e.value.data[websocketData.victim_id] = e.value.data[websocketData.victim_id] = {
|
!e.value.data[data.victim_id] = e.value.data[data.victim_id] = {
|
||||||
deaths: 0,
|
deaths: 0,
|
||||||
kills: 0,
|
kills: 0,
|
||||||
max_distance: 0,
|
max_distance: 0,
|
||||||
total_distance: 0,
|
total_distance: 0,
|
||||||
username: websocketData.victim_name,
|
username: data.victim_name,
|
||||||
}
|
}
|
||||||
} */
|
} */
|
||||||
|
|
||||||
// unref(e.value.data[websocketData.cause_of_death]).deaths++
|
// unref(e.value.data[data.cause_of_death]).deaths++
|
||||||
unref(e.value.data[websocketData.cause_of_death]).total_distance += websocketData.distance
|
unref(e.value.data[data.cause_of_death]).total_distance += data.distance
|
||||||
unref(e.value.data[websocketData.cause_of_death]).kills++
|
unref(e.value.data[data.cause_of_death]).kills++
|
||||||
unref(e.value.data[websocketData.cause_of_death]).max_distance = Math.max(websocketData.distance, unref(e.value.data[websocketData.cause_of_death]).max_distance)
|
unref(e.value.data[data.cause_of_death]).max_distance = Math.max(data.distance, unref(e.value.data[data.cause_of_death]).max_distance)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user