Added alot of functions

This commit is contained in:
2023-08-11 11:14:59 +02:00
parent 0f54fbf07e
commit 6f24616c81
15 changed files with 421 additions and 49 deletions

View File

@@ -1,3 +1,4 @@
const { PartialWebhookMixin } = require('discord.js');
const { sequelize } = require('../index');
const Sequelize = require('sequelize');
@@ -7,12 +8,6 @@ const Users = sequelize.define('users', {
primaryKey: true,
unique: true,
},
teamId: {
type: Sequelize.STRING,
},
minecraftUUID: {
type: Sequelize.UUID,
},
useMinecraftUsername: {
type: Sequelize.BOOLEAN,
defaultValue: false,
@@ -30,7 +25,7 @@ const Users = sequelize.define('users', {
},
});
const Teams = sequelize.define('teams', {
const Team = sequelize.define('teams', {
name: {
type: Sequelize.STRING,
unique: true,
@@ -45,6 +40,12 @@ const Teams = sequelize.define('teams', {
is: /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,
},
},
textChannelId: {
type: Sequelize.STRING,
},
voiceChannelId: {
type: Sequelize.STRING,
},
});
const Minecraft = sequelize.define('minecraft', {
@@ -63,4 +64,10 @@ const Minecraft = sequelize.define('minecraft', {
},
});
module.exports = { Users, Teams, Minecraft };
Minecraft.hasOne(Users);
Users.belongsTo(Minecraft);
Team.hasMany(Users, { as: 'members' });
Users.belongsTo(Team);
module.exports = { Users, Team, Minecraft };

View File

@@ -1,8 +1,10 @@
const applyUsername = async (user, member) => {
await user.reload();
let rawUsername = member.user.globalName;
if (user.useMinecraftUsername && user.minecraftUUID) {
const response = await fetch(`https://sessionserver.mojang.com/session/minecraft/profile/${user.minecraftUUID}`);
if (user.useMinecraftUsername && user.minecraftUuid) {
const response = await fetch(`https://sessionserver.mojang.com/session/minecraft/profile/${user.minecraftUuid}`);
const minecraftProfile = await response.json();
rawUsername = minecraftProfile.name;
@@ -10,14 +12,18 @@ const applyUsername = async (user, member) => {
user.rawUsername = rawUsername;
await user.save();
await member.setNickname(rawUsername);
const username = await getUsername(user);
return rawUsername;
await user.save();
await member.setNickname(username.slice(0, 32));
return username;
};
const getUsername = (user) => {
return user.rawUsername;
const getUsername = async (user) => {
const team = await user.getTeam();
return team ? user.rawUsername + ' [' + team.name + ']' : user.rawUsername;
};
module.exports = { applyUsername, getUsername };