Skip to content

v0.10.5 Fixes and Additions#38

Merged
decaprime merged 29 commits into
decaprime:mainfrom
Odjit:update/v0.10.5_Fixes_and_Additions
Apr 15, 2026
Merged

v0.10.5 Fixes and Additions#38
decaprime merged 29 commits into
decaprime:mainfrom
Odjit:update/v0.10.5_Fixes_and_Additions

Conversation

@Odjit
Copy link
Copy Markdown
Collaborator

@Odjit Odjit commented Mar 25, 2026

This PR bundles several fixes and new features building on v0.10.4.

Features

Remainder Parameter (_remainder)

  • Any command can now accept a _remainder string parameter that captures all remaining input after matched parameters
  • Works correctly with command groups, commands with multiple words, and shorthand aliases that differ in word count
  • Unit tests added for comprehensive coverage of remainder parameter behavior

Version Command (.version)

  • Admin-only .version command lists all installed BepInEx plugins and their versions
  • Initial Thunderstore version checking was explored but removed due to potential reliability issues — kept the local version listing only

Persistent Command History

  • Command history now persists across server restarts, loaded on first command usage per player
  • History no longer stores duplicate consecutive command/args entries
  • History code refactored into its own CommandHistory static class
  • Storage keyed by context name instead of platformId for improved testability
  • Context is now properly updated when history commands are executed
  • Additional unit tests added to verify history recall behavior

Fixes

Assembly Name / Command Name Overlap

  • Fixed issue where a plugin's assembly name matching the start of a command group name would require doubling the prefix (e.g., .killfeed killfeed)
  • If no match is found within the specified assembly, VCF now falls back to searching all commands without an assembly filter

Command Overlap Resolution

  • With command overloading support, multiple matches for overlapped commands are now properly surfaced instead of silently favoring the first match

Assembly References

  • No longer keeping hard references to Assembly objects — stores assembly names only to reduce issues with hot reloading plugins

Misc

  • Fixed several compile warnings
  • Fixed line endings

Odjit added 22 commits March 24, 2026 22:56
…xecute, we are allowing multiple matches for overlapped commands instead of favoring the first command matched.
…parameter called _remainder for any command.
Also whoops CommandRegistry.cs didn't have Unix line endings >_<
…tformId for unit testability

Adding unit tests testing history deduplication and history loading
…n executed and added unit tests to verify

Also missed checking in removal of the history reversal
* Only version check for those who succeed authing as admin
…have a command for listing the current version of plugins after deciding potentially too many issues
…hat have multiple words and also handling the short hand having a different number of words
…ve the Thunderstore version checking anymore
…escription

Removed the Automatic Update Checking section from the README as the
Thunderstore version checking feature was removed. Fixed .version command
description to correctly state it is admin only.
…text

The .! and .! # commands were passing the original stored args array
to executeCommandWithArgs instead of the copy with the updated context.
Was only used for marshalling async Thunderstore web requests back to the
main thread. Since version checking is now synchronous from chat commands
which already run on the main thread, the dispatcher is unnecessary.
@Odjit Odjit force-pushed the update/v0.10.5_Fixes_and_Additions branch from 2a47d5c to 001a98a Compare March 25, 2026 02:57
…r not working with assembly-prefixed commands
Comment thread VCF.Core/Common/VersionChecker.cs
Comment thread VCF.Core/Registry/CommandHistory.cs
Comment thread VCF.Core/Registry/CommandCache.cs Outdated
@Odjit Odjit force-pushed the update/v0.10.5_Fixes_and_Additions branch from 58cba2b to abffa43 Compare April 12, 2026 22:59
Odjit and others added 4 commits April 12, 2026 19:01
…der so adding a frame delay on the server inbetween each of them to try to better enforce their order.
…ng or empty. Now always mark the history as being loaded no matter what the state of the history file is.
@decaprime
Copy link
Copy Markdown
Owner

Resolves #14

@decaprime decaprime merged commit 49faa2e into decaprime:main Apr 15, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants