Ayrıca aşağıda 2.ci olan kod ise bot bu sistemin kullanıcılar ile etkileşim de bulunması ve bazı harici paketler ile kod yapısını desteklemek için gerekli olan "util/Util.js" sistemini de veriyorum bu kod altyapınızda yoksa eğer bunu ekleyin ve büyük küçük harflere dikkat etmeyi unutmayın.
Kod istek üzerine eklenmiştir ve yakında kelime tahmin oyunu da eklenecektir.
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.
- Modül olarak "common-tags" , "discord.js" ve ek kod olarak "util/Util.js" eklemeniz gerekir.
//---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 codemarefi = new Set(); exports.run = async (client, message, args) => { let codemarefi = message.mentions.users.first() if (!codemarefi) return message.reply("Oynamak istediğin kişiyi etiketlemelisin!") if (codemarefi.bot) return message.reply('Botlar ile kelime oyunu oynayamazsın!'); if (codemarefi.id === message.author.id) return message.reply('Kendin ile kelime oyunu oynayamazsın!'); if (codemarefi.has(message.channel.id)) return message.reply('Kanal başına sadece bir kelime oyunu meydana gelebilir.'); try { if (!codemarefi.bot) { await message.channel.send(`${codemarefi}, kelime oyunu isteği geldi. İsteği kabul ediyor musun? (\`evet\` veya \`hayır\` olarak cevap veriniz.)`); const verification = await verify(message.channel, codemarefi); if (!verification) { this.fighting.delete(message.channel.id); return message.channel.send(`Düello kabul edilmedi...`); } } message.channel.send('Kelime, yükleniyor!').then(message => { codemarefi.add(message.channel.id) var kelimeler = ['codemarefi', 'kooperatif', 'spekülasyon']; var kelime = kelimeler[Math.floor(Math.random() * kelimeler.length)]; message.edit(`Hey hemen \`${kelime}\` yazman lazım!`); const filter = res => { const value = res.content.toLowerCase(); return res.author.id === message.author.id | codemarefi.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) codemarefi.delete(message.channel.id) }) .catch(function(){ message.channel.send('Size verilen süre doldu'); codemarefi.delete(message.channel.id) }); }) } catch (err) { codemarefi.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ı>' };
//---Bu Kod komutlar klasörüne atılacaktır. //###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; } } module.exports = Util;
paylaşım için teşekkürlerö 32
YanıtlaSilRica ederim dostum iyi kullanımlar
Silçalışmıyor
YanıtlaSilRichEmbed() kısımlarını MessageEmbed() yap
Sil2 tane var hangisi nereye
YanıtlaSilKurulum açıklamalarında belirtiğim gibi 2.kod util/Util.js atılacak.
SilDiğeri ise komutlar klasörüne atılacak. Kurulum adımlarını okuyun
nasıl v12 de çalıştırabilirim?
YanıtlaSilRichEmbed() yazan yerleri MessageEmbed() yap
Silyardım edermisiniz komutları ve util/ıtil.js bulamadım yeni başladım bu işlere :d
YanıtlaSilDostum sitede paylaştığım hazır sorunsuz bot altyapıları var onları al kullan, o projeler üzerinden ilerle.
Silbot ingilizce sözlük ile ingilizce kelime türetmece yapmak istiyorum acaba tdk gibi ingilizce sözlük kaynağını nasıl bulabilirim bilginiz varsa paylaşırsanız sevinirim valla
YanıtlaSilNetten araştırarak eng & tr sözlük pdf dokümanları bulabilirsin.
Silkelime türetmece oyununun ingilizce sözlük ile olanını yapmak istiyorum fakt tdk sözlük gibi nasıl kaynak alıcağımız bilmiyorum bunun hakkında bilginiz varsa yardımcı olursanız sevinirim
YanıtlaSilNetten araştırarak eng & tr sözlük pdf dokümanları bulabilirsin.
SilAcaba sıfırlama kodu nasıl ekliyebilirim? çünkü örnek var sayıyorum adam ağ diyor sıfırlamak gerekiyor sıfırlayamıyorum
YanıtlaSilSıfırlama gibi bir durum söz konusu olamaz zira bu kod veri tutmuyor ve veritabanı kullanmıyor. Tam olarak neyi sıfırlama gerektiğini daha net açıkla.
Silhangi uygulma üzerinden yazıyoruz
YanıtlaSilmurat
YanıtlaSilhangi uygulama üzeinden yazıyoruz
YanıtlaSil