-
Notifications
You must be signed in to change notification settings - Fork 14
/
config.js
166 lines (163 loc) · 6.83 KB
/
config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
const Discord = require("discord.js");
module.exports = new (require("./types/Config"))({
// E tabi, bot tokeni buraya.
clientToken: "",
// Sharding özellikleri
sharding: {
enabled: false,
// [clusterCount, shardCountPerCluster]
count: [4, 4],
onManager(manager) {
manager.on("clusterCreate", (cluster) => {
console.info(`[BILGI] ${cluster.id} idli cluster doğruldu.`);
});
manager.spawn({ timeout: -1 });
}
},
// Yasaklı kullanıcıların idleri.
blockedUsers: new Set([]),
// Geliştiricilerin idleri.
developers: new Set([
"707309693449535599",
"319862027571036161"
]),
variables: "memory", // "memory" / "redis"
// 0: No Debug, 1: Minimal Debug 2: Maximum Debug
debugLevel: 2,
// Discord.js client ayarları.
clientOptions: {
// Okumanızı tavsiye ederim: https://discordjs.guide/popular-topics/intents.html
intents: [Discord.IntentsBitField.Flags.Guilds]
},
// Botunuzun varsayılan dili.
defaultLanguage: "tr",
// Diğer ayarlar. Bunun içine ne isterseniz koyabilirsiniz.
// Ulaşmak için "Underline.config.other" ve/veya "Underline.other" objesini kullanabilirsiniz.
other: {
plugins: {
mongooseDatabase: {
connectionURL: "mongodb://localhost:27017/basit-altyapi"
}
},
redis: {
url: "redis://localhost:6379",
key: "Underline:Variables:0"
}
},
// Otomatik olarak "Underline" objesinin içine eklenen değerler.
// Eklediğiniz değerler "Underline.<anahtar>" şeklinde ulaşabilirsiniz.
// Prejeinin herhangi bir yerinde bu işlemi yapabilirsiniz.
// Bu obje hiçbir filitrelemeden geçmemektedir. "Başınız yanabilir."
// - Bu özellik other objesinin bi amacı kalmamasını sağlıyor
globalObjects: {
},
// Kullanıcı hatalarındaki uyarı mesajları/olayları.
userErrors: {
// Arka arkaya interaksiyon kullanma limiti aşıldığında.
coolDown(interaction, uInteraction, coolDown, type, other) {
interaction.reply({
ephemeral: true,
content: other.locale.userErrors.coolDown[type]((coolDown / 1000).toFixed(2))
});
},
// interaksiyon kapalı olduğunda
disabled(interaction, uInteraction, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.disabled() });
},
// Kullanıcı bottan yasaklı olduğunda.
blocked(interaction, uInteraction, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.blocked() });
},
// interaksiyon sadece geliştiricilere özel olduğunda.
developerOnly(interaction, uInteraction, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.developerOnly() });
},
// interaksiyon sadece sunucu sahiplerine özel olduğunda.
guildOwnerOnly(interaction, uInteraction, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.guildOwnerOnly() });
},
// interaksiyon sadece sunuculara özel olduğunda.
guildOnly(interaction, uInteraction, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.guildOnly() });
},
// Botun çalışmak için x yertkilerine ihtiyacı olduğunda.
botPermsRequired(interaction, uInteraction, perms, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.botPermsRequired(perms.join(", ")) });
},
// Kullanıcının interaksiyonu kullanabilmek için x yetkilerine ihtiyacı olduğunda.
userPermsRequired(interaction, uInteraction, perms, other) {
if (interaction.type == Discord.InteractionType.ApplicationCommandAutocomplete) return [];
interaction.reply({ ephemeral: true, content: other.locale.userErrors.userPermsRequired(perms.join(", ")) });
},
},
// Her interaksiyonun varsayılan ayarları her anahtarın ne
// işe yaradığını merak ediyorsanız interactions/ornekInteraksiyon.js'e
// bakabilirsiniz.
interactionDefaults: {
actionType: "ChatInput",
description: "...",
developerOnly: false,
guildOnly: true,
disabled: false,
coolDown: -1,
other: {},
perms: {
bot: [],
user: []
},
options: [],
defaultPermission: true,
autoDefer: "off",
nullError: false
},
// Bot ilk açıldığında daha hiçbirşey yüklenmeden önce çalışan fonksiyon. Opsiyonel.
onBeforeLoad(client) {
console.log("[CONFIG] Yüklemeye başlamadan önce çalıştı.");
},
// Bot interaksiyonları ve olayları yükledikten sonra çalışan fonksiyon. Opsiyonel.
onAfterLoad(client) {
console.log("[CONFIG] Yükleme bittikten sonra çalıştı.");
},
// Bot açıldıktan sonra kullanıma hazır olduktan sonra çalışan fonksiyon. Opsiyonel.
async onReady(client) {
console.log("[CONFIG] Discord hesabına giriş yaptıktan sonra çalıştı.");
client.user.setActivity(`/help - Basit Altyapı by TheArmagan`, { type: "Watching" });
},
// interaksiyon üzerinde hiçbir kontrol yapılmadan önce çalışır.
// Sadece cevap true ise işleme devam eder.
//
// Other objesini istediğiniz gibi modifiye edebilirsiniz.
// Nasılsa altakki fonksiyon her interaksiyon çalışmadan önce çalışır.
async onInteractionBeforeChecks(uInteraction, interaction, other) {
return true;
},
// interaksiyontaki bütün kontrolleri geçtikten sonra, interaksiyon
// hemen çalıştırılmadan önce çalışır.
// Sadece cevap true ise işleme devam eder.
//
// Other objesini istediğiniz gibi modifiye edebilirsiniz.
// Nasılsa altakki fonksiyon her interaksiyon çalışmadan önce çalışır.
async onInteraction(uInteraction, interaction, other) {
return true;
},
// İnteraksiyon hatasız bir şekilde çalıştıktan sonra tetikleniyor. (Armağan: peki.)
async onAfterInteraction(uInteraction, interaction, other) { },
// eventteki bütün kontrolleri geçtikten sonra, event
// hemen çalıştırılmadan önce çalışır.
// Sadece cevap true ise işleme devam eder.
//
// Other objesini istediğiniz gibi modifiye edebilirsiniz.
// Nasılsa altakki fonksiyon her event çalışmadan önce çalışır.
async onEvent(eventName, args, other) {
return true;
},
// Olay hatasız bir şekilde çalıştıktan sonra çalışır.
async onAfterEvent(eventName, args, other) {
},
})