require('dotenv').config();
const { Client, GatewayIntentBits } = require('discord.js');
const cron = require('node-cron');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent
]
});
// Tempat menyimpan daftar alarm/penanda jam sementara
let daftarAlarm = [];
client.once('ready', () => {
console.log(`Mantap! ${client.user.tag} udah online!`);
// Mengecek alarm setiap 1 menit (Menggunakan Waktu Lokal HP)
cron.schedule('* * * * *', () => {
const sekarang = new Date();
const jamSekarang = String(sekarang.getHours()).padStart(2, '0');
const menitSekarang = String(sekarang.getMinutes()).padStart(2, '0');
const waktuSekarang = `${jamSekarang}:${menitSekarang}`;
// Cari apakah ada alarm yang cocok dengan waktu sekarang
const alarmCocok = daftarAlarm.filter(a => a.waktu === waktuSekarang);
alarmCocok.forEach(alarm => {
// Kirim pesan pengingat ke channel tempat alarm dibuat
const channel = client.channels.cache.get(alarm.channelId);
if (channel) {
channel.send(`⏰ **PENGINGAT WAKTU!** Hii <@${alarm.userId}>, sekarang sudah jam **${alarm.waktu}**!`);
}
});
// Hapus alarm yang sudah lewat dari daftar biar tidak numpuk
daftarAlarm = daftarAlarm.filter(a => a.waktu !== waktuSekarang);
});
});
client.on('messageCreate', (message) => {
if (message.author.bot) return;
// 1. Fitur Ping-Pong yang lama tetap ada
if (message.content.toLowerCase() === 'ping') {
message.reply('Pong! 🏓');
}
// 2. Fitur Baru: Tandai Jam
// Contoh command: tandai jam 12 00 ATAU tandai jam 12:00
if (message.content.toLowerCase().startsWith('tandai jam')) {
// Mengambil angka jam dan menit dari chat menggunakan Regex
const pencocokanWaktu = message.content.match(/\d{2}/g);
if (!pencocokanWaktu || pencocokanWaktu.length < 2) {
return message.reply('❌ Format salah! Contoh yang benar: `tandai jam 12 00` atau `tandai jam 21:30` (harus 2 digit angka ya).');
}
const jam = pencocokanWaktu[0];
const menit = pencocokanWaktu[1];
// Validasi format jam (00-23) dan menit (00-59)
if (parseInt(jam) > 23 || parseInt(menit) > 59) {
return message.reply('❌ Jam atau menit tidak valid! Jam maksimal 23, menit maksimal 59.');
}
const targetWaktu = `${jam}:${menit}`;
// Simpan data alarm ke memori bot
daftarAlarm.push({
waktu: targetWaktu,
userId: message.author.id,
channelId: message.channel.id
});
message.reply(`✅ Siap! Jam **${targetWaktu}** nanti bakal saya ingatkan di channel ini.`);
}
});
client.login(process.env.DISCORD_TOKEN);
Style langgam psr s
style langgam slendro https://drive.google.com/file/d/1Gcrrre6HdMsvmXe9DDShuUswTiBlx9hO/view?usp=drivesdk langgam pelog 6 https://drive.google.com/file/d/1GcaNbNz5_plqwqPH0nKQunKk_knCAQZd/view?usp=drivesdk langgam BRG ⬇️⬇️ https://drive.google.com/file/d/1Gdz-T26QAcMRZ6p2wsnlYZQwIGXeT596/view?usp=drivesdk
Komentar
Posting Komentar