Critters+

Adds new features to BoxCritters to improve your experience!

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Critters+
// @namespace    http://discord.gg/G3PTYPy
// @version      2.2
// @description  Adds new features to BoxCritters to improve your experience!
// @author       slaggo. Gasegamer(modification)
// @match        https://boxcritters.com/play/*
// @match        http://boxcritters.com/play/*
// @icon         https://raw.githubusercontent.com/slaggo/CrittersPlus/master/icon.png
// @run-at       document-end
// @grant        none
// ==/UserScript==

var jokes = [
    {"j":"What do you call a hamster in a tophat?","p":"Abrahamster Lincoln!"},
    {"j":"Where does a hamster go for vacation?","p":"Hamsterdam!"},
    {"j":"What do you call a hamster with no legs?","p":"A furball!"},
    {"j":"What do you call a hamster that can't run in a wheel?","p":"Hamateur."},
    {"j":"Why was the hamster upset with his job?","p":"It didn't pay enough celery."},
    {"j":"What do you call a hamster with three legs?","p":"Hamputee."},
    {"j":"What happens when two snails get into a fight?","p":"They slug it out!"},
    {"j":"Why is the snail the strongest animal?","p":"Because he carries a house on his back!"},
    {"j":"How do snails make important calls?","p":"On shell phones."},
    {"j":"What kind of car does a raccoon drive?","p":"A furrari."},
    {"j":"Three guys stranded on a desert island find a magic lantern containing a genie, who grants them each one wish.","p":"The first guy wishes he was off the island and back home. The second guy wishes the same. The third guy says: ‘I’m lonely. I wish my friends were back here."}
]

// Code for delay function

var delay = ( function() {
    var timer = 0;
    return function(callback, ms) {
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    };
})();

// Runs on page load

