Untitled

mail@pastecode.io avatar
unknown
plain_text
8 months ago
46 kB
1
Indexable
Never
var s = {};
var ownerId = "S4a2iPT8qfLedAQhAz5PRRhhvd0";
var msg = [];
var admins = [];
var banned = [];
var serverNames = ["Robot", "Megaphone"];
var extendedCooldown = [];
var isTyping = true;
var user = "";
var wait = 0;
var mobileMode = false;
var input = "";
var spin = 0;
var lastUpdated = getTime();
var coins = 1000000;
var chatCensor = true;
var room = "home";
var framesSinceRoomChange = 0;
var showCursor = true;
var keepCursor = false;
var cooldown = 0;
var views = 0;
var safe = true;
var backspaceActive = 0;
var Screen = "Home";
var currentTheme = "lightmode";
var myThemes = ["lightmode"];
var purchasingTheme = false;
var themes = {
  "Darkmode": {
    name: "Dark Mode",
    price: 0,
    desc: "The starter theme you know and love.",
    bg: "#151617",
    color: "white",
    input: "#232425",
    theme: "dodgerblue"
  },
  "lightmode": ({
    name: "Light Mode",
    price: 10,
    desc: "The classic eye breaking,Theme you know and hate",
    bg: "white",
    color: "black",
    input: "lightgray",
    theme: "#D74726"
  }),
  "purple": ({
    name: "Purple",
    price: 50,
    desc: "My favorite color",
    bg: "#663399",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "blue": ({
    name: "Blue",
    price: 50,
    desc: "Its blue",
    bg: "dodgerblue",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "green": ({
    name: "Green",
    price: 50,
    desc: "green i guess",
    bg: "limegreen",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "red": ({
    name: "Red",
    price: 50,
    desc: "Another one of my fav colors",
    bg: "tomato",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "yellow": ({
    name: "Yellow",
    price: 50,
    desc: "Yellow cooooool",
    bg: "gold",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"                                            
  }),
  "gold": ({
    name: "Gold",
    price: 500,
    desc: "If oyu are buying this take a look at yellow ๐Ÿ’€",
    bg: "gold",
    color: rgb(30, 30, 0),
    input: rgb(255, 255, 255, 0.2),
    theme: "goldenrod"
  }),
  "chocolate": ({
    name: "Chocolate",
    price: 50,
    desc: "BROWN! ๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€",
    bg: "saddlebrown",
    color: "white",
    input: "sienna",
    theme: "chocolate"
  }),
  "cottoncandy": ({
    name: "Cotton Candy",
    price: 200,
    desc: "๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€",
    bg: "plum",
    color: "black",
    input: rgb(255, 255, 255, 0.3),
    theme: "mediumslateblue"
  }),
  "popcorn": ({
    name: "Popcorn",
    price: 100,
    desc: "Corny It is made of corn ๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€๐Ÿ’€",
    bg: "#ffff33",
    color: "black",
    input: rgb(255, 255, 255, 0.4),
    theme: "gold"
  }),
  "monochrome": ({
    name: "Monochrome",
    price: 25,
    desc: "My go to theme",
    bg: "black",
    color: "white",
    input: "black",
    theme: "white"
  }),
  "silver": ({
    name: "Silver",
    price: 250,
    desc: "",
    bg: "darkgray",
    color: "black",
    input: "lightgray",
    theme: "gray"
  }),
  "blinding": ({
    name: "Blinding",
    price: 25,
    desc: "THE LIGHT",
    bg: rgb(240, 240, 240),
    color: "gray",
    input: "white",
    theme: "lightgray"
  }),
  "nightsky": ({
    name: "Night Sky",
    price: 50,
    desc: "*meditating* ๐Ÿ’€",
    bg: rgb(30, 20, 60),
    color: "white",
    input: rgb(255, 255, 255, 0.1),
    theme: "dodgerblue"
  }),
  "pink": ({
    name: "Pink",
    price: 50,
    desc: "Pink is Pink ๐Ÿ’€",
    bg: "violet",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "orange": ({
    name: "Orange",
    price: 50,
    desc: "A fruit and a color",
    bg: "orange",
    color: "white",
    input: "rgba(0, 0, 0, 0.1)",
    theme: "white"
  }),
  "diamond": ({
    name: "Diamond",
    price: 1000,
    desc: "you can easily get this if you go to a different room and spam",
    bg: "skyblue",
    color: "white",
    input: "rgba(255, 255, 255, 0.1)",
    theme: "white"
  }),
  "shadow": ({
    name: "Shadow",
    price: 50,
    desc: "Like the shadow animatronics",
    bg: "black",
    color: "rgb(77, 77, 77)",
    input: "rgb(10, 10, 10)",
    theme: "white"
  }),
  "cute": ({
    name: "Cute",
    price: 50,
    desc: "๐Ÿ’€",
    bg: "violet",
    color: "white",
    input: "hotpink",
    theme: "skyblue"
  }),
  "classic": ({
    name: "Classic",
    price: 50,
    desc: "......",
    bg: "saddlebrown",
    color: "white",
    input: "peru",
    theme: "sandybrown"
  }),
  "tricolor": ({
    name: "Tricolor",
    price: 50,
    desc: "I definetly did not desighn this",
    bg: "goldenrod",
    color: "white",
    input: "midnightblue",
    theme: "darkred"
  }),
  "cool": ({
    name: "Cool",
    price: 50,
    desc: "No need for this if you are already cool ๐Ÿ˜Ž",
    bg: "darkmagenta",
    color: "white",
    input: "indigo",
    theme: "dodgerblue"
  }),
  "vintage": ({
    name: "Vintage",
    price: 99999999999999,
    desc: "If this is vintage then the price must go up",
    bg: "darkolivegreen",
    color: "white",
    input: "olivedrab",
    theme: "khaki"
  }),
  "neon": ({
    name: "Neon",
    price: 50,
    desc: "DONT GET IT",
    bg: "limegreen",
    color: "white",
    input: "darkgoldenrod",
    theme: "magenta"
  }),
  "mist": ({
    name: "Mist",
    price: 50,
    desc: "When you are walking in the forest a 3am like i do๐Ÿ’€",
    bg: "darkslategray",
    color: "white",
    input: "slategray",
    theme: "gray"
  })
};
console.log("Your user ID is " + getUserId());
var shopThemes = [];
var shopCycle = Object.keys(themes);
shopCycle.splice(0, 1);
var ignoreTheme = false;
getKeyValue("main-views", function (rec) {
  if (typeof rec == "number") {
    setKeyValue("main-views", rec+1);
  } else {
    setKeyValue("main-views", 1);
  }
});
var currentlyTyping = "";
var rank = "Guest";
var typeTimeout = 0;
var coinText = 335;
var systemFont = "system-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"";
textFont(systemFont);
var day = 0;
var online = [];
var onlineTimer = randomNumber(30, 60);
var onlineFrames = 0;
var showOnline = false;
var onlineBox = 400;
function draw() {
  s = themes[currentTheme];
  if (typeof s != "object") {
    currentTheme = "darkmode";
    s = themes[currentTheme];
  }
  if ((Screen == "Home" || Screen == "Shop") && camera.x > 200) {
    coinText = camera.x + 135;
  } else {
    coinText = 335;
  }
  if (Screen == "Theme") {
    showMobileControls(false, true, true, true);
  } else {
    showMobileControls(false, false, false, false);
  }
  switch (Screen) {
    case "Home":
      camera.x += (200-camera.x)/5;
      break;
    case "Shop":
      camera.x += (600-camera.x)/5;
      break;
    case "Theme":
      camera.x += (-200-camera.x)/5;
      break;
  }
  background(s.bg);
  fill(s.input);
  noStroke();
  rect(5, 370, 390, 25, 5);
  textSize(15);
  fill(s.color);
  textAlign(LEFT, CENTER);
  if (input == "" || mobileMode) {
    if (isTyping && showCursor && !mobileMode) {
      text("|", 10, 383);
    }
    fill(s.color);
    if (mobileMode) {
      text("NO GET BACK IN REGULAR MODE", 13, 383);
    } else {
      text("Message or die", 13, 383);
    }
  } else {
    var censoredInput = input;
    if (chatCensor) {
      censoredInput = censor(input);
    }
    if (isTyping && showCursor && !mobileMode) {
      text(censoredInput + "|", 13, 383);
    } else {
      text(censoredInput, 13, 383);
    }
  }
  textSize(12);
  if (!safe) {
    text("Loading...", 360, 40);
  } else if (user == "") {
    fill(s.input);
    rect(325, 5, 70, 20, 5);
    textAlign(CENTER, BASELINE);
    fill(s.color);
    text("Dont press this button", 360, 20);
    rank = "guest";
    text("Springlocked", 360, 40);
  } else {
    textAlign(RIGHT, CENTER);
    fill(s.color);
    text(coins.toLocaleString() + " ยฉ", coinText + 60, 15);
    textAlign(CENTER, BASELINE);
    if (admins.indexOf(encodeURIComponent(getUserId())) >= 0 || ownerId == getUserId()) {
      if (ownerId == getUserId()) {
        rank = "Owner";
        text("Owner", 360, 40);
      } else {
        rank = "Admin";
        text("Admin", 360, 40);
      }
      fill(s.input);
      rect(325, 45, 70, 20, 5);
      fill(s.color);
      text("Clear Chat", 360, 60);
      fill(s.input);
      rect(325, 70, 70, 20, 5);
      fill(s.color);
      text("Ban/Unban", 360, 85);
      fill(s.input);
      rect(325, 95, 70, 20, 5);
      fill(s.color);
      text("Announce", 360, 110);
      if (getUserId() == ownerId) {
        fill(s.input);
        rect(325, 120, 70, 20, 5);
        fill(s.color);
        text("Admins", 360, 135);
      }
      fill(s.input);
      rect(325, 145, 70, 20, 5);
      fill(s.color);
      text("Cooldown", 360, 160);
    } else {
      fill(s.color);
      text("User", 360, 40);
    }
  }
  textAlign(CENTER, BASELINE);
  fill(s.input);
  rect(325, 170, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text("Rules", 360, 184);
  fill(s.input);
  rect(325, 195, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text("Music", 360, 209);
  fill(s.input);
  rect(325, 220, 70, 20, 5);
  fill(s.color);
  textSize(10);
  text((mobileMode ? "โœ“ " : "") + "Mobile Mode", 360, 234);
  fill(s.input);
  rect(325, 245, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text((chatCensor ? "โœ“ " : "") + "Censor", 360, 260);
  fill(s.input);
  rect(325, 270, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text("Shop", 360, 285);
  fill(s.input);
  rect(325, 295, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text("Theme", 360, 310);
  fill(s.input);
  rect(325, 320, 70, 20, 5);
  fill(s.color);
  textSize(12);
  text("Room", 360, 335);
  fill(s.input);
  rect(325, 345, 70, 20, 5);
  fill(s.color);
  textSize(11);
  text("Online Users", 360, 360);
  getKeyValue("name-" + encodeURIComponent(getUserId()), function (rec) {
    if (typeof rec == "string") {
      user = formatUsername(rec);
      lastUpdated = getTime();
    } else {
      user = "";
    }
    safe = true;
  });
  getKeyValue("themes-" + encodeURIComponent(getUserId()), function (rec) {
    if (Array.isArray(rec)) {
      myThemes = rec;
      lastUpdated = getTime();
    } else {
      myThemes = ["darkmode"];
    }
  });
  getKeyValue("theme-" + encodeURIComponent(getUserId()), function (rec) {
    if (typeof rec == "string") {
      if (!ignoreTheme) {
        currentTheme = rec;
      }
      lastUpdated = getTime();
    } else {
      currentTheme = 0;
    }
  });
  getKeyValue("coins-" + encodeURIComponent(getUserId()), function (rec) {
    if (typeof rec == "number") {
      if (rec > 999999) {
        coins = 999999;
      } else if (rec < 1) {
        coins = 0;
      } else {
        coins = Math.floor(rec);
      }
      lastUpdated = getTime();
    } else {
      coins = 0;
    }
  });
  getKeyValue("msg-" + formatUsername(room + " "), function (rec) {
    if (Array.isArray(rec)) {
      if (rec.length != undefined && Object.keys(rec).indexOf("length") < 0) {
        msg = rec;
        lastUpdated = getTime();
      }
    } else {
      msg = [];
    }
  });
  getKeyValue("main-admins", function (rec) {
    if (Array.isArray(rec)) {
      if (rec.length != undefined && Object.keys(rec).indexOf("length") < 0) {
        admins = rec;
        lastUpdated = getTime();
      }
    } else {
      admins = [];
    }
  });
  getKeyValue("main-banned", function (rec) {
    if (Array.isArray(rec)) {
      if (rec.length != undefined && Object.keys(rec).indexOf("length") < 0) {
        banned = rec;
        lastUpdated = getTime();
      }
    } else {
      banned = [];
    }
  });
  getKeyValue("main-font", function (rec) {
    if ((typeof rec == "string" && (rec != "system-ui" && rec != "")) && rec != null) {
      textFont(rec);
      lastUpdated = getTime();
    } else {
      textFont(systemFont);
    }
  });
  getKeyValue("main-cooldown", function (rec) {
    if (Array.isArray(rec)) {
      if (rec.length != undefined && Object.keys(rec).indexOf("length") < 0) {
        extendedCooldown = rec;
        lastUpdated = getTime();
        if (extendedCooldown.indexOf(encodeURIComponent(getUserId())) >= 0) {
          cooldown = 10;
        } else {
          cooldown = 1;
        }
      }
    } else {
      extendedCooldown = [];
      cooldown = 1;
    }
  });
  getKeyValue("main-views", function (rec) {
    if (typeof rec == "number") {
      views = rec;
      lastUpdated = getTime();
    } else {
      views = 1;
    }
  });
  getKeyValue("online-" + formatUsername(room + " "), function (rec) {
    if (typeof rec == "string") {
      var valid = online.filter(function (entry) {
        return (entry.name == formatUsername(rec));
      });
      if (valid.length > 0) {
        online[online.indexOf(valid[0])].time = getTime();
      } else {
        online.push({name: formatUsername(rec), time: getTime()});
      }
    }
  });
  if (onlineFrames > onlineTimer && user != "") {
    setKeyValue("online-" + formatUsername(room + " "), formatUsername(user));
    onlineFrames = 0;
    onlineTimer = randomNumber(30, 60)*(online.length+1);
  } else {
    onlineFrames++;
  }
  var removeOnline = online.filter(function (entry) {
    return (getTime()-entry.time > 5000);
  });
  for (var i in removeOnline) {
    online.splice(online.indexOf(removeOnline[i]), 1);
  }
  var y = 5;
  for (var i = msg.length-9; i < msg.length; i++) {
    if (typeof msg[i] == "object" && !Array.isArray(msg[i])) {
      fill(s.input);
      noStroke();
      rect(5, y, 315, 35, 5);
      if (mouseWentDown("left") && World.mouseX >= 5 && World.mouseX <= 320 && World.mouseY >= y && World.mouseY <= y+35 && (rank == "Admin" || rank == "Owner") && Screen == "Home" && !showOnline) {
        prompt("@" + formatUsername(msg[i].user) + "'s User ID:", msg[i].uid);
      }
      y += 40;
      var tag = "";
      if (msg[i].uid == encodeURIComponent(ownerId)) {
        tag = "[Owner] ";
      } else if ((msg[i].uid == "Server")) {
        tag = "[Server] ";
      } else if (admins.indexOf(msg[i].uid) >= 0) {
        tag = "[Admin] ";
      } else if (banned.indexOf(msg[i].uid) >= 0) {
        tag = "[Banned] ";
      }
      fill(s.color);
      textSize(20);
      textAlign(LEFT, TOP);
      textStyle("normal");
      if ((msg[i].uid != "Server" || (msg[i].uid == "Server" && serverNames.indexOf(msg[i].user) >= 0)) && formatUsername(msg[i].user).length >= 3) {
        text(formatUsername(msg[i].user, msg[i].uid), 10, y-40);
      } else {
        text("Invalid Name", 10, y-40);
      }
      textSize(12);
      fill(rgb(255, 255, 255, 0.5));
      textAlign(RIGHT, TOP);
      text(tag + formatTime(msg[i].time), 315, y-35);
      textAlign(LEFT, BASELINE);
      fill(s.color);
      textSize(12);
      if (typeof msg[i].msg == "string" && (msg[i].uid != "Server" || (msg[i].uid == "Server" && serverNames.indexOf(msg[i].user) >= 0))) {
        if (msg[i].msg.length > 0) {
          textStyle("normal");
          if (chatCensor) {
            text(censor(msg[i].msg.substring(0,50)), 10, y-10);
          } else {
            text(msg[i].msg.substring(0,50), 10, y-10);
          }
        } else {
          textStyle("italic");
          text("Error: Cannot load message.", 10, y-10);
        }
      } else {
        textStyle("italic");
        text("Error: Cannot load message.", 10, y-10);
      }
    }
  }
  if (mouseWentDown("left")) {
    if (World.mouseX >= 325 && World.mouseY >= 5 && World.mouseX <= 395 && World.mouseY <= 25 && Screen == "Home" && !showOnline) {
      if (user == "" && safe) {
        var x = prompt("Enter a username.");
        if (typeof x == "string") {
          if (formatUsername(x).length >= 3) {
            getKeyValue("taken-" + formatUsername(x + " "), function (re) {
              if (re == true) {
                prompt("Error: This username is taken.");
              } else if (censor(formatUsername(x)).includes("*")) {
                prompt("Error: This username contains inappropriate content and cannot be used.");
              } else {
                setKeyValue("name-" + encodeURIComponent(getUserId()), formatUsername(x + " "), function () {
                  user = x;
                });
                setKeyValue("taken-" + formatUsername(x + " "), true);
              }
            });
          } else {
            prompt("Error: This username doesn't meet the length requirements.");
          }
        } else {
          user = "";
        }
      } else {
        prompt("You have " + coins.toLocaleString() + " " + (coins == 1 ? "coin" : "coins") + ". You earn coins for chatting and you can spend them in the Theme Shop to get themes.");
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 45 && World.mouseX <= 395 && World.mouseY <= 65 && (rank == "Admin" || rank == "Owner") && Screen == "Home" && !showOnline) {
      setKeyValue("msg-" + formatUsername(room + " "), [{
        uid: encodeURIComponent("Server"),
        user: "Server",
        time: getTime(),
        msg: "Chat cleared by @" + user + "."
      }]);
    }
    if (World.mouseX >= 325 && World.mouseY >= 70 && World.mouseX <= 395 && World.mouseY <= 90 && (rank == "Admin" || rank == "Owner") && Screen == "Home" && !showOnline) {
      var b = prompt("Enter a user's User ID to ban them, or enter a banned user's ID to revive them. You can check a user's User ID by clicking on one of their messages. (You can also type \"@first\", \"@last\", and \"@all\".) Banned users:\n" + banned.join("\n"));
      if (b != null) {
        getKeyValue("main-banned", function (rec) {
          if (!Array.isArray(rec)) {
            rec = [];
          }
          if (b == "@first") {
            rec.splice(0, 1);
          } else if (b == "@last") {
            rec.splice(rec.length-1, 1);
          } else if (b == "@all") {
            rec = [];
          } else if (rec.indexOf(b) >= 0) {
            rec.splice(rec.indexOf(b), 1);
          } else {
            rec.push(b);
          }
          setKeyValue("main-banned", rec);
        });
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 95 && World.mouseX <= 395 && World.mouseY <= 115 && (rank == "Admin" || rank == "Owner") && Screen == "Home" && !showOnline) {
      var c = prompt("What do you want to announce?");
      if (c != null) {
        getKeyValue("msg-" + formatUsername(room + " "), function (rec) {
          if (Array.isArray(rec)) {
            rec.push({
              uid: encodeURIComponent("Server"),
              user: "Announcement",
              time: getTime(),
              msg: c
            });
            setKeyValue("msg-" + formatUsername(room + " "), rec);
          } else {
            setKeyValue("msg-" + formatUsername(room + " "), [{
              uid: (encodeURIComponent("Server")),
              user: "Announcement",
              time: getTime(),
              msg: c
            }]);
          }
        });
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 120 && World.mouseX <= 395 && World.mouseY <= 140 && (rank == "Owner") && Screen == "Home" && !showOnline) {
      var ad = prompt("Enter a user's User ID to make them an admin, or enter an admins's ID to un-admin them. You can check a user's User ID by clicking on one of their messages. (You can also type \"@first\", \"@last\", and \"@all\".) Admins:\n" + admins.join("\n"));
      if (ad != null) {
        getKeyValue("main-admins", function (rec) {
          if (!Array.isArray(rec)) {
            rec = [];
          }
          if (ad == "@first") {
            rec.splice(0, 1);
          } else if (ad == "@last") {
            rec.splice(rec.length-1, 1);
          } else if (ad == "@all") {
            rec = [];
          } else if (rec.indexOf(ad) >= 0) {
            rec.splice(rec.indexOf(ad), 1);
          } else {
            rec.push(ad);
          }
          setKeyValue("main-admins", rec);
        });
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 145 && World.mouseX <= 395 && World.mouseY <= 165 && (rank == "Admin" || rank == "Owner") && Screen == "Home" && !showOnline) {
      var eC = prompt("Enter a user's User ID to extend their cooldown to 10 seconds, or enter an affected user's ID to reset their cooldown. You can check a user's User ID by clicking on one of their messages. (You can also type \"@first\", \"@last\", and \"@all\".) Users with extended cooldowns:\n" + extendedCooldown.join("\n"));
      if (eC != null) {
        getKeyValue("main-cooldown", function (rec) {
          if (!Array.isArray(rec)) {
            rec = [];
          }
          if (eC == "@first") {
            rec.splice(0, 1);
          } else if (eC == "@last") {
            rec.splice(rec.length-1, 1);
          } else if (eC == "@all") {
            rec = [];
          } else if (rec.indexOf(eC) >= 0) {
            rec.splice(rec.indexOf(eC), 1);
          } else {
            rec.push(eC);
          }
          setKeyValue("main-cooldown", rec);
        });
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 170 && World.mouseX <= 395 && World.mouseY <= 190 && Screen == "Home" && !showOnline) {
      prompt(("Rules:\n1. Do not report chat\n2. No profanity or spamming except in the room 'spam'\nBreaking any of these rules will result in a ban") + "!", "");
    }
    if (World.mouseX >= 325 && World.mouseY >= 190 && World.mouseX <= 395 && World.mouseY <= 215 && Screen == "Home" && !showOnline) {
      camera.x = 200;
      prompt("My favorite music:", "https://www.youtube.com/playlist?list=PLXvLgObZjWK3-8lYuqCti9oa-jHO6Kp-R")
    }
    if (World.mouseX >= 325 && World.mouseY >= 220 && World.mouseX <= 395 && World.mouseY <= 240 && Screen == "Home" && !showOnline) {
      mobileMode = !mobileMode;
    }
    if (World.mouseX >= 325 && World.mouseY >= 245 && World.mouseX <= 395 && World.mouseY <= 265 && Screen == "Home" && !showOnline) {
      chatCensor = !chatCensor;
    }
    if (World.mouseX >= 325 && World.mouseY >= 270 && World.mouseX <= 395 && World.mouseY <= 290 && Screen == "Home" && !showOnline) {
      Screen = "Shop";
    }
    if (World.mouseX >= 325 && World.mouseY >= 295 && World.mouseX <= 395 && World.mouseY <= 315 && Screen == "Home" && !showOnline) {
      Screen = "Theme";
    }
    if (World.mouseX >= 325 && World.mouseY >= 320 && World.mouseX <= 395 && World.mouseY <= 340 && Screen == "Home" && !showOnline) {
      var cR = prompt("Enter a room name. The name must be 3-24 characters and can include lowercase letters, numbers, underscores, and dashes. Here are some examples:\nhome\nroleplay\n" + user + "s_chat");
      if (typeof cR == "string" && cR.length >= 3) {
        room = formatUsername(cR + " ");
        online = [];
        framesSinceRoomChange = 0;
      }
    }
    if (World.mouseX >= 325 && World.mouseY >= 345 && World.mouseX <= 395 && World.mouseY <= 365 && Screen == "Home" && !showOnline) {
      showOnline = true;
    }
    if (World.mouseX <= 45 && World.mouseY <= 45 && Screen == "Shop") {
      Screen = "Home";
    }
    if (World.mouseX >= 355 && World.mouseY <= 45 && Screen == "Theme") {
      Screen = "Home";
    }
    if (World.mouseY >= 370 && Screen == "Home" && !showOnline) {
      if (mobileMode && getTime() > wait && user != "") {
        input = prompt("Enter your message.");
        if (typeof input == "string" && (banned.indexOf(encodeURIComponent(getUserId())) < 0 || (rank == "Admin" || rank == "Owner"))) {
          if (input.replace(/\s/g, "").length > 0) {
            wait = getTime() + cooldown*1000;
            setTimeout(function () {
              getKeyValue("msg-" + formatUsername(room + " "), function (rec) {
                if (!Array.isArray(rec)) {
                  rec = [];
                }
                rec.push({
                  uid: encodeURIComponent(getUserId()),
                  user: formatUsername(user),
                  time: getTime(),
                  msg: input.substring(0, 50)
                });
                setKeyValue("typing-" + formatUsername(room + " "), "");
                while (rec.length >= 10) {
                  rec.shift();
                }
                if (room == "home") {
                  setKeyValue("coins-" + encodeURIComponent(getUserId()), coins+getCoins());
                }
                input = "";
                setKeyValue("msg-" + formatUsername(room + " "), rec);
              });
            }, 300);
          }
        }
      } else {
        isTyping = true;
      }
    } else {
      isTyping = false;
    }
  }
  getKeyValue("typing-" + formatUsername(room + " "), function (rec) {
    if (rec != user) {
      currentlyTyping = rec;
    }
  });
  if (currentlyTyping != "" && formatUsername(currentlyTyping) != formatUsername(user) && typeof currentlyTyping == "string") {
    fill(s.color);
    textSize(10);
    textAlign(LEFT, BASELINE);
    text(formatUsername(currentlyTyping) + " is typing...", 5, 370);
  }
  if (getTime() < wait) {
    fill(s.theme);
    barX = (wait-getTime())/1000/cooldown*390;
    rect(5, 370, barX, 2, 5);
  }
  if (World.mouseX > 370 && World.mouseY > 370 && Screen == "Home") {
    fill(rgb(21, 22, 23, credits.bgc));
    if (credits.bgc > 0.05) {
      rect(0, 0, 400, 400);
    }
    credits.bgc += (0.9-credits.bgc)/5;
    credits.t -= (credits.t-200)/5;
    spin = 360;
  } else {
    fill(rgb(21, 22, 23, credits.bgc));
    if (credits.bgc > 0.05) {
      rect(0, 0, 400, 400);
      credits.bgc -= (credits.bgc)/5;
    } else {
      credits.bgc = 0;
    }
    credits.t += (400-credits.t)/5;
    spin = 0;
  }
  fill(rgb(220, 220, 220, credits.bgc));
  textAlign(CENTER, CENTER);
  textSize(30-((credits.t-200)/5));
  if (credits.bgc > 0.05) {
    text("Total views: " + views.toLocaleString(), credits.t, credits.t);
  }
  if (showOnline) {
    onlineBox += (250-onlineBox)/5;
  } else {
    onlineBox += (400-onlineBox)/5;
  }
  if (onlineBox <= 399) {
    fill(s.bg);
    rect(onlineBox-5, 0, 10, 400);
    fill(s.input);
    rect(onlineBox, 5, 405-onlineBox, 390, 5);
    fill(s.color);
    textSize(20);
    textAlign(LEFT, TOP);
    text("Online Users", onlineBox+5, 10);
    textAlign(RIGHT, TOP);
    text("โ“ง", onlineBox+145, 10);
    if (camera.mouseX >= 370 && camera.mouseX <= 400 && camera.mouseY >= 5 && camera.mouseY <= 25 && mouseWentDown("left")) {
      showOnline = false;
    }
    textAlign(LEFT, TOP);
    textSize(15);
    var onlineText = "";
    for (var i in online) {
      onlineText += "@" + formatUsername(online[i].name) + "\n";
    }
    text(onlineText, onlineBox+5, 30);
  }
  if (keyDown(BACKSPACE)) {
    backspaceActive++;
    if (backspaceActive >= World.frameRate/2) {
      input = input.substring(0, input.length-1);
      if (input.length == 0) {
        setKeyValue("typing-" + formatUsername(room + " "), "");
      }
    }
  } else {
    backspaceActive = 1;
  }
  fill(s.input);
  ellipse(425, 25, 40, 40);
  fill(s.color);
  textAlign(CENTER, CENTER);
  textSize(15);
  text("Back", 425, 25);
  if (shopThemes.length > 0 && camera.x >= 200) {
    fill(s.color);
    textSize(25);
    textAlign(CENTER, TOP);
    text("Theme Shop", 600, 5);
    textSize(15);
    textAlign(CENTER, CENTER);
    text("Themes change often.\nCollect coins by chatting in the home room.", 600, 370);
    for (var a in shopThemes) {
      var thisTheme = themes[shopThemes[a]];
      if (typeof thisTheme == "object") {
        var yx = 55+(50*a)+(60*a);
        fill(s.input);
        rect(705, yx+45, 60, 25, 5);
        fill(thisTheme.bg);
        rect(440, yx, 325, 50, 5);
        fill(thisTheme.theme);
        rect(760, yx, 5, 50);
        fill(thisTheme.input);
        rect(445, yx+5, 310, 40, 5);
        fill(thisTheme.color);
        textSize(20);
        textAlign(LEFT, TOP);
        text(thisTheme.name, 450, yx+10);
        textSize(12);
        textAlign(LEFT, BASELINE);
        text(thisTheme.desc, 450, yx+40);
        textAlign(LEFT, TOP);
        fill(s.color);
        text(thisTheme.price.toLocaleString() + " " + (thisTheme.price == 1 ? "coin" : "coins"), 440, yx+55);
        fill(s.color);
        textAlign(CENTER, CENTER);
        if (myThemes.indexOf(shopThemes[a]) >= 0) {
          text("Owned", 735, yx+60);
        } else {
          text("Buy", 735, yx+60);
          if (!purchasingTheme) {
            if (mouseWentDown("left") && camera.mouseX >= 705 && camera.mouseX <= 765 && camera.mouseY >= yx+50 && camera.mouseY <= yx+70) {
              if (coins >= thisTheme.price) {
                purchasingTheme = true;
                var _cT = myThemes;
                _cT.push(shopThemes[a]);
                var _cP = thisTheme.price;
                setKeyValue("themes-" + encodeURIComponent(getUserId()), _cT, function () {
                  purchasingTheme = false;
                });
                setKeyValue("coins-" + encodeURIComponent(getUserId()), coins-_cP);
              }
            }
          }
        }
        if (a == 0) {
          fill(thisTheme.theme);
          rect(700, yx, 60, 20);
          rect(700, yx, 65, 25, 5);
          fill(thisTheme.bg);
          textAlign(LEFT, BASELINE);
          textSize(15);
          text("NEW!!", 705, yx+20);
        }
        if (a == shopThemes.length-1) {
          fill(thisTheme.theme);
          rect(650, yx, 110, 20);
          rect(650, yx, 115, 25, 5);
          fill(thisTheme.bg);
          textAlign(LEFT, BASELINE);
          textSize(15);
          text(timeUntil((day+1)*86400000) + "!", 655, yx+20);
        }
      }
    }
  } else {
    textSize(30);
    fill(s.color);
    textAlign(CENTER, CENTER);
    text("", 600, 200);
  }
  fill(s.color);
  textSize(25);
  textAlign(CENTER, TOP);
  text("Select Theme", -200, 5);
  fill(s.input);
  ellipse(-25, 25, 40, 40);
  fill(s.color);
  textAlign(CENTER, CENTER);
  textSize(15);
  text("Back", -25, 25);
  textSize(14);
  textAlign(CENTER, CENTER);
  fill(s.color);
  text("Use the up and down arrow keys to change your theme.", -200, 55);
  fill(s.input);
  rect(-355, 165, 315, 40, 5);
  textSize(20);
  textAlign(LEFT, TOP);
  fill(s.color);
  text(s.name, -350, 170);
  textAlign(LEFT, BASELINE);
  textSize(12);
  text(s.desc, -350, 200);
  fill(s.theme);
  rect(-45, 165, 5, 40);
  textAlign(LEFT, TOP);
  fill(s.color);
  text("Theme " + (myThemes.indexOf(currentTheme) + 1) + "/" + myThemes.length, -355, 210);
  if (ignoreTheme) {
    textAlign(RIGHT, TOP);
    text("Saving...", -40, 210);
  }
  textSize(12);
  textAlign(CENTER, TOP);
  text("Theme Collection", -200, 250);
  textSize(30);
  text(Math.floor((myThemes.length/Object.keys(themes).length)*100) + "%", -200, 270);
  if (keyWentDown("up") && !ignoreTheme && Screen == "Theme") {
    if (myThemes.indexOf(currentTheme) > 0) {
      currentTheme = myThemes[myThemes.indexOf(currentTheme) - 1];
      ignoreTheme = true;
      setKeyValue("theme-" + encodeURIComponent(getUserId()), currentTheme, function () {
        ignoreTheme = false;
      });
    }
  }
  if (keyWentDown("down") && !ignoreTheme && Screen == "Theme") {
    if (myThemes.indexOf(currentTheme) < myThemes.length-1) {
      currentTheme = myThemes[(myThemes.indexOf(currentTheme) + 1)];
      ignoreTheme = true;
      setKeyValue("theme-" + encodeURIComponent(getUserId()), currentTheme, function () {
        ignoreTheme = false;
      });
    }
  }
  drawSprites();
  if (getTime() - lastUpdated >= 60000) {
    fill(s.bg);
    rect(70, 0, 260, 160, 5);
    fill(s.input);
    rect(80, 10, 240, 140, 5);
    fill(s.color);
    textAlign(LEFT, TOP);
    textSize(15);
    text("You might have been disconnected. If this doesn't disappear, try reloading.\n\nLast updated: " + formatTime(lastUpdated), 85, 15, 240);
  }
  textAlign(LEFT, TOP);
  if (framesSinceRoomChange < 30) {
    fill(s.bg);
    rect(0, 0, 155, 25, 5);
    fill(s.input);
    rect(0, 0, 150, 20, 5);
    fill(s.color);
    textSize(15);
    text(room, 5, 5);
  } else if (framesSinceRoomChange < 40) {
    fill(s.bg);
    rect(0, 0, 155, 25-((framesSinceRoomChange-30)*2), 5);
    fill(s.input);
    rect(0, 0, 150, 20-((framesSinceRoomChange-30)*2), 5);
    fill(s.color);
    textSize(15);
    text(room, 5, 5-((framesSinceRoomChange-30)*2));
  }
  framesSinceRoomChange++;
  day = Math.floor(getTime()/86400000);
  shopThemes = [shopCycle[day%shopCycle.length], shopCycle[(day-1)%shopCycle.length], shopCycle[(day-2)%shopCycle.length]];
}
var credits = {
  bgc: 0,
  t: 315
};
var barX = (wait-getTime())/cooldown*400;
setInterval(function () {
  if (isTyping && keepCursor && !mobileMode) {
    showCursor = !showCursor;
  } else {
    showCursor = true;
    if (keepCursor) {
      keepCursor = false;
    }
  }
}, 500);
function censor(input) {
  input = input.replace(/motherfuck/gi, "**********");
  input = input.replace(/fuck/gi, "****");
  input = input.replace(/fuk/gi, "***");
  input = input.replace(/shit/gi, "****");
  input = input.replace(/bitch/gi, "*****");
  input = input.replace(/bich/gi, "****");
  input = input.replace(/cunt/gi, "****");
  input = input.replace(/dick/gi, "****");
  input = input.replace(/pussy/gi, "*****");
  input = input.replace(/nigga/gi, "*****");
  input = input.replace(/nigger/gi, "******");
  input = input.replace(/\bkkk\b/gi, "***");
  input = input.replace(/piss/gi, "****");
  input = input.replace(/vagina/gi, "******");
  input = input.replace(/penis/gi, "*****");
  input = input.replace(/pussies/gi, "*******");
  input = input.replace(/titties/gi, "*******");
  input = input.replace(/titty/gi, "*****");
  input = input.replace(/cock/gi, "****");
  input = input.replace(/hitler/gi, "******");
  input = input.replace(/asshole/gi, "*******");
  input = input.replace(/dumbass/gi, "*******");
  input = input.replace(/\bcum\b/gi, "***");
  input = input.replace(/wtf/gi, "***");
  input = input.replace(/fuc/gi, "***");
  input = input.replace(/\btf\b/gi, "**");
  input = input.replace(/balls/gi, "*****");
  input = input.replace(/horny/gi, "***");
  input = input.replace(/boobs/gi, "****");
  input = input.replace(/dookie/gi, "******");
  input = input.replace(/deepthroat/gi, "**********");

  return input;
}
function emojify(input) {
  input = input.replace(/:skull:/g, "๐Ÿ’€");
  input = input.replace(/:coffee:/g, "โ˜•");
  input = input.replace(/:happy:/g, "๐Ÿ˜€");
  input = input.replace(/:big_smile:/g, "๐Ÿ˜ƒ");
  input = input.replace(/:smile:/g, "๐Ÿ™‚");
  input = input.replace(/:angry:/g, "๐Ÿ˜ ");
  input = input.replace(/:cheeks:/g, "๐Ÿ‘");
  input = input.replace(/:yell:/g, "๐Ÿ˜ก");
  input = input.replace(/:swear:/g, "๐Ÿคฌ");
  input = input.replace(/:loud_cry:/g, "๐Ÿ˜ญ");
  input = input.replace(/:happy_tear:/g, "๐Ÿฅฒ");
  input = input.replace(/:tongue:/g, "๐Ÿ˜›");
  input = input.replace(/:wink:/g, "๐Ÿ˜‰");
  input = input.replace(/:smooch:/g, "๐Ÿ˜—");
  input = input.replace(/:laugh_loud:/g, "๐Ÿ˜‚");
  input = input.replace(/:shy:/g, "๐Ÿ˜ณ");
  input = input.replace(/:surprised:/g, "๐Ÿ˜ฎ");
  input = input.replace(/:cry:/g, "๐Ÿ˜ข");
  input = input.replace(/:cool:/g, "๐Ÿ˜Ž");
  input = input.replace(/:eyeroll:/g, "๐Ÿ™„");
  input = input.replace(/:heart_eyes:/g, "๐Ÿ˜");
  input = input.replace(/:heart:/g, "โค");
  input = input.replace(/:red_heart:/g, "โค");
  input = input.replace(/:orange_heart:/g, "๐Ÿงก");
  input = input.replace(/:yellow_heart:/g, "๐Ÿ’›");
  input = input.replace(/:green_heart:/g, "๐Ÿ’š");
  input = input.replace(/:blue_heart:/g, "๐Ÿ’™");
  input = input.replace(/:purple_heart:/g, "๐Ÿ’œ");
  input = input.replace(/:heartbroken:/g, "๐Ÿ’”");
  input = input.replace(/:iced:/g, "๐Ÿฅถ");
  input = input.replace(/:devil:/g, "๐Ÿ˜ˆ");
  input = input.replace(/:speechless:/g, "๐Ÿ˜ฐ");
  input = input.replace(/:bruh:/g, "๐Ÿ˜‘");
  input = input.replace(/:scream:/g, "๐Ÿ˜ฑ");
  input = input.replace(/:swat:/g, "๐Ÿ˜…");
  input = input.replace(/:sick:/g, "๐Ÿคข");
  input = input.replace(/:upside_down:/g, "๐Ÿ™ƒ");
  input = input.replace(/:money:/g, "๐Ÿค‘");
  input = input.replace(/:moan:/g, "๐Ÿ˜ฉ");
  input = input.replace(/:nerd:/g, "๐Ÿค“");
  input = input.replace(/:worried:/g, "๐Ÿ˜“");
  input = input.replace(/:burger:/g, "๐Ÿ”");
  input = input.replace(/:ok:/g, "๐Ÿ‘Œ");
  input = input.replace(/:thumbs_up:/g, "๐Ÿ‘");
  input = input.replace(/:thumbs_down:/g, "๐Ÿ‘Ž");
  input = input.replace(/:peace:/g, "โœŒ");
  input = input.replace(/:nails:/g, "๐Ÿ’…");
  input = input.replace(/:eyes:/g, "๐Ÿ‘€");
  input = input.replace(/:eye:/g, "๐Ÿ‘");
  input = input.replace(/:mouth:/g, "๐Ÿ‘„");
  input = input.replace(/:box:/g, "โฌ›");
  input = input.replace(/:cat:/g, "๐Ÿฑ");
  input = input.replace(/:toxic:/g, "โ˜ฃ");
  input = input.replace(/:kneeling:/g, "๐ŸงŽ");
  input = input.replace(/:vs:/g, "๐Ÿ†š");
  input = input.replace(/:hole:/g, "๐Ÿ•ณ");
  input = input.replace(/:blood_type_a:/g, "๐Ÿ…ฐ");
  input = input.replace(/:blood_type_b:/g, "๐Ÿ…ฑ");
  input = input.replace(/:blood_type_ab:/g, "๐Ÿ†Ž");
  input = input.replace(/:blood_type_o:/g, "๐Ÿ…พ");
  input = input.replace(/:orange:/g, "๐ŸŠ");
  input = input.replace(/:poop:/g, "๐Ÿ’ฉ");
  input = input.replace(/:pride_flag:/g, "๐Ÿณโ€๐ŸŒˆ");
  input = input.replace(/:aries:/g, "โ™ˆ");
  input = input.replace(/:taurus:/g, "โ™‰");
  input = input.replace(/:gemini:/g, "โ™Š");
  input = input.replace(/:cancer:/g, "โ™‹");
  input = input.replace(/:leo:/g, "โ™Œ");
  input = input.replace(/:virgo:/g, "โ™");
  input = input.replace(/:libra:/g, "โ™Ž");
  input = input.replace(/:scorpio:/g, "โ™");
  input = input.replace(/:sagittarius:/g, "โ™");
  input = input.replace(/:capricorn:/g, "โ™‘");
  input = input.replace(/:aquarius:/g, "โ™’");
  input = input.replace(/:pisces:/g, "โ™“");
  return input;
}
function keyTyped() {
  if (encodeURIComponent(key) != "%0D") {
    if (isTyping && !mobileMode && key.length == 1) {
      input += key;
    }
    showCursor = true;
    keepCursor = true;
    input = emojify(input);
    input = input.substring(0, 50);
    if (input.length >= 1) {
      if (getTime() - typeTimeout > 300) {
        setKeyValue("typing-" + formatUsername(room + " "), formatUsername(user));
        typeTimeout = getTime();
      }
    } else {
      setKeyValue("typing-" + formatUsername(room + " "), "");
    }
  } else if (isTyping && !mobileMode) {
    if (user != "") {
      if (input.replace(/\s/g, "") != "" && getTime() > wait) {
        if (banned.indexOf(encodeURIComponent(getUserId())) < 0 || (rank == "Administer" || rank == "Owner")) {
          getKeyValue("msg-" + formatUsername(room + " "), function (rec) {
            if (!Array.isArray(rec)) {
              rec = [];
            }
            wait = getTime() + cooldown*1000;
            rec.push({
              uid: encodeURIComponent(getUserId()),
              user: formatUsername(user),
              time: getTime(),
              msg: input.substring(0, 50)
            });
            setKeyValue("typing-" + formatUsername(room + " "), "");
            while (rec.length >= 10) {
              rec.shift();
            }
            if (room == "home") {
              setKeyValue("coins-" + encodeURIComponent(getUserId()), coins+getCoins(input));
            }
            input = "";
            setKeyValue("msg-" + formatUsername(room + " "), rec);
          });
        } else {
          prompt("Your account was banned.");
        }
      }
    } else {
      prompt("You are currently in Guest Mode. Click \"Sign Up\" to choose a username.");
    }
  }
  if (getUserId() == "Server") {
    prompt("No.");
  }
}
function keyPressed() {
  if (keyCode == BACKSPACE && isTyping) {
    input = input.substring(0, input.length-1);
    if (input.length == 0) {
      setKeyValue("typing-" + formatUsername(room + " "), "");
    }
  }
}
function formatUsername(i) {
  var bypass = ["Server", "Announcement"];
  if (bypass.indexOf(i) >= 0) {
    return i;
  } else if (typeof i == "string") {
    return i.toLowerCase().substring(0,24).replace(/[^a-z0-9\_\-]/g, "");
  } else {
    return "Invalid Name";
  }
}
function formatTime(time) {
  var d = new Date();
  var e = new Date(time);
  var dow = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"];
  var mo = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
  if (d.getTime()-time >= -60000 && d.getTime()-time <= 60000) {
    return "now";
  } else if (d.getTime()-time <= 3600000) {
    if (Math.floor((d.getTime()-time)/60000) == 1) {
      return Math.floor((d.getTime()-time)/60000) + " min";
    } else {
      return Math.floor((d.getTime()-time)/60000) + " mins";
    }
  } else if (d.getTime()-time <= 14400000) {
    if (Math.floor((d.getTime()-time)/3600000) == 1) {
      return Math.floor((d.getTime()-time)/3600000) + " hr";
    } else {
      return Math.floor((d.getTime()-time)/3600000) + " hrs";
    }
  } else if (d.getMonth() + "" + d.getDate() + d.getFullYear() == e.getMonth() + "" + e.getDate() + e.getFullYear()) {
    if (e.getHours() == 0) {
      if (e.getMinutes() < 10) {
        return "12:0" + e.getMinutes() + " AM";
      } else {
        return "12:" + e.getMinutes() + " AM";
      }
    } else if (e.getHours() == 12) {
      if (e.getMinutes() < 10) {
        return "12:0" + e.getMinutes() + " PM";
      } else {
        return "12:" + e.getMinutes() + " PM";
      }
    } else if (e.getHours() > 12) {
      if (e.getMinutes() < 10) {
        return (e.getHours()-12) + ":0" + e.getMinutes() + " PM";
      } else {
        return (e.getHours()-12) + ":" + e.getMinutes() + " PM";
      }
    } else {
      if (e.getMinutes() < 10) {
        return e.getHours() + ":0" + e.getMinutes() + " AM";
      } else {
        return e.getHours() + ":" + e.getMinutes() + " AM";
      }
    }
  } else if (d.getTime()-time <= 604800000) {
    if (e.getHours() == 0) {
      if (e.getMinutes() < 10) {
        return dow[e.getDay()] + ", 12:0" + e.getMinutes() + " AM";
      } else {
        return dow[e.getDay()] + ", 12:" + e.getMinutes() + " AM";
      }
    } else if (e.getHours() == 12) {
      if (e.getMinutes() < 10) {
        return dow[e.getDay()] + ", 12:0" + e.getMinutes() + " PM";
      } else {
        return dow[e.getDay()] + ", 12:" + e.getMinutes() + " PM";
      }
    } else if (e.getHours() > 12) {
      if (e.getMinutes() < 10) {
        return dow[e.getDay()] + ", " + (e.getHours()-12) + ":0" + e.getMinutes() + " PM";
      } else {
        return dow[e.getDay()] + ", " + (e.getHours()-12) + ":" + e.getMinutes() + " PM";
      }
    } else {
      if (e.getMinutes() < 10) {
        return dow[e.getDay()] + ", " + e.getHours() + ":0" + e.getMinutes() + " AM";
      } else {
        return dow[e.getDay()] + ", " + e.getHours() + ":" + e.getMinutes() + " AM";
      }
    }
  } else if (d.getFullYear() == e.getFullYear()) {
    if (e.getHours() == 0) {
      if (e.getMinutes() < 10) {
        return mo[e.getMonth()] + " " + e.getDate() + ", 12:0" + e.getMinutes() + " AM";
      } else {
        return mo[e.getMonth()] + " " + e.getDate() + ", 12:" + e.getMinutes() + " AM";
      }
    } else if (e.getHours() == 12) {
      if (e.getMinutes() < 10) {
        return mo[e.getMonth()] + " " + e.getDate() + ", 12:0" + e.getMinutes() + " PM";
      } else {
        return mo[e.getMonth()] + " " + e.getDate() + ", 12:" + e.getMinutes() + " PM";
      }
    } else if (e.getHours() > 12) {
      if (e.getMinutes() < 10) {
        return mo[e.getMonth()] + " " + e.getDate() + ", " + (e.getHours()-12) + ":0" + e.getMinutes() + " PM";
      } else {
        return mo[e.getMonth()] + " " + e.getDate() + ", " + (e.getHours()-12) + ":" + e.getMinutes() + " PM";
      }
    } else {
      if (e.getMinutes() < 10) {
        return mo[e.getMonth()] + " " + e.getDate() + ", " + e.getHours() + ":0" + e.getMinutes() + " AM";
      } else {
        return mo[e.getMonth()] + " " + e.getDate() + ", " + e.getHours() + ":" + e.getMinutes() + " AM";
      }
    }
  } else {
    return parseInt(e.getMonth() + 1, 10) + "/" + e.getDate() + "/" + e.getFullYear();
  }
}
function logUsername(id) {
  getKeyValue("name-" + id, function (v) {
    console.log(v);
  });
}
function logThemes(id) {
  getKeyValue("themes-" + id, function (v) {
    console.log(v);
  });
}
function logCoins(id) {
  getKeyValue("coins-" + id, function (v) {
    console.log(v);
  });
}
function getCoins() {
  return 1;
}
function generateCycle() {
  var a = Object.keys(themes);
  a.splice(0, 1);
  var b = Object.keys(themes);
  for (var i in a) {
    b.push(a[i]);
  }
  var c = [];
  var d = b.length;
  for (var i = 0; i < d; i++) {
    var e = randomNumber(0, b.length-1);
    c.push(b[e]);
    b.splice(e, 1);
  }
  return c;
}
function timeUntil(input) {
  var timeLeft = input-getTime();
  if (timeLeft > 86400000) {
    return "Days left: " + Math.floor(timeLeft/86400000);
  }
  if (timeLeft > 3600000) {
    return "Hours left: " + Math.floor(timeLeft/3600000);
  }
  if (timeLeft > 60000) {
    return "Minutes left: " + Math.floor(timeLeft/60000);
  }
  return "Seconds left: " + Math.floor(timeLeft/1000);
}
if (window.getURLPath()[3] == "view" || window.getURL().indexOf("//edit") >= 0) {
  while (true) {
    prompt("No.");
  }
}
if (window.getURL().includes("?room=")) {
  var cR = window.getURL().substring(window.getURL().indexOf("?room=")+6, window.getURL().length);
  console.log(cR);
  if (cR.length >= 3) {
    room = formatUsername(cR + " ");
    online = [];
    framesSinceRoomChange = 0;
  }
}

 
Leave a Comment