feat(entrance-exit): Support ?entrance remove / ?exit remove (clear mapping); Help-Text aktualisiert
This commit is contained in:
parent
9f7aa5fc94
commit
0ae0817598
1 changed files with 28 additions and 8 deletions
|
|
@ -280,8 +280,8 @@ async function handleCommand(message: Message, content: string) {
|
||||||
'Available commands\n' +
|
'Available commands\n' +
|
||||||
'?help - zeigt diese Hilfe\n' +
|
'?help - zeigt diese Hilfe\n' +
|
||||||
'?list - listet alle Audio-Dateien (mp3/wav)\n' +
|
'?list - listet alle Audio-Dateien (mp3/wav)\n' +
|
||||||
'?entrance <datei.mp3|datei.wav> - setze deinen Entrance-Sound\n' +
|
'?entrance <datei.mp3|datei.wav> | remove - setze oder entferne deinen Entrance-Sound\n' +
|
||||||
'?exit <datei.mp3|datei.wav> - setze deinen Exit-Sound (optional)\n'
|
'?exit <datei.mp3|datei.wav> | remove - setze oder entferne deinen Exit-Sound\n'
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -293,8 +293,19 @@ async function handleCommand(message: Message, content: string) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (cmd === '?entrance') {
|
if (cmd === '?entrance') {
|
||||||
const [, fileName] = parts;
|
const [, fileNameRaw] = parts;
|
||||||
if (!fileName) { await reply('Verwendung: ?entrance <datei.mp3|datei.wav>'); return; }
|
const userId = message.author?.id ?? '';
|
||||||
|
if (!userId) { await reply('Kein Benutzer erkannt.'); return; }
|
||||||
|
const fileName = fileNameRaw?.trim();
|
||||||
|
if (!fileName) { await reply('Verwendung: ?entrance <datei.mp3|datei.wav> | remove'); return; }
|
||||||
|
if (/^(remove|clear|delete)$/i.test(fileName)) {
|
||||||
|
persistedState.entranceSounds = persistedState.entranceSounds ?? {};
|
||||||
|
delete persistedState.entranceSounds[userId];
|
||||||
|
writePersistedState(persistedState);
|
||||||
|
try { console.log(`${new Date().toISOString()} | Entrance removed: user=${userId} (${message.author?.tag || 'unknown'})`); } catch {}
|
||||||
|
await reply('Entrance-Sound entfernt.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
const lower = fileName.toLowerCase();
|
const lower = fileName.toLowerCase();
|
||||||
if (!(lower.endsWith('.mp3') || lower.endsWith('.wav'))) { await reply('Nur .mp3 oder .wav Dateien sind erlaubt'); return; }
|
if (!(lower.endsWith('.mp3') || lower.endsWith('.wav'))) { await reply('Nur .mp3 oder .wav Dateien sind erlaubt'); return; }
|
||||||
const resolve = (() => {
|
const resolve = (() => {
|
||||||
|
|
@ -306,7 +317,6 @@ async function handleCommand(message: Message, content: string) {
|
||||||
} catch { return ''; }
|
} catch { return ''; }
|
||||||
})();
|
})();
|
||||||
if (!resolve) { await reply('Datei nicht gefunden. Nutze ?list.'); return; }
|
if (!resolve) { await reply('Datei nicht gefunden. Nutze ?list.'); return; }
|
||||||
const userId = message.author?.id ?? ''; if (!userId) { await reply('Kein Benutzer erkannt.'); return; }
|
|
||||||
persistedState.entranceSounds = persistedState.entranceSounds ?? {};
|
persistedState.entranceSounds = persistedState.entranceSounds ?? {};
|
||||||
persistedState.entranceSounds[userId] = resolve;
|
persistedState.entranceSounds[userId] = resolve;
|
||||||
writePersistedState(persistedState);
|
writePersistedState(persistedState);
|
||||||
|
|
@ -316,8 +326,19 @@ async function handleCommand(message: Message, content: string) {
|
||||||
await reply(`Entrance-Sound gesetzt: ${resolve}`); return;
|
await reply(`Entrance-Sound gesetzt: ${resolve}`); return;
|
||||||
}
|
}
|
||||||
if (cmd === '?exit') {
|
if (cmd === '?exit') {
|
||||||
const [, fileName] = parts;
|
const [, fileNameRaw] = parts;
|
||||||
if (!fileName) { await reply('Verwendung: ?exit <datei.mp3|datei.wav>'); return; }
|
const userId = message.author?.id ?? '';
|
||||||
|
if (!userId) { await reply('Kein Benutzer erkannt.'); return; }
|
||||||
|
const fileName = fileNameRaw?.trim();
|
||||||
|
if (!fileName) { await reply('Verwendung: ?exit <datei.mp3|datei.wav> | remove'); return; }
|
||||||
|
if (/^(remove|clear|delete)$/i.test(fileName)) {
|
||||||
|
persistedState.exitSounds = persistedState.exitSounds ?? {};
|
||||||
|
delete persistedState.exitSounds[userId];
|
||||||
|
writePersistedState(persistedState);
|
||||||
|
try { console.log(`${new Date().toISOString()} | Exit removed: user=${userId} (${message.author?.tag || 'unknown'})`); } catch {}
|
||||||
|
await reply('Exit-Sound entfernt.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
const lower = fileName.toLowerCase();
|
const lower = fileName.toLowerCase();
|
||||||
if (!(lower.endsWith('.mp3') || lower.endsWith('.wav'))) { await reply('Nur .mp3 oder .wav Dateien sind erlaubt'); return; }
|
if (!(lower.endsWith('.mp3') || lower.endsWith('.wav'))) { await reply('Nur .mp3 oder .wav Dateien sind erlaubt'); return; }
|
||||||
const resolve = (() => {
|
const resolve = (() => {
|
||||||
|
|
@ -329,7 +350,6 @@ async function handleCommand(message: Message, content: string) {
|
||||||
} catch { return ''; }
|
} catch { return ''; }
|
||||||
})();
|
})();
|
||||||
if (!resolve) { await reply('Datei nicht gefunden. Nutze ?list.'); return; }
|
if (!resolve) { await reply('Datei nicht gefunden. Nutze ?list.'); return; }
|
||||||
const userId = message.author?.id ?? ''; if (!userId) { await reply('Kein Benutzer erkannt.'); return; }
|
|
||||||
persistedState.exitSounds = persistedState.exitSounds ?? {};
|
persistedState.exitSounds = persistedState.exitSounds ?? {};
|
||||||
persistedState.exitSounds[userId] = resolve;
|
persistedState.exitSounds[userId] = resolve;
|
||||||
writePersistedState(persistedState);
|
writePersistedState(persistedState);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue