diff --git a/js/main.min.js b/js/main.min.js
index bd0a8d52..9ed3a1c7 100644
--- a/js/main.min.js
+++ b/js/main.min.js
@@ -1,3 +1,3 @@
-function Core(){}function EmoteModule(){}function PublicServers(){}function QuickEmoteMenu(){}function SettingsPanel(){utils.injectJs("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/codemirror.min.js"),utils.injectJs("https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.9.0/mode/css/css.min.js")}function Utils(){}function VoiceMode(){}function PluginModule(){}function BdApi(){}var settingsPanel,emoteModule,utils,quickEmoteMenu,opublicServers,voiceMode,pluginModule,jsVersion=1.54,supportedVersion="0.2.3",mainObserver,twitchEmoteUrlStart="https://static-cdn.jtvnw.net/emoticons/v1/",twitchEmoteUrlEnd="/1.0",ffzEmoteUrlStart="https://cdn.frankerfacez.com/emoticon/",ffzEmoteUrlEnd="/1",bttvEmoteUrlStart="https://cdn.betterttv.net/emote/",bttvEmoteUrlEnd="/1x",mainCore,settings={"Save logs locally":{id:"bda-gs-0",info:"Saves chat logs locally",implemented:!1},"Public Servers":{id:"bda-gs-1",info:"Display public servers button",implemented:!0},"Minimal Mode":{id:"bda-gs-2",info:"Hide elements and reduce the size of elements.",implemented:!0},"Voice Mode":{id:"bda-gs-4",info:"Only show voice chat",implemented:!0},"Hide Channels":{id:"bda-gs-3",info:"Hide channels in minimal mode",implemented:!0},"Quick Emote Menu":{id:"bda-es-0",info:"Show quick emote menu for adding emotes",implemented:!0},"Show Emotes":{id:"bda-es-7",info:"Show any emotes",implemented:!0},"FrankerFaceZ Emotes":{id:"bda-es-1",info:"Show FrankerFaceZ Emotes",implemented:!0},"BetterTTV Emotes":{id:"bda-es-2",info:"Show BetterTTV Emotes",implemented:!0},"Emote Autocomplete":{id:"bda-es-3",info:"Autocomplete emote commands",implemented:!1},"Emote Auto Capitalization":{id:"bda-es-4",info:"Autocapitalize emote commands",implemented:!0},"Override Default Emotes":{id:"bda-es-5",info:"Override default emotes",implemented:!1},"Show Names":{id:"bda-es-6",info:"Show emote names on hover",implemented:!0}},links={"Jiiks.net":{text:"Jiiks.net",href:"http://jiiks.net",target:"_blank"},twitter:{text:"Twitter",href:"http://twitter.com/jiiksi",target:"_blank"},github:{text:"Github",href:"http://github.com/jiiks",target:"_blank"}},defaultCookie={version:jsVersion,"bda-gs-0":!1,"bda-gs-1":!0,"bda-gs-2":!1,"bda-gs-3":!1,"bda-gs-4":!1,"bda-es-0":!0,"bda-es-1":!1,"bda-es-2":!1,"bda-es-3":!1,"bda-es-4":!1,"bda-es-5":!0,"bda-es-6":!0,"bda-es-7":!0,"bda-jd":!0},bdchangelog={changes:{favemotes:{title:"Favorite Emotes!",text:"You can now favorite emotes and have them listed in the quick emote menu!",img:""},plugins:{title:"Plugins!",text:"Combined with Core 0.2.3, you can now write JavaScript plugins for Discord!",img:""},settingsmenu:{title:"Settings Menu!",text:"New and improved settings menu!",img:""},csseditor:{title:"New CSS Editor!",text:"New CSS Editor powered by CodeMirror!",img:""},minimalmode:{title:"Minimal mode makeover!",text:"New and improved minimal mode!",img:""}},fixes:{reload:{title:"Reload Fix!",text:"Fixed an issue that caused Discord to crash on reload!",img:""},eemotes:{title:"Edit Emotes!",text:"Edited messages now display emotes properly!",img:""},pservers:{title:"Public Servers",text:"Public servers have been fixed!",img:""},other:{title:"Bugfixes!",text:"Several smaller bugs fixed!",img:""}},upcoming:{ignore:{title:"Ignore User!",text:"Ignore users you don't like!",img:""},themes:{title:"Custom themes!",text:"Write your own or download custom themes!",img:""},favemotes:{title:"Favorite emotes!",text:"Add your favorite emote(s) to the quick emote menu!",img:""},more:{title:"More Things!",text:"More things but probably not in the next version!",img:""}}},settingsCookie={};Core.prototype.init=function(){function A(){if(console.log((new Date).getTime()+" Defer"),$(".guilds-wrapper .guilds").children().length>0){console.log((new Date).getTime()+" Defer Loaded");var B=$(".guilds li:first-child");B.after($("
",{text:"Join"}));P.appendTo(w);var g=$("",{id:"bd-ps-tbody"});g.appendTo(Q),Q.appendTo(B),$("body").append(this.getPanel()),$("#bd-ps-close").on("click",function(){A.show()});var E=publicServers.servers;for(var e in E)if(E.hasOwnProperty(e)){var C=E[e],t=C.code,s=C.title,o=C.language,v=C.description;this.addServer(e,t,s,o,v)}},PublicServers.prototype.addServer=function(A,D,B,Q,w){var P=this,g=$("#bd-ps-tbody"),E=$("
',settingsButton=$("",{"class":"tab-bar-item",text:"BetterDiscord",id:"bd-settings-new",click:A}),panel.html(Q),D()};var _hash;Utils.prototype.getTextArea=function(){return $(".channel-textarea-inner textarea")},Utils.prototype.jqDefer=function(A){window.jQuery?A():setTimeout(function(){this.jqDefer(A)},100)},Utils.prototype.getHash=function(){$.getJSON("https://api.github.com/repos/Jiiks/BetterDiscordApp/commits/master",function(A){
-_hash=A.sha,emoteModule.getBlacklist()})},Utils.prototype.loadHtml=function(A,D){var B=$("",{"class":"bd-container"}).appendTo("body");A="//cdn.rawgit.com/Jiiks/BetterDiscordApp/"+_hash+"/html/"+A+".html",B.load(A,D())},Utils.prototype.injectJs=function(A){$("",{type:"text/javascript",src:A}).appendTo($("body"))},Utils.prototype.injectCss=function(A){$("",{type:"text/css",rel:"stylesheet",href:A}).appendTo($("head"))},VoiceMode.prototype.obsCallback=function(){var A=this;settingsCookie["bda-gs-4"]&&(A.disable(),setTimeout(function(){A.enable()},300))},VoiceMode.prototype.enable=function(){$(".scroller.guild-channels ul").first().css("display","none"),$(".scroller.guild-channels header").first().css("display","none"),$(".app.flex-vertical").first().css("overflow","hidden"),$(".chat.flex-vertical.flex-spacer").first().css("visibility","hidden").css("min-width","0px"),$(".flex-vertical.channels-wrap").first().css("flex-grow","100000"),$(".guild-header .btn.btn-hamburger").first().css("visibility","hidden")},VoiceMode.prototype.disable=function(){$(".scroller.guild-channels ul").first().css("display",""),$(".scroller.guild-channels header").first().css("display",""),$(".app.flex-vertical").first().css("overflow",""),$(".chat.flex-vertical.flex-spacer").first().css("visibility","").css("min-width",""),$(".flex-vertical.channels-wrap").first().css("flex-grow",""),$(".guild-header .btn.btn-hamburger").first().css("visibility","")};var pluginCookie={};PluginModule.prototype.loadPlugins=function(){this.loadPluginData(),$.each(bdplugins,function(){var A=this.plugin;A.load();var D=A.getName(),B=!1;pluginCookie.hasOwnProperty(D)?B=pluginCookie[D]:pluginCookie[D]=!1,B&&A.start()})},PluginModule.prototype.handlePlugin=function(A){var D=$(A).children().find('input[type="checkbox"]'),B=!D.is(":checked"),Q=D.attr("id");D.prop("checked",B),B?(bdplugins[Q].plugin.start(),pluginCookie[Q]=!0):(bdplugins[Q].plugin.stop(),pluginCookie[Q]=!1),this.savePluginData()},PluginModule.prototype.loadPluginData=function(){var A=$.cookie("bd-plugins");void 0!=A&&(pluginCookie=JSON.parse($.cookie("bd-plugins")))},PluginModule.prototype.savePluginData=function(){$.cookie("bd-plugins",JSON.stringify(pluginCookie),{expires:365,path:"/"})},BdApi.joinServer=function(A){opublicServers.joinServer(A)},BdApi.injectCSS=function(A,D){$("head").append(''),$("#"+A).html(D)},BdApi.clearCSS=function(A){$("#"+A).remove()},BdApi.getPlugin=function(A){return bdplugins.hasOwnProperty(A)?bdplugins[A].plugin:null},BdApi.getIpc=function(){return betterDiscordIPC},BdApi.getCore=function(){return mainCore},BdApi.getUserIdByName=function(A){for(var D=$(".member-username"),B=0;BCodeMirror!",img:""},minimalmode:{title:"Minimal mode makeover!",text:"New and improved minimal mode!",img:""}},fixes:{reload:{title:"Reload Fix!",text:"Fixed an issue that caused Discord to crash on reload!",img:""},eemotes:{title:"Edit Emotes!",text:"Edited messages now display emotes properly!",img:""},pservers:{title:"Public Servers",text:"Public servers have been fixed!",img:""},other:{title:"Bugfixes!",text:"Several smaller bugs fixed!",img:""}},upcoming:{ignore:{title:"Ignore User!",text:"Ignore users you don't like!",img:""},themes:{title:"Custom themes!",text:"Write your own or download custom themes!",img:""},favemotes:{title:"Favorite emotes!",text:"Add your favorite emote(s) to the quick emote menu!",img:""},more:{title:"More Things!",text:"More things but probably not in the next version!",img:""}}},settingsCookie={};Core.prototype.init=function(){function A(){if(console.log((new Date).getTime()+" Defer"),$(".guilds-wrapper .guilds").children().length>0){console.log((new Date).getTime()+" Defer Loaded");var B=$(".guilds li:first-child");B.after($("",{id:"bd-pub-li",css:{height:"20px",display:1==settingsCookie["bda-gs-1"]?"":"none"}}).append($("",{"class":"guild-inner",css:{height:"20px","border-radius":"4px"}}).append($("").append($("",{css:{"line-height":"20px","font-size":"12px"},text:"public",id:"bd-pub-button"})))));var Q=$("",{"class":"btn",id:"bd-show-channels",text:"R",css:{cursor:"pointer"},click:function(){settingsCookie["bda-gs-3"]=!1,$("body").removeClass("bd-minimal-chan"),D.saveSettings()}});if($(".guilds-wrapper").prepend(Q),opublicServers=new PublicServers,pluginModule=new PluginModule,pluginModule.loadPlugins(),"undefined"!=typeof themesupport&&(themeModule=new ThemeModule,themeModule.loadThemes()),settingsPanel=new SettingsPanel,settingsPanel.init(),quickEmoteMenu.init(!1),$("#tc-settings-button").on("click",function(){settingsPanel.show()}),$("#bd-pub-button").on("click",function(){opublicServers.show()}),opublicServers.init(),emoteModule.autoCapitalize(),settingsCookie.versionDate.now||(Date.now=function(){return(new Date).getTime()}),function(){"use strict";for(var t=["webkit","moz"],e=0;el-(this.size+6)&&this.reset(),this.element.style.top=this.y+"px",this.element.style.left=this.x+"px",this.step+=this.stepSize,this.x+=y===!1?Math.cos(this.step):y+Math.cos(this.step),i.collection&&this.x>this.target.x&&this.xthis.target.y&&this.ythis.target.height)if(s+this.speed+this.size>this.target.height){for(;s+this.speed+this.size>this.target.height&&this.speed>0;)this.speed*=.5;t.fillStyle="#fff",void 0==n[parseInt(e)][parseInt(s+this.speed+this.size)]?(n[parseInt(e)][parseInt(s+this.speed+this.size)]=1,t.fillRect(e,s+this.speed+this.size,this.size,this.size)):(n[parseInt(e)][parseInt(s+this.speed)]=1,t.fillRect(e,s+this.speed,this.size,this.size)),this.reset()}else this.speed=1,this.stepSize=0,parseInt(e)+10&&void 0==n[parseInt(e)-1][parseInt(s)+1]?this.x--:(t.fillStyle="#fff",t.fillRect(e,s,this.size,this.size),n[parseInt(e)][parseInt(s)]=1,this.reset())}(this.x+this.size>d-c||this.x",{"class":"snowfall-canvas"}),z=[];if(u.top-g>0){t("body").append(x),x.css({position:i.flakePosition,left:u.left+"px",top:u.top-g+"px"}).prop({width:u.width,height:g});for(var v=0;v'),$("head").append("")}else setTimeout(A,100)}var D=this;return version
';if(null!=bdchangelog.changes){A+='
New Stuff
';for(var D in bdchangelog.changes)D=bdchangelog.changes[D],A+="
"+D.title+"
"+D.text+"
";A+="
"}if(null!=bdchangelog.fixes){A+='
Fixed
';for(var B in bdchangelog.fixes)B=bdchangelog.fixes[B],A+="
"+B.title+"
"+B.text+"
";A+="
"}if(null!=bdchangelog.upcoming){A+='
Coming Soon
';for(var Q in bdchangelog.upcoming)Q=bdchangelog.upcoming[Q],A+="
",{text:"Join"}));P.appendTo(w);var g=$("",{id:"bd-ps-tbody"});g.appendTo(Q),Q.appendTo(B),$("body").append(this.getPanel()),$("#bd-ps-close").on("click",function(){A.show()});var e=publicServers.servers;for(var E in e)if(e.hasOwnProperty(E)){var t=e[E],s=t.code,C=t.title,o=t.language,v=t.description;this.addServer(E,s,C,o,v)}},PublicServers.prototype.addServer=function(A,D,B,Q,w){var P=this,g=$("#bd-ps-tbody"),e=$("