- Katılım
- 10 Kas 2019
- Konular
- 225
- Mesajlar
- 1,057
- Çözümler
- 19
- Tepki puanı
- 1,048
- Puanları
- 8,710
Veritabanlı mute sistemi ne işe yarar? Diye sorduğunuzu duyar gibiyim.
Diyelim ki birine mute attınız ve o mute attığınız kişi sunucudan çıkıp girince doğal olarak mute rolü gidiyor.
Veritabanlı mute sistemi sayesinde artık şahıs sunucudan çık gir yapsa dahi mute rolü gitmeyecektir.
Vereceğim kodlama hem veritabanlı hem de süreli mute sistemidir.
Alttaki kodlamayı "Komutlar" bölümüne atınız.
Adama mute atmanıza yarar, tabii ki ilk önce log kanalını ayarlamayı unutma
Diyelim ki birine mute attınız ve o mute attığınız kişi sunucudan çıkıp girince doğal olarak mute rolü gidiyor.
Veritabanlı mute sistemi sayesinde artık şahıs sunucudan çık gir yapsa dahi mute rolü gitmeyecektir.
Vereceğim kodlama hem veritabanlı hem de süreli mute sistemidir.
Alttaki kodlamayı "Komutlar" bölümüne atınız.
Adama mute atmanıza yarar, tabii ki ilk önce log kanalını ayarlamayı unutma
JavaScript:
const Discord = require("discord.js");
const ms = require("ms");
const client = new Discord.Client();
const db = require("quick.db");
exports.run = async (receivedMessage, msg, args) => {
let user = msg.guild.member(msg.mentions.users.first() || msg.guild.members.get(args[0]));
if (!msg.member.hasPermission("BAN_MEMBERS")) return msg.channel.send("Bu komudu kullanabilmek için `Ban` yetkisine sahip olmanız gerek.");
if (user.hasPermission("BAN_MEMBERS")) return msg.channel.send(`Hata! \`${user.tag}\` isimli kullanıcı bu sunucuda yetkili.`)
let log = await db.fetch(`mlog_${msg.guild.id}`)
if (!log) return msg.channel.send("Ayarlı Bir Mute Log Kanalı Yok! Ayarlamak için \`-mute-log #kanal\` !")
var mod = msg.author
var reason = args[1]
let sebep = args.slice(2).join(' ')
if (!user) return msg.reply('Kullanıcı Etiketlemedin')
if (!reason) return msg.reply('Süre Belirtmedin! Seçeneklerin : 1s/1m/1h/1d/1w')
if (!sebep) return msg.reply('Sebep Belirtmedin!')
let mute = msg.guild.roles.find(r => r.name === "Oyuncular Şehri");
let mutetime = args[1]
if(!mute){
mute = await msg.guild.createRole({
name: "Oyuncular Şehri",
color: "#818386",
permissions:[]
})
msg.guild.channels.forEach(async (channel, id) => {
await channel.overwritePermissions(mute, {
SEND_MESSAGES: false,
ADD_REACTIONS: false
});
});
}
await(user.addRole(mute.id));
msg.channel.send(``)
let mutezaman = args[1]
.replace(`d`," Gün")
.replace(`s`," Saniye")
.replace(`h`," Saat")
.replace(`m`," Dakika")
.replace(`w`," Hafta")
msg.channel.send(`${user} Adlı Kişi , ${mutezaman} Susturuldu! Sunucudan Çıkarsa Bile Mutesi Devam edecek!`)
db.set(`muteli_${msg.guild.id + user.id}`, 'muteli')
db.set(`süre_${msg.mentions.users.first().id + msg.guild.id}`, mutetime)
const muteembed = new Discord.RichEmbed()
.setTitle('Ceza: Mute')
.setThumbnail(user.avatarURL||user.defaultAvatarURL)
.addField('Moderatör', `${mod}`,true)
.addField('Sebep', `\`${sebep}\``,true)
.addField('Kullanıcı', `<@${user.id}>`,true)
.addField('Süre',`\`${mutezaman}\``)
. setColor("RANDOM")
msg.guild.channels.get(log).sendEmbed(muteembed)
setTimeout(function(){
db.delete(`muteli_${msg.guild.id + user.id}`)
user.removeRole(mute.id)
msg.channel.send(`<@${user.id}> Muten açıldı.`)
}, ms(mutetime));
}
exports.conf = {
enabled: true,
guildOnly: true,
aliases: ["sustur"],
permLevel: 0
};
exports.help = {
name: "mute",
description: "",
usage: ""
};
Alttaki kodlamayı "Komutlar" bölümüne atınız.
Log kanalını bu komut ile ayarlayabilirsiniz.
Log kanalını bu komut ile ayarlayabilirsiniz.
JavaScript:
const Discord = require('discord.js')
const db = require('quick.db');
exports.run = async (client, message, args) => {
if (!message.member.hasPermission("MANAGE_MESSAGES")) {
const bilgi = new Discord.RichEmbed()
.setDescription('Bu komutu kullanabilmek için **Mesajları Yönet** yetkisine sahip olmanız gerek.')
.setColor("0000A0")
return message.channel.sendEmbed(bilgi).then(m => m.delete(150000)); return
}
let mlog = message.mentions.channels.first()
let sıfırla = db.fetch(`mlog_${message.guild.id}`)
if(args[0] === "sıfırla") {
if(!sıfırla) {
message.channel.send(`Mute Log Kanalı zaten ayarlı değil.`)
return
}
db.delete(`mlog_${message.guild.id}`)
message.channel.send(`Mute Log Kanalı başarıyla sıfırlandı.`)
return
}
if (!mlog) {
return message.channel.send(
`Mute Log Olacak Kanalı etiketlemelisin.`)
}
db.set(`mlog_${message.guild.id}`, mlog.id)
message.channel.send(`✅|Mute Log Kanalı başarıyla ${mlog} olarak ayarlandı.`)
};
exports.conf = {
enabled: true,
guildOnly: true,
aliases: ['mute-log'],
permLevel: 0
}
exports.help = {
name: 'mute-log-ayarla',
description: 'Mute Logu Ayarlar.',
usage: '-mute-log #kanal'
}
Asıl önemli olan kısıma geldik.
Neden önemli? Hemen söyleyeyim, adam sunucudan çık gir yapınca bu kodlama sayesinde rolü geri verilecek.
Alttaki kodlamayı main'e atınız. (Örn; bot.js, index.js, server.js üçünden birisi olması gerek)
Neden önemli? Hemen söyleyeyim, adam sunucudan çık gir yapınca bu kodlama sayesinde rolü geri verilecek.
Alttaki kodlamayı main'e atınız. (Örn; bot.js, index.js, server.js üçünden birisi olması gerek)
JavaScript:
client.on('guildMemberAdd', async(member) => {
let mute = member.guild.roles.find(r => r.name === "Oyuncular Şehri");
let mutelimi = db.fetch(`muteli_${member.guild.id + member.id}`)
let süre = db.fetch(`süre_${member.id + member.guild.id}`)
if (!mutelimi) return;
if (mutelimi == "muteli") {
member.addRole(mute.id)
member.send("Muteliyken Sunucudan Çıktığın için Yeniden Mutelendin!")
setTimeout(function(){
db.delete(`muteli_${member.guild.id + member.id}`)
member.send(`<@${member.id}> Muten açıldı.`)
member.removeRole(mute.id);
}, ms(süre));
}
})