add websockets
This commit is contained in:
+54
-29
@@ -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)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user