Skip to content

Commit

Permalink
Merge pull request #15 from ErdemGKSL/main
Browse files Browse the repository at this point in the history
New Interaction Setting<GuildOwnerOnly>
  • Loading branch information
TheArmagan committed Nov 26, 2021
2 parents 554058b + 407cfff commit 2bdbceb
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 1 deletion.
3 changes: 3 additions & 0 deletions config.js
Expand Up @@ -73,6 +73,9 @@ module.exports = new (require("./types/Config"))({
guildOnly(interaction, uInteraction, other) {
interaction.reply({ ephemeral: true, content: `Bu interaksiyonu sadece sunucularda kullanılabilir.` })
},
guildOwnerOnly(interaction, uInteraction, other) {
interaction.reply({ ephemeral: true, content: `Bu interaksiyonu sadece sunucu sahipleri kullanılabilir.` })
},
// Botun çalışmak için x yertkilerine ihtiyacı olduğunda.
botPermsRequired(interaction, uInteraction, perms, other) {
interaction.reply({ ephemeral: true, content: `Bu interaksiyonun çalışması için ${perms.join(", ")} yetkilerine ihtiyacım var.` })
Expand Down
9 changes: 9 additions & 0 deletions index.js
Expand Up @@ -98,6 +98,10 @@ async function load() {
console.warn(`[UYARI] "${rltPath}" interaksiyon dosyası sunuculara özel olmamasına rağmen özel perm kullanıyor.`);
}

if (!uInter.guildOnly && uInter.guildOwnerOnly) {
console.error(`[UYARI] "${rltPath}" interaksiyon dosyası sunuculara özel olmamasına rağmen sunucu sahibine özel! Atlanıyor.`);
return;
}

Underline.interactions.set(uInter.id, uInter);
uInter.onLoad(client);
Expand Down Expand Up @@ -298,6 +302,11 @@ client.on("interactionCreate", async (interaction) => {
return;
}

if (!config.developers.has(interaction.user.id) && ( !interaction.guildId || (uInter.guildOwnerOnly && interaction.guild?.ownerId != interaction.user.id) ) ) {
config.userErrors.guildOwnerOnly(interaction, uInter, other);
return;
}

if (typeof uInter.coolDown == "number") uInter.coolDown = [{
type: "user",
amount: uInter.coolDown,
Expand Down
1 change: 1 addition & 0 deletions interactions/ornekButton.js
Expand Up @@ -5,6 +5,7 @@ module.exports = new Underline.Button({
inter.reply("oka")
},
guildOnly: true,
guildOwnerOnly: true,
developerOnly: false,
perms: {
bot: ["CREATE_INSTANT_INVITE"],
Expand Down
2 changes: 1 addition & 1 deletion types/Config.js
Expand Up @@ -12,7 +12,7 @@ class Config {
/** @type {Discord.ClientOptions} */
clientOptions = {};

/** @type {{coolDown(interaction: Discord.CommandInteraction, interaction: Interaction, timeout: number, type: "user" | "member" | "channel" | "guild" | "message" | "any", other: {[key:string|number]: any}): void, disabled(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, blocked(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, botPermsRequired(interaction: Discord.CommandInteraction, interaction: Interaction, perms: string[], other: {setCoolDown(duration:number): void, [key:string|number]: any}): void, userPermsRequired(interaction: Discord.CommandInteraction, interaction: Interaction, perms: string[], other: {setCoolDown(duration:number): void, [key:string|number]: any}): void, developerOnly(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, guildOnly(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void}} */
/** @type {{coolDown(interaction: Discord.CommandInteraction, interaction: Interaction, timeout: number, type: "user" | "member" | "channel" | "guild" | "message" | "any", other: {[key:string|number]: any}): void, disabled(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, blocked(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, botPermsRequired(interaction: Discord.CommandInteraction, interaction: Interaction, perms: string[], other: {setCoolDown(duration:number): void, [key:string|number]: any}): void, userPermsRequired(interaction: Discord.CommandInteraction, interaction: Interaction, perms: string[], other: {setCoolDown(duration:number): void, [key:string|number]: any}): void, developerOnly(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, guildOnly(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void, guildOwnerOnly(interaction: Discord.CommandInteraction, interaction: Interaction, other: {[key:string|number]: any}): void}} */
userErrors = {};

/** @type {{[key: string|number]: any}} */
Expand Down
1 change: 1 addition & 0 deletions types/Interaction.d.ts
Expand Up @@ -58,6 +58,7 @@ export class BaseInteraction {
other?: { [key: string | number]: any };
coolDown?: cooldown[] | cooldown | number;
guildOnly?: boolean;
guildOwnerOnly?: boolean;
options?: CustomApplicationCommandOptionData[];
defaultPermission?: boolean;
actionType?: ApplicationCommandType | "SELECT_MENU" | "BUTTON";
Expand Down

0 comments on commit 2bdbceb

Please sign in to comment.