diff --git a/src/main.ts b/src/main.ts index 02cf250..a2f5c8b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -57,14 +57,12 @@ function registerWebSocketKill (data : websocketData) { return objectEqual(filterWithoutPlayer, e.value.filter) })) if (!list) return - if (!(!list.filter.server || list.filter.server.includes(data.servername))) return + if (!(!list.filter.server || list.filter.server === data.servername)) return - const WeaponFilter = (!list.filter.weapon || list.filter.weapon.includes(data.cause_of_death)) - const CurrentWeaponFilter = list.filter.weapon?.includes(data.attacker_current_weapon) + const WeaponFilter = (!list.filter.weapon || list.filter.weapon === data.cause_of_death) + const CurrentWeaponFilter = list.filter.weapon === data.attacker_current_weapon if (!(WeaponFilter || CurrentWeaponFilter)) return - if (!(!list.filter.gamemode || list.filter.gamemode.includes(data.game_mode))) return - if (!list.data[data.victim_id]) { list.data[data.victim_id] = ref({ deaths: 0, diff --git a/src/stores/kill.ts b/src/stores/kill.ts index 184d1b8..248ae5b 100644 --- a/src/stores/kill.ts +++ b/src/stores/kill.ts @@ -3,12 +3,12 @@ import * as assert from 'assert' import { Ref, ref, shallowRef, triggerRef, unref } from 'vue' export interface Filters { - server?: string[]; + server?: string; player?: string; - weapon?: string[]; - host?: string[]; - map?: string[]; - gamemode?: string[]; + weapon?: string; + host?: string; + map?: string; + gamemode?: string; } export function removeNullEntries (a: Filters) { @@ -155,8 +155,6 @@ export const useKillStore = defineStore('kill', { state.weapons.find((e) => objectEqual(unref(e).filter, filters)), getServerList: (state) => (filters: Filters) => state.servers.find((e) => objectEqual(unref(e).filter, filters)), - getGamemodeList: (state) => (filters: Filters) => - state.gamemodes.find((e) => objectEqual(unref(e).filter, filters)), getNSServers: (state) => state.nsServers }, actions: { @@ -169,7 +167,7 @@ export const useKillStore = defineStore('kill', { } fetchWithLoading( 'https://tone.sleepycat.date/v2/client/players?' + - new URLSearchParams(Object.entries(filter).map(e => [e[1]].flat().map(v => [e[0], v])).flat(1)), + new URLSearchParams(filter as Record), (progress) => { if (entry && unref(entry).progress !== 1) { unref(entry).progress = progress @@ -194,7 +192,7 @@ export const useKillStore = defineStore('kill', { fetchWithLoading( 'https://tone.sleepycat.date/v2/client/weapons?' + - new URLSearchParams(Object.entries(filter).map(e => [e[1]].flat().map(v => [e[0], v])).flat(1)), + new URLSearchParams(filter as Record), (progress) => { if (entry && unref(entry).progress !== 1) { unref(entry).progress = progress @@ -218,7 +216,7 @@ export const useKillStore = defineStore('kill', { } fetchWithLoading( 'https://tone.sleepycat.date/v2/client/servers?' + - new URLSearchParams(Object.entries(filter).map(e => [e[1]].flat().map(v => [e[0], v])).flat(1)), + new URLSearchParams(filter as Record), (progress) => { if (entry && unref(entry).progress !== 1) { unref(entry).progress = progress @@ -233,30 +231,6 @@ export const useKillStore = defineStore('kill', { }) return entry }, - fetchGamemodes (filter: Filters) { - filter = removeNullEntries(filter) - let entry = this.gamemodes.find((e) => objectEqual(unref(e).filter, filter)) - if (!entry) { - entry = shallowRef({ filter, data: {} }) - this.gamemodes.push(entry) - } - fetchWithLoading( - 'https://tone.sleepycat.date/v2/client/gamemodes?' + - new URLSearchParams(Object.entries(filter).map(e => [e[1]].flat().map(v => [e[0], v])).flat(1)), - (progress) => { - if (entry && unref(entry).progress !== 1) { - unref(entry).progress = progress - if (progress !== 1) triggerRef(entry) - } - } - ).then(async response => { - if (entry) { - unref(entry).data = Object.fromEntries(Object.entries(await response?.json()).map(e => [e[0], ref(e[1] as Kill)])) - triggerRef(entry) - } - }) - return entry - }, fetchNSServers () { fetch( 'https://northstar.tf/client/servers').then(async response => { diff --git a/src/views/PlayerView.vue b/src/views/PlayerView.vue index 306f63a..9107ad1 100644 --- a/src/views/PlayerView.vue +++ b/src/views/PlayerView.vue @@ -8,28 +8,11 @@ v-model="model.server" :options="sortedServerList" :allow-empty="true" - :close-on-select="false" - :multiple="true" > - - - - - - -
@@ -83,7 +65,7 @@