From 41b2029efd1d430c58eeb47cdb9c8171280c1da5 Mon Sep 17 00:00:00 2001 From: Mute Date: Mon, 24 Oct 2022 18:03:26 +0000 Subject: [PATCH] dev.4 chat room handlers instead of a function hook, this fixes communication breakdown --- mbchc-dev.user.js | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/mbchc-dev.user.js b/mbchc-dev.user.js index b11f4e2..675162a 100644 --- a/mbchc-dev.user.js +++ b/mbchc-dev.user.js @@ -1,6 +1,6 @@ // ==UserScript== // @name MBCHC -// @version dev.3 +// @version dev.4 // @description Mute's Bondage Club Hacks Collection // @author codename.mute@proton.me // @namespace https://code.fleshless.org/mute/ @@ -24,7 +24,7 @@ if (!window.AsylumGGTSSAddItems) throw "AsylumGGTSSAddItems() not found, aborting MBCHC loading" if (window.MBCHC) throw "MBCHC found, aborting loading" window.MBCHC = { - VERSION: "dev.3", + VERSION: "dev.4", TARGET_VERSION: "R85", NEXT_MESSAGE: 1, LOG_MESSAGES: false, @@ -314,7 +314,7 @@ }, receive: function(data) { let char = this.cid2char(data.Sender) - if (char.IsPlayer()) return // this is our own message, sent back to us + if (char.IsPlayer()) return true // this is our own message, sent back to us let payload = this.ensure("Empty message", () => data.Dictionary[0]) switch (payload.type) { case "greetings": case "hello": @@ -323,6 +323,7 @@ break default: // if we don't know the type it may be from a newer version } + return true }, hello: function(char = null) { let payload = {type: "greetings", value: window.Player.MBCHC} @@ -594,18 +595,6 @@ window.MBCHC.update_char(nextargs[0]) return(result) }) - window.MBCHC.sdk.hookFunction("ChatRoomMessageInvolvesPlayer", 0, (nextargs, next) => { - let data = nextargs[0] - if (!data.MBCHC_ID) { - data.MBCHC_ID = window.MBCHC.NEXT_MESSAGE - window.MBCHC.NEXT_MESSAGE += 1 - if (window.MBCHC.LOG_MESSAGES) console.debug(data) - if (("ReceiveSuitcaseMoney" === data.Content) && ("Hidden" === data.Type)) { window.MBCHC.LAST_HACKED = data.Sender } - if (("ServerEnter" === data.Content) && ("Action" === data.Type) && (data.Sender === window.Player.cid)) { window.MBCHC.player_enters_room() } - if (("MBCHC" === data.Content) && ("Hidden" === data.Type)) { window.MBCHC.receive(data) } - } - return(next(nextargs)) - }) window.MBCHC.sdk.hookFunction("ChatRoomReceiveSuitcaseMoney", 0, (nextargs, next) => { let result = next(nextargs) if (window.MBCHC.AUTOHACK_ENABLED && window.MBCHC.LAST_HACKED) { @@ -695,6 +684,24 @@ return(next(nextargs)) }) + // Chat room handlers + window.ChatRoomRegisterMessageHandler({ Priority: -220, Description: "MBCHC preprocessor", + Callback: (data, sender, msg, metadata) => { + data.MBCHC_ID = window.MBCHC.NEXT_MESSAGE + window.MBCHC.NEXT_MESSAGE += 1 + if (window.MBCHC.LOG_MESSAGES) console.debug({data, sender, msg, metadata}) + } + }) + window.ChatRoomRegisterMessageHandler({ Priority: -219, Description: "MBCHC room enter hook", + Callback: (data, sender, msg, metadata) => { if (("Action" === data.Type) && ("ServerEnter" === data.Content) && (data.Sender === window.Player.cid)) window.MBCHC.player_enters_room() } + }) + window.ChatRoomRegisterMessageHandler({ Priority: -219, Description: "MBCHC specific consumer", + Callback: (data, sender, msg, metadata) => { if (("Hidden" === data.Type) && ("MBCHC" === data.Content)) return window.MBCHC.receive(data) } + }) + window.ChatRoomRegisterMessageHandler({ Priority: -219, Description: "MBCHC autohack lookup", + Callback: (data, sender, msg, metadata) => { if (("Hidden" === data.Type) && ("ReceiveSuitcaseMoney" === data.Content)) window.MBCHC.LAST_HACKED = data.Sender } + }) + // MAIN SCREEN TURN ON if (window.MBCHC.need_load_hook(window.CurrentModule, window.CurrentScreen)) { window.MBCHC.remove_load_hook = window.MBCHC.sdk.hookFunction("AsylumGGTSSAddItems", 0, (nextargs, next) => {window.MBCHC.loader(); return(next(nextargs))})