// ==UserScript==
// @name twitchPlaysDarkFilterChat
// @namespace twitchPlaysDarkFilterChat
// @include *.twitch.tv/twitchplaysdark
// @include *.twitch.tv/twitchplaysdark/chat?popout=
// @version 0.95
// @description A script to filter out the chat commands in Twitch Plays Dark Souls
// ==/UserScript==
//
var filterActive = false;
var toBeFiltered= [
"arl",
"ar",
"al",
"d",
"ard",
"aru",
"arr",
"m",
"e",
"bs",
// hold
"hold",
"holdx2",
"holdx3",
"thold",
"tholdx2",
"tholdx3",
// running
"run",
"runt",
// flong
"tflong",
"tflongx2",
"tflongx3",
"tfshort",
"tfshortx2",
"tfshortx3",
"flong",
"flongx2",
"flongx3",
"fshort",
"fshortx2",
"fshortx3",
// walking movement
"tfx3",
"tfrx3",
"tflx3",
"tbx3",
"tbrx3",
"tblx3",
"tlx3",
"trx3",
"tfx2",
"tfrx2",
"tflx2",
"tbx2",
"tbrx2",
"tblx2",
"tlx2",
"trx2",
"tf",
"tfr",
"tfl",
"tb",
"tbr",
"tbl",
"tl",
"tr",
"fx3",
"frx3",
"flx3",
"bx3",
"brx3",
"blx3",
"lx3",
"rx3",
"fx2",
"frx2",
"flx2",
"bx2",
"brx2",
"blx2",
"lx2",
"rx2",
"f",
"fr",
"fl",
"b",
"br",
"bl",
"l",
"r",
// rolling movement
"rf",
"rb",
"rl",
"rr",
"rfx2",
"rbx2",
"rlx2",
"rrx2",
"rfx3",
"rbx3",
"rlx3",
"rrx3",
"trf",
"trb",
"trl",
"trr",
"trfx2",
"trbx2",
"trlx2",
"trrx2",
"trfx3",
"trbx3",
"trlx3",
"trrx3",
// face buttons
"u",
"tu",
"g",
"d",
"a",
"ax2",
"ax3",
"ta",
"tax2",
"tax3",
// D-pad
"du",
"dd",
"dl",
"dr",
"lr",
// kicks
"kick",
"k",
"kx2",
"kx3",
"tk",
"tkx2",
"tkx3",
// jump attacks
"jumpattack",
"ja",
"jax2",
"jax3",
"tja",
"tjax2",
"tjax3",
// shoulder buttons
"tr1t",
"tr2t",
"tr1x2t",
"tr1x3t",
"tr2x2t",
"tr2x3t",
"r1t",
"r2t",
"r1x2t",
"r2x2t",
"r1x3t",
"r2x3t",
"tl1t",
"tl2t",
"tl1x2t",
"tl1x3t",
"tl2x2t",
"tl2x3t",
"l1t",
"l2t",
"l1x2t",
"l2x2t",
"l1x3t",
"l2x3t",
"tr1",
"tr2",
"tr1x2",
"tr1x3",
"tr2x2",
"tr2x3",
"r1",
"r2",
"r1x2",
"r2x2",
"r1x3",
"r2x3",
"tl1",
"tl2",
"tl1x2",
"tl1x3",
"tl2x2",
"tl2x3",
"l1",
"l2",
"l1x2",
"l2x2",
"l1x3",
"l2x3",
//
"left",
"right",
"fwd",
"back",
"democracy",
"order",
"demo",
"anarchy",
"menubutton",
"banmenu",
"unbanmenu",
"banm",
"chaos",
"unbanm",
"delaydn",
"delayup"
];
var chatParent = document.getElementsByClassName("chat-lines")[0];
var interval;
function filterChat(event){
if(event.target.children == undefined)
{
return;
}
var message = event.target.children[0].children[5].innerHTML;
message = message.toUpperCase().replace(/\s+/g, '');
var compare;
for(x=0;x<toBeFiltered.length;x++)
{
compare = toBeFiltered[x].toUpperCase().replace(/\s+/g, '').substr(0,message.length);
if(message === compare){
chatParent.removeChild(event.target);
break;
}
}
}
function checkIfLoaded()
{
chatParent = document.getElementsByClassName("chat-lines")[0];
try{chatParent.children}
catch(err)
{
return;
}
chatParent.addEventListener("DOMNodeInserted",filterChat);
window.clearInterval(interval);
}
interval = window.setInterval(checkIfLoaded,20);