mirror of
https://gitlab.com/upRootNutrition/zookeeper.git
synced 2025-06-15 18:05:12 -05:00
feat: init
This commit is contained in:
commit
8379d09058
11 changed files with 591 additions and 0 deletions
116
index.js
Normal file
116
index.js
Normal file
|
@ -0,0 +1,116 @@
|
|||
const { Client, GatewayIntentBits, Collection } = require('discord.js');
|
||||
require('dotenv').config();
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const client = new Client({
|
||||
intents: [
|
||||
GatewayIntentBits.Guilds,
|
||||
GatewayIntentBits.GuildMessages,
|
||||
GatewayIntentBits.MessageContent,
|
||||
GatewayIntentBits.GuildMembers,
|
||||
GatewayIntentBits.GuildVoiceStates
|
||||
]
|
||||
});
|
||||
|
||||
client.commands = new Collection();
|
||||
const commandsPath = path.join(__dirname, 'commands');
|
||||
|
||||
try {
|
||||
const commandFiles = fs.readdirSync(commandsPath).filter(file => file.endsWith('.js'));
|
||||
for (const file of commandFiles) {
|
||||
const filePath = path.join(commandsPath, file);
|
||||
const command = require(filePath);
|
||||
client.commands.set(command.name, command);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error loading commands:', error);
|
||||
}
|
||||
|
||||
client.once('ready', () => {
|
||||
console.log('Bot is online!');
|
||||
});
|
||||
|
||||
// Sets to keep track of "tranq" and "coma" users
|
||||
const tranqUsers = new Set();
|
||||
const comaUsers = new Set();
|
||||
|
||||
// Path to the JSON file to store baboon users
|
||||
const baboonUsersPath = path.join(__dirname, 'baboon_users.json');
|
||||
|
||||
// Load baboon users from the JSON file
|
||||
let baboonUsers = {};
|
||||
if (fs.existsSync(baboonUsersPath)) {
|
||||
baboonUsers = JSON.parse(fs.readFileSync(baboonUsersPath, 'utf8'));
|
||||
}
|
||||
|
||||
client.on('messageCreate', async message => {
|
||||
if (tranqUsers.has(message.author.id) || comaUsers.has(message.author.id)) {
|
||||
await message.delete();
|
||||
return;
|
||||
}
|
||||
|
||||
if (!message.content.startsWith('~') || message.author.bot) return;
|
||||
|
||||
const args = message.content.slice(1).split(/ +/);
|
||||
const commandName = args.shift().toLowerCase();
|
||||
|
||||
if (!client.commands.has(commandName)) return;
|
||||
|
||||
const command = client.commands.get(commandName);
|
||||
|
||||
try {
|
||||
console.log(`Passing comaUsers and tranqUsers sets to ${commandName} command with sizes: comaUsers=${comaUsers.size}, tranqUsers=${tranqUsers.size}`);
|
||||
await command.execute(message, args, tranqUsers, comaUsers);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
message.reply('There was an error trying to execute that command!');
|
||||
}
|
||||
});
|
||||
|
||||
client.on('guildMemberRemove', async member => {
|
||||
const channelId = '826225570219687956'; // Channel ID to send the message
|
||||
const roleId = '1160622954082738347'; // Baboon role ID
|
||||
|
||||
if (member.roles.cache.has(roleId)) {
|
||||
const channel = member.guild.channels.cache.get(channelId);
|
||||
if (channel) {
|
||||
channel.send('The baboon has made an escape!');
|
||||
} else {
|
||||
console.error(`Channel with ID ${channelId} not found`);
|
||||
}
|
||||
|
||||
// Store the user ID in the baboon users list
|
||||
baboonUsers[member.id] = true;
|
||||
fs.writeFileSync(baboonUsersPath, JSON.stringify(baboonUsers, null, 2), 'utf8');
|
||||
}
|
||||
});
|
||||
|
||||
client.on('guildMemberAdd', async member => {
|
||||
const channelId = '826225570219687956'; // Channel ID to send the message
|
||||
const roleId = '1160622954082738347'; // Baboon role ID
|
||||
|
||||
// Check if the user is in the baboon users list
|
||||
if (baboonUsers[member.id]) {
|
||||
const role = member.guild.roles.cache.get(roleId);
|
||||
if (role) {
|
||||
try {
|
||||
await member.roles.add(role);
|
||||
console.log(`Reapplied baboon role to ${member.user.tag}`);
|
||||
|
||||
const channel = member.guild.channels.cache.get(channelId);
|
||||
if (channel) {
|
||||
channel.send(`A loose baboon has been recaptured!`);
|
||||
} else {
|
||||
console.error(`Channel with ID ${channelId} not found`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`Failed to reapply baboon role to ${member.user.tag}`, error);
|
||||
}
|
||||
} else {
|
||||
console.error('Baboon role not found');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
client.login(process.env.DISCORD_TOKEN);
|
Loading…
Add table
Add a link
Reference in a new issue