Commit Graph

33 Commits

Author SHA1 Message Date
OlegTheSnowman
5b382e370d Bump soundpack version to 6 2026-07-11 01:02:58 +03:00
OlegTheSnowman
e38ab9e463 Fix updator.bat casing bug, swap update-alert sound for a popup
updator.bat's assume-unchanged step compared "cosmic rage\worlds\cosmic
rage\cosmic rage.mcl" against git's actual tracked casing
(worlds\Cosmic Rage\cosmic rage.MCL) - git's index is case-sensitive
even on a case-insensitive filesystem, so `if exist` found the file
fine but `git update-index --assume-unchanged` couldn't match it,
producing the "Could not mark ... as assume-unchanged" warning. Fixed
the casing.

Also replaced the full-volume (100) announcement.ogg alert on an
outdated soundpack with a utils.msgbox popup - it was startling people
with no way to turn it down. Bonus: a native Windows dialog gets read
by screen readers automatically, which is arguably better for
accessibility than an unskippable sound cue anyway.
2026-07-11 01:00:05 +03:00
OlegTheSnowman
d3b58283dd Security/privacy audit: fix broken gitignore, exclude debug logs
Audited the full repo and git history for credentials, command history,
game transcripts, and any other private data:
- No passwords/auto-login fields ever committed in the world file.
- mushclient_prefs.sqlite (the only DB ever committed) contains only
  window-position/UI settings, nothing credential-related.
