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 App from './App.vue'
import router from './router'
@@ -8,9 +9,9 @@ const pinia = createPinia()
createApp(App).use(pinia).use(router).mount('#app')
const websocketData = {
attacker_id: '1010035351172',
attacker_name: 'Iverral',
const dummyData = {
attacker_id: '1008704914497',
attacker_name: 'DarkwinV1',
cause_of_death: 'mp_weapon_car',
victim_id: '1008553404453',
victim_name: 'GURENTITANIUM',
@@ -23,67 +24,91 @@ const websocketData = {
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
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) => {
return (
(!e.value.filter.server ||
e.value.filter.server === websocketData.servername) &&
e.value.filter.server === data.servername) &&
(!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
)
})
allPlayerArrays.forEach(e => {
if (!e.value.data[websocketData.attacker_id]) {
e.value.data[websocketData.attacker_id] = ref({
if (!e.value.data[data.attacker_id]) {
e.value.data[data.attacker_id] = ref({
deaths: 0,
kills: 500,
max_distance: 0,
total_distance: 0,
username: websocketData.attacker_name
username: data.attacker_name
})
}
if (!e.value.data[websocketData.victim_id]) {
e.value.data[websocketData.victim_id] = ref({
if (!e.value.data[data.victim_id]) {
e.value.data[data.victim_id] = ref({
deaths: 0,
kills: 0,
max_distance: 0,
total_distance: 0,
username: websocketData.victim_name
username: data.victim_name
})
}
// handle deaths with equipped, eventually
/*
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,
kills: 0,
max_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[websocketData.victim_id]).username = websocketData.victim_name
unref(e.value.data[websocketData.attacker_id]).username = websocketData.attacker_name
unref(e.value.data[websocketData.attacker_id]).kills++
unref(e.value.data[websocketData.attacker_id]).total_distance += websocketData.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.victim_id]).deaths++
unref(e.value.data[data.victim_id]).username = data.victim_name
unref(e.value.data[data.attacker_id]).username = data.attacker_name
unref(e.value.data[data.attacker_id]).kills++
unref(e.value.data[data.attacker_id]).total_distance += data.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) => {
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
)
})
allWeaponsArrays.forEach(e => {
if (!e.value.data[websocketData.cause_of_death]) {
e.value.data[websocketData.cause_of_death] = ref({
if (!e.value.data[data.cause_of_death]) {
e.value.data[data.cause_of_death] = ref({
deaths: 0,
kills: 500,
max_distance: 0,
@@ -94,18 +119,18 @@ function registerWebSocketKill () {
// handle deaths with equipped, eventually
/*
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,
kills: 0,
max_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[websocketData.cause_of_death]).total_distance += websocketData.distance
unref(e.value.data[websocketData.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]).deaths++
unref(e.value.data[data.cause_of_death]).total_distance += data.distance
unref(e.value.data[data.cause_of_death]).kills++
unref(e.value.data[data.cause_of_death]).max_distance = Math.max(data.distance, unref(e.value.data[data.cause_of_death]).max_distance)
})
}