diff --git a/mbchc-dev.user.js b/mbchc-dev.user.js
index 366c70a..1a50903 100644
--- a/mbchc-dev.user.js
+++ b/mbchc-dev.user.js
@@ -34,8 +34,9 @@
LAST_HACKED: null,
HISTORY_MODE: false,
RE_TITLE: /^[a-zA-Z]+$/,
- RE_PREF_ACTIVITY_ME: /^@/,
- RE_PREF_ACTIVITY: /^@@/,
+ RE_PREF_ACTIVITY_ME: /^@/,
+ RE_PREF_ACTIVITY_ME_APO: /^@'/,
+ RE_PREF_ACTIVITY: /^@@/,
RE_ACT_CIDS: /^<(\d+)?:(\d+)?>/,
RE_TZ: /(?:GMT|UTC)([+-]\d\d?)/i,
RE_ALL_LEFT: /^<+$/,
@@ -157,6 +158,10 @@
"ItemEars": ["ear", "ears", "earlobe", "earlobes"],
"ItemHead": ["head", "face", "hair", "eyes", "forehead"],
},
+ BCE_TESTER_PATCHES: [
+ [/^\^('s)?( )?/g, "^SourceCharacter$1\\s+"],
+ [/([^\\])\$/g, "$1\\.?$$"],
+ ],
SUBCOMMANDS_MBCHC: {
"versions": {desc: "show the mod versions across the room", cb: mbchc => mbchc.inform(mbchc.gather_versions().map(c => `
${c.name} (${c.cid}): ${c.version}
`).join(""))},
"autohack": {desc: "toggle the autohack feature", cb: mbchc => mbchc.inform(`Autohack is now ${(mbchc.AUTOHACK_ENABLED = !mbchc.AUTOHACK_ENABLED) ? "enabled" : "disabled"}`)},
@@ -343,7 +348,7 @@
let result = {
Type: "Action",
Event: trigger.Event,
- Matchers: trigger.Matchers.map(m => ({Tester: new RegExp(m.Tester.source.replace(this.RE_CARET, "^SourceCharacter\\s+"), "u")}))
+ Matchers: trigger.Matchers.map(m => ({Tester: new RegExp(this.BCE_TESTER_PATCHES.reduce((ax,[f,r]) => ax.replaceAll(f,r), m.Tester.source), "u")}))
}
return(result)
},
@@ -600,6 +605,7 @@
let input = window.ElementValue("InputChat")
if (!input.startsWith("@@@") && input.startsWith("@")) {
input = input.replace(window.MBCHC.RE_PREF_ACTIVITY, window.MBCHC.PREF_ACTIVITY)
+ input = input.replace(window.MBCHC.RE_PREF_ACTIVITY_ME_APO, `${window.MBCHC.PREF_ACTIVITY}<${window.Player.cid}:>SourceCharacter'`)
input = input.replace(window.MBCHC.RE_PREF_ACTIVITY_ME, `${window.MBCHC.PREF_ACTIVITY}<${window.Player.cid}:>SourceCharacter `)
window.ElementValue("InputChat", input)
}