- No state/*.xml plugin state files, log files, or transcripts were
  ever committed - confirmed via full git history scan, not just the
  current working tree.
- Full-history grep for password/token/secret/key patterns turned up
  nothing but LuaSocket's own bundled example code.

Found and fixed a real bug while auditing: .gitignore's state/ rule was
missing a newline, joining two patterns into one that matched nothing,
so state/*.xml files were untracked by luck (never staged) rather than
actually ignored. Also excluded *.log and SQLite -shm/-wal temp files
going forward, since debug logs can contain snippets of typed game
text. Cleaned up stray gitignore-pattern text that had been pasted into
state/.gitkeep by mistake.
2026-07-11 00:58:22 +03:00
OlegTheSnowman
20320685e2 Sync world file with latest MUSHclient auto-save (keypad/plugin order state) 2026-07-11 00:54:01 +03:00
OlegTheSnowman
ac4a0235e2 Drop the Voice-only gag method from the creation menu
It produced the exact same trigger flags as Full gag (both just set
OmitFromOutput - the "still spoken by screen reader" distinction was
never actually implemented differently), so it was a redundant choice.
Creation now only offers Full gag and Substitute. Kept the "voice"
case in add_trigger_for_gag so any gag already saved with that method
still loads and behaves the same. Updated the readme.
2026-07-11 00:46:56 +03:00
OlegTheSnowman
f7477dc4c3 Remove jump-to-end-on-focus entirely
Two debounce attempts (recent-append recency, then sustained-unfocus
streak) both failed to stop it firing on almost every incoming line
while the toggle was on. Rather than keep chasing GetFocus() polling
noise, removed the whole feature: poll_output_focus, jump_notepad_to_end,
toggle_jump_to_end, the Ctrl+Alt+J accelerator/alias, the polling timer,
the jump_to_end_on_focus variable, and the now-unused GetFocus/
EM_SCROLLCARET Alien bindings. SmartAppendToNotepad (the actual smart-
scroll fix, unrelated to this and confirmed working) is untouched.
Updated the readme to drop the Ctrl+Alt+J entry.
2026-07-11 00:42:54 +03:00
OlegTheSnowman
466be8a544 Fix jump-to-end firing on every line: debounce sustained unfocus, not recency
Debug logging disproved the previous "recent append perturbs GetFocus"
theory - one spurious jump fired 7.67s after the last append. The real
pattern: GetFocus() reports "not focused" for a single poll tick now
and then even while the user never left the window, and that lone blip
was enough for the very next tick to be read as "just switched to the
window," triggering a jump on practically every incoming line.

Now requires 3 consecutive unfocused poll ticks (~0.6s) before the next
focused tick counts as a genuine switch, filtering out single-tick
noise from MUSHclient's own UI thread. Removed the now-unused
last_append_clock tracking from the previous (wrong) fix attempt.
2026-07-11 00:39:44 +03:00
OlegTheSnowman
b95f743bb2 Debounce jump-to-end against append-induced focus perturbation
The tostring() comparison fix wasn't sufficient - jump-to-end was still
firing on nearly every incoming line while jump-to-end-on-focus was on.
AppendToNotepad's own SetSel/ReplaceSel appears to momentarily perturb
GetFocus() around each append, which poll_output_focus was reading as a
genuine "just switched to the window" edge. Now skips the jump if a
SmartAppendToNotepad call happened within the last 0.5s.
2026-07-11 00:33:41 +03:00
OlegTheSnowman
695dd80626 Remove sound playback from numpad toggle
ppi (the sound engine handle) and dir aren't globals in
NumpadMovement.xml's own Lua state - they belong to other plugins -
so toggle_numpad crashed with "attempt to index global 'ppi' (a nil
value)" every time. Dropped the sound calls entirely, kept the spoken
confirmation. Updated the readme to match.
2026-07-11 00:29:02 +03:00
OlegTheSnowman
450fdf0fe2 Fix Accelerator function-call bindings and jump-to-end false triggers
Accelerator(key, text) always sends text as a literal typed command -
it only calls a Lua function if a matching <alias> routes it there
(the pattern GagManager already used correctly). Several bindings
added this session skipped that step and were silently sending
gibberish to the MUD instead of running: Ctrl+S (save_state_func) in
CosmicRage.xml, Ctrl+Alt+J (toggle_jump_to_end) in output_functions.xml,
and Alt+Enter (toggle_numpad) in NumpadMovement.xml. Added the missing
aliases for all three.

Separately, poll_output_focus's jump-to-end was firing repeatedly even
while focus never changed: it compared Alien pointer returns with
"==", which is unreliable for Alien's userdata-wrapped pointers (two
separate calls returning the same real HWND don't reliably compare
equal). Switched to comparing tostring() output instead, which is
address-based. Debug log confirmed SmartAppendToNotepad's own
restore logic was correct throughout - this poll was the sole cause
of the "jumps to end when new text arrives" complaint.
2026-07-11 00:28:07 +03:00
OlegTheSnowman
6b7a71009d Shorten NumpadMovement purpose string to fit MUSHclient's 100-char limit 2026-07-11 00:16:01 +03:00
OlegTheSnowman
5f43e111be Add toggleable numpad movement (Alt+Enter)
Ports the zMUD/CMUD numpad.set convention: plain numpad for normal
movement, Ctrl+numpad for moving up a level in that direction, and
Ctrl+Alt+numpad for moving down a level, all sent as literal MUD
commands via Accelerator. Alt+Enter toggles the whole set on/off (with
a sound + spoken confirmation) by clearing/restoring the accelerators,
so a disabled numpad types normally instead of doing nothing.

Cleared the numbers/*/-/+ entries in the world's native <keypad> block
since they'd otherwise double-send alongside the new Accelerator-based
bindings - left "." and "/" (hide/inventory) alone since those aren't
part of this feature. Documented the full three-layer key list and the
toggle in the readme.
2026-07-11 00:14:52 +03:00
OlegTheSnowman
c3d85360c1 Remap Gag Manager from Alt+N to Alt+F2
Alt+N conflicted with direction_plugin.xml's south-west movement key
and was silently shadowing it (Gag Manager loads later, so its binding
won). Alt+F2 is unused. Updated the accelerator, the config dialog
title, and the readme accordingly.
2026-07-11 00:09:58 +03:00
OlegTheSnowman
cb006abcb8 Document the Gag Manager
Covers opening the menu (Alt+N), the 3-step gag creation flow (pattern,
method, category), the voice/full/substitute gag methods, and sharing
gags.lua between players. Also notes a real conflict found while writing
this: Alt+N is also bound to south-west movement by direction_plugin.xml,
and GagManager's later load order currently shadows it.
2026-07-11 00:08:19 +03:00
OlegTheSnowman
fb0c2020f8 Fix broken auto-updater path, sync readme with updator.bat filename
CheckSoundpackVersion's auto-launch of updator.bat was resolving to
worlds\updator.bat (dir + one "..") instead of the repo root where the
file actually lives (dir + three ".."), so the automatic update prompt
silently failed to launch anything. Verified the corrected path resolves
to the real file. Also fixed readme.md referring to "updater.bat" when
the actual shipped file is "updator.bat".
2026-07-11 00:06:58 +03:00
OlegTheSnowman
09785a9080 Fix accessible output window, revert Tab/Ctrl+Space, sync readme keys
- output_functions.xml: merge NotepadSmartScroll's Win32/Alien-based
  smart-scroll logic in directly (was a separate plugin). Fixed the
  caret-restore bug: gating the restore on scroll position was wrong
  since the notepad tracks near the bottom during normal reading; now
  gated on whether the caret was literally at the end of the old text.
  Added a jump-to-end-on-focus toggle (Ctrl+Alt+J) with a 0.2s polling
  timer to catch focus landing on the output notepad by any means.
