Discord bot kod paylaşımlarında bu yazımda discord botunuz için güzel ve kullanışlı bir kod ile beraberiz. Discord Bot Kodları Kelime Oyunu Komutu.
Kurulum için adımları izleyin:
- Kod projenizde komutlar klasörüne atılacaktır. Komut eklemeyi bilmiyorsan buradaki yazımızı okuyarak öğrenebilirsin.
- Komut içerisindeki gerekli yerleri kendinize göre düzenleyin.
- Gereken modüller kod içerisinde const kısımlarında.
//---Bu Kod komutlar klasörüne atılacaktır.
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const Discord = require('discord.js');
const { stripIndents } = require('common-tags');
const { randomRange, verify } = require('../util/Util.js');
let oyndurum = new Set();
exports.run = async (client, message, args) => {
let opponent = message.mentions.users.first()
if (!opponent) return message.reply("Oynamak istediğin kişiyi etiketlemelisin!")
if (opponent.bot) return message.reply('Botlar ile kelime oyunu oynayamazsın!');
if (opponent.id === message.author.id) return message.reply('Kendin ile kelime oyunu oynayamazsın!');
if (oyndurum.has(message.channel.id)) return message.reply('Kanal başına sadece bir kelime oyunu meydana gelebilir.');
try {
if (!opponent.bot) {
await message.channel.send(`${opponent}, kelime oyunu isteği geldi. İsteği kabul ediyor musun? (\`evet\` veya \`hayır\` olarak cevap veriniz.)`);
const verification = await verify(message.channel, opponent);
if (!verification) {
this.fighting.delete(message.channel.id);
return message.channel.send(`Düello kabul edilmedi...`);
}
}
message.channel.send('Kelime, yükleniyor!').then(message => {
oyndurum.add(message.channel.id)
var kelimeler = ['sd', 's', 'sal'];
var kelime = kelimeler[Math.floor(Math.random() * kelimeler.length)];
message.edit(`Hey hemen \`${kelime}\` demen lazım!`);
const filter = res => {
const value = res.content.toLowerCase();
return res.author.id === message.author.id | opponent.id && (kelime.includes(value));
};
message.channel.awaitMessages(filter, {
max: 1,
time: 100000
})
.then((collected) => {
const embed = new Discord.RichEmbed()
.setDescription(`:tada: Tebrikler, Kazanannn: ${collected.first().author}`)
.setColor("green")
message.channel.send(embed)
oyndurum.delete(message.channel.id)
})
.catch(function(){
message.channel.send('Size verilen süre doldu');
oyndurum.delete(message.channel.id)
});
})
} catch (err) {
oyndurum.delete(message.channel.id);
console.log(err)
}
}
exports.conf = {
enabled: true,
guildOnly: false,
aliases: ['kelimeoyunu'],
permLevel: `Yetki gerekmiyor.`
};
exports.help = {
name: 'kelime-oyunu',
description: 'İstediğiniz bir kişi ile kelime düellosu atarsınız!',
usage: 'kelime-oyunu @kullanıcı'
};
util/Util.js oluşturup içerisine bunu atınız (Büyük küçük harflere dikkat ediniz!);
//###CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //###MareFi
const request = require('node-superfetch');
const crypto = require('crypto');
const { IMGUR_KEY } = process.env;
const yes = ['evet'];
const no = ['hayır']
const deleteCommandMessages = function (msg, client) { // eslint-disable-line consistent-return
if (msg.deletable && client.provider.get('global', 'deletecommandmessages', false)) {
return msg.delete();
}
};
class Util {
static wait(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
static shuffle(array) {
const arr = array.slice(0);
for (let i = arr.length - 1; i >= 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
const temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr;
}
static list(arr, conj = 'and') {
const len = arr.length;
return `${arr.slice(0, -1).join(', ')}${len > 1 ? `${len > 2 ? ',' : ''} ${conj} ` : ''}${arr.slice(-1)}`;
}
static shorten(text, maxLen = 2000) {
return text.length > maxLen ? `${text.substr(0, maxLen - 3)}...` : text;
}
static duration(ms) {
const sec = Math.floor((ms / 1000) % 60).toString();
const min = Math.floor((ms / (1000 * 60)) % 60).toString();
const hrs = Math.floor(ms / (1000 * 60 * 60)).toString();
return `${hrs.padStart(2, '0')}:${min.padStart(2, '0')}:${sec.padStart(2, '0')}`;
}
static randomRange(min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
static trimArray(arr, maxLen = 10) {
if (arr.length > maxLen) {
const len = arr.length - maxLen;
arr = arr.slice(0, maxLen);
arr.push(`${len} more...`);
}
return arr;
}
static base64(text, mode = 'encode') {
if (mode === 'encode') return Buffer.from(text).toString('base64');
if (mode === 'decode') return Buffer.from(text, 'base64').toString('utf8') || null;
throw new TypeError(`${mode} is not a supported base64 mode.`);
}
static hash(text, algorithm) {
return crypto.createHash(algorithm).update(text).digest('hex');
}
static async randomFromImgurAlbum(album) {
const { body } = await request
.get(`https://api.imgur.com/3/album/${album}`)
.set({ Authorization: `Client-ID ${IMGUR_KEY}` });
if (!body.data.images.length) return null;
return body.data.images[Math.floor(Math.random() * body.data.images.length)].link;
}
static today(timeZone) {
const now = new Date();
if (timeZone) now.setUTCHours(now.getUTCHours() + timeZone);
now.setHours(0);
now.setMinutes(0);
now.setSeconds(0);
now.setMilliseconds(0);
return now;
}
static tomorrow(timeZone) {
const today = Util.today(timeZone);
today.setDate(today.getDate() + 1);
return today;
}
static async awaitPlayers(msg, max, min, { text = 'join game', time = 30000 } = {}) {
const joined = [];
joined.push(msg.author.id);
const filter = res => {
if (msg.author.bot) return false;
if (joined.includes(res.author.id)) return false;
if (res.content.toLowerCase() !== text.toLowerCase()) return false;
joined.push(res.author.id);
return true;
};
const verify = await msg.channel.awaitMessages(filter, { max, time });
verify.set(msg.id, msg);
if (verify.size < min) return false;
return verify.map(message => message.author);
}
static async verify(channel, user, time = 30000) {
const filter = res => {
const value = res.content.toLowerCase();
return res.author.id === user.id && (yes.includes(value) || no.includes(value));
};
const verify = await channel.awaitMessages(filter, {
max: 1,
time
});
if (!verify.size) return 0;
const choice = verify.first().content.toLowerCase();
if (yes.includes(choice)) return true;
if (no.includes(choice)) return false;
return false;
}
}
Yapamadığınız veya takıldığınız yerleri yorum ile bizlere bildirin yardımcı oluruz.
Yorum Yap:
0 Hiç Yorum Yapılmamış İlk Yorumu Sen Yapmak İstermisin:
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
☝☺✊✋✌❤👀👄👎👍👌💓💔💕💖💗💘💝💞💟💢💣💤💥😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷👐👤👥👦👦👧👨👩👳👴👵👿👾👽👻👅