New chat stuff (emoji, timestamps, etc)

This commit is contained in:
Vortrex
2022-07-17 04:23:32 -05:00
parent 8ca7a8bdfd
commit 25543b5f07
9 changed files with 123 additions and 65 deletions

View File

@@ -11,7 +11,6 @@
// ===========================================================================
let chatTimeStampsEnabled = false;
let chatProfanityFilterEnabled = false;
let chatEmojiEnabled = false;
let chatBoxHistory = [];
@@ -53,15 +52,19 @@ function unBindChatBoxKeys() {
// ===========================================================================
function receiveChatBoxMessageFromServer(messageString, colour) {
function receiveChatBoxMessageFromServer(messageString, colour, hour, minute, second) {
logToConsole(LOG_DEBUG, `[VRR.Chat]: Received chatbox message from server: ${messageString}`);
// Just in case it's hidden by auto hide
//setChatWindowEnabled(true);
let timeStamp = findResourceByName("agrp_time").exports.getCurrentUnixTimeStampSquirrel();
//let timeStamp = findResourceByName("agrp_time").exports.getCurrentUnixTimeStampSquirrel();
addToChatBoxHistory(messageString, colour, timeStamp);
hour = fillLeadingZeros(hour, 2);
minute = fillLeadingZeros(minute, 2);
second = fillLeadingZeros(second, 2);
addToChatBoxHistory(messageString, colour, hour, minute, second);
//let unixTimeStampMS = new Date().getTime();
//let timeStampDate = new Date(unixTimeStampMS);
@@ -69,23 +72,26 @@ function receiveChatBoxMessageFromServer(messageString, colour) {
//let timeStampText = `${timeStampDate.getHours()}:${timeStampDate.getMinutes()}:${timeStampDate.getSeconds()}`;
let outputString = messageString;
//let timeStampString = "";
//if (chatTimeStampsEnabled == true) {
// timeStampString = `{TIMESTAMPCOLOUR}[${findResourceByName("agrp_time").exports.getTimeStampOutput(timeStamp)}]{MAINCOLOUR}`;
//}
if (chatTimeStampsEnabled == true) {
//timeStampString = `{TIMESTAMPCOLOUR}[${findResourceByName("agrp_time").exports.getTimeStampOutput(timeStamp)}]{MAINCOLOUR}`;
let timeStampString = `{TIMESTAMPCOLOUR}[${hour}:${minute}:${second}] `;
outputString = `${timeStampString}${messageString}`;
}
logToConsole(LOG_DEBUG, `[VRR.Chat]: Changed colours in string: ${outputString}`);
let colouredString = replaceColoursInMessage(`${timeStampString}${outputString}`);
outputString = replaceColoursInMessage(`${outputString}`);
if (chatEmojiEnabled == true) {
colouredString = replaceEmojiInMessage(colouredString);
logToConsole(LOG_DEBUG, `[VRR.Chat]: Enabled emoji in string: ${outputString}`);
outputString = replaceEmojiInMessage(outputString);
}
if (chatProfanityFilterEnabled == true) {
colouredString = replaceProfanityInMessage(colouredString);
if (profanityFilterEnabled == true) {
logToConsole(LOG_DEBUG, `[VRR.Chat]: Removed profanity in string: ${outputString}`);
outputString = replaceProfanityInMessage(outputString);
}
message(colouredString, colour);
message(outputString, colour);
bottomMessageIndex = chatBoxHistory.length - 1;
chatLastUse = getCurrentUnixTimestamp();
@@ -106,8 +112,8 @@ function setChatTimeStampsState(state) {
// ===========================================================================
function setChatProfanityFilterState(state) {
chatProfanityFilterEnabled = state;
function setChatEmojiState(state) {
chatEmojiEnabled = state;
updateChatBox();
}
@@ -119,8 +125,8 @@ function setChatAutoHideDelay(delay) {
// ===========================================================================
function addToChatBoxHistory(messageString, colour, timeStamp) {
chatBoxHistory.push([messageString, colour, timeStamp]);
function addToChatBoxHistory(messageString, colour, hour, minute, second) {
chatBoxHistory.push([messageString, colour, hour, minute, second]);
}
// ===========================================================================
@@ -159,12 +165,22 @@ function updateChatBox() {
if (chatTimeStampsEnabled == true) {
//let timeStampDate = new Date(chatBoxHistory[i][2]);
//let timeStampText = `${timeStampDate.getHours()}:${timeStampDate.getMinutes()}:${timeStampDate.getSeconds()}`;
let timeStampText = findResourceByName("agrp_time").exports.getTimeStampOutput(chatBoxHistory[i][2]);
//let timeStampText = findResourceByName("agrp_time").exports.getTimeStampOutput(chatBoxHistory[i][2]);
let timeStampText = `${chatBoxHistory[i][2]}:${chatBoxHistory[i][3]}:${chatBoxHistory[i][4]}`;
outputString = `{TIMESTAMPCOLOUR}[${timeStampText}]{MAINCOLOUR} ${chatBoxHistory[i][0]}`;
}
outputString = replaceColoursInMessage(outputString);
if (chatEmojiEnabled == true) {
outputString = replaceEmojiInMessage(outputString);
}
if (profanityFilterEnabled == true) {
outputString = replaceProfanityInMessage(outputString);
}
message(outputString, chatBoxHistory[i][1]);
} else {
message("", COLOUR_WHITE);

View File

@@ -79,6 +79,8 @@ let guiDownKey = false;
// Pre-cache all allowed skins
let allowedSkins = getAllowedSkins(getGame());
let profanityFilterEnabled = false;
let localLocaleId = 0;
let serverData = {

View File

@@ -24,7 +24,7 @@ function addAllNetworkHandlers() {
addNetworkEventHandler("agrp.chatScrollLines", setChatScrollLines);
addNetworkEventHandler("agrp.chatAutoHideDelay", setChatAutoHideDelay);
addNetworkEventHandler("agrp.chatTimeStamps", setChatTimeStampsState);
addNetworkEventHandler("agrp.chatProfanityFilter", setChatProfanityFilterState);
addNetworkEventHandler("agrp.chatEmoji", setChatEmojiState);
// Messaging (like textdraws and stuff)
addNetworkEventHandler("agrp.smallGameMessage", showSmallGameMessage);
@@ -154,6 +154,7 @@ function addAllNetworkHandlers() {
addNetworkEventHandler("agrp.elementCollisions", setElementCollisionsEnabled);
addNetworkEventHandler("agrp.vehBuyState", setVehiclePurchaseState);
addNetworkEventHandler("agrp.holdObject", makePedHoldObject);
addNetworkEventHandler("agrp.profanityFilter", setProfanityFilterState);
}
// ===========================================================================

View File

@@ -616,4 +616,11 @@ function getServerData() {
return serverData;
}
// ===========================================================================
function setProfanityFilterState(state) {
profanityFilterEnabled = state;
updateChatBox();
}
// ===========================================================================