- Reverted the Tab/Ctrl+Space rebinding - removed switch_to_output and
  trigger_word_completion along with their accelerators.
- cosmic rage.MCL: dropped the dangling NotepadSmartScroll.xml include
  (file no longer exists, was reintroduced by an auto-save).
- readme.md: documented the actual current CosmicRage.xml keys (several
  had drifted out of sync - Alt+F12 is now stop-sounds not restart,
  Alt+Delete/Ctrl+S/Ctrl+F1-3/Alt+F3/Alt+Shift+H/F11 were undocumented)
  and added the output_functions.xml accessible-output keybindings,
  which weren't documented at all before.
2026-07-11 00:02:28 +03:00
nathan smith
21fa3e0d57 Maybe fixed a bug to do with reconnections. 2025-10-31 22:17:52 +00:00
Augustus
5c90a04ebb Update CosmicRage.xml 2025-10-11 21:25:45 +03:00
Augustus
164c69156d Update CosmicRage.xml 2025-10-11 21:11:29 +03:00
nathan smith
b589f28cc6 Fixing querks with the repair tool. 2025-07-28 17:01:04 +01:00
Augustus
1e874cfc70 fixed keys in the readme file 2025-07-06 01:35:27 +03:00
Augustus
84e31209a3 Delete keys readme.html 2025-07-06 01:20:35 +03:00
b0a091e9da Update CosmicRage.xml
Updated xml version to 4 to match in game version.
2025-07-03 16:07:19 -05:00
da0a100e79 Merge branch 'main' of http://nathantech.net:3000/CosmicRage/Mush-Soundpack 2025-07-03 16:06:00 -05:00
Augustus
63389381c0 github installer . bat will now use three different downloading methods if the powershell one fails 2025-07-03 06:51:51 +03:00
nathan smith
e7a5da16d5 Adding more safety checks to updater 2025-07-02 20:47:55 +01:00
1093491566 Update CosmicRage.xml
Fixed some hot keys that weren't the same as VIP mud.
2025-07-02 13:13:48 -05:00
Augustus
a55650694b added a repair tool to fix repos if broken 2025-07-02 14:43:50 +03:00
Augustus
b3fb2acd7a version to 2 2025-07-02 04:10:40 +03:00
Augustus
3eab62a2a2 added f4 to control master volume 2025-07-02 03:56:19 +03:00
Augustus
f77ddc609e made git installer smarter 2025-07-02 03:52:34 +03:00
Draqoken
c7d1b6e4ab fixed git installer 2025-07-02 01:29:29 +03:00
Draqoken
e888d9dfb9 initial release 2025-07-01 23:28:00 +03:00