Disboard & Bump

Disboard bump hatırlatıcı bot nasıl yapılır? (discord.js ile hazır kod)

2 Ekim 20263 dk okumaSon güncelleme: 2 Ekim 2026Yazar: Revolvant Ekibi
disboard bump hatırlatıcıbump reminderdiscord bump botudiscord.js botsunucu büyütme
Kısa cevapDisboard bump'ında 2 saatlik bekleme vardır ve bump'ın elle yapılması gerekir. Zamanı kaçırmamanın kurallara uygun yolu hatırlatıcı bottur: Disboard "bump tamam" mesajını gönderince bot 2 saat sonrasına bir zamanlayıcı kurar ve süre dolunca kanalınıza "Bump zamanı!" yazar. Aşağıdaki discord.js v14 kodu bunu yapar ve zamanı bir dosyada sakladığı için yeniden başlatmalarda kaybolmaz. Botun sürekli çalışması için Revolvant gibi bir hosting kullanın.

Disboard'da bump yapmak kolay, unutmak daha da kolaydır. Otomatik bump yasak olduğuna göre çözüm, bump süresi dolunca sizi uyaran bir hatırlatıcıdır. Bu yazıda onu kendiniz yazıyoruz.

Bot nasıl çalışır?

  1. Biri /bump yazar; Disboard botu kanala bir onay mesajı gönderir.
  2. Bizim bot bu onay mesajını görür ve 2 saat sonrasına bir zamanlayıcı kurar.
  3. Süre dolunca belirlediğiniz kanala "⏰ Bump zamanı!" mesajı gönderir.
  4. Zamanı bir dosyaya yazdığı için bot yeniden başlasa bile hatırlatmayı unutmaz.

Gereksinimler

  • Node.js 18 veya üzeri
  • Bir bot uygulaması ve token'ı (Discord Developer Portal)
  • Botun hatırlatma kanalına mesaj gönderme izni
  • Botun, Disboard'un onay mesajını okuyabilmesi için Message Content Intent (Developer Portal → Bot → Privileged Gateway Intents)

1. Kurulum

mkdir bump-hatirlatici && cd bump-hatirlatici
npm init -y
npm install discord.js dotenv

.env dosyası:

TOKEN=bot_tokeniniz
REMIND_CHANNEL_ID=hatirlatma_kanalinin_idsi

2. Kod (index.js)

require('dotenv').config();
const fs = require('node:fs');
const { Client, GatewayIntentBits, Events } = require('discord.js');

const DISBOARD_ID = '302050872383242240'; // Disboard botunun kimliği
const WAIT_MS = 2 * 60 * 60 * 1000;      // 2 saatlik bekleme
const FILE = './bump.json';               // zamanı yeniden başlatmalarda korur

const client = new Client({
  intents: [
    GatewayIntentBits.Guilds,
    GatewayIntentBits.GuildMessages,
    GatewayIntentBits.MessageContent,
  ],
});

let timer = null;
const save = (at) => fs.writeFileSync(FILE, JSON.stringify({ at }));
const load = () => { try { return JSON.parse(fs.readFileSync(FILE, 'utf8')).at; } catch { return 0; } };

function schedule(at) {
  clearTimeout(timer);
  timer = setTimeout(async () => {
    const ch = await client.channels.fetch(process.env.REMIND_CHANNEL_ID).catch(() => null);
    if (ch) ch.send('⏰ **Bump zamanı!** Sunucuyu yukarı taşımak için `/bump` yazın.');
  }, Math.max(0, at - Date.now()));
}

client.once(Events.ClientReady, () => {
  const at = load();
  if (at > Date.now()) schedule(at); // yeniden başlatmadan sonra devam et
  console.log('Hazır:', client.user.tag);
});

client.on(Events.MessageCreate, (msg) => {
  if (msg.author.id !== DISBOARD_ID) return;
  const text = msg.embeds
    .map((e) => `${e.title ?? ''} ${e.description ?? ''}`)
    .join(' ')
    .toLowerCase();
  // Disboard'un yanıt metni dile göre değişebilir: kendi sunucunuzda deneyip uyarlayın
  if (!text.includes('bump done') && !text.includes(':thumbsup:') && !text.includes('👍')) return;
  const at = Date.now() + WAIT_MS;
  save(at);
  schedule(at);
});

client.login(process.env.TOKEN);

package.json içine bir başlatma betiği eklemeyi unutmayın:

{
  "scripts": { "start": "node index.js" }
}

Disboard'un onay mesajı sunucunuzun dil ayarına göre farklı olabilir. Kod çalışmıyorsa Disboard'un cevabını konsola yazdırıp (console.log(msg.embeds)) eşleşen ifadeyi güncelleyin.

3. Rol etiketleme (isteğe bağlı)

Mesajı belirli bir role göndermek için ch.send içine rol etiketi ekleyin:

ch.send('<@&ROL_ID> ⏰ **Bump zamanı!** `/bump` yazın.');

Rolün etiketlenebilir olduğundan ve botun Mention Everyone/Roles izni olduğundan emin olun.

4. 7/24 çalıştırma

Hatırlatıcının işe yaraması için botun sürekli açık olması gerekir. Klasörü ZIP'leyip Revolvant'a yükleyin: panel npm install yapar, botu başlatır ve çökerse yeniden açar. Zaman bilgisi bump.json dosyasında tutulduğu için yeniden başlatmalarda kaybolmaz. Ayrıntılar: Discord botu ZIP ile nasıl yüklenir?

Geliştirme fikirleri

  • Hatırlatmayı yalnızca moderatör rolüne etiketleyin.
  • Son bump'ı yapan kullanıcıyı kaydedip "bump kralı" panosu yapın (eğlenceli ve kurallara uygun bir teşvik).
  • Birden fazla sunucu için zamanı sunucu kimliğine göre saklayın.

Sık sorulan sorular

Bu bot bump'ı kendisi yapar mı?

Hayır. Yalnızca süre dolunca sizi uyarır; bump'ı siz elle yaparsınız. Böylece Disboard kurallarına uygun kalırsınız.

Neden Message Content Intent gerekiyor?

Disboard'un onay mesajının içeriğini (embed metni) okuyabilmek için. Bu intent Developer Portal'dan elle açılmalıdır; çok büyük botlar için ek onay gerekebilir.

Disboard botunun kimliği değişirse ne olur?

Kodun başındaki DISBOARD_ID sabitini güncelleyin. Güncel kimliği Disboard'un kendi sunucusundan ya da Discord'un geliştirici modunda botun profilinden kopyalayabilirsiniz.

Hazır bir hatırlatıcı botu kullanmak daha mı iyi?

Dizinlerde birçok hazır "bump reminder" botu vardır; ancak izinlerini ve gizlilik politikalarını kontrol edin. Kendi botunuzu yazmak, yalnızca ihtiyacınız olanı ve gerekli en az izni vermenizi sağlar.

Hatırlatıcı botunuzu 7/24 çalıştırın

Bu yazıdaki botu Revolvant’a yükleyin; çökerse kendiliğinden yeniden başlasın.

İlgili yazılar