MediaWiki:Chat.js

//Chat's topic. Remember to escape single quotes in the topic using \' to prevent this from breaking. var chatTopic = ' Welcome to the café. Enjoy your stay! Please be sure to follow all of our  rules  ' $(function {	$('#ChatHeader .public.wordmark').prepend(''+chatTopic+' ')	.find('a').attr('style','position:relative;text-decoration:underline;') }) $('#ChatHeader .public.wordmark div:not(:first-child)').remove /* Creating /me command */ document.getElementsByName('message')[0].onkeypress = function(e) { if (e.which == 32) { if (this.value == '/me' || this.value == '/ME') { this.value = '* '+wgUserName; }	} } /* Block Chat Messages */ importScriptPage('MessageBlocker/code.js', 'dev'); /* Allow Chat Mods and admins to kick users using /kick */ if (wgUserGroups.indexOf('chatmoderator')!=-1 || wgUserGroups.indexOf('sysop')!=-1) { $(function {	$('[name="message"]').keypress(function(e) { if (e.which == 13) { if (this.value.split(' ')[0] == '/kick') { e.preventDefault; var toKick = this.value.replace(/^\/kick /,'') if (!$('#WikiChatList [data-user="'+toKick+'"]').length) { confirm(toKick + ' is not in this chat. Still try to kick him?')?mainRoom.kick({name: toKick}):undefined; } else { mainRoom.kick({name: toKick}) }				this.value = ''; return true; }		}	}); }); } /* Clear chat button */ function addClearChatText{ if ($('.clearChatText').length <= 0) { var clearChatText = document.createElement('span'); $('Clear chat ').prependTo('.Rail'); } } function clearChat{ chatSize = $('div.Chat:first ul li').size-1; $('.Chat:first li:lt('+chatSize+')').remove; } window.onload=addClearChatText; /* END Clear chat button */

/* Spam protection */

// Credit to Joeytje50, script modified slightly for more leniency/easier changing

// Change these variables to modify the leniency of the script

var maxLimit = 6; // limit for sent lines var maxLength = 1250; // limit for how long a line can be (in chars) var limitTimeout = 2000; // timeout for the sent lines limiter

var rate = 0; function ratelimit(e) { if (rate > maxLimit) { this.disabled = true;//disabling input in case they press ESC before the redirect is complete e.preventDefault; mainRoom.sendMessage({which : 13, shiftKey : false, preventDefault : function {} }) document.location.href = wgServer+"/wiki/Project:Chat/Ratelimit_triggered"; return false; }	if (this.value.length>=maxLength || this.value.split('\n').length>=6) { var val = this.value.substring(0,maxLength).split('\n'); val = val[0]+'\n'+val[1]+'\n'+val[2]+'\n'+val[3]+'\n'+val[4];//remove all lines after the 5th line. this.value = val; if (e.type == 'keypress') { e.preventDefault; return false; }	}	if (e.type == 'keypress' && e.which == 13 && !e.shiftKey && this.value != '') { rate += 1; setTimeout(function {			if (rate > 0) { rate -= 1 }		},limitTimeout); } } $('[name="message"]').keyup(ratelimit).keypress(ratelimit).keydown(ratelimit);

/* END Spam protection */ importScriptPage('User:Monchoman45/ChatHacks.js','c'); importScriptPage('User:Joeytje50/tabinsert.js','runescape'); importScriptPage('User:Madnessfan34537/multikick.js','cod'); importScriptPage('User:Madnessfan34537/multipm.js','cod'); importScriptPage('MediaWiki:Chat.js/searchbar.js','cod');

/**************/ /*Chat options*/ /**************/ var chatOptionsLoaded; if (chatOptionsLoaded != 1){ chatOptionsLoaded = 1; importScriptPage('MediaWiki:Chat.js/options.js', 'xiaolinpedia'); }