Added Team System
This commit is contained in:
17
discord-bot/events/MessageCreate.js
Normal file
17
discord-bot/events/MessageCreate.js
Normal file
@@ -0,0 +1,17 @@
|
||||
const { Events } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: Events.MessageCreate,
|
||||
async execute({ log }, message) {
|
||||
|
||||
if (message.channelId === process.env.MINECRAFT_CHANNEL_ID && !message.author.bot) {
|
||||
await fetch(process.env.WEB_HOST + '/api/minecraft/message/chattominecraft', {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({
|
||||
content: message.content,
|
||||
discordId: message.author.id,
|
||||
}),
|
||||
});
|
||||
}
|
||||
},
|
||||
};
|
@@ -1,6 +1,6 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
|
||||
const registerEvents = ({ createEmbed, client }) => {
|
||||
const registerEvents = ({ client }) => {
|
||||
|
||||
client.player.on('trackStart', (queue, track) => {
|
||||
|
||||
|
@@ -4,6 +4,7 @@ const { Player } = require('discord-player');
|
||||
const fs = require('node:fs');
|
||||
const path = require('node:path');
|
||||
const dotenv = require('dotenv');
|
||||
const express = require('express');
|
||||
|
||||
const createEmbed = require('./functions/createEmbed.js');
|
||||
dotenv.config();
|
||||
@@ -15,11 +16,25 @@ const log = {
|
||||
};
|
||||
|
||||
// Register client and music events
|
||||
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers] });
|
||||
const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildVoiceStates, GatewayIntentBits.GuildMembers, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] });
|
||||
client.player = new Player(client);
|
||||
|
||||
require('./functions/player.js').registerEvents({ client, createEmbed });
|
||||
|
||||
|
||||
// Express
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
|
||||
const messageRoute = require('./routes/Message');
|
||||
|
||||
app.use('/minecraft', messageRoute);
|
||||
|
||||
app.listen('4000', () => {
|
||||
log.Info('Express app running');
|
||||
});
|
||||
|
||||
|
||||
// Command handling
|
||||
client.commands = new Collection();
|
||||
|
||||
@@ -53,3 +68,5 @@ for (const file of eventFiles) {
|
||||
}
|
||||
|
||||
client.login(process.env.DISCORD_TOKEN);
|
||||
|
||||
module.exports.client = client;
|
||||
|
1448
discord-bot/package-lock.json
generated
1448
discord-bot/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -17,6 +17,8 @@
|
||||
"discord.js": "^14.7.1",
|
||||
"distube": "^4.0.4",
|
||||
"dotenv": "^16.0.3",
|
||||
"eslint": "^8.29.0"
|
||||
"eslint": "^8.29.0",
|
||||
"express": "^4.18.2",
|
||||
"ytdl-core": "^4.11.4"
|
||||
}
|
||||
}
|
||||
|
38
discord-bot/routes/Message.js
Normal file
38
discord-bot/routes/Message.js
Normal file
@@ -0,0 +1,38 @@
|
||||
const { WebhookClient, EmbedBuilder } = require('discord.js');
|
||||
const express = require('express');
|
||||
|
||||
const router = express.Router();
|
||||
const webhookClient = new WebhookClient({ url: process.env.MINECRAFT_WEBHOOK_URL });
|
||||
|
||||
router.post('/sendchatmessage', (req, res) => {
|
||||
const { content, username, avatarURL } = req.body;
|
||||
|
||||
if (!username || !content || !avatarURL) return res.status(400).send({ error: 'Content, username and avatar_url are required' });
|
||||
|
||||
webhookClient.send({
|
||||
content: content,
|
||||
username: username,
|
||||
avatarURL: avatarURL,
|
||||
});
|
||||
|
||||
res.send({ data: 'Test data' });
|
||||
});
|
||||
|
||||
router.post('/sendgamemessage', (req, res) => {
|
||||
const { content, avatarURL } = req.body;
|
||||
|
||||
if (!content || !avatarURL) return res.status(400).send({ error: 'Content, username and avatar_url are required' });
|
||||
|
||||
const messageEmbed = new EmbedBuilder()
|
||||
.setColor(process.env.EMBED_COLOR)
|
||||
.setAuthor({ name: content, iconURL: avatarURL });
|
||||
|
||||
webhookClient.send({
|
||||
embeds: [messageEmbed],
|
||||
username: 'Server',
|
||||
});
|
||||
|
||||
res.send({ data: 'Test data' });
|
||||
});
|
||||
|
||||
module.exports = router;
|
Reference in New Issue
Block a user