-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
128 lines (112 loc) · 4.21 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
const fs = require('node:fs');
const path = require('node:path');
// discord classes
const { Client, Collection, Events, GatewayIntentBits } = require('discord.js');
// const { token } = require('./config.json');
const TOKEN = process.env.TOKEN;
// Create a new client instance
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.commands = new Collection();
const commandsPath = path.join(__dirname, 'commands');
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);
// Set a new item in collection with the key as the command name and the value as the exported module
if ('data' in command && 'execute' in command) {
client.commands.set(command.data.name, command);
} else {
console.log(`[WARNING] The command at ${filePath} is missing a required "data" or "execute" property.`);
}
}
client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isChatInputCommand) return;
const command = interaction.client.commands.get(interaction.commandName);
if(!command) {
console.error(`No command matching ${interaction.commandName} was found.`);
return;
}
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
if (interaction.replied || interaction.deferred) {
await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true });
} else {
await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true });
}
}
});
// when the client is ready, run this code once
// we use 'c' for the event parameter to keep it separeate from the already defined 'client'
client.once(Events.ClientReady, async (c) => {
try {
const myGenChannel = await client.channels.fetch('865644813953400853');
await myGenChannel.send("I'm live..");
console.log(`Ready ! Logged in as ${c.user.tag}`);
} catch (error) {
console.log("Can't start");
console.log(error);
}
});
// Log in to Discord with your client's token
client.login(TOKEN);
const http = require('http');
const PORT = process.env.PORT || 3000;
let flag = true;
let ct = 0;
http.createServer( async (req, res) => {
if (req.url === '/') {
ct++;
res.end(`Bankai listening on PORT ${ PORT }, server working directory: ${ process.cwd() }\nTotal req count: ${ ct }`);
if (flag) {
flag = false;
setInterval(() => {
http.get(`http://${ req.headers.host }`);
}, 2 * 60 * 1000);
}
return;
}
if (req.url === '/pingBankai') {
try {
const myGenChannel = await client.channels.fetch('865644813953400853');
await myGenChannel.send(`Ping from http req`);
res.end("ping success.")
return;
} catch (err) {
console.log(err);
res.end("ping failed");
}
}
if (req.url === '/mypf') {
try {
const mockInteraction = {
isChatInputCommand: () => true,
options: {
getString: () => "pirate__hunter",
},
reply: (response) => {
try {
res.write(JSON.stringify(response.embeds[0].data))
res.end("success");
return;
} catch (err) {
res.end("error occurred while sending the response");
}
},
};
// Simulate executing the command with the mock interaction
const command = client.commands.get("cf_uinfo");
await command.execute(mockInteraction);
return;
} catch (err) {
console.log("Error while getting uinfo mypf http");
// console.error(err);
res.end("failed");
}
} else {
res.end("page not available.")
}
}).listen(PORT, () => {
console.log(`Bankai listening on ${ PORT }`);
});