shuffling things around

This commit is contained in:
mightypanders 2021-11-13 13:48:38 +01:00
parent fa7ae7cbc1
commit eb19430d37
5 changed files with 45 additions and 18 deletions

View File

@ -1,13 +1,24 @@
import RegistrationHandler from "./RegistrationHandler"
export default class MuteHandler { export default class MuteHandler {
public mute(player: string): boolean { public mute(player: string): boolean {
console.log(`Performing mute wizardry on ${player}`) const register = RegistrationHandler.Instance
const binding = register.getNameRegisteredForSteamUser(player)
console.log(`Performing mute wizardry on ${player}, ${JSON.stringify(binding)}`)
return true return true
} }
public unmute(player: string): boolean { public unmute(player: string): boolean {
const register = RegistrationHandler.Instance
const binding = register.getNameRegisteredForSteamUser(player)
console.log(`Performing unmute wizardry on ${player}`) console.log(`Performing unmute wizardry on ${player}`)
return true return true
} }
public unmuteAll(): boolean { public unmuteAll(): boolean {
const register = RegistrationHandler.Instance
const binding = register.getAllMappings()
console.log(`Performing unmute wizardry on all players`) console.log(`Performing unmute wizardry on all players`)
return true return true
} }

View File

@ -1,13 +1,14 @@
export interface userNameBinding { import { Maybe, userNameBinding } from "./interfaces"
Steam: string,
Discord: string
}
export type Maybe<T> = T | undefined
export default class RegistrationHandler { export default class RegistrationHandler {
private userRegister: userNameBinding[] = [] private userRegister: userNameBinding[] = []
private static _instance: RegistrationHandler
public constructor() { public constructor() {
console.log('Setup RegistrationHandler') console.log('Setup RegistrationHandler')
} }
public static get Instance() {
return this._instance || (this._instance = new this())
}
public register(discordname: string, steamname: string): boolean { public register(discordname: string, steamname: string): boolean {
const binding: userNameBinding = { const binding: userNameBinding = {
@ -27,10 +28,11 @@ export default class RegistrationHandler {
} }
return true return true
} }
public getAllMappings(): userNameBinding[] { return this.userRegister }
public removeUser(discordName: string): void { this.userRegister = this.userRegister.filter(x => x.Discord !== discordName) } public removeUser(discordName: string): void { this.userRegister = this.userRegister.filter(x => x.Discord !== discordName) }
public getNameRegisteredForDiscordUser(discordUser: string): Maybe<userNameBinding> { return this.userRegister.find(x => x.Discord == discordUser) } public getNameRegisteredForDiscordUser(discordUser: string): Maybe<userNameBinding> { return this.userRegister.find(x => x.Discord == discordUser) }
public getNameRegisteredForSteamUser(steamUser: string): Maybe<userNameBinding> { return this.userRegister.find(x => x.Steam == steamUser) } public getNameRegisteredForSteamUser(steamUser: string): Maybe<userNameBinding> { return this.userRegister.find(x => x.Steam == steamUser) }
public listRegisteredMembers(): string { return JSON.stringify(this.userRegister) } public listRegisteredMembers(): string { return JSON.stringify(this.userRegister) }
private printHelpText(): void { } private printHelpText(): string { return "" }
private buildHelpText(): string { return "" } private buildHelpText(): string { return "" }
} }

View File

@ -1,6 +1,4 @@
import { CommandInteraction } from "discord.js"
import { localized_string } from "./interfaces" import { localized_string } from "./interfaces"
import RegistrationHandler from "./RegistrationHandler"
export const reactions = { export const reactions = {
troll_grin: "U+1F92A", troll_grin: "U+1F92A",
@ -14,12 +12,6 @@ export const commands = {
SHOW_FOR_STEAM_COMMAND: "forsteam", SHOW_FOR_STEAM_COMMAND: "forsteam",
SHOW_COMMAND: "show" SHOW_COMMAND: "show"
} }
export interface discordCommand {
name: string,
description: string
options?: any[]
performCommand(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void>
}
export const msg_strings: localized_string = { export const msg_strings: localized_string = {
greeting: { greeting: {
german: "Ich wurde neugestartet. Bitte registriert euch erneut, falls ihr automatisch gemutet werden wollt :)", german: "Ich wurde neugestartet. Bitte registriert euch erneut, falls ihr automatisch gemutet werden wollt :)",

View File

@ -1,10 +1,11 @@
import { REST } from '@discordjs/rest' import { REST } from '@discordjs/rest'
import { SlashCommandBuilder } from '@discordjs/builders' import { SlashCommandBuilder } from '@discordjs/builders'
import { commands, discordCommand } from './constants' import { commands } from './constants'
import { Routes } from 'discord-api-types/v9' import { Routes } from 'discord-api-types/v9'
import { config } from './configuration' import { config } from './configuration'
import { Client, CommandInteraction, Intents, Interaction } from 'discord.js' import { Client, CommandInteraction, GuildMember, Intents, Interaction } from 'discord.js'
import RegistrationHandler from './RegistrationHandler' import RegistrationHandler from './RegistrationHandler'
import { discordCommand } from './interfaces'
export default class DiscordAdapter { export default class DiscordAdapter {
private rest: REST private rest: REST
@ -13,7 +14,7 @@ export default class DiscordAdapter {
public constructor() { public constructor() {
this.rest = new REST({ version: '9' }).setToken(config.token) this.rest = new REST({ version: '9' }).setToken(config.token)
this.client = new Client({ intents: [Intents.FLAGS.GUILDS] }) this.client = new Client({ intents: [Intents.FLAGS.GUILDS] })
this.registration = new RegistrationHandler() this.registration = RegistrationHandler.Instance
this.setupCallbacks(this.client) this.setupCallbacks(this.client)
this.client.login(config.token) this.client.login(config.token)
this.registerCommands(this.commandList) this.registerCommands(this.commandList)
@ -40,6 +41,13 @@ export default class DiscordAdapter {
} }
public async echoes(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void> { public async echoes(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void> {
const value = interaction.options.getString('input') const value = interaction.options.getString('input')
const member: GuildMember = <GuildMember>interaction.member
try {
console.log(`Member ${member.user.username} mute state: ${member.voice.mute}`)
member.voice.setMute(!member.voice.mute, "test")
} catch (error) {
console.error(error)
}
await interaction.reply(`This should be an echo: ${value}`) await interaction.reply(`This should be an echo: ${value}`)
} }
public async listUsers(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void> { public async listUsers(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void> {

View File

@ -1,3 +1,7 @@
import { CommandInteraction } from "discord.js"
import RegistrationHandler from "./RegistrationHandler"
export type Maybe<T> = T | undefined
export interface Player { export interface Player {
name: string name: string
} }
@ -8,3 +12,13 @@ export interface localized_string {
english: string english: string
} }
} }
export interface userNameBinding {
Steam: string,
Discord: string
}
export interface discordCommand {
name: string,
description: string
options?: any[]
performCommand(interaction: CommandInteraction, registration: RegistrationHandler): Promise<void>
}