shuffling things around
This commit is contained in:
		@@ -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
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 "" }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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 :)",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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> {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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>
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user