Discord Bot Canvas Resimli Giriş Çıkış Kodları |
CodeMareFi Gururla Sunar Canvas hoş geldin güle güle resimli karşılama kodları bunlara resimli hg-bb de diyebiliriz çoğunuzun da bildiği gibi discord sunucularında giriş yaptığınızda sizi botun canvas kodları ile karşılamasını herkez merak ediyordur işte bu yazımda paylaşacağım kodlarla artık sizinde botunuz da resimli karşılama mesajları olacak. Dikkatli bir şekilde okuyun ve adımları anlatımdaki gibi yapın.
Kodlar 3 ayrı bölümden oluşuyor gelen.js , giden.js ve komutlar klasörüne atılacak bir kanal ayarlama kodları ile 3 kod bölümünden oluşmak da. bu gelen ve giden .js kodlarını botunuzun ana dosyasına değil de ayrı dosyalar olarak ekleyeceksiniz. bu dosyaları ekleyeceğiniz klasör adı "events" olacak yani yapacağınız sistem örnek olarak şu yol events/gelen.js şeklinde olmalıdır.
Kurulum için adımları izleyin:
- Kod projenizde events ve 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 "quick.db", "canvas", "path", "snekfetch", "node-superfetch" eklemeniz gerekmekte.
//---Bu Kod gelen.js events klasörüne atılacak atılacaktır. //CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //Sadista const Discord = require("discord.js") const db = require("quick.db"); const Canvas = require('canvas') , Image = Canvas.Image , Font = Canvas.Font , path = require('path'); const snekfetch = require('snekfetch'); const request = require('node-superfetch'); module.exports = async member => { var randomMsg = [ "Sunucuya Hoşgeldin.", ]; var randomMsg_integer = randomMsg[Math.floor((Math.random() * randomMsg.length))] let msj = await db.fetch(`girisM_${member.guild.id}`) if (!msj) msj = `{uye}, ${randomMsg_integer}` let memberChannel = await db.fetch(`gcc_${member.guild.id}`) const canvas = Canvas.createCanvas(360, 250); const ctx = canvas.getContext('2d'); const background = await Canvas.loadImage('https://cdn.discordapp.com/attachments/598737609501704212/641064440099241985/CodeMarefi-gelen.jpg'); ctx.drawImage(background, 0, 0, canvas.width, canvas.height); ctx.strokeStyle = '#74037b'; ctx.strokeRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = `#D3D3D3`; ctx.font = `25px "S&S Nickson One"`; ctx.textAlign = "center"; ctx.fillText(`${member.user.username.toUpperCase()}`, 170, 210); let avatarURL = member.user.avatarURL || member.user.defaultAvatarURL const { body } = await request.get(avatarURL); const avatar = await Canvas.loadImage(body); ctx.beginPath(); ctx.lineWidth = 4; ctx.fill() ctx.lineWidth = 4; ctx.arc(112 + 55, 55 + 55, 55, 0, 2 * Math.PI, false); ctx.clip(); ctx.drawImage(avatar, 112, 55, 110, 110); const attachment = new Discord.Attachment(canvas.toBuffer(), 'CodeMarefi-gelen.jpg'); member.guild.channels.get(memberChannel).send(attachment) member.guild.channels.get(memberChannel).send(msj.replace('{uye}', member).replace('{sunucu}', member.guild.name)) if (member.user.bot) return member.guild.channels.get(memberChannel).send(`🤖 Bu bir bot, ${member.user.tag}`) }
//---Bu Kod giden.js events klasörüne atılacak atılacaktır. //CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //Sadista const Discord = require("discord.js") const db = require("quick.db"); const Canvas = require('canvas') , Image = Canvas.Image , Font = Canvas.Font , path = require('path'); const snekfetch = require('snekfetch'); const request = require('node-superfetch'); module.exports = async member => { var randomMsg = [ "Güle Güle" ]; var randomMsg_integer = randomMsg[Math.floor((Math.random() * randomMsg.length))] let paket = await db.fetch(`pakets_${member.id}`) let memberChannel = await db.fetch(`gcc_${member.guild.id}`) let msj = await db.fetch(`cikisM_${member.guild.id}`) if (!msj) msj = `{uye}, ${randomMsg_integer}` const canvas = Canvas.createCanvas(360, 250); const ctx = canvas.getContext('2d'); const background = await Canvas.loadImage('https://cdn.discordapp.com/attachments/598737609501704212/641064444365111319/CodeMarefi-giden.jpg'); ctx.drawImage(background, 0, 0, canvas.width, canvas.height); ctx.strokeStyle = '#74037b'; ctx.strokeRect(0, 0, canvas.width, canvas.height); ctx.fillStyle = `#D3D3D3`; ctx.font = `25px "Warsaw"`; ctx.textAlign = "center"; ctx.fillText(`${member.user.username.toUpperCase()}`, 170, 210); let avatarURL = member.user.avatarURL || member.user.defaultAvatarURL const { body } = await request.get(avatarURL); const avatar = await Canvas.loadImage(body); ctx.beginPath(); ctx.lineWidth = 4; ctx.fill() ctx.lineWidth = 4; ctx.arc(112 + 55, 55 + 55, 55, 0, 2 * Math.PI, false); ctx.clip(); ctx.drawImage(avatar, 112, 55, 110, 110); const attachment = new Discord.Attachment(canvas.toBuffer(), 'CodeMarefi-giden.jpg'); member.guild.channels.get(memberChannel).send(attachment) member.guild.channels.get(memberChannel).send(msj.replace('{uye}', member).replace('{sunucu}', member.guild.name)); if (member.user.bot) return member.guild.channels.get(memberChannel).send(`🤖 Bu bir bot, ${member.user.tag}`) }
//---Bu Kod projenizde komutlar klasörüne atılacaktır. //CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //Sadista const Discord = require('discord.js'); const db = require('quick.db'); exports.run = async (client, message, params, args) => { if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send(':no_entry: Hoşgeldin kanalı ayarlamak için `Yönetici` yetkisine sahip olman gerek.') let hgkanali = message.mentions.channels.first(); if (!hgkanali) return message.channel.send(':no_entry: Hoşgeldin kanalı ayarlamak için bir kanal etiketlemeniz gerekli. `c+gkanal #kanal`') db.set(`gcc_${message.guild.id}`, message.mentions.channels.first().id) let i = await db.fetch(`gcc_${message.guild.id}`) message.channel.send(`${process.env.basarili} Hoşgeldin kanalı, <#${i}> olarak ayarlandı.`) }; exports.conf = { enabled: true, guildOnly: false, aliases: [], permLevel: 0 }; exports.help = { name: 'gkanal', description: 'hg-bb kanal ayarlar', usage: 'gkanal' };
//---Bu Kod projenizde komutlar klasörüne atılacaktır. //CodeMareFi tarafından hazırlanmıştır - - - Ekleyen //Sadista const Discord = require('discord.js'); const db = require('quick.db'); exports.run = async (client, message, params, args) => { if (!message.member.hasPermission('ADMINISTRATOR')) return message.channel.send(':no_entry: Hoşgeldin kanalı ayarlamak için `Yönetici` yetkisine sahip olman gerek.') let firox = message.mentions.channels.first(); if (!firox) return message.channel.send(':no_entry: Hoşgeldin kanalı ayarlamak için bir kanal etiketlemeniz gerekli. `s$gkanal-sıfırla #kanal`') db.delete(`gcc_${message.guild.id}`, message.mentions.channels.first().id) message.channel.send(`Hoşgeldin kanalı Başarıyla Sıfırlandı!.`) }; exports.conf = { enabled: true, guildOnly: false, aliases: [], permLevel: 0 }; exports.help = { name: 'gkanal-sıfırla', description: 'CodeMareFi', usage: 's$kanal-sıfırla #kanal' };
Önemli Not: gelen.js ve giden.js kodlarını events klasörlerine ekleyeceksiniz komutlar klasörüne değil Örnek: events/gelen.js şeklinde olacak. client.on('guildMemberAdd', reqEvent('gelen')); client.on('guildMemberRemove', reqEvent('giden')); Buradaki kodları util/eventLoader.js'ye eklediğinizde sorun kalmaz.
Admin Hg Bb Kanalını Nasıl Kapatcaz
YanıtlaSilKanal sıfırlama kodu eklendi. Sayfada bulabilirsin.
SilResimli Hg Bb Kanalını Nasıl Kapatcaz
YanıtlaSilKodlar güncellenecek kodlar içinden bazı bölümleri çıkarmıştım yeniden güncelleyip paylaşırım.
SilÇok tek düze bir anlatım olmuş. Öncelikle modülleri nasıl yükleyecez, ayrıca Glitch üzerinden oluyor mu yoksa pc için ayrı bir program mı kullanmamız gerekiyor. Beginnerlar için tekrardan ayrıntılı ve anlaşılır biçimde anlatırsanız sevinirim.
YanıtlaSilAçıklamalar sitede mevcut Buradan ve Buradan araştırmamışsın sanırım.
SilAyrına glitch içinde proje klasör ve dosya eklemeleri ile her yazımın adımlar kısmında link veriyorum neler yapılması gerektiğini. Pc içinde pek bir fark yok bir kaç ayarlama ve bir .bat uzantısı ile entegre edilip projelerin çalışması mümkün tabi ama ben win makinelerde özellikle bot hostlanmasını tavsiye etmiyorum.
const Discord = require('discord.js') eror veriyor çözümünü anlatır mısın lütfen
YanıtlaSilBunun çözümünü söylemem için ne tür bir hata verdiğini görmem lazım console dan verdiğin hatanın ss ini atarsan bakarım. Bu genelde ya discord.js modülü düşük versiyondadır veya kod içerisindeki tanımlar artık değiştirilmiştir. Yani https://discord.js.org/ den güncel tanımlara bak.
SilSelam Arkadaşım
YanıtlaSilÖncelikle Kodda Hata var,
Anlamadığım process.env.token yada SECRET prefix olur.
Sizde prefix gibi kodlanmış ama prefix değil de farklı.
Bu bir nasıl desem emoji mi yoksa, token prefix mi?
Ne ayarlar.json ne process.env.token yada prefix var anlamadım.
message.channel.send(`${process.env.basarili} Hoşgeldin kanalı, <#${i}> olarak ayarlandı.`)
Bu komut tam olarak,
komutlar dosyasına atılan komutlar.
Bakar mısın acaba.
Dostum sana dc de özelden anlattım sanırım bu token veya prefix değil harici bir icon emoji için proje kök dizininden çağırma işlemi yani burada process.env.basarili kısmı direkt olarak işlenmiş bir emoji adresini çekip mesajda kullanması için yazılmış.
SilKodların bozuk olduğuna dair şüphesi olanlar için: Normal canvas
YanıtlaSil:img:https://cdn.discordapp.com/attachments/801872035143483413/805487902439637002/11.PNG:eimg:
Buda sunucu koruma sistemi canvas işlemesi:
:img:https://cdn.discordapp.com/attachments/801872035143483413/805488266949689344/22.PNG:eimg:
Bizim yazdığımız kodları götü boklu veletlerin yazdığı kodlar ile karıştırmayın amk.
Silsa hocam canvas giriş çıkış hoşgeldin kodlarının v12 versiyonu gelecekmi acaba ben bir türlü beceremedim bunları v12 versiyonuna çevirmeyi
YanıtlaSilGüncellenip paylaşılacak dostum.
Silne zaman kodlar gelir
YanıtlaSilyeni kodlar ne zaman gelir
YanıtlaSilve önceki kodları atabilirmisin
Zamanım oldukça güncelliyorum eklenecek dostum.
SilSelamünAleyküm Kardeş Kodları Nerden Alıcaz Acaba Bulamadımda
YanıtlaSilAleyküm Selam dostum kodları kaldırdım ama güncellenip tekrar eklenecek zaman olduğunda.
SilMerhaba, denilen her şeyi yaptım fakat olmadı. Şöyle bir hata alıyorum;
YanıtlaSil(node:12328) UnhandledPromiseRejectionWarning: TypeError: db.fetch is not a function
at Client. (C:\Users\kullanıcı\Desktop\botismi\bot.js:329:18)
at Client.emit (events.js:387:35)
at Object.module.exports [as GUILD_MEMBER_ADD] (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:375:28)
at Receiver.receiverOnMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\websocket.js:834:20)
at Receiver.emit (events.js:375:28)
at Receiver.dataMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:437:14)
at Receiver.getData (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:367:17)
at Receiver.startLoop (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:143:22)
at Receiver._write (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:78:10)
at writeOrBuffer (internal/streams/writable.js:358:12)
at Receiver.Writable.write (internal/streams/writable.js:303:10)
at TLSSocket.socketOnData (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\websocket.js:909:35)
at TLSSocket.emit (events.js:375:28)
at addChunk (internal/streams/readable.js:290:12)
at readableAddChunk (internal/streams/readable.js:265:9)
at TLSSocket.Readable.push (internal/streams/readable.js:204:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:188:23)
(node:12328) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12328) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(process:12328): Pango-WARNING **: 11:40:36.196: couldn't load font "S&S Nickson One Not-Rotated 25px", falling back to "Sans Not-Rotated 25px", expect ugly output.
(node:12328) UnhandledPromiseRejectionWarning: Error: Unsupported image type
at setSource (C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\lib\image.js:91:13)
at Image.set (C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\lib\image.js:65:7)
at C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\index.js:34:15
at new Promise ()
at Object.loadImage (C:\Users\fa716\Desktop\botismi\node_modules\canvas\index.js:23:10)
at Client.module.exports (C:\Users\fa716\Desktop\botismi\events\gelen.js:36:31)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(node:12328) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
Linux bir makineye kur dostum windows bu işler için sıkıntılı bir sistem.
SilUbuntu-Debian dağıtımına geçmeyi düşünüyorum. Sizce iyi midir? Veya başka bir linux dağıtımı önerir misiniz?
SilUbuntu tavsiye ederim. Debian sürümleri sistem geliştirici için genelde o sürümü geliştiriciler kullanır. Eğer sürüme hakim değilsen tavsiye etmem zira nette sorunların hakkında pek fazla içerik bulamazsın. Ubuntu kullanıcısı çok ve çok içerik var.
SilLinux Ubuntu dağıtımına geçiş yaptım, fakat hâlâ hata alıyorum :(
SilAldığınız hataların detaylarını yazın.
Silhacı db.fetch hatası alıyosun, db tanımlanmamış işte, bir kodda db'yi tanımlamamışsın
SilSorunun quick.db'de versiyonunu güncelle SQLite3 ~~ better-sqlite3 varsa onu da güncelle
SilLinux bir makineye kur dostum windows bu işler için sıkıntılı bir sistem.
YanıtlaSilkanka glitchte olmuyo
YanıtlaSilSistem ile alakalı değil sorun altyapından kaynaklı sanırım.
Silnasıl çalıştırcam :D
YanıtlaSilGerekli anlatımları yazı içinde yaptık.
Sil(node:12328) UnhandledPromiseRejectionWarning: TypeError: db.fetch is not a function
YanıtlaSilat Client. (C:\Users\kullanıcı\Desktop\botismi\bot.js:329:18)
at Client.emit (events.js:387:35)
at Object.module.exports [as GUILD_MEMBER_ADD] (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\handlers\GUILD_MEMBER_ADD.js:16:14)
at WebSocketManager.handlePacket (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketManager.js:384:31)
at WebSocketShard.onPacket (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketShard.js:444:22)
at WebSocketShard.onMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\discord.js\src\client\websocket\WebSocketShard.js:301:10)
at WebSocket.onMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\event-target.js:132:16)
at WebSocket.emit (events.js:375:28)
at Receiver.receiverOnMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\websocket.js:834:20)
at Receiver.emit (events.js:375:28)
at Receiver.dataMessage (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:437:14)
at Receiver.getData (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:367:17)
at Receiver.startLoop (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:143:22)
at Receiver._write (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\receiver.js:78:10)
at writeOrBuffer (internal/streams/writable.js:358:12)
at Receiver.Writable.write (internal/streams/writable.js:303:10)
at TLSSocket.socketOnData (C:\Users\kullanıcı\Desktop\botismi\node_modules\ws\lib\websocket.js:909:35)
at TLSSocket.emit (events.js:375:28)
at addChunk (internal/streams/readable.js:290:12)
at readableAddChunk (internal/streams/readable.js:265:9)
at TLSSocket.Readable.push (internal/streams/readable.js:204:10)
at TLSWrap.onStreamRead (internal/stream_base_commons.js:188:23)
(node:12328) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:12328) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
(process:12328): Pango-WARNING **: 11:40:36.196: couldn't load font "S&S Nickson One Not-Rotated 25px", falling back to "Sans Not-Rotated 25px", expect ugly output.
(node:12328) UnhandledPromiseRejectionWarning: Error: Unsupported image type
at setSource (C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\lib\image.js:91:13)
at Image.set (C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\lib\image.js:65:7)
at C:\Users\kullanıcı\Desktop\botismi\node_modules\canvas\index.js:34:15
at new Promise ()
at Object.loadImage (C:\Users\fa716\Desktop\botismi\node_modules\canvas\index.js:23:10)
at Client.module.exports (C:\Users\fa716\Desktop\botismi\events\gelen.js:36:31)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(node:12328) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 3)
Nerde bu konu yazarı sadist 😂😂 Cevaplasana adamların sorularını. D::Dd.d
YanıtlaSil