USAGE: /spam1 message here Example: /spam1 Selling 1 life pot! // It is even possible to spam a command! Example: /spam1 /trade Bluenoser
Usage: /spam2 message here Example: /spam2 Selling energy staff for 5 UBHPs! // You can also use commands on /spam 2 as well. Example: /spam2 /trade T
Usage: /sbot Example: /sbot
Usage: /spamspd seconds Example: /spamspd 1
// spambot.js
// made by muchacho
$.echo('spambot.js loaded');
var ID_CREATE_SUCCESS = $.findPacketId('CREATE_SUCCESS');
var ID_NOTIFICATION = $.findPacketId('NOTIFICATION');
var ID_PLAYER_TEXT = $.findPacketId('PLAYERTEXT');
var ID_TEXT = $.findPacketId('TEXT');
var ID_UPDATE = $.findPacketId('UPDATE');
var enabled = false;
var playername = "";
var clientTime = 0;
var nextSpam = 0;
if (getter('spamdelay') == null) setter('spamdelay', 1000);
var currentmsg = true; // true = msg1 || false = msg2
function onClientPacket(event) {
var packet = event.getPacket();
if (packet.time != null) clientTime = packet.time;
if (clientTime >= nextSpam && enabled) playerSpam(event);
switch (packet.id()) {
case ID_PLAYER_TEXT: {
var text = packet.text;
var textLower = packet.text.toLowerCase();
if (textLower.substring(0,1) == '/') { // if text is a command
var commandSplit = textLower.split(' ');
var command = commandSplit[0].trim().slice(1);
switch(command) {
case 'sbot': {
event.cancel();
switch (enabled) {
case true: {
displaySpamNotification(event, 'Spambot Disabled.');
toggleSpam();
break;
}
case false: {
if (getter('msg1') != null && getter('msg2') != null) {
displaySpamNotification(event, 'Spambot Enabled.');
toggleSpam();
} else {
errorAlert(event, 'Messages not set.');
}
break;
}
}
break;
}
case 'spam1': {
event.cancel();
if (text.trim().length() <= 7) {
errorAlert(event, 'Enter a message!');
break;
}
var msg1content = text.slice(7);
if (msg1content.indexOf('"') >= 0) {
errorAlert(event, 'You cannot use double quotes!');
} else {
setter('msg1', msg1content);
displaySpamNotification(event, 'Message 1 set.');
}
break;
}
case 'spam2': {
event.cancel();
if (text.trim().length() <= 7) {
errorAlert(event, 'Enter a message!');
break;
}
var msg2content = text.substring(7, text.length());
if (msg2content.indexOf('"') >= 0) {
errorAlert(event, 'You cannot use double quotes!');
} else {
setter('msg2', msg2content);
displaySpamNotification(event, 'Message 2 set.');
}
break;
}
case 'spamspd': {
event.cancel();
if (text.trim().length() <= 9) {
errorAlert(event, 'Enter a value!');
break;
}
var spamspd = text.substring(9, text.length());
switch(isNaN(spamspd)) {
case true: {
errorAlert(event, 'That is not a number!');
break;
}
case false: {
if (spamspd % 1 != 0) {
errorAlert(event, 'Please choose an integer.');
} else if (spamspd < 0) {
errorAlert(event, 'Please choose a positive number.');
} else {
spamspd = spamspd * 1000;
setter('spamdelay', spamspd);
displaySpamNotification(event, 'Spam speed set.');
}
break;
}
}
break;
}
}
}
break;
}
}
}
function onServerPacket(event) {
var packet = event.getPacket();
if (packet.time != null) clientTime = packet.time;
if (clientTime >= nextSpam && enabled) playerSpam(event);
switch (packet.id()) {
case ID_CREATE_SUCCESS: {
playerObjectId = packet.objectId;
break;
}
case ID_UPDATE: {
for (var i in packet.newObjs)
if (packet.newObjs[i].status.objectId == playerObjectId)
for (var j in packet.newObjs[i].status.data)
if (packet.newObjs[i].status.data[j].obf0 == 31)
if (playername != null) playername = packet.newObjs[i].status.data[j].obf2;
break;
}
}
}
function getter(globalName) {
return $.getGlobal(globalName);
}
function setter(globalName, data) {
$.setGlobal(globalName, data);
}
function displaySpamNotification(event, content) {
var notificationPacket = event.createPacket(ID_NOTIFICATION);
notificationPacket.objectId = playerObjectId;
notificationPacket.message = '{"key":"blank","tokens":{"data":"' + content + '"}}';
notificationPacke*****lor = 0x00B000;
event.sendToClient(notificationPacket);
}
function playerSpam(event) {
var spamPacket = event.createPacket(ID_PLAYER_TEXT);
if (currentmsg) spamPacket.text = getter('msg1');
else spamPacket.text = getter('msg2');
toggleMsg();
nextSpam = clientTime + parseInt(getter('spamdelay'));
event.sendToServer(spamPacket);
}
function errorAlert(event, error) {
var errorPacket = event.createPacket(ID_TEXT);
errorPacket.name = '';
errorPacket.objectId = -1;
errorPacket.numStars = -1;
errorPacket.bubbleTime = 0;
errorPacket.recipient = '';
errorPacket.text = error;
errorPacket.cleanText = error;
event.sendToClient(errorPacket);
}
function toggleSpam() {
enabled = !enabled;
}
function toggleMsg() {
currentmsg = !currentmsg;
}



