Board Thread:Code Review/@comment-27345308-20180816224300

Hello, I have relatively recently rewritten ChatHacks and ChatOptions to make them translatable using I18n-js and generally make the code more readable and up to date with standards (more or less) used on. Their code can be found here and here, because they are very widely used and could not be released live without thorough testing.

ChatOptions
[ All changes] to ChatOptions also include:
 * modal instead of
 * Storing options in  instead of cookies
 * Extracted CSS to a separate page
 * Not leaking functions into global scope
 * UI-js instead of concatenated HTML
 * Double-loading prevention
 * Chat-js options button instead of a custom one appended to the top of the Rail
 * Slightly changed window look (old vs new)
 * "Added functionality" options have been made customizable and therefore some modules were changed/added:
 * ChatHacks module is importing the beta version of ChatHacks, but that is probably not going to be in the live version
 * Multikick option is now only appearing for moderators
 * MultiPM module has been switched with ExtendedPrivateMessaging, as it is a way newer script with way more options
 * EmoticonsWindow, FasterBanModule and QuickModTools have been added as options
 * Side scroll prevention option has been removed as that is a default feature of chat since about a year ago
 * "Ignore URL in main chat" option has only ever been enabled on Call of Duty Wiki, which doesn't have chat anymore, so the option has been removed
 * All inline CSS related to "Color changes"/"Font" sections has been converted into  with
 * Rubik font is an option now
 * Module scripts are being imported all at once with  instead of one by one with
 * ChatOptions code subpages will import the rewrite once it goes live

ChatHacks
[ All changes] to ChatHacks also include:
 * Exposing the ChatHacks object globally (now that it exists).
 * Empty pings should no longer ping for every message
 * Killing emoticons should finally work as intended ( was replaced with
 * No more playing with s, all dependencies are preloaded together
 * Overwritten  method respects message length limiting
 * object has been changed to use objects instead of functions in order to contain information other than just the command handler
 * Simplified the logic in  command