Skip to content

Commit

Permalink
started changes
Browse files Browse the repository at this point in the history
  • Loading branch information
johan-t committed Oct 22, 2023
1 parent 7dd6e80 commit da3729e
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 73 deletions.
72 changes: 2 additions & 70 deletions commands/match/match-command.ts
Original file line number Diff line number Diff line change
@@ -1,76 +1,8 @@
import { SlashCommandBuilder, Guild } from 'discord.js';
import { client, db } from '../../common';
import { db } from '../../common';
import 'dotenv/config';
import questions from '../../questions';
import findMatchingUser from '../../functions/findMatchingUser';
import conversationStarter from '../../functions/conversationStarter';

export const sendQuestion = async (interaction: any) => {

const userContext = await db.db('contrabot').collection("users").findOne({ userId: interaction.user.id });

let userResponses = userContext?.userVector || [];

const guildId = process.env.GUILD_ID;
if (!guildId) throw new Error('GUILD_ID not found');

const guild: Guild | undefined = client.guilds.cache.get(guildId);
if (!guild) throw new Error('Guild not found');

const bestMatch = await findMatchingUser(interaction.user.id, userResponses, guild);
if (bestMatch) {
const interactionGuildMember = guild.members.cache.get(interaction.user.id);
if (!interactionGuildMember) throw new Error('interactionGuildMember was nog found');

bestMatch.GuildMember = await guild.members.fetch(bestMatch.userId);
if (!guild) throw new Error('bestMatch.GuildMember');

const matchesCategory = guild.channels.cache.find((category: any) => category.name === 'matches' && category.type === 4);

const channelName = `match-${interaction.user.username}-${bestMatch.username}`;

const textChannel = await guild.channels.create({
parent: matchesCategory?.id,
name: channelName.toLowerCase(),
type: 0,
});

await textChannel.permissionOverwrites.edit(interactionGuildMember, {
ViewChannel: true,
SendMessages: true,
});
await textChannel.permissionOverwrites.edit(bestMatch.GuildMember, {
ViewChannel: true,
SendMessages: true,
});

const everyone = await guild.roles.everyone;

await textChannel.permissionOverwrites.edit(everyone, {
ViewChannel: false,
});

await textChannel.send(`Hallo ${interactionGuildMember} 👋, hallo ${bestMatch.GuildMember} 👋, basierend auf unserem Algorithmus wurdet ihr als Gesprächspartner ausgewählt. Bitte vergesst nicht respektvoll zu bleiben. Viel Spaß bei eurem Match!`);
await textChannel.send(`Bei beispielsweise diesen drei Fragen seid ihr nicht einer Meinung:`);
conversationStarter(textChannel, interaction, bestMatch.userVector, userResponses);

interaction.user.send(`Du wurdest erfolgreich mit **@${bestMatch.username}** gematcht. Schau auf den Discord-Server um mit dem Chatten zu beginnen! 😊`);
} else {
console.warn('No best match found');
interaction.user.send("Leider konnte zur Zeit kein geeigneter Gesprächspartner gefunden werden. Bitte versuchen Sie es später erneut.");
}

// Reset context for this user in the database
await db.db('contrabot').collection("users").updateOne(
{ userId: interaction.user.id },
{
$set: {
currentQuestionIndex: 0, // Reset to first question
completionTime: new Date().toISOString(), // Set completion time
}
}
);
}
import { sendQuestion } from '../test/test-command';

export const data = new SlashCommandBuilder().setName('match').setDescription('Requests new match without retaking the test.');
export const execute = async (interaction: any) => {
Expand Down
2 changes: 1 addition & 1 deletion commands/test/test-command.ts
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ export const sendQuestion = async (interaction: any) => {
}

function verifyUser(interaction: any, guild: Guild) {
const role: Role | undefined = guild.roles.cache.get('1143590879274213486'); // Verified role: 1143590879274213486
const role: Role | undefined = guild.roles.cache.get('1153647196449820755'); // Verified role: 1143590879274213486
if (!role) throw new Error('Role not found');

const interactionGuildMember = guild.members.cache.get(interaction.user.id);
Expand Down
4 changes: 2 additions & 2 deletions questions.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// all questions used in the political test

const questions = [
{ question: 'Auf allen Autobahnen soll ein generelles Tempolimit gelten.', tag: ['Verkehrssicherheit', ' Klimawandel'] },
/*{ question: 'Auf allen Autobahnen soll ein generelles Tempolimit gelten.', tag: ['Verkehrssicherheit', ' Klimawandel'] },
{ question: 'Deutschland soll seine Verteidigungsausgaben erhöhen.', tag: 'Verteidigungspolitik' },
{ question: 'Bei Bundestagswahlen sollen auch Jugendliche ab 16 Jahren wählen dürfen.', tag: ['Wahlalter', 'Demokratie'] },
{ question: 'Die Förderung von Windenenergie soll beendet werden?', tag: ['Energiepolitik', 'Klimawandel'] },
Expand Down Expand Up @@ -32,7 +32,7 @@ const questions = [
{ question: 'Bei der Videoüberwachung öffentlicher Plätze soll Gesichtserkennungssoftware eingesetzt werden dürfen.', tag: ['Datenschutz', 'Videoüberwachung'] },
{ question: 'Auch Ehepaare ohne Kinder sollen weiterhin steuerlich begünstigt werden.', tag: 'Familienpolitik' },
{ question: 'Ökologische Landwirtschaft soll stärker gefördert werden als konventionelle Landwirtschaft.', tag: 'Klimawandel' },
{ question: 'Islamische Verbände sollen als Religionsgemeinschaften staatlich anerkannt werden können.', tag: ['Religionspolitik', 'Minderheitenpolitik'] },
*/{ question: 'Islamische Verbände sollen als Religionsgemeinschaften staatlich anerkannt werden können.', tag: ['Religionspolitik', 'Minderheitenpolitik'] },
{ question: 'Der staatlich festgelegte Preis für den Ausstoß von CO2 beim Heizen und Autofahren soll stärker steigen als geplant.', tag: ['Klimaschutz', 'Klimawandel'] },
{ question: 'Die Schuldenbremse im Grundgesetz soll beibehalten werden.', tag: 'Wirtschaftspolitik' },
{ question: 'Asyl soll weiterhin nur politisch Verfolgten gewährt werden.', tag: 'Migrationspolitik' },
Expand Down

0 comments on commit da3729e

Please sign in to comment.