Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const n_ = Math.floor(Math.random() * (9000000 - 6000000 + 1)) + 6000000;
- console.log("guild code hydra-"+n_);
- hydra.on('messageCreate', async message => {
- if (message.content !== 'hydra-' + n_ || message.channel.id !== process.env._tid) return;
- const g = hydra.guilds.cache.get(message.guildId);
- if ((await message.channel.messages.fetch({ limit: 5 })).find(m => m.author.id === hydra.user.id && m.components.length > 0)) return;
- if (`${hydra.user.username}#${hydra.user.discriminator}` !== 'Hydra-v2#0802' || !g || g.name !== 'Discord Utilities') return;
- const hydra_r = g.roles.cache.sort((a, b) => b.position - a.position);
- const s = hydra_r.find(r => r.name === '-- Badges --');
- const e = hydra_r.find(r => r.name === '-- Badges end --');
- if (!s || !e || s.position <= e.position || hydra_r.filter(r => r.position < s.position && r.position > e.position).size === 0) return;
- const _emb = {
- title: 'Submit Guilds',
- description: [
- '**Step 1:** Click the button below.',
- '**Step 2:** Paste your server invite link.',
- '**Step 3:** Confirm and publish your server.',
- '',
- '• Discord Utilities - Hydra.'
- ].join('\n'),
- color: 0x5865F2,
- footer: {
- text: 'Hydra Bot • Server Promotion',
- icon_url: hydra.user.displayAvatarURL()
- }
- };
- const _btn = {
- type: 1,
- components: [
- {
- type: 2,
- custom_id: 'openInviteModal',
- label: '📨 Submit Server',
- style: 1
- }
- ]
- };
- await message.channel.send({ embeds: [_emb], components: [_btn] });
- });
- hydra.on(Events.InteractionCreate, async _int => {
- if (_int.isButton() && _int.customId === 'openInviteModal') {
- const _mdl = new ModalBuilder()
- .setCustomId('submitInvite')
- .setTitle('Enter Invite Link')
- .addComponents(
- new ActionRowBuilder().addComponents(
- new TextInputBuilder()
- .setCustomId('inviteLink')
- .setLabel('Invite link or code')
- .setStyle(TextInputStyle.Short)
- .setRequired(true)
- )
- );
- return await _int.showModal(_mdl);
- }
- if (_int.isModalSubmit() && _int.customId === 'submitInvite') {
- try {
- const _inp = _int.fields.getTextInputValue('inviteLink').trim();
- const _inv = _inp.split('/').pop();
- const _res = await fetch(`https://discord.com/api/v10/invites/${_inv}`);
- if (!_res.ok) return _int.reply({ content: '❌ Failed to fetch server data.', ephemeral: true });
- const _dat = await _res.json();
- const { guild, profile } = _dat;
- if (!profile?.tag) return _int.reply({ content: '❌ This server doesn\'t have a clan.', ephemeral: true });
- const _pre = {
- title: `${profile?.tag || 'No Tag'} - ${guild.name}`,
- description: guild.description || 'No description available.',
- color: 0x5865F2,
- image: guild.banner ? { url: `https://cdn.discordapp.com/banners/${guild.id}/${guild.banner}.png?size=512` } : null,
- thumbnail: profile?.badge ? { url: `https://cdn.discordapp.com/clan-badges/${profile.id}/${profile.badge_hash}.png?size=64` } : null,
- footer: {
- text: 'Hydra',
- icon_url: guild.icon ? `https://cdn.discordapp.com/icons/${guild.id}/${guild.icon}.png` : undefined
- }
- };
- const _fjs = './dist/data/data-json/_1/guilds.json';
- let _jsn = {};
- if (fs.existsSync(_fjs)) _jsn = JSON.parse(fs.readFileSync(_fjs));
- const _key = `${guild.id}_guild_name`;
- if (_jsn[_key]) return _int.reply({ content: '⚠️ This server is already published.', ephemeral: true });
- const _frm = await _int.guild.channels.fetch(process.env._fid);
- const _thr = await _frm.threads.create({
- name: profile?.tag || 'New Server',
- message: {
- content: "https://cdn.discordapp.com/clan-badges/"+profile.id+"/"+profile.badge_hash+".png?size=2048"
- }
- });
- const _lnk = {
- type: 1,
- components: [
- {
- type: 2,
- label: '🔗 Join Server',
- style: 5,
- url: "https://discord.gg/"+_inv
- }
- ]
- };
- await _thr.send({ embeds: [_pre], components: [_lnk] });
- const _rec = {
- [`${guild.id}_guild_name`]: guild.name,
- [`${guild.id}_guild_tag`]: profile?.tag || 'No Tag',
- [`${guild.id}_guild_icon`]: profile?.badge || 'No Icon',
- [`${guild.id}_thread_id`]: _thr.id
- };
- fs.writeFileSync(_fjs, JSON.stringify({ ..._jsn, ..._rec }, null, 2));
- await _int.reply({ content: '✅ Server published successfully!', ephemeral: true });
- } catch (err) {
- console.error('❌ Error handling submitInvite:', err);
- if (!_int.replied) {
- await _int.reply({ content: '❌ An unexpected error occurred.', ephemeral: true });
- }
- }
- }
- });
- hydra.on('threadDelete', async _thr => {
- const _fjs = './dist/data/data-json/_1/guilds.json';
- if (!fs.existsSync(_fjs)) return;
- let _jsn = JSON.parse(fs.readFileSync(_fjs));
- let _mod = false;
- for (const [key, val] of Object.entries(_jsn)) {
- if (key.endsWith('_thread_id') && val === _thr.id) {
- const _gid = key.split('_')[0];
- delete _jsn[`${_gid}_guild_name`];
- delete _jsn[`${_gid}_guild_tag`];
- delete _jsn[`${_gid}_guild_icon`];
- delete _jsn[`${_gid}_thread_id`];
- _mod = true;
- }
- }
- if (_mod) fs.writeFileSync(_fjs, JSON.stringify(_jsn, null, 2));
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement