ali furkan yılmaz kişisel web bloguAli Furkan YILMAZ hello@alifurkan.org

HAKKIMDA

  • Ali Furkan
  • Ali Furkan
  • Grafik/Yazılım

Discord bot için mood modülü

4 yıl önce#makaleler

Bugün bu yazıda Javascript dilinde kodlanmış discord botlarınız için mood modülünü nasıl yazabilirsiniz onu öğreteceğim. Bu modül sayesinde sunucunuzdaki insanlar zaman aşımlı şekilde !mood yazarak bot tarafından rastgele bir mod mesajı alıcak. 

Ben kendi botumdan yola çıkarak nasıl kodlayabileceğinizi anlatacağım. Ana botunuzun commands klasörü içerisinde alt bir klasör oluşturarak içerisine mood.js dosyası oluşturalım ve içeriğini aşağıdaki şekilde yapalım. En üst satırlardaki modülleri temin etmeyi unutmayın.

const Command = require('../../structures/Command');
const { randomRange } = require('../../util/Util');
const moodlar = require('../../assets/json/mood');
const talkedRecently = new Set();

module.exports = class MoodCommand extends Command {
	constructor(client) {
		super(client, {
			name: 'mood-bak',
			aliases: ['mood'],
			group: 'eğlence',
			memberName: 'mood-bak',
			description: 'Günlük mood.'
		});
	}

	run(message) {
		const icerikID = Math.floor(Math.random() * 10) + 1;
		let rarity;
		if (icerikID < 2) rarity = 'mood-1';
		else if (icerikID < 3) rarity = 'mood-2';
		else if (icerikID < 4) rarity = 'mood-3';
		else if (icerikID < 4) rarity = 'mood-3';
		else if (icerikID < 5) rarity = 'mood-4';
		else if (icerikID < 6) rarity = 'mood-5';
		else if (icerikID < 7) rarity = 'mood-6';
		else if (icerikID < 8) rarity = 'mood-7';
		else if (icerikID < 9) rarity = 'mood-8';
		else if (icerikID < 10) rarity = 'mood-9';
		else if (icerikID < 11) rarity = 'mood-10';
		else if (icerikID < 12) rarity = 'mood-11';
		else if (icerikID < 13) rarity = 'mood-12';
		else if (icerikID < 14) rarity = 'mood-13';
		else if (icerikID < 15) rarity = 'mood-14';
		else if (icerikID < 16) rarity = 'mood-15';
		else if (icerikID < 17) rarity = 'mood-16';
		else if (icerikID < 18) rarity = 'mood-17';
		else if (icerikID < 19) rarity = 'mood-18';
		else if (icerikID < 20) rarity = 'mood-19';
		else if (icerikID < 21) rarity = 'mood-20';
		else rarity = 'mood-21';
		const moodum = moodlar[rarity];
		const worth = randomRange(moodum.min, moodum.max);
		
		if (talkedRecently.has(message.author.id))
			return message.reply(`mooduna yarım saatte bir bakabilirsin.`);
			talkedRecently.add(message.author.id);
			setTimeout(() => {
				
				talkedRecently.delete(message.author.id);
			}, 1800000);
			return message.reply(` bugünkü moodun \`${moodum.icerik}\` Moodunun sana etkisi \`%${worth}\` oranında.`);
			}
};

Yukarıdaki kodlarda 51. satırda yer alan 1800000 değerini isteğinize göre düzenleyebilirsiniz. Bu değer bir kullanıcının ne kadar süreyle yeniden mood görebileceğini ayarlamakta. Mevcut değer yarım saate denk geliyor. 11. satırda yer alan group kısmını klasör adını ne yaptıysanız onunla değiştirin. Buraya kadar yaptıktan sonra assets/json dizini oluşturarak içerisine mood.json adında bir dosya yaratıyoruz. İçeriğini aşağıdaki şekilde yapılandırıyoruz.

{
	"mood-1": {
		"icerik": "Ya yeter artık",
		"max": 100,
		"min": 1
	},
	"mood-2": {
		"icerik": "Delirdim",
		"max": 100,
		"min": 1
	},
	"mood-3": {
		"icerik": "Ben yoruldum hayat",
		"max": 100,
		"min": 1
	},
	"mood-4": {
		"icerik": "Yüzüme ütü basmak istiyorum",
		"max": 100,
		"min": 1
	},
	"mood-5": {
		"icerik": "Prensesler de ölür",
		"max": 100,
		"min": 1
	},
	"mood-6": {
		"icerik": "Pıçaklayacam kendimi",
		"max": 100,
		"min": 1
	},
	"mood-7": {
		"icerik": "Kırık",
		"max": 100,
		"min": 1
	},
	"mood-8": {
		"icerik": "Yalnız",
		"max": 100,
		"min": 1
	},
	"mood-9": {
		"icerik": "Heves mi bıraktın oç",
		"max": 100,
		"min": 1
	},
	"mood-10": {
		"icerik": "Kendimi boğcam",
		"max": 100,
		"min": 1
	},
	"mood-11": {
		"icerik": "Yıkığım karşim",
		"max": 100,
		"min": 1
	},
	"mood-12": {
		"icerik": "Yok canım ne ağlaması",
		"max": 100,
		"min": 1
	},
	"mood-13": {
		"icerik": "Doğrusunu bildiğim yalanları dinliyorum",
		"max": 100,
		"min": 1
	},
	"mood-14": {
		"icerik": "Acaba kendimi mi assam",
		"max": 100,
		"min": 1
	},
	"mood-15": {
		"icerik": "Esmiyor",
		"max": 100,
		"min": 1
	},
	"mood-16": {
		"icerik": "Yüzüyorum ama sana",
		"max": 100,
		"min": 1
	},
	"mood-17": {
		"icerik": "Kendimi konyalı hissediyorum",
		"max": 100,
		"min": 90
	},
	"mood-18": {
		"icerik": "Kendimi ovacıklı hissediyorum",
		"max": 100,
		"min": 90
	},
	"mood-19": {
		"icerik": "Dokunmayın bana",
		"max": 100,
		"min": 1
	},
	"mood-20": {
		"icerik": "Fıstık gibiyim",
		"max": 100,
		"min": 1
	},
	"mood-21": {
		"icerik": "Bu güzellik kim? Aaa benmişim",
		"max": 100,
		"min": 1
	}
	
}

Moodları isteğinize göre çoğaltabilirsiniz. Mood.json içerisinden çoğaltma işlemi yaptıktan sonra mood.js üzerinde 40. satırdan sonra işlem yapmayı unutmayın.

internete dair her şey