You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
const enableLeveling = (groupId) => {
if (!levelData[groupId]) {
levelData[groupId] = {
members: {},
enabled: true
};
saveLevelData();
return Level-System für die Gruppe ${groupId} aktiviert;
} else if (!levelData[groupId].enabled) {
levelData[groupId].enabled = true;
saveLevelData();
return Level-System für die Gruppe ${groupId} wieder aktiviert;
} else {
return Level-System ist bereits für die Gruppe ${groupId} aktiviert;
}
};
const disableLeveling = (groupId) => {
if (levelData[groupId] && levelData[groupId].enabled) {
delete levelData[groupId];
saveLevelData();
return Level-System für die Gruppe ${groupId} deaktiviert;
} else {
return Level-System ist nicht für die Gruppe ${groupId} aktiviert;
}
};
const getLeaderboard = (groupId) => {
if (levelData[groupId] && levelData[groupId].enabled) {
const members = Object.entries(levelData[groupId].members).sort((a, b) => b[1].xp - a[1].xp);
let leaderboard = Rangliste für die Gruppe ${groupId}:\n;
members.forEach(([id, data], index) => {
leaderboard += ${index + 1}. ${id} - Level: ${data.level}, XP: ${data.xp}\n;
});
return leaderboard;
} else {
return Level-System ist nicht für die Gruppe ${groupId} aktiviert;
}
};
const getLevel = (groupId, userId) => {
if (levelData[groupId] && levelData[groupId].enabled && levelData[groupId].members[userId]) {
const user = levelData[groupId].members[userId];
return ${userId} - Level: ${user.level}, XP: ${user.xp};
} else {
return Keine Daten für Benutzer ${userId} in Gruppe ${groupId};
}
};
// Initialisiere die Bewertungen, falls die Datei nicht existiert
if (!fs.existsSync(RATINGS_FILE)) {
fs.writeFileSync(RATINGS_FILE, JSON.stringify({}));
}
if (fs.existsSync('warnings.json')) {
warnings = JSON.parse(fs.readFileSync('warnings.json', 'utf8'));
}
if (fs.existsSync('afk.json')) {
afkStatus = JSON.parse(fs.readFileSync('afk.json', 'utf8'));
}
if (fs.existsSync('bans.json')) {
banned = JSON.parse(fs.readFileSync('bans.json', 'utf-8'));
}
function saveAntilinkConfig() {
fs.writeFileSync(ANTILINK_FILE_PATH, JSON.stringify(antilinkConfig, null, 2));
}
// Funktion zum Hinzufügen einer Gruppe zum Antilink-System
function enableAntilink(groupId) {
const existingGroup = antilinkConfig.groups.find(group => group.groupId === groupId);
if (existingGroup) {
existingGroup.enabled = true;
} else {
antilinkConfig.groups.push({ groupId, enabled: true });
}
saveAntilinkConfig();
}
// Funktion zum Entfernen einer Gruppe aus dem Antilink-System
function disableAntilink(groupId) {
antilinkConfig.groups = antilinkConfig.groups.filter(group => group.groupId !== groupId);
saveAntilinkConfig();
}
// Funktion zum Überprüfen, ob das Antilink-System für eine Gruppe aktiviert ist
function isAntilinkEnabled(groupId) {
const group = antilinkConfig.groups.find(group => group.groupId === groupId);
return group ? group.enabled : false;
}
function handleOwnerCommands(client, message, command, args) {
switch (command) {
case 'group-leave':
groupLeave(client, message);
break;
case 'addadmin':
addAdmin(client, message, args);
break;
case 'botban':
permaBotBan(client, message, args)
default:
client.sendText(message.from, Unbekannter Owner-Befehl: ${command});
}
}
function handleAdminCommands(client, message, command, args) {
switch (command) {
case 'warn':
warnUser(client, message, args);
break;
case 'kick':
kickUser(client, message, args);
break;
case 'help':
sendHelpMessage(client, message);
break;
case 'say':
echoMessage(client, message, args.join(' '));
break;
case 'info':
sendInfoMessage(client, message);
break;
case 'wetter':
sendWeatherMessage(client, message, args.join(' '));
break;
case 'session':
showSession(client, message);
break;
case 'owners':
showOwners(client, message);
break;
case 'joinreq':
handleJoinRequest(client, message, args);
break;
case 'trash':
sendTrashMessage(client, message, args);
break;
case 'fuck':
sendFuckMessage(client, message, args);
break;
case 'myinfo':
sendMyInfo(client, message)
case 'tipp':
sendTipMessage(client, message);
break;
case 'starttimer':
startTimer(client, message, args);
break;
case 'stoptimer':
stopTimer(client, message, args);
break;
case 'wave':
sendWaveMessage(client, message, args);
break;
case 'poop':
sendPoopMessage(client, message);
break;
case 'question':
sendRandomQuestion(client, message);
break;
case 'emoji':
sendRandomEmojis(client, message);
break;
case 'slap':
slapUser(client, message, args);
break;
case 'nandukek':
nichtkek(client, message);
break;
case 'ping':
pingmsg(client, message);
break;
case '8ball':
eightBall(client, message);
break;
case 'roll':
diceroll(client, message, args);
break;
case 'coinflip':
coinFlip(client, message);
break;
case 'antilink-enable':
const groupIdToEnable = message.chatId; // oder args[0] für eine spezifische Gruppen-ID
enableAntilink(groupIdToEnable);
client.sendText(message.from, Antilink wurde für die Gruppe aktiviert.);
break;
case 'antilink-disable':
const groupIdToDisable = message.chatId; // oder args[0] für eine spezifische Gruppen-ID
disableAntilink(groupIdToDisable);
client.sendText(message.from, Antilink wurde für die Gruppe deaktiviert.);
break;
case 'kickme':
kickself(client, message);
break;
case 'sticker':
createSticker(client, message);
break;
case 'report':
sendReport(client, message);
break;
case 'support':
handleSupportCommand(client, message);
break;
case 'bewerten':
handleRateCommand(client, message);
break;
case 'bewertungen':
handleRatingsCommand(client, message);
break;
case 'leveling-enable':
commandEnable(client, message);
break;
case 'leveling-disable':
commandDisable(client, message);
break;
case 'lb':
commandLeaderboard(client, message);
break;
case 'level':
commandLevel(client, message);
break;
case 'cookie':
sendCookieMessage(client, message, args);
break;
default:
client.sendText(message.from, Unbekannter Admin-Befehl: ${command});
}
}
function handleUserCommands(client, message, command, args) {
switch (command) {
case 'help':
sendHelpMessage(client, message);
break;
case 'say':
echoMessage(client, message, args.join(' '));
break;
case 'info':
sendInfoMessage(client, message);
break;
case 'wetter':
sendWeatherMessage(client, message, args.join(' '));
break;
case 'session':
showSession(client, message);
break;
case 'owners':
showOwners(client, message);
break;
case 'joinreq':
handleJoinRequest(client, message, args);
break;
case 'trash':
sendTrashMessage(client, message, args);
break;
case 'fuck':
sendFuckMessage(client, message, args);
break;
case 'myinfo':
sendMyInfo(client, message)
case 'tipp':
sendTipMessage(client, message);
break;
case 'starttimer':
startTimer(client, message, args);
break;
case 'stoptimer':
stopTimer(client, message, args);
break;
case 'wave':
sendWaveMessage(client, message, args);
break;
case 'poop':
sendPoopMessage(client, message);
break;
case 'question':
sendRandomQuestion(client, message);
break;
case 'emoji':
sendRandomEmojis(client, message);
break;
case 'slap':
slapUser(client, message, args);
break;
case 'nandukek':
nichtkek(client, message);
break;
case 'ping':
pingmsg(client, message);
break;
case '8ball':
eightBall(client, message);
break;
case 'roll':
diceroll(client, message, args);
break;
case 'coinflip':
coinFlip(client, message);
break;
case 'kickme':
kickself(client, message);
break;
case 'sticker':
createSticker(client, message);
break;
case 'report':
sendReport(client, message);
break;
case 'support':
handleSupportCommand(client, message);
break;
case 'bewerten':
handleRateCommand(client, message);
break;
case 'bewertungen':
handleRatingsCommand(client, message);
break;
case 'lb':
commandLeaderboard(client, message);
break;
case 'level':
commandLevel(client, message);
break;
case 'cookie':
sendCookieMessage(client, message, args);
break;
default:
client.sendText(message.from, Unbekannter Befehl: ${command});
}
client.onMessage(async message => {
const groupId = message.chatId;
const joinRequest = Object.keys(joinRequests).find(link => joinRequests[link].requester === groupId);
if (joinRequest && message.body.toLowerCase() === 'ja') {
try {
await client.joinGroupViaLink(joinRequest);
client.sendText(APPROVAL_GROUP_ID, `Der Bot ist der Gruppe auf Anfrage von @${joinRequests[joinRequest].requester.split('@')[0]} beigetreten.`);
delete joinRequests[joinRequest];
} catch (error) {
client.sendText(APPROVAL_GROUP_ID, `Fehler beim Beitreten der Gruppe: ${error.message}`);
}
}
});
}
function sendWaveMessage(client, message, args) {
const target = args.join(' ');
if (!target) {
client.sendText(message.from, 'Bitte geben Sie den Namen der Person an, der Sie winken möchten. Beispiel: !wave <Name>');
return;
}
client.sendText(message.from, `👋 ${target}, ${message.sender.pushname} winkt dir zu!`);
// Extrahiere die Benutzer-ID aus der Erwähnung
const rateUserId = rateUserMention.slice(9).trim();
const rating = parseInt(ratingRaw);
// Überprüfen, ob die Bewertung gültig ist
if (!rateUserId || isNaN(rating) || rating < 1 || rating > 5) {
await client.sendText(from, 'Verwendung: !bewerten <@nummer> <1-5>');
return;
}
// Bewertungen laden
let ratings = {};
if (fs.existsSync(RATINGS_FILE)) {
ratings = JSON.parse(fs.readFileSync(RATINGS_FILE, 'utf8'));
}
// Überprüfen, ob der Benutzer bereits bewertet wurde
if (!ratings[rateUserId]) {
ratings[rateUserId] = {
totalStars: rating,
numRatings: 1
};
} else {
// Benutzer wurde bereits bewertet, aktualisiere die Bewertungen
ratings[rateUserId].totalStars += rating;
ratings[rateUserId].numRatings++;
}
// Aktualisierte Daten in die Datei schreiben
fs.writeFileSync(RATINGS_FILE, JSON.stringify(ratings));
await client.sendText(from, `Benutzer ${rateUserMention} wurde mit ${rating} Sternen bewertet.`);
}
// Funktion, um die Bestenliste der Bewertungen anzuzeigen
async function handleRatingsCommand(client, message) {
const { from } = message;
// Bewertungen laden
let ratings = {};
if (fs.existsSync(RATINGS_FILE)) {
ratings = JSON.parse(fs.readFileSync(RATINGS_FILE, 'utf8'));
}
// Berechne den Durchschnitt der Bewertungen für jeden Benutzer
const averageRatings = Object.keys(ratings).map(userId => {
const userRatings = ratings[userId];
const averageRating = userRatings.totalStars / userRatings.numRatings;
return {
userId: userId.includes('@c.us') ? userId : `+${userId}`,
averageRating,
numRatings: userRatings.numRatings
};
});
// Sortiere nach dem durchschnittlichen Bewertungslevel und Anzahl der Bewertungen
averageRatings.sort((a, b) => b.averageRating - a.averageRating || b.numRatings - a.numRatings);
// Erstelle die Antwortnachricht
let responseMessage = 'Top-Bewertungen:\n';
averageRatings.slice(0, 10).forEach((user, index) => {
responseMessage += `${index + 1}. ${user.userId} : ${user.averageRating.toFixed(2)} Sterne (${user.numRatings} Bewertungen)\n`;
});
await client.sendText(from, responseMessage);
}
function slapUser(client, message, args) {
const target = args.join(' ');
if (!target) {
client.sendText(message.from, 'Bitte gib an, wen du schlagen möchtest. Beispiel: !slap @Zielname');
return;
}
const responseText = `${message.sender.pushname} hat ${target} auf den Arsch geschlagen 🍑`;
client.sendText(message.from, responseText);
}
function permaBotBan(client, message, args) {
client.sendText(message.from, 'Dieser Befehl ist in Wartung!')
}
async function handleSupportCommand(client, message) {
const { from, body, sender } = message;
const supportMessage = body.slice(9).trim();
if (supportMessage) {
await client.sendText(SUPPORT_GROUP_ID, Neue Support-Anfrage von ${sender.id}:\n\n${supportMessage});
await client.sendText(from, 'Deine Support-Anfrage wurde gesendet.');
} else {
await client.sendText(from, 'Bitte gib eine Nachricht an, die du für den Support senden möchtest.');
}
}
function sendTipMessage(client, message) {
const tips = [
"Trinke jeden Tag genug Wasser!",
"Mache regelmäßige Pausen während der Arbeit.",
"Lerne jeden Tag etwas Neues.",
"Bewege dich regelmäßig und halte dich fit.",
"Lese Bücher, um deinen Geist zu erweitern.",
"Schlafe ausreichend, um erholt zu sein.",
"Verbringe Zeit mit Familie und Freunden.",
"Halte dein Zuhause und deinen Arbeitsplatz ordentlich.",
"Meditiere, um Stress abzubauen.",
"Plane deine Aufgaben, um organisiert zu bleiben."
];
function sendHelpMessage(client, message) {
const helpText = *📚 Hilfe - Verfügbare Befehle:* 1. *!help* - Zeigt diese Hilfenachricht an 2. *!say <Nachricht>* - Wiederholt die Nachricht 3. *!info* - Zeigt Informationen über den Bot 4. *!wetter <Ort>* - Zeigt das Wetter für den angegebenen Ort an 5. *!session* - Zeigt die Aktuelle Session an. 6. *!owners* - Zeigt alle Owner an 7. *!joinreq <Gruppenlink>* - Erstellt eine Beitrittsanfrage 8. *!trash* - Steck jemmanden in den Müll 9. *!fuck* - Fuck jemmanden 10. *!tipp* - Sendet einen Tipp des Tages 11. *!starttimer <Name> <Zeit_in_Sekunden>* - Startet einen Timer 12. *!stoptimer <Name>* - Stoppt einen Timer 13. *!myinfo* - Zeigt deine Info 14. *!wave <Name>* - Winkt jemanden 15. *!poop* - Sendet ein Haufen 16. *!question* - Fragt dich etwas 17. *!emoji* - Sendet ein Random Emoji 18. *!slap* - Slage einen Random Nutzer 19. *!ping* - Zeigt den Aktuellen Ping an 20. *!8ball* - Sagt dir eine Random Antwort 21. *!roll* - Würfel den Würfel 22. *!coinflip* - Flippe eine Münze 23. *!antilink-enable* - Aktiviere das Anti-Link System 24. *!antilink-disable* - Deaktiviere das Anti-Link System 25. *!kickme* - Kick dich selber 26. *!sticker* - Erstelle mit einem Bild ein Sticker 27. *!report* - Melde einen Nutzer, eine Gruppe etc. 28. *!support* - Frage Support an. 29. *!bewerten* - Bewerte einen nutzer von 1 - 5 30. *!bewertungen* - Zeigt deine Bewertungen 31. *!leveling-enable* - Aktiviere das Leveling System 32. *!leveling-disable* - Deaktiviere das Leveling System 33. *!lb* - Schau dir das Leaderboard der Gruppe an 34. *!level* - Schau dir dein Aktuelles Level an;
client.sendText(message.from, helpText);
}
function mainMenu(client, message) {
const mainMenuText =
}
async function sendReport(client, message) {
try {
const reportContent = message.body.slice(8).trim(); // Entfernt das Kommando "!report" und Leerzeichen
if (reportContent) {
const reportMessage = Neuer Bericht von ${message.sender.pushname} (${message.from}):\n\n${reportContent};
await client.sendText(REPORT_GROUP_ID, reportMessage);
await client.sendText(message.from, 'Dein Bericht wurde erfolgreich gesendet!');
} else {
await client.sendText(message.from, 'Bitte geben Sie einen Berichtstext nach dem Befehl "!report" ein.');
}
} catch (err) {
console.error('Fehler beim Senden des Berichts:', err);
await client.sendText(message.from, 'Entschuldigung, es gab einen Fehler beim Senden deines Berichts.');
}
}
function senduserid(client, message) {
console.log(message.sender.id);
}
function diceroll(client, message, args) {
const max = parseInt(args[0]) || 6; // Standardmäßig auf 6 setzen, wenn keine Zahl angegeben ist
const randomNumber = Math.floor(Math.random() * max) + 1;
client.sendText(message.from, 🎲 Du hast eine ${randomNumber} gewürfelt (1-${max}));
}
function coinFlip(client, message) {
const result = Math.random() < 0.5 ? 'Kopf' : 'Zahl';
client.sendText(message.from, Münzwurf: ${result});
}
function nichtkek(client, message) {
client.sendText(message.from, 'Hey! Nenn mich nicht nicht so!');
}
function stopTimer(client, message, args) {
const timerName = args[0];
if (!timerName || !activeTimers[timerName]) {
client.sendText(message.from, `Es läuft kein Timer mit dem Namen "${timerName}".`);
return;
}
clearTimeout(activeTimers[timerName]);
delete activeTimers[timerName];
client.sendText(message.from, `⏱️ Timer "${timerName}" wurde gestoppt.`);
}
function pingmsg(client, message) {
const start = Date.now();
client.sendText(message.from, 'Pong! 🏓').then(() => {
const end = Date.now();
const latency = end - start;
client.sendText(message.from, Ping: ${latency}ms);
}).catch(err => {
console.error('Fehler beim Senden der Ping-Nachricht:', err);
});
}
let randomEmojis = '';
for (let i = 0; i < 5; i++) {
const randomIndex = Math.floor(Math.random() * emojis.length);
randomEmojis += emojis[randomIndex] + ' ';
}
client.sendText(message.from, `🎉 Hier sind 5 zufällige Emojis für dich:\n${randomEmojis}`);
}
function sendPoopMessage(client, message) {
client.sendText(message.from, 💩 *Plop!* Hier kommt das Häufchen von ${message.sender.pushname} 💩);
}
function sendRandomQuestion(client, message) {
const questions = [
"Was war das lustigste Erlebnis deiner Kindheit?",
"Wenn du einen Tag lang unsichtbar wärst, was würdest du tun?",
"Was ist deine Lieblingsspeise und warum?",
"Welche Fähigkeit würdest du gerne erlernen, wenn du alles könntest?",
"Wenn du in der Zeit zurückreisen könntest, in welche Epoche würdest du gehen?",
"Was ist dein Lieblingsfilm und warum gefällt er dir so gut?",
"Wenn du ein Tier sein könntest, welches wärst du und warum?",
"Was war das beste Geschenk, das du jemals erhalten hast?",
"Wenn du einen Superhelden als besten Freund haben könntest, wer wäre es?",
"Was ist deine liebste Freizeitbeschäftigung und warum macht sie dir Spaß?"
];
const randomIndex = Math.floor(Math.random() * questions.length);
const randomQuestion = questions[randomIndex];
client.sendText(message.from, `🤔 Hier ist eine Frage für dich:\n${randomQuestion}`);
}
function startTimer(client, message, args) {
const timerName = args[0];
const duration = parseInt(args[1]); // In Sekunden
if (!timerName || isNaN(duration) || duration <= 0) {
client.sendText(message.from, 'Ungültige Verwendung! Beispiel: !starttimer <Name> <Zeit_in_Sekunden>');
return;
}
if (activeTimers[timerName]) {
client.sendText(message.from, `Ein Timer mit dem Namen "${timerName}" läuft bereits.`);
return;
}
activeTimers[timerName] = setTimeout(() => {
client.sendText(message.from, `⏰ Timer "${timerName}" ist abgelaufen!`);
delete activeTimers[timerName];
}, duration * 1000);
client.sendText(message.from, `⏱️ Timer "${timerName}" gestartet für ${duration} Sekunden.`);
}
async function sendMyInfo(client, message) {
if (!message.sender) {
client.sendText(message.from, 'Fehler: Absenderinformationen fehlen.');
return;
}
function showSession(client, message) {
const sessionText = *── 「 Session 」 ──* Das sind die Sessions. ➸ SessionID: Sommerzeit ➸ Bot Owner: Damian Schönberger;
client.sendText(message.from, sessionText);
}
function showOwners(client, message) {
const ownermessage = *── 「 Owner 」 ──* Das sind alle Bot Owner ➸ Damian +491787157956;
client.sendText(message.from, ownermessage);
}
function echoMessage(client, message, text) {
client.sendText(message.from, 🔁 ${text});
}
function sendInfoMessage(client, message) {
const infoText = *── 「 Bot Infos 」 ──* ➸ Version: 1.0.0 ➸ Entwickler: Damian Schönberger ➸ Beschreibung: Dies ist ein nützlicher Öffentlicher WhatsApp Bot;
client.sendText(message.from, infoText);
}
function getWeather(location) {
return Promise.resolve(Das Wetter in ${location}: 🌞 Sonnig, 25°C);
}
function sendWeatherMessage(client, message, location) {
getWeather(location).then(weatherInfo => {
client.sendText(message.from, 🌤 Wetterinformation:\n${weatherInfo});
}).catch(error => {
client.sendText(message.from, Fehler beim Abrufen der Wetterdaten: ${error.message});
});
}
function groupLeave(client, message) {
const groupId = message.chatId;
try {
client.sendText(groupId, 'Ich verlasse die Gruppe auf Anweisung des Owners.');
client.leaveGroup(groupId);
client.deleteChat(groupId);
console.log(Bot hat Gruppe ${groupId} verlassen.);
} catch (error) {
console.error(Fehler beim Verlassen der Gruppe ${groupId}: ${error});
}
}
if (!warnings[groupId]) {
warnings[groupId] = {};
}
if (!warnings[groupId][userToWarn]) {
warnings[groupId][userToWarn] = 0;
}
warnings[groupId][userToWarn] += 1;
fs.writeFileSync('warnings.json', JSON.stringify(warnings));
client.sendText(groupId, `${userToWarn} hat nun ${warnings[groupId][userToWarn]} Warnung(en).`);
if (warnings[groupId][userToWarn] >= 3) {
client.sendText(groupId, `${userToWarn} hat 3 Warnungen erhalten und wird nun aus der Gruppe entfernt.`);
kickUser(client, { chatId: groupId, sender: { id: userToWarn } });
}
}
function kickUser(client, message, args) {
const userToKick = args.length > 0 ? args[0] : message.sender.id;
client.removeParticipant(message.chatId, userToKick).then(() => {
client.sendText(message.chatId, ${userToKick} wurde aus der Gruppe entfernt.);
}).catch(err => {
client.sendText(message.chatId, Fehler beim Entfernen des Benutzers: ${err.message});
});
}
function addAdmin(client, message, args) {
const newAdmin = args[0];
// Hier kannst du die Logik hinzufügen, um einen neuen Admin hinzuzufügen
// Z.B.: ADMIN_NUMBERS.push(newAdmin);
client.sendText(message.from, ${newAdmin} wurde als Admin hinzugefügt.);
}
if (!groupLink) {
client.sendText(message.from, 'Bitte geben Sie einen Gruppenlink an. Beispiel: !joinreq https://chat.whatsapp.com/...');
return;
}
joinRequests[groupLink] = { requester: requestingUser, requestedAt: new Date() };
client.sendText(APPROVAL_GROUP_ID, `📢 Beitrittsanfrage von ${message.sender.pushname} (@${requestingUser.split('@')[0]}).\nGruppe: ${groupLink}\nBitte antworten Sie mit "ja" um den Bot beitreten zu lassen.`);
}
function sendFuckMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
function sendCookieMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
function sendTrashMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
Are you using the latest version of the library?
What type of session are you experiencing this issue on?
Multi-device and I have set multiDevice to true in my config OR am using the --multi-device flag
What type of host account are you experiencing this issue on?
Personal account (normal)
Mode
EASY API/CLI
Current Behavior
The Bot doesn´t reply
Expected Behavior
I start the Bot and he logs in. I use a Command and he isnt Replying
Steps To Reproduce
const wa = require('@open-wa/wa-automate');
const fs = require('fs');
const path = require('path');
const OWNER_NUMBERS = ['+4915752780481', '+491792911493']; // Füge hier die Telefonnummern der Owner hinzu
const APPROVAL_GROUP_ID = '[email protected]';
const SUPPORT_GROUP_ID = '[email protected]';
const LOG_GROUP_ID = '[email protected]';
let warnings = {};
let joinRequests = {}; // Speichert aktuelle Join-Anfragen
let afkStatus = {};
let activeTimers = {};
const levelDataFile = 'levelData.json';
// Lade levelData.json
let levelData = {};
if (fs.existsSync(levelDataFile)) {
levelData = JSON.parse(fs.readFileSync(levelDataFile));
}
const saveLevelData = () => {
fs.writeFileSync(levelDataFile, JSON.stringify(levelData, null, 2));
};
const enableLeveling = (groupId) => {
if (!levelData[groupId]) {
levelData[groupId] = {
members: {},
enabled: true
};
saveLevelData();
return
Level-System für die Gruppe ${groupId} aktiviert
;} else if (!levelData[groupId].enabled) {
levelData[groupId].enabled = true;
saveLevelData();
return
Level-System für die Gruppe ${groupId} wieder aktiviert
;} else {
return
Level-System ist bereits für die Gruppe ${groupId} aktiviert
;}
};
const disableLeveling = (groupId) => {
if (levelData[groupId] && levelData[groupId].enabled) {
delete levelData[groupId];
saveLevelData();
return
Level-System für die Gruppe ${groupId} deaktiviert
;} else {
return
Level-System ist nicht für die Gruppe ${groupId} aktiviert
;}
};
const getLeaderboard = (groupId) => {
if (levelData[groupId] && levelData[groupId].enabled) {
const members = Object.entries(levelData[groupId].members).sort((a, b) => b[1].xp - a[1].xp);
let leaderboard =
Rangliste für die Gruppe ${groupId}:\n
;members.forEach(([id, data], index) => {
leaderboard +=
${index + 1}. ${id} - Level: ${data.level}, XP: ${data.xp}\n
;});
return leaderboard;
} else {
return
Level-System ist nicht für die Gruppe ${groupId} aktiviert
;}
};
const getLevel = (groupId, userId) => {
if (levelData[groupId] && levelData[groupId].enabled && levelData[groupId].members[userId]) {
const user = levelData[groupId].members[userId];
return
${userId} - Level: ${user.level}, XP: ${user.xp}
;} else {
return
Keine Daten für Benutzer ${userId} in Gruppe ${groupId}
;}
};
const addXp = (groupId, userId, xp) => {
if (levelData[groupId] && levelData[groupId].enabled) {
if (!levelData[groupId].members[userId]) {
levelData[groupId].members[userId] = { level: 1, xp: 0 };
}
levelData[groupId].members[userId].xp += xp;
};
const BannedNumbers = [
"[email protected]"
];
const isBanned = (userId) => {
return BannedNumbers.includes(userId);
};
const RATINGS_FILE = 'bewertungen.json';
// Initialisiere die Bewertungen, falls die Datei nicht existiert
if (!fs.existsSync(RATINGS_FILE)) {
fs.writeFileSync(RATINGS_FILE, JSON.stringify({}));
}
if (fs.existsSync('warnings.json')) {
warnings = JSON.parse(fs.readFileSync('warnings.json', 'utf8'));
}
if (fs.existsSync('afk.json')) {
afkStatus = JSON.parse(fs.readFileSync('afk.json', 'utf8'));
}
if (fs.existsSync('bans.json')) {
banned = JSON.parse(fs.readFileSync('bans.json', 'utf-8'));
}
function saveAntilinkConfig() {
fs.writeFileSync(ANTILINK_FILE_PATH, JSON.stringify(antilinkConfig, null, 2));
}
// Funktion zum Hinzufügen einer Gruppe zum Antilink-System
function enableAntilink(groupId) {
const existingGroup = antilinkConfig.groups.find(group => group.groupId === groupId);
if (existingGroup) {
existingGroup.enabled = true;
} else {
antilinkConfig.groups.push({ groupId, enabled: true });
}
saveAntilinkConfig();
}
// Funktion zum Entfernen einer Gruppe aus dem Antilink-System
function disableAntilink(groupId) {
antilinkConfig.groups = antilinkConfig.groups.filter(group => group.groupId !== groupId);
saveAntilinkConfig();
}
// Funktion zum Überprüfen, ob das Antilink-System für eine Gruppe aktiviert ist
function isAntilinkEnabled(groupId) {
const group = antilinkConfig.groups.find(group => group.groupId === groupId);
return group ? group.enabled : false;
}
const commandEnable = async (client, message) => {
const response = enableLeveling(message.from);
await client.sendText(message.from, response);
};
const commandDisable = async (client, message) => {
const response = disableLeveling(message.from);
await client.sendText(message.from, response);
};
const commandLeaderboard = async (client, message) => {
const response = getLeaderboard(message.from);
await client.sendText(message.from, response);
};
const commandLevel = async (client, message, senderId) => {
const response = getLevel(message.from, senderId);
await client.sendText(message.from, response);
};
const REPORT_GROUP_ID = '[email protected]';
wa.create({
sessionId: "Sommerzeit",
multiDevice: true,
authTimeout: 60,
blockCrashLogs: true,
disableSpins: true,
headless: true,
hostNotificationLang: 'PT_BR',
logConsole: false,
popup: true,
qrTimeout: 0,
}).then(client => {
start(client);
});
function start(client) {
client.onMessage(async message => {
if (message.body.startsWith('/')) {
const args = message.body.slice(1).trim().split(/ +/);
const command = args.shift().toLowerCase();
const from = message.from;
const sender = message.sender.id;
const groupId = message.chatId;
const isOwner = OWNER_NUMBERS.includes(sender);
const isAdmin = await client.getGroupAdmins(groupId).then(admins => admins.includes(sender));
});
function handleOwnerCommands(client, message, command, args) {
switch (command) {
case 'group-leave':
groupLeave(client, message);
break;
case 'addadmin':
addAdmin(client, message, args);
break;
case 'botban':
permaBotBan(client, message, args)
default:
client.sendText(message.from,
Unbekannter Owner-Befehl: ${command}
);}
}
function handleAdminCommands(client, message, command, args) {
switch (command) {
case 'warn':
warnUser(client, message, args);
break;
case 'kick':
kickUser(client, message, args);
break;
case 'help':
sendHelpMessage(client, message);
break;
case 'say':
echoMessage(client, message, args.join(' '));
break;
case 'info':
sendInfoMessage(client, message);
break;
case 'wetter':
sendWeatherMessage(client, message, args.join(' '));
break;
case 'session':
showSession(client, message);
break;
case 'owners':
showOwners(client, message);
break;
case 'joinreq':
handleJoinRequest(client, message, args);
break;
case 'trash':
sendTrashMessage(client, message, args);
break;
case 'fuck':
sendFuckMessage(client, message, args);
break;
case 'myinfo':
sendMyInfo(client, message)
case 'tipp':
sendTipMessage(client, message);
break;
case 'starttimer':
startTimer(client, message, args);
break;
case 'stoptimer':
stopTimer(client, message, args);
break;
case 'wave':
sendWaveMessage(client, message, args);
break;
case 'poop':
sendPoopMessage(client, message);
break;
case 'question':
sendRandomQuestion(client, message);
break;
case 'emoji':
sendRandomEmojis(client, message);
break;
case 'slap':
slapUser(client, message, args);
break;
case 'nandukek':
nichtkek(client, message);
break;
case 'ping':
pingmsg(client, message);
break;
case '8ball':
eightBall(client, message);
break;
case 'roll':
diceroll(client, message, args);
break;
case 'coinflip':
coinFlip(client, message);
break;
case 'antilink-enable':
const groupIdToEnable = message.chatId; // oder args[0] für eine spezifische Gruppen-ID
enableAntilink(groupIdToEnable);
client.sendText(message.from,
Antilink wurde für die Gruppe aktiviert.
);break;
case 'antilink-disable':
const groupIdToDisable = message.chatId; // oder args[0] für eine spezifische Gruppen-ID
disableAntilink(groupIdToDisable);
client.sendText(message.from,
Antilink wurde für die Gruppe deaktiviert.
);break;
case 'kickme':
kickself(client, message);
break;
case 'sticker':
createSticker(client, message);
break;
case 'report':
sendReport(client, message);
break;
case 'support':
handleSupportCommand(client, message);
break;
case 'bewerten':
handleRateCommand(client, message);
break;
case 'bewertungen':
handleRatingsCommand(client, message);
break;
case 'leveling-enable':
commandEnable(client, message);
break;
case 'leveling-disable':
commandDisable(client, message);
break;
case 'lb':
commandLeaderboard(client, message);
break;
case 'level':
commandLevel(client, message);
break;
case 'cookie':
sendCookieMessage(client, message, args);
break;
default:
client.sendText(message.from,
Unbekannter Admin-Befehl: ${command}
);}
}
function handleUserCommands(client, message, command, args) {
switch (command) {
case 'help':
sendHelpMessage(client, message);
break;
case 'say':
echoMessage(client, message, args.join(' '));
break;
case 'info':
sendInfoMessage(client, message);
break;
case 'wetter':
sendWeatherMessage(client, message, args.join(' '));
break;
case 'session':
showSession(client, message);
break;
case 'owners':
showOwners(client, message);
break;
case 'joinreq':
handleJoinRequest(client, message, args);
break;
case 'trash':
sendTrashMessage(client, message, args);
break;
case 'fuck':
sendFuckMessage(client, message, args);
break;
case 'myinfo':
sendMyInfo(client, message)
case 'tipp':
sendTipMessage(client, message);
break;
case 'starttimer':
startTimer(client, message, args);
break;
case 'stoptimer':
stopTimer(client, message, args);
break;
case 'wave':
sendWaveMessage(client, message, args);
break;
case 'poop':
sendPoopMessage(client, message);
break;
case 'question':
sendRandomQuestion(client, message);
break;
case 'emoji':
sendRandomEmojis(client, message);
break;
case 'slap':
slapUser(client, message, args);
break;
case 'nandukek':
nichtkek(client, message);
break;
case 'ping':
pingmsg(client, message);
break;
case '8ball':
eightBall(client, message);
break;
case 'roll':
diceroll(client, message, args);
break;
case 'coinflip':
coinFlip(client, message);
break;
case 'kickme':
kickself(client, message);
break;
case 'sticker':
createSticker(client, message);
break;
case 'report':
sendReport(client, message);
break;
case 'support':
handleSupportCommand(client, message);
break;
case 'bewerten':
handleRateCommand(client, message);
break;
case 'bewertungen':
handleRatingsCommand(client, message);
break;
case 'lb':
commandLeaderboard(client, message);
break;
case 'level':
commandLevel(client, message);
break;
case 'cookie':
sendCookieMessage(client, message, args);
break;
default:
client.sendText(message.from,
Unbekannter Befehl: ${command}
);}
client.onMessage(async message => {
}
function sendWaveMessage(client, message, args) {
const target = args.join(' ');
}
async function createSticker(client, message) {
const mediaData = await client.downloadMediaMessage(message);
await client.sendImageAsSticker(from, mediaData, {
author: 'Made By',
pack: 'Dino',
});
}
async function handleRateCommand(client, message) {
const { from, body, sender } = message;
const [command, rateUserMention, ratingRaw] = body.split(' ');
}
// Funktion, um die Bestenliste der Bewertungen anzuzeigen
async function handleRatingsCommand(client, message) {
const { from } = message;
}
function slapUser(client, message, args) {
const target = args.join(' ');
}
function permaBotBan(client, message, args) {
client.sendText(message.from, 'Dieser Befehl ist in Wartung!')
}
async function handleSupportCommand(client, message) {
const { from, body, sender } = message;
const supportMessage = body.slice(9).trim();
if (supportMessage) {
await client.sendText(SUPPORT_GROUP_ID,
Neue Support-Anfrage von ${sender.id}:\n\n${supportMessage}
);await client.sendText(from, 'Deine Support-Anfrage wurde gesendet.');
} else {
await client.sendText(from, 'Bitte gib eine Nachricht an, die du für den Support senden möchtest.');
}
}
function sendTipMessage(client, message) {
const tips = [
"Trinke jeden Tag genug Wasser!",
"Mache regelmäßige Pausen während der Arbeit.",
"Lerne jeden Tag etwas Neues.",
"Bewege dich regelmäßig und halte dich fit.",
"Lese Bücher, um deinen Geist zu erweitern.",
"Schlafe ausreichend, um erholt zu sein.",
"Verbringe Zeit mit Familie und Freunden.",
"Halte dein Zuhause und deinen Arbeitsplatz ordentlich.",
"Meditiere, um Stress abzubauen.",
"Plane deine Aufgaben, um organisiert zu bleiben."
];
}
function sendHelpMessage(client, message) {
const helpText =
*📚 Hilfe - Verfügbare Befehle:* 1. *!help* - Zeigt diese Hilfenachricht an 2. *!say <Nachricht>* - Wiederholt die Nachricht 3. *!info* - Zeigt Informationen über den Bot 4. *!wetter <Ort>* - Zeigt das Wetter für den angegebenen Ort an 5. *!session* - Zeigt die Aktuelle Session an. 6. *!owners* - Zeigt alle Owner an 7. *!joinreq <Gruppenlink>* - Erstellt eine Beitrittsanfrage 8. *!trash* - Steck jemmanden in den Müll 9. *!fuck* - Fuck jemmanden 10. *!tipp* - Sendet einen Tipp des Tages 11. *!starttimer <Name> <Zeit_in_Sekunden>* - Startet einen Timer 12. *!stoptimer <Name>* - Stoppt einen Timer 13. *!myinfo* - Zeigt deine Info 14. *!wave <Name>* - Winkt jemanden 15. *!poop* - Sendet ein Haufen 16. *!question* - Fragt dich etwas 17. *!emoji* - Sendet ein Random Emoji 18. *!slap* - Slage einen Random Nutzer 19. *!ping* - Zeigt den Aktuellen Ping an 20. *!8ball* - Sagt dir eine Random Antwort 21. *!roll* - Würfel den Würfel 22. *!coinflip* - Flippe eine Münze 23. *!antilink-enable* - Aktiviere das Anti-Link System 24. *!antilink-disable* - Deaktiviere das Anti-Link System 25. *!kickme* - Kick dich selber 26. *!sticker* - Erstelle mit einem Bild ein Sticker 27. *!report* - Melde einen Nutzer, eine Gruppe etc. 28. *!support* - Frage Support an. 29. *!bewerten* - Bewerte einen nutzer von 1 - 5 30. *!bewertungen* - Zeigt deine Bewertungen 31. *!leveling-enable* - Aktiviere das Leveling System 32. *!leveling-disable* - Deaktiviere das Leveling System 33. *!lb* - Schau dir das Leaderboard der Gruppe an 34. *!level* - Schau dir dein Aktuelles Level an
;client.sendText(message.from, helpText);
}
function mainMenu(client, message) {
const mainMenuText =
}
async function sendReport(client, message) {
try {
const reportContent = message.body.slice(8).trim(); // Entfernt das Kommando "!report" und Leerzeichen
if (reportContent) {
const reportMessage =
Neuer Bericht von ${message.sender.pushname} (${message.from}):\n\n${reportContent}
;await client.sendText(REPORT_GROUP_ID, reportMessage);
await client.sendText(message.from, 'Dein Bericht wurde erfolgreich gesendet!');
} else {
await client.sendText(message.from, 'Bitte geben Sie einen Berichtstext nach dem Befehl "!report" ein.');
}
} catch (err) {
console.error('Fehler beim Senden des Berichts:', err);
await client.sendText(message.from, 'Entschuldigung, es gab einen Fehler beim Senden deines Berichts.');
}
}
function senduserid(client, message) {
console.log(message.sender.id);
}
function kickself (client, message) {
const kicker = message.author
client.sendText(message.from, 'BB mein Lieber.');
client.removeParticipant(message.chatId, kicker);
}
function eightBall(client, message) {
const responses = [
'Ja',
'Nein',
'Vielleicht',
'Frag später nochmal',
'Besser nicht',
'Auf jeden Fall!',
'Absolut nicht'
];
const randomResponse = responses[Math.floor(Math.random() * responses.length)];
client.sendText(message.from,
Frage: ${message.body.slice(7).trim()}\nAntwort: ${randomResponse}
);}
function diceroll(client, message, args) {
const max = parseInt(args[0]) || 6; // Standardmäßig auf 6 setzen, wenn keine Zahl angegeben ist
const randomNumber = Math.floor(Math.random() * max) + 1;
client.sendText(message.from,
🎲 Du hast eine ${randomNumber} gewürfelt (1-${max})
);}
function coinFlip(client, message) {
const result = Math.random() < 0.5 ? 'Kopf' : 'Zahl';
client.sendText(message.from,
Münzwurf: ${result}
);}
function nichtkek(client, message) {
client.sendText(message.from, 'Hey! Nenn mich nicht nicht so!');
}
function stopTimer(client, message, args) {
const timerName = args[0];
}
function pingmsg(client, message) {
const start = Date.now();
client.sendText(message.from, 'Pong! 🏓').then(() => {
const end = Date.now();
const latency = end - start;
client.sendText(message.from,
Ping: ${latency}ms
);}).catch(err => {
console.error('Fehler beim Senden der Ping-Nachricht:', err);
});
}
function sendRandomEmojis(client, message) {
const emojis = [
'😄', '😊', '😁', '😍', '🥳', '😎', '🤩', '😜', '🤗', '😇',
'🤔', '🙃', '😉', '🤓', '🥰', '😋', '😂', '😅', '🤣', '😆',
'😮💨', '😮💨', '😲', '😯', '😵💫', '😵💫', '🥸', '🤭', '🤫', '🤥'
];
}
function sendPoopMessage(client, message) {
client.sendText(message.from,
💩 *Plop!* Hier kommt das Häufchen von ${message.sender.pushname} 💩
);}
function sendRandomQuestion(client, message) {
const questions = [
"Was war das lustigste Erlebnis deiner Kindheit?",
"Wenn du einen Tag lang unsichtbar wärst, was würdest du tun?",
"Was ist deine Lieblingsspeise und warum?",
"Welche Fähigkeit würdest du gerne erlernen, wenn du alles könntest?",
"Wenn du in der Zeit zurückreisen könntest, in welche Epoche würdest du gehen?",
"Was ist dein Lieblingsfilm und warum gefällt er dir so gut?",
"Wenn du ein Tier sein könntest, welches wärst du und warum?",
"Was war das beste Geschenk, das du jemals erhalten hast?",
"Wenn du einen Superhelden als besten Freund haben könntest, wer wäre es?",
"Was ist deine liebste Freizeitbeschäftigung und warum macht sie dir Spaß?"
];
}
function startTimer(client, message, args) {
const timerName = args[0];
const duration = parseInt(args[1]); // In Sekunden
}
async function sendMyInfo(client, message) {
if (!message.sender) {
client.sendText(message.from, 'Fehler: Absenderinformationen fehlen.');
return;
}
}
function setAfkStatus(client, message, args) {
const groupId = message.chatId;
const senderId = message.sender.id;
const reason = args.join(' ') || 'AFK';
}
async function checkAfkStatus(client, message) {
if (!message.sender) {
return;
}
}
function showSession(client, message) {
const sessionText =
*── 「 Session 」 ──* Das sind die Sessions. ➸ SessionID: Sommerzeit ➸ Bot Owner: Damian Schönberger
;client.sendText(message.from, sessionText);
}
function showOwners(client, message) {
const ownermessage =
*── 「 Owner 」 ──* Das sind alle Bot Owner ➸ Damian +491787157956
;client.sendText(message.from, ownermessage);
}
function echoMessage(client, message, text) {
client.sendText(message.from,
🔁 ${text}
);}
function sendInfoMessage(client, message) {
const infoText =
*── 「 Bot Infos 」 ──* ➸ Version: 1.0.0 ➸ Entwickler: Damian Schönberger ➸ Beschreibung: Dies ist ein nützlicher Öffentlicher WhatsApp Bot
;client.sendText(message.from, infoText);
}
function getWeather(location) {
return Promise.resolve(
Das Wetter in ${location}: 🌞 Sonnig, 25°C
);}
function sendWeatherMessage(client, message, location) {
getWeather(location).then(weatherInfo => {
client.sendText(message.from,
🌤 Wetterinformation:\n${weatherInfo}
);}).catch(error => {
client.sendText(message.from,
Fehler beim Abrufen der Wetterdaten: ${error.message}
);});
}
function groupLeave(client, message) {
const groupId = message.chatId;
try {
client.sendText(groupId, 'Ich verlasse die Gruppe auf Anweisung des Owners.');
client.leaveGroup(groupId);
client.deleteChat(groupId);
console.log(
Bot hat Gruppe ${groupId} verlassen.
);} catch (error) {
console.error(
Fehler beim Verlassen der Gruppe ${groupId}: ${error}
);}
}
function warnUser(client, message, args) {
const userToWarn = args[0];
const groupId = message.chatId;
}
function kickUser(client, message, args) {
const userToKick = args.length > 0 ? args[0] : message.sender.id;
client.removeParticipant(message.chatId, userToKick).then(() => {
client.sendText(message.chatId,
${userToKick} wurde aus der Gruppe entfernt.
);}).catch(err => {
client.sendText(message.chatId,
Fehler beim Entfernen des Benutzers: ${err.message}
);});
}
function addAdmin(client, message, args) {
const newAdmin = args[0];
// Hier kannst du die Logik hinzufügen, um einen neuen Admin hinzuzufügen
// Z.B.: ADMIN_NUMBERS.push(newAdmin);
client.sendText(message.from,
${newAdmin} wurde als Admin hinzugefügt.
);}
function handleJoinRequest(client, message, args) {
const groupLink = args[0];
const requestingUser = message.sender.id;
}
function sendFuckMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
}
function sendCookieMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
}
function sendTrashMessage(client, message, args) {
if (!args || args.length === 0) {
client.sendText(message.from, 'Bitte geben Sie einen Nutzer oder ein Ziel an.');
return;
}
}
}
create() code OR full CLI command + CONFIG
DEBUG INFO
Environment
Screenshots/Logs
No response
Anything else?
No
The text was updated successfully, but these errors were encountered: