288 lines
11 KiB
JavaScript
288 lines
11 KiB
JavaScript
const { Client, Intents, MessageEmbed, Collection, MessageAttachment, MessageButton, MessageActionRow, Modal, TextInputComponent } = require('discord.js');
|
|
const fs = require('fs');
|
|
const sharp = require('sharp');
|
|
const config = require('./config.json')
|
|
const client = new Client({ intents: Object.values(Intents.FLAGS) });
|
|
|
|
client.commands = new Collection();
|
|
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
|
|
for (const file of commandFiles) {
|
|
const command = require(`./commands/${file}`);
|
|
client.commands.set(command.data.name, command);
|
|
}
|
|
|
|
client.on('ready', () => {
|
|
console.log(`Slash commandok betöltve!`);
|
|
client.application.commands.set(client.commands.map(cmd => cmd.data));
|
|
});
|
|
|
|
client.on('interactionCreate', async interaction => {
|
|
if (!interaction.isCommand()) return;
|
|
|
|
const { commandName } = interaction;
|
|
const command = client.commands.get(commandName);
|
|
if (!command) return;
|
|
|
|
try {
|
|
await command.execute(interaction);
|
|
} catch (error) {
|
|
console.error(error);
|
|
await interaction.reply({ content: "hiba a parancsban", ephemeral: true });
|
|
}
|
|
});
|
|
|
|
client.on('ready', () => {
|
|
console.clear()
|
|
console.log('tojásnak szóló üzenet, elindult a cucc')
|
|
})
|
|
|
|
client.on('guildMemberAdd', async (member) => {
|
|
if (member.guild.id !== '1307085169877975120') return; // Check for the specific server
|
|
if (member.user.bot) return;
|
|
const welcomeChannel = client.channels.cache.get('1307419314143629442');
|
|
|
|
// Corrected: Use member.guild instead of client.guild
|
|
const autorole = member.guild.roles.cache.get('1307098025528791050');
|
|
|
|
// Assign the role
|
|
member.roles.add(autorole);
|
|
|
|
const fetch = (await import('node-fetch')).default;
|
|
const avatarUrl = member.user.displayAvatarURL({ format: 'png', size: 128 });
|
|
const avatarResponse = await fetch(avatarUrl);
|
|
const avatarBuffer = await avatarResponse.buffer();
|
|
|
|
const width = 700;
|
|
const height = 250;
|
|
const resizedAvatarBuffer = await sharp(avatarBuffer).resize(128, 128).toBuffer();
|
|
const realUserCount = member.guild.members.cache.filter(member => !member.user.bot).size;
|
|
const welcomeImage = await sharp({
|
|
create: {
|
|
width: width,
|
|
height: height,
|
|
channels: 4,
|
|
background: { r: 0, g: 183, b: 255, alpha: 1 }
|
|
}
|
|
})
|
|
.composite([
|
|
{
|
|
input: resizedAvatarBuffer,
|
|
top: 25,
|
|
left: 25,
|
|
blend: 'over'
|
|
},
|
|
{
|
|
input: Buffer.from(`
|
|
<svg width="${width}" height="${height}">
|
|
<text x="180" y="70" font-size="30" fill="white">Üdvözöljük, ${member.user.username}!</text>
|
|
<text x="180" y="120" font-size="20" fill="white">Te vagy a ${realUserCount}. tag a szerveren!</text>
|
|
</svg>
|
|
`),
|
|
top: 0,
|
|
left: 0,
|
|
blend: 'over'
|
|
}
|
|
])
|
|
.png()
|
|
.toBuffer();
|
|
|
|
// Embed létrehozása
|
|
const embed = new MessageEmbed()
|
|
.setColor('#00B7FF')
|
|
.setTitle(`Szia, ${member.user.username}!`)
|
|
.setDescription(`Érezd jól magad!`)
|
|
.setImage('attachment://welcome-image.png');
|
|
|
|
// Kép küldése
|
|
const attachment = new MessageAttachment(welcomeImage, 'welcome-image.png');
|
|
welcomeChannel.send({ embeds: [embed], files: [attachment] });
|
|
});
|
|
|
|
|
|
client.on('messageCreate', async (message) => {
|
|
if (message.author.bot || !message.guild) return;
|
|
if (message.member.permissions.has("ADMINISTRATOR")) {
|
|
|
|
const ticketChannel = client.channels.cache.get('1307095364079190056');
|
|
const tgfChannel = client.channels.cache.get('1317854025038954576');
|
|
|
|
if(message.content == 'hfkaSFHIHaskif28fhasif2asfÐ?DS:As') {
|
|
const ticketEmbed = new MessageEmbed()
|
|
.setTitle('Szia!')
|
|
.setDescription('Ticket nyitás dolog')
|
|
.setColor('#00B7FF');
|
|
|
|
const openButton = new MessageButton()
|
|
.setCustomId('open_ticket')
|
|
.setLabel('Ticket nyitása')
|
|
.setStyle('PRIMARY')
|
|
.setEmoji('🎫');
|
|
const ticketRow = new MessageActionRow()
|
|
.addComponents(openButton);
|
|
|
|
ticketChannel.send({content: '@everyone', embeds: [ticketEmbed], components: [ticketRow] });
|
|
|
|
const tgfEmbed = new MessageEmbed()
|
|
.setTitle('Tagfelvétel dolog')
|
|
.setDescription('Jelentkezhetsz devnek és buildernek')
|
|
.setColor('#00B7FF');
|
|
|
|
const builderButton = new MessageButton()
|
|
.setCustomId('builder_tgf')
|
|
.setLabel('Builder jelentkezés')
|
|
.setStyle('PRIMARY')
|
|
.setEmoji('👷♂️');
|
|
const devButton = new MessageButton()
|
|
.setCustomId('dev_tgf')
|
|
.setLabel('Developer jelentkezés')
|
|
.setStyle('PRIMARY')
|
|
.setEmoji('👨💻')
|
|
const tgfRow = new MessageActionRow()
|
|
.addComponents(builderButton, devButton)
|
|
|
|
tgfChannel.send({content: '@everyone', embed: [tgfEmbed], components: [tgfRow] });
|
|
|
|
await message.delete();
|
|
}
|
|
}
|
|
});
|
|
|
|
client.on('interactionCreate', async (interaction) => {
|
|
if (interaction.isButton()) {
|
|
if (interaction.customId === 'builder_tgf') {
|
|
const modal = new Modal()
|
|
.setCustomId('builder_modal')
|
|
.setTitle('Builder jelentkezési lap');
|
|
const q1 = new TextInputComponent()
|
|
.setCustomId('builder_modal_q1')
|
|
.setLabel('Hány éves vagy?')
|
|
.setStyle('SHORT');
|
|
const q2 = new TextInputComponent()
|
|
.setCustomId('builder_modal_q2')
|
|
.setLabel('Voltál-e már más szerveren builder?')
|
|
.setStyle('SHORT');
|
|
const q3 = new TextInputComponent()
|
|
.setCustomId('builder_modal_q3')
|
|
.setLabel('Milyen tematikákban szoktál építeni?')
|
|
.setStyle('PARAGRAPH');
|
|
const q4 = new TextInputComponent()
|
|
.setCustomId('builder_modal_q4')
|
|
.setLabel('Vannak az építményeidről fotók?')
|
|
.setStyle('SHORT');
|
|
const q1row = new MessageActionRow().addComponents(q1);
|
|
const q2row = new MessageActionRow().addComponents(q2);
|
|
const q3row = new MessageActionRow().addComponents(q3);
|
|
const q4row = new MessageActionRow().addComponents(q4);
|
|
modal.addComponents(q1row, q2row, q3row, q4row)
|
|
await interaction.showModal(modal);
|
|
} else if (interaction.customId === 'dev_tgf') {
|
|
const modal = new Modal()
|
|
.setCustomId('dev_modal')
|
|
.setTitle('Developer jelentkezési lap');
|
|
const q1 = new TextInputComponent()
|
|
.setCustomId('dev_modal_q1')
|
|
.setLabel('Hány éves vagy?')
|
|
.setStyle('SHORT');
|
|
const q2 = new TextInputComponent()
|
|
.setCustomId('dev_modal_q2')
|
|
.setLabel('Tudsz-e plugint írni?')
|
|
.setStyle('SHORT');
|
|
const q3 = new TextInputComponent()
|
|
.setCustomId('dev_modal_q3')
|
|
.setLabel('Értesz-e a különbözó plugin configokhoz?')
|
|
.setStyle('SHORT');
|
|
const q4 = new TextInputComponent()
|
|
.setCustomId('dev_modal_q4')
|
|
.setLabel('Voltál-e már más szerveren dev?')
|
|
.setStyle('SHORT');
|
|
const q5 = new TextInputComponent()
|
|
.setCustomId('dev_modal_q5')
|
|
.setLabel('Mit tennél hozzá a szerverhez?')
|
|
.setStyle('PARAGRAPH');
|
|
const q1row = new MessageActionRow().addComponents(q1);
|
|
const q2row = new MessageActionRow().addComponents(q2);
|
|
const q3row = new MessageActionRow().addComponents(q3);
|
|
const q4row = new MessageActionRow().addComponents(q4);
|
|
const q5row = new MessageActionRow().addComponents(q5);
|
|
modal.addComponents(q1row, q2row, q3row, q4row, q5row)
|
|
await interaction.showModal(modal);
|
|
} else if (interaction.customId === 'open_ticket') {
|
|
const guildName = 'Clench Network';
|
|
|
|
const guild = client.guilds.cache.find(guild => guild.name === guildName);
|
|
|
|
const ticketCategoryName = 'tickets';
|
|
|
|
const ticketCategory = guild.channels.cache.find(channel => channel.type === 'GUILD_CATEGORY' && channel.name === ticketCategoryName); // Helyettesítsd be a megfelelő kategória azonosítóval
|
|
|
|
const channel = await interaction.guild.channels.create(`ticket-${interaction.user.username}`, {
|
|
type: 'text',
|
|
parent: ticketCategory,
|
|
permissionOverwrites: [
|
|
{
|
|
id: interaction.guild.id,
|
|
deny: ['VIEW_CHANNEL'],
|
|
},
|
|
{
|
|
id: interaction.user.id,
|
|
allow: ['VIEW_CHANNEL', 'SEND_MESSAGES'],
|
|
},
|
|
],
|
|
});
|
|
|
|
const embed = new MessageEmbed()
|
|
.setTitle('Szia, ' + interaction.user.username + '!')
|
|
.setDescription('Kérlek, írd le, miért nyitottad a ticketet.')
|
|
.setColor('#00B7FF');
|
|
|
|
const closeButton = new MessageButton()
|
|
.setCustomId('close_ticket')
|
|
.setLabel('🔒 Lezárás')
|
|
.setStyle('DANGER');
|
|
|
|
channel.send({ content: `<@${interaction.user.id}>`, embeds: [embed], components: [new MessageActionRow().addComponents(closeButton)] });
|
|
|
|
await interaction.reply({ content: 'A ticket sikeresen megnyitva!', ephemeral: true });
|
|
} else if (interaction.customId === 'close_ticket') {
|
|
interaction.channel.delete();
|
|
}
|
|
} else if (interaction.isModalSubmit()) {
|
|
if (interaction.customId === 'builder_modal') {
|
|
const a1 = interaction.fields.getTextInputValue('builder_modal_q1');
|
|
const a2 = interaction.fields.getTextInputValue('builder_modal_q2');
|
|
const a3 = interaction.fields.getTextInputValue('builder_modal_q3');
|
|
const a4 = interaction.fields.getTextInputValue('builder_modal_q4');
|
|
const embed = new MessageEmbed()
|
|
.setColor('#00B7FF')
|
|
.setTitle(`${interaction.user.tag} jelentkezett Buildernek`)
|
|
.setDescription(`Izé dolgok:`)
|
|
.addField(`Életkora:`, a1)
|
|
.addField(`Volt-e már buider:`, a2)
|
|
.addField(`Ilyen témákban épít:`, a3)
|
|
.addField(`Vannak-e építményeiről fotók:`, a4);
|
|
const tgfReqsChannel = client.channels.cache.get('1317938861174947912');
|
|
tgfReqsChannel.send({ embeds: [embed] });
|
|
interaction.reply({ content: "Jelentkezés sikeresen elküldve!", ephemeral: true });
|
|
} else if (interaction.customId === 'dev_modal') {
|
|
const a1 = interaction.fields.getTextInputValue('dev_modal_q1');
|
|
const a2 = interaction.fields.getTextInputValue('dev_modal_q2');
|
|
const a3 = interaction.fields.getTextInputValue('dev_modal_q3');
|
|
const a4 = interaction.fields.getTextInputValue('dev_modal_q4');
|
|
const a5 = interaction.fields.getTextInputValue('dev_modal_q5');
|
|
const embed = new MessageEmbed()
|
|
.setColor('#00B7FF')
|
|
.setTitle(`${interaction.user.tag} jelentkezett Developernek`)
|
|
.setDescription(`Izé dolgok:`)
|
|
.addField(`Életkora:`, a1)
|
|
.addField(`Tud-e plugint írni:`, a2)
|
|
.addField(`Ért-e a különböző plugin configokhoz?`, a3)
|
|
.addField(`Volt-e már dev:`, a4)
|
|
.addField(`Ezt tenné hozzá a szerverhez:`, a5);
|
|
const tgfReqsChannel = client.channels.cache.get('1317938861174947912');
|
|
tgfReqsChannel.send({ embeds: [embed] });
|
|
interaction.reply({ content: "Jelentkezés sikeresen elküldve!", ephemeral: true });
|
|
}
|
|
}
|
|
});
|
|
|
|
client.login(config.token); |