discord bot nasıl yapılır, discord bot yapma, discord bot komutları, bot kod paylaşım, discord kodları, discord.js kod paylaşımı
Merhabalar;
Bu yazımda discord botunun gerekli olan ana dosyalarını kurmayı anlatacağım ve bot kurulum dersleri 2 bolüm olarak bitireceğiz. Öncelikle ekleyeceğimiz  dosyalarda kısaca bahsetmek istiyorum.
Aşağıdaki adımları izleyin, ilk yazımı okuduğunuzu varsayarak anlatıma geçiyorum eğer ilk yazımı okumadıysanız aşağıdaki linkde bulabilirsiniz.
Discord Bot Nasıl Yapılır Detaylı Anlatım #1
  • İlk olarak 1. yazımda anlatığım gibi bir proje kurmuştuk bu proje Glitch için örnek olarak verdiği standart bir projeydi tabi bu proje üzerinden de ilerleye bilirsiniz fakat temiz bir kurulum için diğer anlatımda oluşturduğumuz projenin tüm dosyaları silin gerekli dosya kodlarını bu yazımda vereceğim.
  • Öncelikle botun dosya ağını düzenli tutmak gerekiyor bu yüzden dosya kodlarını adımlara göre ekleyin.
  • Tüm dosya ve klasör'leri sildikden sonra ilk olarak bot.js adında bir dosya açıyoruz. Bu dosya botumuzun main yani ana dosyası olacak ve önemli işlevselliğe sahip kodları bu dosya içerisinde barındıracaksınız.
const Discord = require('discord.js');
const client = new Discord.Client();
const ayarlar = require('./ayarlar.json');
const chalk = require('chalk');
const fs = require('fs');
const moment = require('moment');
require('./util/eventLoader')(client);

var prefix = ayarlar.prefix;

