• This repository has been archived on 04/Apr/2021
  • Stars
    star
    217
  • Rank 181,640 (Top 4 %)
  • Language
    C#
  • License
    Other
  • Created almost 6 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Installer for the BetterDiscord fork BandagedBD

This repo has been archived and is no longer active. If you are looking to install BetterDiscord. Please use the new installers found here: https://github.com/BetterDiscord/Installer

BandagedBD Installer

This is the source for the Windows installer of BandagedBD, a mod for Discord. I decided to put this in a separate repo mainly because it didn't feel quite right to have it in with the actual application itself as the application is JavaScript injection onto an Electron.js platform, and this is an actual executable that only sets ups files for it.

Preview

ScreenShot

System Structure

The system starts through the FormMain object which then adds the necessary control to the form. The controls to be added implement the interface IPanel and are represented in the accomanying enumeration PanelTypes. These two in tandem determine how the navigation through the installer occurs.

PanelTypes

An enumeration representing all the available panels to have in the installer.

IPanel

The interface IPanel requires the following functions:

  1. void OnShow - Called when the control is added to the form
  2. void SetWindow(FormMain) - Called when the main form prepares the panels, allows panels to keep a reference to the window/form

The interface also requires the following gettable properties:

  1. string Title - The title of the panel to be shown in the form
  2. UserControl Control - Returns an implied cast of self (useful for passing to other function in the main form)
  3. PanelTypes PreviousPanel - Representation of the panel to go to when going "back"
  4. PanelTypes NextPanel - Representation of the panel to go to when going "forward"

FormMain

Creates and keeps a reference to all the IPanels and even handles the navigation through the application. Also holds the enumeration of PanelTypes. Includes a function to return a reference to a specific panel so panels may reference each other (mainly used for panels to refer to the configuration panel).

Discord

An enumeration representing the 3 release channels of Discord: Stable, Canary and PTB.

Utilities

Utilities contains several functions used multple times throughout the application including things like killing and launching processes as well as searching for and resolving paths. Contains the Discord enumeration.

Custom Components

The installer makes use of a few custom components either for modularity as in the DiscordLocator control or for the custom "flat" design as in WinForms not all controls have a decent flat style.

DiscordLocator

This is a custom group of controls consisting of: 3 checkboxes that represent location enable, 3 textboxes showing the currently entered/found path, and 3 buttons that allow the user to browse for the path.

Button

This is a simple wrap around the normal Button object to add some helpful functions.

FlatCheckBox

The native checkbox leaves a lot to be desired in terms of extensibility and customization. To create custom styling this component paints it's own checkbox using the current graphics and imposing the string "✔" overtop.

FlatProgressBar

Similar to the checkbox the native progressbar has little to no customization options. This paints a flat checkbox using the an offscreen image as adapted from this StackOverflow answer.

More Repositories

1

BetterDiscordAddons

A series of plugins and themes for BetterDiscord.
JavaScript
571
star
2

BDPluginLibrary

Plugin library for BetterDiscord.
JavaScript
204
star
3

Nox

A beautiful dark material theme for Discord
SCSS
103
star
4

Trilium-SingleFile

An addon for Trilium to easily import SingleFile archives.
TypeScript
24
star
5

Trilium-Breadcrumbs

A widget to show note breadcrumbs at the bottom of the page.
JavaScript
23
star
6

Trilium-MarkdownPreview

A widget for trilium notes for live previewing markdown files with support for anchors, images, and sync scroll.
JavaScript
21
star
7

discordbot.py

An extention of discord.py to ease bot development
Python
21
star
8

Trilium-LaTeXPreview

A widget for Trilium Notes to preview LaTeX notes.
JavaScript
8
star
9

VHDL-Communications

Example code showing different communications such as TTL, SPI and I2C.
VHDL
8
star
10

trilium.rocks

A community-based website for Trilium Notes users!
TypeScript
7
star
11

trilium-etapi

An easy to use api for Trilium ETAPI.
TypeScript
6
star
12

trilium-types

A @types package for Trilium Notes!
6
star
13

EnhancedDiscordPlugins

A selection of my BetterDiscord plugins for EnhancedDiscord.
CSS
6
star
14

trilium-pack

A simple way to pack addons as zip files for Trilium Notes.
JavaScript
5
star
15

BlockCatcher

This is a WebGL game in which you must catch as many blocks as possible until time runs out.
JavaScript
5
star
16

Planum

Discord bot with an xp and levelling system including role rewards.
JavaScript
4
star
17

BoiBot

BoiBot is the Discord bot that's here for the bois.
JavaScript
4
star
18

TableTennisDB

Discord bot for table tennis equipment stats, world rankings, schedules and more!
JavaScript
4
star
19

better-formatting

A lightweight formatting plugin for powercord
JavaScript
3
star
20

ModernRenai

A UserCSS theme for the Katawa Shoujo forums on the Ren'Ai.
CSS
3
star
21

BlockCatcherFX

JavaFX version of the super popular BlockCatcher web game!
Java
2
star
22

Object3D-Demo

JavaScript
2
star
23

Hangman

My hangman game, this uses external serial communications but can be used separately..
Java
2
star
24

Intelligent-Line-And-Marker-Tracking-Car

Code, Documentation, and Demo, of an autonomous car that tracks a black line as well as markers in the form of sign posts.
C
2
star
25

Tools-and-Utilities

This repo contains a set of useful libraries and tools mainly in Java as of right now. However more and more will be added in the future.
Java
2
star
26

Z-Networking

JavaScript
1
star
27

BurstBoards

PHP
1
star
28

rauenzi.github.io

HTML
1
star