Ban Management System
Neueste Bans
{{ recentBans.length }}
in den letzten 24 Stunden
mdi-account-cancel
mdi-account-off
{{ ban.name }}
{{ ban.reason }}
{{ formatDate(ban.created_at) }}
User Avatar
{{ ban.name }}
ID: {{ ban.idx }}
License: {{ ban.license }}
Grund: {{ ban.reason }}
Admin: {{ ban.admin }}
Erstellt: {{ formatDate(ban.created_at) }}
Gültig bis: {{ ban.valid_until === 0 ? 'Permanent' : formatDate(ban.valid_until) }} PERMANENT
Unban
mdi-account-search
Keine Bans gefunden
Versuche eine andere Suche
VB-AC Bans
{{ vbacBans.length }}
Anti-Cheat Erkennungen
mdi-shield-alert
User Avatar
{{ vbac.targetplayername }}
License: {{ vbac.license }}
Discord: {{ vbac.discord }}
IP: {{ vbac.playerip }}
Grund: {{ vbac.reason }}
Source: {{ vbac.sourceplayername }}
Zeit: {{ formatDate(vbac.timeat) }} PERMANENT
Unban
mdi-shield-search
Keine VB-AC Einträge gefunden
Versuche eine andere Suche
Ban Details Name {{ selectedBan.name }} ID {{ selectedBan.idx || selectedBan.license }} License {{ selectedBan.license }} Grund {{ selectedBan.reason }} Admin {{ selectedBan.admin || selectedBan.sourceplayername }} Erstellt am {{ formatDateLong(selectedBan.created_at || selectedBan.timeat) }} Gültig bis {{ (selectedBan.valid_until === 0 || selectedBan.permanent) ? 'Permanent' : formatDateLong(selectedBan.valid_until || selectedBan.expiration) }} Schließen {{ snackbar.text }}
theme: { defaultTheme: 'light', themes: { light: { colors: { primary: '#1976D2', secondary: '#424242', accent: '#82B1FF', error: '#FF5252', info: '#2196F3', success: '#4CAF50', warning: '#FB8C00', } } } } }); createApp({ data() { return { drawer: true, currentView: 'bans', searchQuery: '', vbacSearchQuery: '', detailsDialog: false, selectedBan: null, snackbar: { show: false, text: '', color: 'success' }, // Sample Bans Data (wird später durch API ersetzt) bans: [ {id: 1, idx: 'TBO46-MG766', name: 'lululemommm', license: 'license:8fd36ed3a083f28c84eeccf918fa1aa63b225215', reason: 'Modder', created_at: 1754511788, valid_until: 0, admin: 'Admin | Tom'}, {id: 10, idx: 'FPV51-NG556', name: 'FalkoDerErwachte', license: 'license:f8fe904862a6cc241a3e8f0da67448021aa9f9a0', reason: 'Troller, Fail-RP, Suizid-RP', created_at: 1754514624, valid_until: 1786050624, admin: 'BP | _', playerip: '94.31.112.53', targetplayername: 'KIKI111', sourceplayername: 'VB-AC', reason: ' FreeCam Detected', timeat: 1758651986, expiration: 1758651986, permanent: 1}, {license: 'license:05aad2631a145d1f1bbe0505490028e8d44f61cb', discord: '<@1201532944238514216>', playerip: '93.239.123.159', targetplayername: 'hanzistgeil', sourceplayername: 'VB-AC', reason: ' Blacklisted Prop', timeat: 1754728773, expiration: 1754728773, permanent: 1}, {license: 'license:0f1f54d1c84ab558d6f4619ef492c9c617b229b2', discord: '<@848248238866825246>', playerip: '77.7.32.31', targetplayername: 'arda.xyz', sourceplayername: 'VB-AC', reason: 'Anti-Cheat Timeout', timeat: 1763819751, expiration: 1763819751, permanent: 1}, {license: 'license:10426f70a637a919eaa8118783dbad9a00037797', discord: '<@1356070077581230181>', playerip: '93.243.89.253', targetplayername: 'XimKanacke #FreeErcanKanacke', sourceplayername: 'VB-AC', reason: 'Weapon cheat detected', timeat: 1757366996, expiration: 1757366996, permanent: 1}, {license: 'license:124997246ff12c67e17e53335d088c9128dc7ce2', discord: '<@1355687607379431506>', playerip: '213.149.85.42', targetplayername: 'haru', sourceplayername: 'VB-AC', reason: 'Weapon cheat detected', timeat: 1755199454, expiration: 1755199454, permanent: 1}, ] }; }, computed: { recentBans() { // Sortiere nach created_at und nimm die ersten 5 return [...this.bans] .sort((a, b) => b.created_at - a.created_at) .slice(0, 5); }, filteredBans() { if (!this.searchQuery) { return this.bans; } const query = this.searchQuery.toLowerCase(); return this.bans.filter(ban => { return ( ban.name.toLowerCase().includes(query) || ban.idx.toLowerCase().includes(query) || ban.license.toLowerCase().includes(query) || ban.reason.toLowerCase().includes(query) || ban.admin.toLowerCase().includes(query) ); }); }, filteredVbacBans() { if (!this.vbacSearchQuery) { return this.vbacBans; } const query = this.vbacSearchQuery.toLowerCase(); return this.vbacBans.filter(vbac => { return ( vbac.targetplayername.toLowerCase().includes(query) || vbac.license.toLowerCase().includes(query) || vbac.discord.toLowerCase().includes(query) || vbac.reason.toLowerCase().includes(query) || vbac.playerip.toLowerCase().includes(query) ); }); } }, methods: { formatDate(timestamp) { const date = new Date(timestamp * 1000); return date.toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' }); }, formatDateLong(timestamp) { const date = new Date(timestamp * 1000); return date.toLocaleString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric', hour: '2-digit', minute: '2-digit' }); }, unbanUser(ban) { // Hier würde die API-Anfrage zum Unban erfolgen console.log('Unban user:', ban); this.snackbar = { show: true, text: `${ban.name} wurde erfolgreich entbannt!`, color: 'success' }; // Entferne den Ban aus der Liste (in der Praxis würde das der Server machen) const index = this.bans.findIndex(b => b.id === ban.id); if (index > -1) { this.bans.splice(index, 1); } }, unbanVbacUser(vbac) { // Hier würde die API-Anfrage zum Unban erfolgen console.log('Unban VB-AC user:', vbac); this.snackbar = { show: true, text: `${vbac.targetplayername} wurde erfolgreich entbannt!`, color: 'success' }; // Entferne den VB-AC Ban aus der Liste const index = this.vbacBans.findIndex(v => v.targetplayername === vbac.targetplayername && v.timeat === vbac.timeat); if (index > -1) { this.vbacBans.splice(index, 1); } }, showBanDetails(ban) { this.selectedBan = ban; this.detailsDialog = true; }, showVbacDetails(vbac) { this.selectedBan = vbac; this.detailsDialog = true; } } }).use(vuetify).mount('#app');