Class

Workshop

Workshop(isLowTechSolutionopt, TARolesopt)

A workshop is an activity with a TA system to help users with questions. The TA system has two options, regular or advanced. Regular option involves TAs reaching out via DMs to users while advanced option involves users joining a voice channel to receive help. The advanced option is only recommended with knowledgeable discord users. It also has polls the TAs can send to learn basic knowledge from the audience.
Constructor

# new Workshop(isLowTechSolutionopt, TARolesopt)

Parameters:
Name Type Attributes Default Description
Activity.ActivityInfo
isLowTechSolution Boolean <optional>
true
TARoles Collection.<String, Role> <optional>
roles with TA permissions

View Source classes/activities/workshop.js, line 27

Extends

Members

Console

# adminConsole

The admin console with activity features.
Overrides:

View Source classes/activities/activity.js, line 99

TextChannel

# assistanceChannel

The channel where hackers can ask questions.

View Source classes/activities/workshop.js, line 54

BotGuildModel

# botGuild

The mongoose BotGuildModel Object
Overrides:

View Source classes/activities/activity.js, line 110

Guild

# guild

The guild this activity is in.
Overrides:

View Source classes/activities/activity.js, line 87

Boolean

# isLowTechSolution

True if the assistance protocol is low tech.

View Source classes/activities/workshop.js, line 48

string

# name

The name of this activity.
Overrides:

View Source classes/activities/activity.js, line 81

Collection.<String, PollInfo>

# polls

The polls available.

View Source classes/activities/workshop.js, line 84

Room

# room

The room this activity lives in.
Overrides:

View Source classes/activities/activity.js, line 93

Collection.<String, (TextChannel|VoiceChannel)>

# TAChannels

The channels only available to TAs

View Source classes/activities/workshop.js, line 60

TextChannel

# TAConsole

TA Console where assistance calls are sent.

View Source classes/activities/workshop.js, line 66

Collection.<String, Role>

# TARoles

- roles with TA permissions

View Source classes/activities/workshop.js, line 42

TicketManager

# ticketManager

The ticket manager.

View Source classes/activities/workshop.js, line 90

Collection.<String, String>

# waitlist

wait list Collection

View Source classes/activities/workshop.js, line 78

Message

# waitListEmbedMsg

The message where we show the wait list live.

View Source classes/activities/workshop.js, line 72

Methods

# async addChannel(channel, userId)

Adds a channel to the activity, ask if it will be for TAs or not.
Parameters:
Name Type Description
channel TextChannel channel to prompt user
userId String user to prompt for channel info
Overrides:

View Source classes/activities/workshop.js, line 293

# protected addDefaultFeatures()

Adds extra workshop features, plus the regular features. Also adds default polls.
Overrides:

View Source classes/activities/workshop.js, line 166

# protected addDefaultPolls()

Adds the default polls to the polls list.

View Source classes/activities/workshop.js, line 189

# async addTAChannel(name, info) → {Promise.<(TextChannel|VoiceChannel)>}

Creates a channel only available to TAs.
Parameters:
Name Type Description
name String
info GuildCreateChannelOptions

View Source classes/activities/workshop.js, line 315

Promise.<(TextChannel|VoiceChannel)>

# async archive(archiveCategory)

Archive the activity. Move general text channel to archive category, remove all remaining channels and remove the category.
Parameters:
Name Type Description
archiveCategory CategoryChannel the category where the general text channel will be moved to
Overrides:

View Source classes/activities/activity.js, line 267

# async delete()

Delete all the channels and the category. Remove the workshop from firebase.
Overrides:

View Source classes/activities/activity.js, line 279

# async distributeStamp(channel, userId)

Will let hackers get a stamp for attending the activity.
Parameters:
Name Type Description
channel TextChannel channel to prompt user for specified voice channel
userId String user to prompt for specified voice channel
Overrides:

View Source classes/activities/activity.js, line 369

# protected getTAChannelPermissions() → {Array.<Activity.RolePermission>}

Returns the perms for a TA Channel

View Source classes/activities/workshop.js, line 327

Array.<Activity.RolePermission>

# incomingTicketsHandler(message)

Creates and handles with the emoji reactions on the incoming ticket console embed
Parameters:
Name Type Description
message Message

View Source classes/activities/workshop.js, line 393

# async init() → {Promise.<Activity>}

Initializes the workshop and adds the ta console, ta banter and assistance channel.
Overrides:

View Source classes/activities/workshop.js, line 98

Promise.<Activity>

# outgoingTicketHandler(message)

Creates and handles with the emoji reactions on the outgoing ticket console embed
Parameters:
Name Type Description
message Message

View Source classes/activities/workshop.js, line 461

# async removeChannel(channel, userId)

Removes a channel from the activity, the user will decide which. Wont delete channels in the safeChannel map.
Parameters:
Name Type Description
channel TextChannel channel to prompt user for specified voice channel
userId String user to prompt for specified voice channel
Overrides:

View Source classes/activities/activity.js, line 243

# async roleShuffle(channel, userId)

Shuffles users with a specific role throughout the activity's voice channels
Parameters:
Name Type Description
channel TextChannel channel to prompt user for specified voice channel
userId String user to prompt for specified voice channel
Overrides:

View Source classes/activities/activity.js, line 354

# async ruleValidation(channel, userId)

Will lock the channels behind an emoji collector.
Parameters:
Name Type Description
channel TextChannel channel to prompt user for specified voice channel
userId String user to prompt for specified voice channel
Overrides:

View Source classes/activities/activity.js, line 424

# async sendConsoles()

Will send all the consoles the workshop needs to work.

View Source classes/activities/workshop.js, line 223

# async sendPoll(type)

Send a poll to the general text channel
Parameters:
Name Type Description
type String the type of poll to send

View Source classes/activities/workshop.js, line 358

# async voiceCallBack(channel, userId)

Move all users back to a specified voice channel from the activity's voice channels.
Parameters:
Name Type Description
channel TextChannel channel to prompt user for specified voice channel
userId String user to prompt for specified voice channel
Overrides:

View Source classes/activities/activity.js, line 292