aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorame <[email protected]>2024-01-28 11:31:37 -0600
committerame <[email protected]>2024-01-28 11:31:37 -0600
commit6b9df1e15b66ed421278c0533c1425198c023d13 (patch)
treea09e6132f09b6a97def1ede0ffe0ef722435d208
parent8af3b4b030ed456fe5facc0bf4af3a249159da94 (diff)
changes to mod detection
-rw-r--r--commands/mod/confirm.js8
-rw-r--r--commands/mod/whois.js5
-rw-r--r--events/interaction.js3
-rw-r--r--events/message.js2
-rw-r--r--index.js3
-rw-r--r--src/util.js5
6 files changed, 16 insertions, 10 deletions
diff --git a/commands/mod/confirm.js b/commands/mod/confirm.js
index 1d32a18..398138e 100644
--- a/commands/mod/confirm.js
+++ b/commands/mod/confirm.js
@@ -7,20 +7,20 @@ const message = require("../../events/message");
let config_loc = __filename+".json"
let config = JSON.parse(fs.readFileSync(config_loc))
module.exports = {
- name: "sns",
- command: ["sns"],
+ name: "ban",
+ command: ["ban"],
mod_only:true,
config:config,
config_loc:config_loc,
main(client,Discord,message,args) {
},
- s_options:[{type:"sub",name:"ban",options:[
+ s_options:[
{type:"user",name:"user",desc:"message to be sent",required:true,autocomplete:false},
{type:"string",name:"ban-reason",desc:"ban reason to be sent to the user",required:true,autocomplete:false},
{type:"string",name:"details",desc:"staff note (mod side only)",required:false,autocomplete:false},
{type:"boolean",name:"send-appeal",desc:"whether to send your user id for appealing (default : false)", required:false,autocomplete:false},
- {type:"boolean",name:"open-thread",desc:"open a thread for discussion (default : false)", required:false,autocomplete:false}]},
+ {type:"boolean",name:"open-thread",desc:"open a thread for discussion (default : false)", required:false,autocomplete:false},
],
s_main(client,Discord,interaction){
this.exec(client, {
diff --git a/commands/mod/whois.js b/commands/mod/whois.js
index 1926885..6ffd8e6 100644
--- a/commands/mod/whois.js
+++ b/commands/mod/whois.js
@@ -3,6 +3,7 @@ const settings = require("../../src/settings")
const { EmbedBuilder, PermissionsBitField } = require("discord.js");
const fs = require('fs')
const {upload_limit} = require("../../src/util")
+let util = require("../../src/util")
const path = require('path')
let config_loc = __filename+".json"
let config = JSON.parse(fs.readFileSync(config_loc))
@@ -68,7 +69,7 @@ module.exports = {
p_user(client,Discord,message,user){
let join = new Date(parseInt(user.joinedTimestamp / 1000, 10)*1000).toLocaleDateString(undefined,{ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
let created = new Date(parseInt(user.user.createdAt / 1000, 10)*1000).toLocaleDateString(undefined,{ weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' });
- let mod = user.permissions!=null&&user.permissions?.has(PermissionsBitField.Flags.KickMembers)
+ let mod = util.is_mod(user)
let roles = ""
let color = {pos:-1,color:settings.defaultColor};
@@ -113,7 +114,7 @@ module.exports = {
m.delete()
})
}
- let mod = role.permissions!=null&&role.permissions?.has(PermissionsBitField.Flags.KickMembers)
+ let mod = util.is_mod(role)
const embed = new EmbedBuilder()
.setTitle(role.name)
.setDescription("<@&"+role.id+">"+(mod?" +able to use mod commands":""))
diff --git a/events/interaction.js b/events/interaction.js
index ff3f1ef..a9a174f 100644
--- a/events/interaction.js
+++ b/events/interaction.js
@@ -4,6 +4,7 @@ const path = require("path");
const { EmbedBuilder } = require("discord.js");
let db = require("../src/db")
let settings = require('../src/settings')
+let util = require("../src/util")
let config_loc = __filename+".json"
module.exports = {
name : "interactionCreate",
@@ -21,7 +22,7 @@ module.exports = {
await interaction.guild.members.fetch()
interaction.user = interaction.guild.members.cache.get(interaction.user.id)
- let mod = interaction.user.permissions!=null&&interaction.user.permissions?.has(PermissionsBitField.Flags.KickMembers)
+ let mod = util.is_mod(interaction.member)
let command = global.s_commands.find(o => o.name === interaction.commandName)
if(command.command.config.mod_respect_restrict) mod = false
if(!((!command.command.config.restrict||command.command.config.restrict.length==0||command.command.config.restrict.includes(interaction.channel.id))&&
diff --git a/events/message.js b/events/message.js
index c9234e0..63202d8 100644
--- a/events/message.js
+++ b/events/message.js
@@ -115,7 +115,7 @@ module.exports = {
let remove = function(msg) {setTimeout(async()=>{try{await msg.delete()}catch(e){}},config["error-timeout"].value)}
let date = new Date()
let uid = message.member.id;
- let mod = message.member.permissions!=null&&message.member.permissions?.has(PermissionsBitField.Flags.KickMembers)
+ let mod = util.is_mod(message.member);//message.member.permissions!=null&&message.member.permissions?.has(PermissionsBitField.Flags.KickMembers)
if(message.content.startsWith("sns ")&&(!config["restrict-channels"].value.includes(message.channel.id)||(mod))){
let com_string = message.content.split(" ")
com_string.shift()
diff --git a/index.js b/index.js
index 37a6978..fd9be1e 100644
--- a/index.js
+++ b/index.js
@@ -18,6 +18,7 @@ const dotenv = require("dotenv").config();
const TOKEN = process.env.TOKEN;
const path = require("path");
let db = require("./src/db");
+let util = require("./src/util")
const client = new Client({
intents: [
@@ -119,7 +120,7 @@ fs.readdirSync("./commands/").forEach(folder => {
.setName(com.name.replace(/ /g,'-'))
.setDescription(com.config.desc)
if(com.mod_only)
- scom.setDefaultMemberPermissions(PermissionsBitField.Flags.KickMembers)
+ scom.setDefaultMemberPermissions(PermissionsBitField.Flags.ManageRoles)
if(com.s_options!=null){
update_options(scom,com.s_options);
}
diff --git a/src/util.js b/src/util.js
index 880c3c4..601dbec 100644
--- a/src/util.js
+++ b/src/util.js
@@ -1,6 +1,9 @@
const rem_emp = function (e) {return e !== "";}
-module.exports = {
+module.exports = {
+ is_mod(member){
+ return member.permissions!=null&&member.roles.cache.has("586781513471885323")
+ },
generate_id(){
let config = JSON.parse(fs.readFileSync(config_loc))
var ticket = "";