const log = message => {
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] ${message}`);
};

client.commands = new Discord.Collection();
client.aliases = new Discord.Collection();
fs.readdir('./komutlar/', (err, files) => {
  if (err) console.error(err);
  log(`${files.length} komut yüklenecek.`);
  files.forEach(f => {
    let props = require(`./komutlar/${f}`);
    log(`Yüklenen komut: ${props.help.name}.`);
    client.commands.set(props.help.name, props);
    props.conf.aliases.forEach(alias => {
      client.aliases.set(alias, props.help.name);
    });
  });
});

client.reload = command => {
  return new Promise((resolve, reject) => {
    try {
      delete require.cache[require.resolve(`./komutlar/${command}`)];
      let cmd = require(`./komutlar/${command}`);
      client.commands.delete(command);
      client.aliases.forEach((cmd, alias) => {
        if (cmd === command) client.aliases.delete(alias);
      });
      client.commands.set(command, cmd);
      cmd.conf.aliases.forEach(alias => {
        client.aliases.set(alias, cmd.help.name);
      });
      resolve();
    } catch (e){
      reject(e);
    }
  });
};

client.load = command => {
  return new Promise((resolve, reject) => {
    try {
      let cmd = require(`./komutlar/${command}`);
      client.commands.set(command, cmd);
      cmd.conf.aliases.forEach(alias => {
        client.aliases.set(alias, cmd.help.name);
      });
      resolve();
    } catch (e){
      reject(e);
    }
  });
};

client.unload = command => {
  return new Promise((resolve, reject) => {
    try {
      delete require.cache[require.resolve(`./komutlar/${command}`)];
      let cmd = require(`./komutlar/${command}`);
      client.commands.delete(command);
      client.aliases.forEach((cmd, alias) => {
        if (cmd === command) client.aliases.delete(alias);
      });
      resolve();
    } catch (e){
      reject(e);
    }
  });
};

client.on('message', msg => {
  if (msg.content.toLowerCase() === 'sa') {
    msg.reply('**Aleyküm selam**');
  }
  
});

client.elevation = message => {
  if(!message.guild) {
 return; }
  let permlvl = 0;
  if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2;
  if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3;
  if (message.author.id === ayarlar.sahip) permlvl = 4;
  return permlvl;
};

var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g;
// client.on('debug', e => {
//   console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted')));
// });

client.on('warn', e => {
  console.log(chalk.bgYellow(e.replace(regToken, 'that was redacted')));
});

client.on('error', e => {
  console.log(chalk.bgRed(e.replace(regToken, 'that was redacted')));
});


client.login(ayarlar.token);
  • 2. olarak package.json adında bir dosya daha ekliyelim ve bir dosya bot için gerekli modüllerin kurulumunda gerekli bot modülleri ve versiyonları bu dosya içerisinde yer alır. Bu dosya kodları ile hiç oynamayın hata alırsınız
{
  "name": "MareFi",
  "version": "0.0.1",
  "description": "MareFi",
  "main": "bot.js",
  "dependencies": {
    "cat-names": "^2.0.0",
    "chalk": "^2.4.1",
    "cleverbot-node": "^0.3.11",
    "colors": "^1.2.4",
    "cool-images": "^1.0.1",
    "discord.js": "^11.5.0",
    "dog-names": "^1.0.2",
    "fuzzysearch": "^1.0.3",
    "g-image-search": "^1.0.2",
    "get-urls": "^7.0.0",
    "hastebin-gen": "^1.3.1",
    "moment": "^2.22.1",
    "moment-duration-format": "^1.3.0",
    "ms": "^2.1.1",
    "name": "0.0.2",
    "nodemon": "^1.11.0",
    "path": "^0.12.7",
    "randomstring": "^1.1.5",
    "require-glob": "^3.2.0",
    "return-deep-diff": "^0.3.0",
    "sqlite": "^2.9.1",
    "yamdbf": "^2.6.2",
    "pokedex-api": "^1.1.2",
    "figlet": "^1.2.1",
    "weather-js": "^2.0.0"
  },
  "devDependencies": {},
  "scripts": {
    "start": "node bot.js"
  },
  "repository": {
    "type": "",
    "url": "https://codemarefi.blogspot.com/"
  },
  "author": "MareFi",
  "license": "MIT",
  "bugs": {
    "url": "https://codemarefi.blogspot.com/"
  },
  "homepage": "https://codemarefi.blogspot.com/"
}
  • 3.olarak ayarla.json adında bir dosya açıyoruz ve aşağıdaki kodları ekliyoruz. Bu dosya bot için gerekli ayarların olduğu bir dosya içeriğini kendinize göre ayarlayınız.
{
 "sahip": "discord id nizi buraya ekleyin",
 "ad": "MareFi",
 "botadi": "MareFi",
 "davet": "davet linki varsa buraya",
 "botserverlink": "discord id nizi buraya ekleyin",
 "owner": "discord id nizi buraya ekleyin",
 "prefix": "!!",
 "surum": "0.0.2", 
 "token": "bot tokeni buraya ekleyin"
}
  • Şimdi ana dosyalar tamamladık sayılır. Sıra geldi bot için events klasörü oluşturmaya, events klasörü açtıktan sonra içerisini disconnect.js , guildCreate.js , guildMemberAdd.js , guildMemberRemove.js , guildMemberUpdate.js , message.js , ready.js , reconnecting.js dosyalarını ekleyeceğiz. "Örnek: events/disconnect.js" Aşağıda vereceğim kodları dosya isimlerine göre kodları ekleyin.
events/disconnect.js kodları

module.exports = client => {
  console.log(`Bağlantın koptu! ${new Date()}`);
};

events/guildCreate.js kodları

const Discord = require('discord.js');
const client = new Discord.Client();
const ayarlar = require('../ayarlar.json');

var prefix = ayarlar.prefix;

client.on('guildCreate', guild => {
 console.log(`${guild.name} adlı sunucuya katıldım!`)
})

events/guildMemberAdd.js kodları

const ayarlar = require('../ayarlar.json');

var prefix = ayarlar.prefix;

module.exports = member => {
    let username = member.user.username;
    member.sendMessage('Hoş geldin **' + username + '**! Buraya arkadaşlarını davet edebilir ve onlarla oyun oynayabilir, yeni arkadaşlar edinip onlarla oyunlar oynayıp sohbet edebilirsin!');
};

events/guildMemberRemove.js kodları

module.exports = member => {
  let guild = member.guild;
  guild.defaultChannel.sendMessage(`${member.user.username} aramızdan ayrıldı :frowning:`);
};

events/guildMemberUpdate.js kodları

const ddiff = require('return-deep-diff');
module.exports = (oMember, nMember) => {
  console.log(ddiff(oMember, nMember));
};

events/message.js kodları

const ayarlar = require('../ayarlar.json');
module.exports = message => {
  let client = message.client;
  if (message.author.bot) return;
  if (!message.content.startsWith(ayarlar.prefix)) return;
  let command = message.content.split(' ')[0].slice(ayarlar.prefix.length);
  let params = message.content.split(' ').slice(1);
  let perms = client.elevation(message);
  let cmd;
  if (client.commands.has(command)) {
    cmd = client.commands.get(command);
  } else if (client.aliases.has(command)) {
    cmd = client.commands.get(client.aliases.get(command));
  }
  if (cmd) {
    if (perms < cmd.conf.permLevel) return;
    cmd.run(client, message, params, perms);
  }

};

events/ready.js kodları

const chalk = require('chalk');
const moment = require('moment');
const Discord = require('discord.js');
const ayarlar = require('../ayarlar.json');

var prefix = ayarlar.prefix;

module.exports = client => {
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] Bot Dosyalari Korunuyor`);
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] Koruma Calisiyor.`);
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] Sunucu Aktif!`);
  client.user.setStatus("online");
  client.user.setGame(`https://codemarefi.blogspot.com/`);
  console.log(`Bot ve Komutlar Hazir Sunucu Baslatildi...`);
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] MareFi.`);
  console.log(`[${moment().format('YYYY-MM-DD HH:mm:ss')}] Sunucu Aktif!`);
      
      
};

events/reconnecting.js kodları

module.exports = client => {
  console.log(`Yeniden başlatılıyor ${new Date()}`);
};
Evet gerekli tüm komut dosyaları bu kadar kodları eklerken boş satır kalmamasına dikkat edin. Son olarak botu test etmek için bir komut klasörü ekleyip içerisinde komut dosyaları eklemeniz gerekir buradaki yazımı okursanız komutlar nasıl eklenir anlatımını yaptım. Artık sitede paylaşılan komutları istediğiniz gibi kullanıp geliştirebilirsiniz kendinizi.

Ben bu kadar koddan anlamadım uğraşmakta istemiyorum açıkçası bana hazır bir yapı lazım diyorsan Burada paylaşılan hazır altyapıları kullanabilirsin.
CodeMareFi

Admin MareFi

CodeMareFi CodeMareFi CodeMareFi CodeMareFi CodeMareFi CodeMareFi CodeMareFi CodeMareFi CodeMareFi

CodeMareFi Bir çok konuda fikir sahibi olduğu kategorilere yönelip kullanıcıya en iyi ve en özgün bilgiyi sunmayı amaç edinmiştir. CMF Teknoloji, İnternet, Program, Blogger Konuları , Blogger Temaları, Blogger Eklentileri, Discord Konuları, Discord Bot konuları, Discord Bot Komut Paylaşımları ve bir çok konuda Genel Güncel Paylaşım Sitesidir...

Yorum Yap:

5 Yorum Yapılmış:

  1. keşke bot ekleseydinde remixleyebilseydik

    YanıtlaSil
  2. Merhabalar burdaki herşeyi yaptım ayarlar.json da hata var diyor

    YanıtlaSil
  3. Knk kod çok sürümü çok eski 12v olması lazım kodların burdski bazı kodlar 1 yıl önceki çalışan kodlar

    YanıtlaSil

Yorum Yaparken:
* Yorumlarınızda Din , Dil , Irk , Cinsiyet , Küfür(Hakaret) ve Siyaset içerikli yorumlar onaylanmadığını hatırlatmak isterim.
* Yorumlarınızı anlaşılır bir dilde yazınız ve mümkünse detaylı bir şekilde açıklama yapınız.
* Yorum yaparken tavsiyemiz olarak yorum profilinizi google @gmail profilinizi seçerek yorum yapınız, ayrıca (anonim) veya Ad/Url gibi seçeneklerle de yorum yapabilirsiniz.
Konu ile ilgili olmayan sorularınız için ise Chat veya İletişim sayfalarını kullanın

Kullanmak istediğiniz emojileri kopyalayıp yorumda kullanabilirsiniz. CTRL + C

☝☺✊✋✌❤👀👄👎👍👌💓💔💕💖💗💘💝💞💟💢💣💤💥😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷👐👤👥👦👦👧👨👩👳👴👵👿👾👽👻👅