add websockets

This commit is contained in:
2023-05-05 16:23:04 +02:00
parent b01958b1be
commit 45a8582aa4
+54 -29
View File
@@ -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)
}) })
} }