Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name TagPro Chat Macros
- // @include http://tagpro-*.koalabeast.com:*
- // @include http://tangent.jukejuice.com:*
- // @include http://*.newcompte.fr:*
- // ==/UserScript==
- (function() {
- function contentEval(source) {
- // Check for function input.
- if ('function' == typeof source) {
- // Execute this function with no arguments, by adding parentheses.
- // One set around the function, required for valid syntax, and a
- // second empty set calls the surrounded function.
- source = '(' + source + ')();'
- }
- // Create a script node holding this source code.
- var script = document.createElement('script');
- script.setAttribute("type", "application/javascript");
- script.textContent = source;
- // Insert the script node into the page, so it will run, and immediately
- // remove it to clean up.
- document.body.appendChild(script);
- document.body.removeChild(script);
- }
- function actualScript() {
- var macros = {};
- macros[49] = {"message": "gg", "toAll": true}; // 1
- macros[50] = {"message": "sorry mb", "toAll": true}; // 2
- macros[51] = {"message": "all good", "toAll": true}; // 3
- // Game bindings overriding adapted from JohnnyPopcorn's NeoMacro https://gist.github.com/JohnnyPopcorn/8150909
- var handlerbtn = $('#macrohandlerbutton');
- handlerbtn.keydown(keydownHandler)
- .keyup(keyupHandler);
- handlerbtn.focus();
- $(document).keydown(documentKeydown);
- function documentKeydown(event) {
- if (!tagpro.disableControls) {
- handlerbtn.focus(); // The handler button should be always focused
- }
- }
- function keydownHandler(event) {
- var code = event.keyCode || event.which;
- if (code in macros && !tagpro.disableControls) {
- chat(macros[code]);
- event.preventDefault();
- event.stopPropagation();
- //console.log(macros[code]);
- }
- }
- function keyupHandler(event) {
- if (event.keyCode in macros && !tagpro.disableControls) {
- event.preventDefault();
- event.stopPropagation();
- }
- }
- var lastMessage = 0;
- var active = false;
- function chat(chatMessage) {
- var limit = 500 + 10;
- var now = new Date();
- var timeDiff = now - lastMessage;
- if (timeDiff > limit) {
- tagpro.socket.emit("chat", chatMessage);
- lastMessage = new Date();
- } else if (timeDiff >= 0 && !active) {
- active = true;
- setTimeout(function(chatMessage) { chat(chatMessage); active = false }, limit - timeDiff, chatMessage);
- }
- }
- }
- // This dummy input will handle macro keypresses
- var btn = document.createElement("input");
- btn.style.opacity = 0;
- btn.style.position = "absolute";
- btn.style.top = "-100px";
- btn.style.left = "-100px";
- btn.id = "macrohandlerbutton";
- document.body.appendChild(btn);
- contentEval(actualScript);
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement