[Realm Relay] Mailbox + Chat timestamp
Info:
/!\ Put your name on line 9 /!\
Stored messages will be cleared each time you change realm, so this script is useful only for people who tend to be sometimes afk
Usage:
-Toggle the timestamp for the chat ( Disabled by default )
/timestamp
- Show the mailbox
/mail
- Clear the mailbox
/mail clear
Screen:

Code:
/!\ Put your name on line 9 /!\
Stored messages will be cleared each time you change realm, so this script is useful only for people who tend to be sometimes afk
Usage:
-Toggle the timestamp for the chat ( Disabled by default )
/timestamp
- Show the mailbox
- Clear the mailbox
/mail clear
Screen:

Code:
Code:
// Put your name on line 9
var ID_NOTIFICATION = $.findPacketId("NOTIFICATION");
var ID_PLAYER_TEXT = $.findPacketId("PLAYERTEXT");
var ID_TEXT = $.findPacketId("TEXT");
var ID_CREATE_SUCCESS = $.findPacketId("CREATE_SUCCESS");
var ID_MOVE = $.findPacketId("MOVE");
var me = "Put Your Name Here";
var name = "";
var chatMsg = "";
var privateMessages = new Array();
var chatTemp = "";
var player_id = -1;
var toggleTimestamp = false;
function onServerPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_CREATE_SUCCESS:
{
player_id = packet.objectId;
break;
}
case ID_TEXT:
{
var today = new Date();
var h = today.getHours().toString();
var m = today.getMinutes().toString();
var s = today.getSeconds().toString();
var timeStamp = "";
var playerName = packet.name;
var chat = packet.text;
timeStamp = "[" + h + ":" + m + ":" + s + "]";
if (packet.numStars >= 0 && toggleTimestamp == true) {
packet.text = timeStamp +" "+ chat;
}
if (packet.recipient == me) {
this.displayNotification(event, player_id, 0x33b5e5, "<" + playerName + ">" + packet.text);
privateMessages.push("<" + packet.name + ">" + packet.text);
}
//Bonus :3
if (packet.name == "Bandit Leader")break;
if (packet.name == "Rock Construct")break;
}
}
}
function onClientPacket(event) {
var packet = event.getPacket();
switch (packet.id()) {
case ID_PLAYER_TEXT:
{
var text = packet.text;
if (text == "/mail") {
event.cancel();
var count = privateMessages.length;
if (count == 0) displayChatNotif(event, "Mailbox", "You have 0 new mail.");
if (count >= 1) {
displayChatNotif(event, "Mailbox", "You have " + count + " new mail.");
for (var j = 0; j <= count; j++) {
displayChatNotif(event, "Mailbox", privateMessages[j].toString());
}
}
}
if (text == "/mail clear") {
event.cancel();
privateMessages.length = 0;
displayChatNotif(event, "Mailbox", "Mailbox is now empty.");
}
if (text == "/timestamp") {
event.cancel();
toggleTimestamp = !toggleTimestamp;
}
break;
}
}
}
function displayNotification(event, playerObjectId, color, text) {
var notificationPacket = event.createPacket(ID_NOTIFICATION);
notificationPacket.objectId = playerObjectId;
notificationPacket.message = "{\"key\":\"blank\",\"tokens\":{\"data\":\"" + text + "\"}}";
notificationPacket.color = color;
event.sendToClient(notificationPacket);
}
function displayChatNotif(event, name, text) {
var chatNotifPacket = event.createPacket(ID_TEXT);
chatNotifPacket.name = name;
chatNotifPacket.objectId = -1;
chatNotifPacket.numStars = -1;
chatNotifPacket.bubbleTime = 0;
chatNotifPacket.recipient = "";
chatNotifPacket.text = text;
chatNotifPacket.cleanText = "";
event.sendToClient(chatNotifPacket);
}