window.addEventListener('load', function() {


    // Sets the theme to dark if browser supports webstorage
    var hamsterSprites =world.data.critters[0].Sprites;
 
    var chatBar = document.getElementsByClassName("input-group")[0];
    var chatBox = document.getElementsByClassName("row justify-content-center")[1];
    var jokeBtnHTML = `<span class="input-group-btn"><button id="jokebtn" class="btn btn-success">Joke</button></span>`;
    var clapBtnHTML = `<span class="input-group-btn"><button id="clapbtn" class="btn btn-warning">Clap</button></span>`;
    var balloonoffBtnHTML = `<span class="input-group-btn"><button id="balloonoffbtn" class="btn btn-info">Chat Balloons On/Off</button></span>`;
    var nametagsonoffBtnHTML = `<span class="input-group-btn"><button id="nametagsonoffbtn" class="btn btn-info">Name Tags On/Off</button></span>`;
    var freeitemBtnHTML = `<span class="input-group-btn"><button id="freeitembtn" class="btn btn-warning">FreeItem</button></span>`;
    var darkmodeBtnHTML = `<span class="input-group-btn"><button id="darkmodebtn" class="btn btn-secondary">DarkMode</button></span>`;
    var racoonBtnHTML = `<span class="input-group-btn"><button id="racoonbtn" class="btn btn-secondary">Racoon</button></span>`;
    var lizardBtnHTML =  `<span class="input-group-btn"><button id="lizardbtn" class="btn btn-success">Lizard</button></span>`;
    var beaverBtnHTML = `<span class="input-group-btn"><button id="beaverbtn" class="btn btn-primary">Beaver</button></span>`
    var hamsterBtnHTML = `<span class="input-group-btn"><button id="hamsterbtn" class="btn btn-danger">Hamster</button></span>`;
    var itemsBtnHTML =  `<input type="text" id="myText" value="ItemId of the item you want.">`;
     var itemInventoryBtnHTML =  `<input type="text" id="itemwanted" value="ItemId of the item you have.">`;
    var ChangeItem =  `<span class="input-group-btn"><button id="changebtn" class="btn btn-danger">Change Item</button></span>`;
    chatBar.insertAdjacentHTML('beforeend', jokeBtnHTML);
    chatBar.insertAdjacentHTML('beforeend', clapBtnHTML);    
    chatBar.insertAdjacentHTML('afterend', balloonoffBtnHTML);
    chatBar.insertAdjacentHTML('afterend', nametagsonoffBtnHTML);
    chatBar.insertAdjacentHTML('afterend', hamsterBtnHTML);
    chatBar.insertAdjacentHTML('afterend', beaverBtnHTML);
    chatBar.insertAdjacentHTML('afterend', racoonBtnHTML);
    chatBar.insertAdjacentHTML('afterend', lizardBtnHTML);
    chatBar.insertAdjacentHTML('afterend', darkmodeBtnHTML);
    chatBar.insertAdjacentHTML('afterend', freeitemBtnHTML);
    chatBar.insertAdjacentHTML('afterend', itemInventoryBtnHTML);

    chatBar.insertAdjacentHTML('afterend', ChangeItem);
    chatBar.insertAdjacentHTML('afterend', itemsBtnHTML);

    function sendJoke() {
        document.getElementById("inputMessage").value="";
        var joke = jokes[(Math.floor(Math.random() * jokes.length))]; // Retrieve random joke from variable
        world.sendMessage(joke.j); // Send the first part of the joke
        delay(function(){
            world.sendMessage(joke.p); // Send the punchline
        }, 5000 ); // end delay
    }

    function sendClap() {
        var message = document.getElementById("inputMessage").value;
        document.getElementById("inputMessage").value="";
        message = message.split(" ").join(" 👏 ");
        message = "👏" + message + "👏";
        console.log(message);
        world.sendMessage(message);
    }

    function balloonoff() {
        document.getElementById("inputMessage").value="";
        world.sendMessage("/balloons"); // Turn chat balloons off
    }

    function nametagsonoff() {
        document.getElementById("inputMessage").value="";
        world.sendMessage("/nicknames"); // Turn name tags on/off
    }
    function freeitem() {
        document.getElementById("inputMessage").value="";
        world.sendCode("freeitem"); // Get free item
    }
    function darkmode()
    {
         document.getElementById("inputMessage").value="";
        world.sendMessage("/darkmode");
    }

    function racoonchange()
    {
        document.getElementById("inputMessage").value="";
    world.data.critters[0].Sprites = world.data.critters[1].Sprites
    }
    function lizardchange(){
          document.getElementById("inputMessage").value="";
   world.data.critters[0].Sprites = world.data.critters[3].Sprites
    }
     function beaverchange(){
          document.getElementById("inputMessage").value="";
   world.data.critters[0].Sprites = world.data.critters[2].Sprites
    }
        function hamsterchange()
    {
        document.getElementById("inputMessage").value="";
        world.data.critters[0].Sprites = hamsterSprites;
    }

   function itemId()
    {
       var x = document.getElementById("myText").value;
        var y = document.getElementById("itemwanted").value;
         world.data.items.Directions[y] =  world.data.items.Directions[x];
    }


    var jokeBtn = document.querySelector ("#jokebtn");
    if (jokeBtn) {
        jokeBtn.addEventListener ("click", sendJoke, false);
    }
    var clapBtn = document.querySelector ("#clapbtn");
    if (clapBtn) {
        clapBtn.addEventListener ("click", sendClap, false);
    }

    var balloonoffBtn = document.querySelector ("#balloonoffbtn");
    if (balloonoffBtn) {
        balloonoffBtn.addEventListener ("click", balloonoff, false);
    }

    var nametagsonoffBtn = document.querySelector ("#nametagsonoffbtn");
    if (nametagsonoffBtn) {
        nametagsonoffBtn.addEventListener ("click", nametagsonoff, false);
    }

     var freeitemBtn = document.querySelector ("#freeitembtn");
    if (freeitemBtn) {
        freeitemBtn.addEventListener ("click", freeitem, false);
    }
    var darkmodeBtn = document.querySelector("#darkmodebtn");
    if (darkmodeBtn) {
        darkmodeBtn.addEventListener ("click", darkmode, false);
    }
    var racoonBtn = document.querySelector("#racoonbtn");
    if(racoonBtn){
     racoonBtn.addEventListener ("click", racoonchange, false);
    }

    var lizardBtn = document.querySelector("#lizardbtn");
    if(lizardBtn){
     lizardBtn.addEventListener ("click", lizardchange, false);
    }

    var beaverBtn = document.querySelector("#beaverbtn");
    if(beaverBtn){
     beaverBtn.addEventListener ("click", beaverchange, false);
    }
    var hamsterBtn = document.querySelector("#hamsterbtn");
    if(hamsterBtn){
     hamsterBtn.addEventListener ("click", hamsterchange, false);
    }
    var ItemIdBtn = document.querySelector("#changebtn");
    if(ItemIdBtn){
     ItemIdBtn.addEventListener("click", itemId, false);
    }

}, false);