Game Developer
Seçkin Üye
Discord'da benimde Database işlemlerinde kullandığım fonksiyonları buraya paylaşmak istedim faydalanmak isteyenler olabilir.
İyi günler...
Kullanılan Database: quick.db
Yapmanız gereken tek şey:
npm install quick.db
npm install ms
veya yarn kullanıyorsanız
yarn add quick.db
yarn add ms
İyi günler...
Kullanılan Database: quick.db
Yapmanız gereken tek şey:
npm install quick.db
npm install ms
veya yarn kullanıyorsanız
yarn add quick.db
yarn add ms
JavaScript:
var quick = require('quick.db');
var tag = new quick.table('tag');
var penal = new quick.table('penal');
var user = new quick.table('user');
var ms = require('ms');
class Database {
/**
* Adding penal point to user and penal statistics to Author(Staff).
* @param {number} PenalId Penal id
* @param {Object} Member Member object.
* @param {Object} Author Member which use this.
* @param {string} Type Type of a penal
* @param {string} Reason Reason of a penal
* @param {number} Time Time of a penal as (milisecond)
* @param {number} ThrownTime Thrown of a penal as (milisecond)
* @param {number} EndTime End of a time as (milisecond)
* @param {string} DataType Type of penal
* @param {string} GuildId GuildID
*/
static AddPenal(PenalId, Member, Author, Type, Reason, Time, ThrownTime, EndTime, DataType, GuildId){
var PenalNo = PenalId;
var _penal = {
no: PenalNo,
active: true,
member: Member.id,
author: Author.id,
type: Type,
reason: Reason,
throwntime: ThrownTime,
endtime: EndTime,
removedBy: "There is nothing remove process!",
time: Date.now()
};
user.set(`penal.${PenalNo}`, _penal);
user.push(`member.${Member.id}.penals`, _penal);
// Add temp-jail to user
if(DataType == "tempjail"){
penal.push(DataType, {id: Member.id, no: PenalNo, thrown_time: Date.now()+ms(Time)})
user.add(`member.${Author.id}.jail`, 1);
user.add(`member.${Member.id}.penalPoint`, 15);
}
// Add jail to user
else if(DataType == "jail"){
penal.push(`jail`, `j${Member.id}`)
user.add(`member.${Author.id}.jail`, 1);
user.add(`member.${Member.id}.penalPoint`, 20);
}
// Add ban to user
else if(DataType == "ban"){
user.add(`member.${Author.id}.ban`, 1);
user.add(`member.${Member.id}.penalPoint`, 30);
}
// Add voice mute to user
else if(DataType == "voiceMute"){
penal.push(DataType, {id: Member.id,No: cezano, kalkmaZamani: Date.now()+ms(Time)})
user.add(`member.${Author.id}.chatmute`, 1);
user.add(`member.${Member.id}.penalPoint`, 10);
}
// Add chat mute to user
else if(DataType == "chatMute"){
penal.push(DataType, {id: Member.id,No: cezano, kalkmaZamani: Date.now()+ms(Time)})
user.add(`member.${Author.id}.voicemute`, 1);
user.add(`member.${Member.id}.penalPoint`, 10);
}
// Add warn to user
else if(DataType == "warn"){
user.add(`member.${Author.id}.warn`, 1);
user.add(`member.${Member.id}.penalPoint`, 2);
}
quick.add(`penalno.${GuildId}`, 1);
};
static AddName(MemberId, Name, Age, StaffId, ProcessName){
user.push(`member.${MemberId}.history`, {
name: Name,
age: Age,
process: ProcessName,
time: Date.now()
});
user.set(`member.${MemberId}.lastHistory`, {
name: Name,
age: Age,
});
}
static UpdateName(MemberId, Name, Age, ProcessName){
user.push(`member.${MemberId}.history`, {
name: Name,
age: Age,
process: ProcessName,
time: Date.now()
})
};
static AddRegisterPoint(StaffId, Gender){
user.add(`register.${StaffId}.${Gender}`, 1);
}
static GetMemberNames(MemberId){
let NameHistory = user.get(`member.${MemberId.id}.history`);
return NameHistory;
}
static SpecifyGender(MemberId, Gender){
user.set(`member.${MemberId.id}.gender`, Gender);
}
static GetMemberGender(MemberId){
let GetGender = user.get(`member.${MemberId}.gender`);
return GetGender;
}
static SetMemberUnRegister(MemberId){
user.delete(`member.${MemberId}.gender`);
user.delete(`member.${MemberId}.lastHistory`);
}
static GetMemberLastName(MemberId){
let LastName = user.get(`member.${MemberId.id}.lastHistory`);
return LastName;
}
static GetRegisterPoints(){
let RegisterPoints = user.get(`register`) || {};
return RegisterPoints;
}
static GetRegisterPointFromSpecifyMember(MemberId){
let RegisterPoint = user.get(`register.${MemberId.id}`);
return RegisterPoint;
}
static GetMemberInformation(Member, TypeOfInformation){
switch (TypeOfInformation) {
case "Bans":
user.get(`member.${Member.id}.ban`);
break;
case "Warns":
user.get(`member.${Member.id}.warn`);
break;
case "VoiceMutes":
user.get(`member.${Member.id}.voicemute`);
break;
case "ChatMutes":
user.get(`member.${Member.id}.chatmute`);
break;
case "Jails":
user.get(`member.${Member.id}.jail`)
break;
default:
var error = new Error("Please select an type for information. **[Jails, Warns, Bans, VoiceMutes, ChatMutes]**");
return error;
}
}
/** Getting DATA's About Penal */
static GetPenalPoint(Member){
return user.fetch(`member.${Member.id}.penalPoint`);
}
static GetPenalNo(GuildId){
return quick.get(`penalno.${GuildId}`);
}
static GetPenal(Member){
return user.get(`member.${Member.id}.penals`);
}
static GetPenalInformation(PenalId){
return user.fetch(`penal.${PenalId}`);
}
/** Remove records */
static RemoveMemberRecord(Member){
user.delete(`member.${Member}.penals`);
user.delete(`member.${Member}.penalPoint`);
}
static GetVoiceMutes(){
let VoiceMute = penal.get(`voiceMute`) || [];
return VoiceMute;
}
static GetChatMutes(){
let ChatMute = penal.get(`chatMute`) || [];
return ChatMute;
}
static GetJails(){
let Jails = penal.get(`jail`) || [];
return Jails;
}
/** Banned TAGS Process */
static GetBannedTag(){
let BannedTags = penal.get(`bannedTags`) || [];
return BannedTags;
}
static AddMemberToBannedTag(MemberId){
return penal.push('bannedTags', `b${MemberId}`)
}
static RemoveMemberFromBannedTag(MemberId){
let RemoveBannedTag = penal.get(`bannedTags`) || [];
return penal.set(`bannedTags`, RemoveBannedTag.filter(Filter => !Filter.includes(MemberId.id)));
}
static RemoveChatMuteFromMember(PenalId,MemberId, StaffId){
let ChatMutes = penal.get(`chatMute`) || [];
penal.set(`chatMute`, ChatMutes.filter(Filter => Filter.id !== MemberId.id));
user.set(`penal.${PenalId}.active`, false)
user.set(`penal.${PenalId}.removedBy`, StaffId.id);
user.set(`penal.${PenalId}.endtime`, Date.now());
}
static RemoveVoiceMuteFromMember(PenalId,MemberId, StaffId){
let VoiceMutes = penal.get(`voiceMute`) || [];
penal.set(`voiceMute`, VoiceMutes.filter(Filter => Filter.id !== MemberId.id));
user.set(`penal.${PenalId}.active`, false)
user.set(`penal.${PenalId}.removedBy`, StaffId.id);
user.set(`penal.${PenalId}.endtime`, Date.now());
}
static RemoveJailFromMember(PenalId, MemberId, StaffId){
let punishments = penal.get(`jail`) || [];
let temp_punishments = penal.get(`tempjail`) || [];
penal.set(`jail`, punishments.filter(Filter => !Filter.includes(MemberId.id)));
penal.set(`tempjail`, temp_punishments.filter(Filter => Filter.id !== MemberId.id));
user.set(`penal.${PenalId}.active`, false)
user.set(`penal.${PenalId}.endtime`, Date.now())
user.set(`penal.${PenalId}.removedby`, StaffId.id)
}
static RemoveBanFromMember(PenalId, StaffId){
user.set(`penal.${PenalId}.active`, false);
user.set(`penal.${PenalId}.endtime`, Date.now());
user.set(`penal.${PenalId}.removedBy`, StaffId.id);
}
static CheckVoiceMute(PenalId, MemberId){
let VoiceMutes = penal.get(`voiceMute`) || [];
penal.set(`voiceMute`, VoiceMutes.filter(Filter => Filter.id !== MemberId.id));
user.set(`penal.${PenalId}.active`, false)
user.set(`penal.${PenalId}.endtime`, Date.now());
}
static async ScanPenal(){
let BannedTags = ayarlar.yasakTaglar || [];
let BannedTagMembers = cdb.get("bannedTags") || [];
let TempPunishments = cdb.get("tempjail") || [];
let VoiceMutes = cdb.get("voiceMute") || [];
let ChatMutes = cdb.get("chatMute") || [];
for(let penal of BannedTagMembers){
let Member = client.guilds.cache.get(client.settings.Guild.ServerId).members.cache.get(penal.id);
if(Member && BannedTags.some(Tag => Member.user.username.includes(Tag)) && !Member.roles.cache.has(client.settings.Roles.BannedTagRole)){
await Member.roles.set(Member.roles.cache.has(client.settings.Roles.BoosterRole) ? [client.settings.Roles.BoosterRole, client.settings.Roles.BannedTagRole] : [client.settings.Roles.BannedTagRole]).catch();
}
if(Member && !BannedTags.some(Tag => Member.user.username.includes(Tag)) && Member.roles.cache.has(client.settings.Roles.BannedTagRole)){
penal.set(`bannedTags`, BannedTagMembers.filter(Filter => !Filter.includes(Member.id)));
await Member.defineRole(client.settings.Roles.BannedTagRole);
}
}
for (let penal of TempPunishments) {
let Member = client.guilds.cache.get(client.settings.Guild.ServerId).members.cache.get(penal.id);
if (Date.now() >= penal.endtime) {
penal.set("tempjail", TempPunishments.filter(Filter => Filter.id !== penal.id));
if (Member && Member.roles.cache.has(client.settings.Roles.JailRole)) {
let LastName = this.GetMemberLastName(Member);
let Gender = this.GetMemberGender(Member);
if(LastName || Gender) {
if(Gender == "erkek" || Gender == "boy") {
Member.defineRole(client.settings.Roles.BoyRoles).then(() => {
if(Member.user.username.includes(client.settings.Guild.Tag)) return Member.roles.add(client.settings.Roles.TagRole)
})
};
if(Gender == "kadın" || Gender == "girl") {
Member.defineRole(client.settings.Roles.GirlRoles).then(() => {
if(Member.user.username.includes(client.settings.Guild.Tag)) Member.roles.add(client.settings.Roles.TagRole)
});
}
}
else {
Member.defineRole(client.settings.Roles.UnRegisterRole);
}
}
user.set(`penal.${penal.no}.active`, false)
user.set(`penal.${penal.no}.endtime`, Date.now())
} else {
if (Member && !Member.roles.cache.has(client.settings.Roles.JailRole)) Member.roles.set(Member.roles.cache.has(client.settings.Roles.BoosterRole) ? [client.settings.Roles.BoosterRole, client.settings.Roles.JailRole] : [client.settings.Roles.JailRole])
};
};
for(let penal of ChatMutes){
let Member = client.guilds.cache.get(client.settings.ServerId).members.cache.get(penal.id);
if(Date.now() >= ceza.endtime){
penal.set("chatMute", ChatMutes.filter(Filter => Filter.id !== penal.id));
if(Member && Member.roles.cache.has(client.settings.Roles.ChatMuteHammer)){
await member.roles.remove(client.settings.Roles.ChatMuteHammer);
}
user.set(`penal.${penal.no}.active`, false);
user.set(`penal.${penal.no}.endtime`, Date.now());
}
else {
if(Member && !Member.roles.cache.has(client.settings.Roles.ChatMuteHammer)){
await Member.roles.add(client.settings.Roles.ChatMuteHammer);
}
}
}
for(let penal of VoiceMutes){
let Member = client.guilds.cache.get(client.settings.ServerId).members.cache.get(penal.id);
if(Date.now() >= ceza.endtime){
penal.set("voiceMute", VoiceMutes.filter(Filter => Filter.id !== penal.id));
if(Member){
await Member.roles.remove(client.settings.Roles.VoiceMuteHammer)
}
if(Member && Member.voice.channel){
await Member.voice.setMute(false);
}
user.set(`penal.${penal.no}.active`, false);
user.set(`penal.${penal.no}.endtime`, Date.now());
}
else {
if(Member){
await Member.roles.add(client.settings.Roles.VoiceMuteHammer);
}
}
}
};
static DeleteMessage(MemberId){
quick.delete(`messagecheck.${MemberId.id}`);
};
static AddMessage(MemberId){
quick.add(`messagecheck.${MemberId.id}`, 1);
};
static CheckMessage(MemberId){
let Check = quick.get(`messagecheck.${MemberId.id}`);
return Check;
};
static AddMemberToTag(MemberId, StaffId, Active){
tag.set(`tag.${MemberId.id}`, {
check: Active,
addedBy: StaffId.id,
date: Date.now()
});
};
static AddMemberToTagStaff(MemberId, StaffId){
tag.set(`last.${StaffId.id}`, {
who: MemberId.id,
date: Date.now()
});
tag.add(`staff.${StaffId.id}`, 1);
};
static RemoveMemberFromTag(MemberId){
let Check = tag.get(`tag.${MemberId.id}`);
if(!Check) return;
tag.subract(`staff.${Check.addedBy}`, 1);
tag.delete(`tag.${MemberId.id}`);
}
static TagControl(MemberId){
let Check = tag.get(`tag.${MemberId.id}`);
return Check;
}
static TagControlStaff(StaffId) {
let Check = tag.get(`staff.${StaffId.id}`) || 0;
return Check;
}
static LastTagMemberControl(StaffId) {
let Check = tag.get(`last.${StaffId.id}`) || {};
return Check;
}
static RemoveStaff(MemberId){
tag.delete(`last.${MemberId.id}`);
tag.delete(`tag.${MemberId.id}`);
user.delete(`register.${MemberId.id}`);
}
}
module.exports = Database;
Son düzenleme: