Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
240 commits
Select commit Hold shift + click to select a range
8ee4d9c
steam and EGS share offsets again in 2.11.4
Knutschbert Dec 9, 2025
f6eb192
Merge branch 'master' into update-steam-offsets-2.11.4
Jacoby6000 Dec 24, 2025
11f8b53
Load BuildMetadata from memory using basic BuildInfo API
Jacoby6000 Dec 29, 2025
0a1e926
Use mmap to load file faster for crc hash, fix build errors
Jacoby6000 Dec 29, 2025
059a3d2
Remove unused dependencies
Jacoby6000 Jan 2, 2026
5b37567
Address comments
Jacoby6000 Jan 2, 2026
6e01c6d
Only scan for missing signatures
Jacoby6000 Jan 2, 2026
6b55c5b
Support early loading of high priority patches, and forced terminatio…
Jacoby6000 Jan 2, 2026
248074e
Remove IGNORE_RESOLVERS, redundant parens
Jacoby6000 Jan 2, 2026
a6e4ce8
remove redundant indicies
Jacoby6000 Jan 2, 2026
b5e772a
Add newly scanned data to existing current build info
Jacoby6000 Jan 3, 2026
216d316
Fix bug from setting platform multiple times on first scan
Jacoby6000 Jan 3, 2026
e28fd74
cleanup
Jacoby6000 Jan 3, 2026
38e698e
Add UE definitions
Knutschbert Jan 3, 2026
f77f436
Update CMakeList for debug/release rust builds
Knutschbert Jan 3, 2026
42380b2
Add rust hook support. Add ClientMessage hook as example
Knutschbert Jan 3, 2026
494c94f
Auto-discover hooks
Knutschbert Jan 4, 2026
adb405e
warnings
Knutschbert Jan 4, 2026
8e6b7ba
add patch handling (with discovery)
Knutschbert Jan 4, 2026
173d445
add offset field to CREATE_PATCH
Knutschbert Jan 4, 2026
a1de791
move macros to separate modules
Knutschbert Jan 4, 2026
70c0090
allow multiple patches for a single resolver
Knutschbert Jan 4, 2026
fd72256
save and display patch tag
Knutschbert Jan 4, 2026
fabc107
correct log macro display, correct log levels
Knutschbert Jan 4, 2026
b804fba
Add support for platform dependent patches
Knutschbert Jan 4, 2026
8ce8375
clean up globals
Knutschbert Jan 4, 2026
f793a00
fix eac message, move patches to rust
Knutschbert Jan 4, 2026
a7d5e5b
fix type hinting within hook macros. Use pre-release of rust analyzer…
Knutschbert Jan 4, 2026
3ffd1a2
re-add CREATE_HOOK wrapper so rust analyzer works. add CALL_ORIGINAL …
Knutschbert Jan 4, 2026
ee57824
patch_macros docstrings
Knutschbert Jan 4, 2026
6078692
make cli_args fields public
Knutschbert Jan 4, 2026
6e742fe
Implement GetMotd and GetCurrentGames
Knutschbert Jan 4, 2026
178713c
disable clippy warning
Knutschbert Jan 4, 2026
8757fe3
remove cargo.lock
Knutschbert Jan 4, 2026
de207e3
clippy
Knutschbert Jan 4, 2026
941fdd1
Add discoverable OffsetRegistry struct
Knutschbert Jan 4, 2026
4eafe1e
generalized resolver for Get*Post methods
Knutschbert Jan 4, 2026
ee5216b
remove test code
Knutschbert Jan 4, 2026
47f235a
move Get*Post requests to separate file. hide dummy behind feature
Knutschbert Jan 5, 2026
9491d0b
add pdb tools (with_pdb)
Knutschbert Jan 5, 2026
58e5399
fix POST hooks format
Knutschbert Jan 5, 2026
503aa30
add KismetExecutionMessage (kismet_log feature)
Knutschbert Jan 5, 2026
071dba4
move ClientMessage to messages.rs
Knutschbert Jan 5, 2026
72edf86
parse ClientMessage
Knutschbert Jan 5, 2026
b4b6a1f
GetGameInfo rust hook
Knutschbert Jan 5, 2026
b2fdc2c
port ownership_overrides to rust
Knutschbert Jan 5, 2026
3d7c145
Move loose asset loading to rust. disabled by default
Knutschbert Jan 5, 2026
2e90b25
Port multiple hooks:
Knutschbert Jan 5, 2026
49804d4
Disable unused hooks: FText_AsCultureInvariant, GetTBLGameMode
Knutschbert Jan 5, 2026
6546049
remove suffix from Get*Post macro
Knutschbert Jan 5, 2026
da6b382
Port hooks: FString_AppendChars, PreLogin
Knutschbert Jan 5, 2026
3e520f3
port SendRequest
Knutschbert Jan 5, 2026
af1474c
Implement cli commands
Knutschbert Jan 6, 2026
de31858
add rcon
Knutschbert Jan 6, 2026
284d7d2
spawn rcon in a thread
Knutschbert Jan 6, 2026
729c1d2
(WIP) initial server registration code (old branch + changes)
Knutschbert Jan 6, 2026
f9479c2
refactor pass 1
Knutschbert Jan 6, 2026
e052304
parse and handle heartbeat response
Knutschbert Jan 6, 2026
32de22a
add mod support
Knutschbert Jan 6, 2026
ef3719f
Fix INACTIVE hook logic. It will initialize but not enable
Knutschbert Jan 6, 2026
0526d4e
add support for custom command handlers
Knutschbert Jan 6, 2026
c66e9c3
implement game thread job queue
Knutschbert Jan 7, 2026
ed57cb8
new hooks for mod asset/actor handling:
Knutschbert Jan 7, 2026
6201a82
drop prints
Knutschbert Jan 7, 2026
c03ba13
implement mod manager
Knutschbert Jan 7, 2026
19ca61c
Mod manager: add ability to override and enable mods
Knutschbert Jan 8, 2026
13e8552
add rudimentary syslog support
Knutschbert Jan 8, 2026
6e80291
add GEngine resolver (unused)
Knutschbert Jan 8, 2026
77e9f3a
Add discord bot chat support
Knutschbert Jan 8, 2026
8f16a57
add discord cli options and helpers
Knutschbert Jan 8, 2026
3582080
correct invalid pattern
Knutschbert Jan 9, 2026
62e37d0
add new command handler
Knutschbert Jan 9, 2026
a3be000
add alternate resolver macro format
Knutschbert Jan 9, 2026
eec4c86
remove old commands file
Knutschbert Jan 9, 2026
fcdb76a
(WIP) Discord integration rewrite + Exception handling. Not all disco…
Knutschbert Jan 10, 2026
7eec6ff
use a2s fork
Knutschbert Jan 10, 2026
929bfe3
(WIP) discord: add mock bridge. Add module configuration. Pre-parse c…
Knutschbert Jan 10, 2026
7cb1583
add mock server launch and build tasks
Knutschbert Jan 10, 2026
607af69
fix Release with build info
Knutschbert Jan 12, 2026
34eaa34
Move CLI out of globals, initialize hooks and patches faster
Knutschbert Jan 12, 2026
b361b0f
allow activation condition in hook declaration
Knutschbert Jan 12, 2026
75ae3e5
Add CALLED/DISABLED aliases for create_hook. Remove unused imports
Knutschbert Jan 17, 2026
3f27d06
add desync alternatives (test)
Knutschbert Jan 17, 2026
43f4475
add modular voting impl
Knutschbert Jan 18, 2026
a48169a
Add discord command handlers similar to console cmds
Knutschbert Jan 18, 2026
d92cbca
support source and elevated tags for disc commands
Knutschbert Jan 18, 2026
56abeb4
update herald
Knutschbert Jan 18, 2026
1b19a1d
correct elevated check
Knutschbert Jan 18, 2026
4dc862c
add XrefFirst resolver type, Fix PreLogin hook
Knutschbert Jan 20, 2026
d15dedb
Add a hook for ingame console output
Knutschbert Jan 20, 2026
9f38844
add attach launch profile
Knutschbert Jan 20, 2026
b34f8fd
add definitions for UWorld,ATBLGameMode,ATBLGameState,ATBLPlayerState…
Knutschbert Jan 20, 2026
8ddea56
add command to display playerlist
Knutschbert Jan 20, 2026
0f583b6
add dashboard playerlist command
Knutschbert Jan 20, 2026
83d2342
Forward cli parsing errors to caller, remove unsafe wrappers
Jacoby6000 Feb 24, 2026
2ce0049
Remove invalid [env] key, add missing feature definitions
Jacoby6000 Feb 24, 2026
cd9202d
Fix warnings, remove redundant parens, remove unnecessary unwrap call…
Jacoby6000 Feb 24, 2026
47a1796
Remove unsafe unwraps where they are not necessary
Jacoby6000 Feb 24, 2026
9d987b6
Review usages of unsafe, fix some hard crash scenarios, use Lazy over…
Jacoby6000 Feb 25, 2026
7b7cc08
Use CALL_ORIGINAL_SAFE in FName
Jacoby6000 Feb 25, 2026
14fc89c
Remove redundant unsafe message. fname_to_string global handles this
Jacoby6000 Feb 25, 2026
97f3721
add more test cases for cli args
Jacoby6000 Feb 26, 2026
22fd5cf
Merge pull request #46 from Chiv2-Community/implement-rust-hooks-mini…
Jacoby6000 Feb 26, 2026
299839f
Initial plan
Copilot Feb 26, 2026
ca8b7aa
Remove unsafe unwrap calls in map_vote.rs using safe pattern matching
Copilot Feb 26, 2026
9c2e8fd
Remove accidentally committed libstdin.rlib artifact
Copilot Feb 26, 2026
7abc517
Use slice pattern match to bind first arg, eliminating is_empty check…
Copilot Feb 26, 2026
53a483d
Remove libstdin.rlib
Jacoby6000 Feb 26, 2026
0813e4d
Merge pull request #48 from Chiv2-Community/copilot/sub-pr-47
Jacoby6000 Feb 26, 2026
f9e1e46
Merge pull request #47 from Chiv2-Community/fix-warnings
Jacoby6000 Feb 26, 2026
203797e
Merge remote-tracking branch 'origin/implement-rust-hooks-maximal' in…
Jacoby6000 Feb 26, 2026
c25d7fd
Leverage pattern matching to avoid logical coupling of method calls
Jacoby6000 Feb 26, 2026
f5976f0
Use more pattern matching for better logic/structure association
Jacoby6000 Feb 26, 2026
8922200
Initial plan
Copilot Feb 26, 2026
d82ac4d
Initial plan
Copilot Feb 26, 2026
2b9b33c
Add retry limit to Discord client restart loop
Copilot Feb 26, 2026
c2707e8
Initial plan
Copilot Feb 26, 2026
af84cf5
Match unsafe pointer checks as tuple pair
Copilot Feb 26, 2026
e64af8d
Add log_game_info helper and refactor to three-tuple match with per-f…
Copilot Feb 26, 2026
15bf876
Initial plan
Copilot Feb 26, 2026
fc92cfb
Merge pull request #50 from Chiv2-Community/copilot/sub-pr-49
Jacoby6000 Feb 26, 2026
5645c03
Merge pull request #51 from Chiv2-Community/copilot/sub-pr-49-again
Jacoby6000 Feb 26, 2026
1fb776f
Mark FWeakObjectPtr::get as unsafe and implement validity check
Copilot Feb 26, 2026
d4d6137
Remove some unnecessary declarations
Jacoby6000 Feb 26, 2026
855f307
Remove unused uworld_ptr binding
Jacoby6000 Feb 26, 2026
5cdfb12
Merge pull request #53 from Chiv2-Community/copilot/sub-pr-49-yet-again
Jacoby6000 Feb 26, 2026
f473f47
Merge pull request #52 from Chiv2-Community/copilot/sub-pr-49-another…
Jacoby6000 Feb 26, 2026
e54a7b2
Initial plan
Copilot Feb 26, 2026
a08f3d3
Initial plan
Copilot Feb 26, 2026
659b897
Initial plan
Copilot Feb 26, 2026
f21e0dd
Reduce nested if statements in seh.rs by combining conditions with &&
Copilot Feb 26, 2026
569c913
Merge pull request #55 from Chiv2-Community/copilot/sub-pr-49-again
Jacoby6000 Feb 26, 2026
400366e
Replace naked unwrap on attach_hooks with proper error reporting
Copilot Feb 26, 2026
b6f376d
Merge pull request #54 from Chiv2-Community/copilot/sub-pr-49
Jacoby6000 Feb 26, 2026
6ac523f
Update veh method to use safe pointer dereferencing
Copilot Feb 26, 2026
abdf40f
Merge pull request #56 from Chiv2-Community/copilot/sub-pr-49-another…
Jacoby6000 Feb 26, 2026
73eee9a
Merge pull request #49 from Chiv2-Community/fix-unsafe-code
Jacoby6000 Feb 26, 2026
3f81cb7
Remove all Cpp/C code. Move to rust only
Jacoby6000 Feb 26, 2026
a026220
Remove CPP pieces. Go rust only
Jacoby6000 Feb 26, 2026
f01c7f6
Add mock_server.rs
Jacoby6000 Feb 26, 2026
39065b6
Fix dll name in ci build
Jacoby6000 Feb 26, 2026
f5cf408
Merge pull request #57 from Chiv2-Community/remove-cpp
Jacoby6000 Feb 26, 2026
48148da
Remove some dead_code/annotations
Jacoby6000 Feb 26, 2026
16116d8
Fix some basic TODOs
Jacoby6000 Feb 26, 2026
79203ad
Remove unused imports, allow unused ctx
Jacoby6000 Feb 26, 2026
e1ad03f
Merge pull request #58 from Chiv2-Community/remove-dead-code
Jacoby6000 Feb 27, 2026
4be0c43
Minor initial discord cleanup
Jacoby6000 Mar 3, 2026
2064112
Move GameEvent from a trait to a struct
Jacoby6000 Mar 4, 2026
1de242f
Use plain old methods for dispatching events rather than a macro
Jacoby6000 Mar 4, 2026
67b0640
Clean up event preprocessing
Jacoby6000 Mar 4, 2026
aab85ff
Remove MapVoteExt, remove Event suffixes from non-enum-wrapper structs
Jacoby6000 Mar 4, 2026
e9b3183
Rename the 'notifications' module to 'events'. Add some TODOs
Jacoby6000 Mar 4, 2026
11103d4
Note which events are never dispatched
Jacoby6000 Mar 4, 2026
1bc6d9b
Derive IntoStaticStr for GameEvent, remove event_type method, add Lea…
Jacoby6000 Mar 4, 2026
e6d4def
Remove some dead code
Jacoby6000 Mar 4, 2026
b64e9bd
Remove legacy discord integration
Jacoby6000 Mar 4, 2026
b73992f
Address some kinks
Jacoby6000 Mar 4, 2026
d3a1abd
Make discord arg handling a little safer, try to improve trace context
Jacoby6000 Mar 4, 2026
92c0341
Revert changes to admin_control
Jacoby6000 Mar 4, 2026
99a4e00
Remove console command hook. Unused.
Jacoby6000 Mar 4, 2026
8a69b2e
Provide concrete explanations for vote failures
Jacoby6000 Mar 4, 2026
193d063
Remove non-functioning vote modules, fix duplicate relay messages
Jacoby6000 Mar 5, 2026
693da45
Finnish commenting out vote modules
Jacoby6000 Mar 5, 2026
f86b177
Comment out unused imports related to unimplemented voting functions
Jacoby6000 Mar 5, 2026
6de387c
Merge pull request #59 from Chiv2-Community/cleanup-discord
Jacoby6000 Mar 5, 2026
4662067
PascalCase plugin name, for now
Jacoby6000 Mar 6, 2026
c607bd5
Filter out command not recognized, fix console freezing
Jacoby6000 Mar 7, 2026
363c4ab
Log IPs to help do IP bans
Jacoby6000 Mar 7, 2026
e3ba372
Debugging ban list
Jacoby6000 Mar 7, 2026
2740685
Properly set local ip
Jacoby6000 Mar 7, 2026
4989005
Improve logging
Jacoby6000 Mar 7, 2026
c19f0bb
Set log level back to info
Jacoby6000 Mar 7, 2026
7fb6c25
Join events
Jacoby6000 Mar 7, 2026
ac73954
Update cargo build version
Jacoby6000 Mar 7, 2026
31bb387
Censor config
Jacoby6000 Mar 10, 2026
7469147
Setup motd
Jacoby6000 Mar 10, 2026
ccd9569
Write all logs to '%localappdata%/Chivalry 2/Config_{suffix}/Logs/*.log'
Jacoby6000 Mar 10, 2026
efcbb0f
Clean up scanning/build info. Full-rescan on plugin update
Jacoby6000 Mar 14, 2026
8454241
Fix PreLogin hook
Jacoby6000 Mar 14, 2026
0f3fac8
Vote speed
Jacoby6000 Mar 14, 2026
c3801a6
Uncomment join event never dispatched
Jacoby6000 Mar 14, 2026
85fe2ea
Initial event bus arch
Jacoby6000 Mar 15, 2026
b376ea0
minor cleanup
Jacoby6000 Mar 15, 2026
0a85509
Just about finish up the new event/command/subscriber/vote system
Jacoby6000 Mar 16, 2026
d773586
Finish up new clap-based command/vote system
Jacoby6000 Mar 16, 2026
84230b6
Move command trait in to its own module, hide command boilerplate in …
Jacoby6000 Mar 16, 2026
a4d43b2
Get everything working. do some cleanup and reord
Jacoby6000 Mar 17, 2026
12a9b20
Rest of the owl
Jacoby6000 Mar 18, 2026
0957186
Add docs
Jacoby6000 Mar 18, 2026
25508ea
Fix votehelp emoji header
Jacoby6000 Mar 18, 2026
796f5af
remove unused imports
Jacoby6000 Mar 18, 2026
009dc99
Fix doc tests
Jacoby6000 Mar 18, 2026
f59d5a9
Add cargo tests to ci
Jacoby6000 Mar 18, 2026
136d5f8
Remove unused imports
Jacoby6000 Mar 18, 2026
6582e52
Remove unused fields, mark unused values as unused in tests
Jacoby6000 Mar 18, 2026
f8d43f1
Revert some unnecessary changes to cli args
Jacoby6000 Mar 18, 2026
d25f136
Contributing doc
Jacoby6000 Mar 18, 2026
5b8fef5
Explaining how/why global shared mutable state exists and when to use…
Jacoby6000 Mar 18, 2026
be8ccc3
Merge pull request #60 from Chiv2-Community/generalized-event-system
Jacoby6000 Mar 18, 2026
4589fd0
Omit server host from player count when headless
Jacoby6000 Mar 18, 2026
97adda5
Explain the subtraction logic
Jacoby6000 Mar 18, 2026
061a67c
Fix cast
Jacoby6000 Mar 18, 2026
c715f1c
Merge pull request #61 from Chiv2-Community/fix-player-count
Jacoby6000 Mar 18, 2026
34ad8ac
Don't log user ip in PreLogin calls
Jacoby6000 Mar 18, 2026
832da71
Merge branch 'implement-rust-hooks-maximal' of https://github.com/Chi…
Jacoby6000 Mar 18, 2026
0f721da
Revert seh changes, make broadcast impls use From instead of Into, co…
Jacoby6000 Mar 19, 2026
fb6b464
Copy string bytes from join event to prevent crash race
Jacoby6000 Mar 19, 2026
2b144dc
Fix unused warnings
Jacoby6000 Mar 19, 2026
71da50b
Merge pull request #62 from Chiv2-Community/leave-events
Jacoby6000 Mar 19, 2026
df77558
Make discord reconfigurable
Jacoby6000 Mar 19, 2026
2362d4f
Set event-log subscriber, enhance damage/kill events, clean up discor…
Jacoby6000 Mar 20, 2026
f6e88f1
Merge pull request #63 from Chiv2-Community/event-log
Jacoby6000 Mar 20, 2026
abe1bad
Load log config from yaml
Jacoby6000 Mar 20, 2026
2a63e1f
Safer uworld handling
Jacoby6000 Mar 21, 2026
c7d15ca
Cleanup discord initialization and command help text
Jacoby6000 Mar 21, 2026
5d383d2
JoinBatcher -> EventBroadcaster, broadcast map changes
Jacoby6000 Mar 21, 2026
1ddf4d0
Filter emojis out of in game chat
Jacoby6000 Mar 21, 2026
41742ca
Broadcast server started message for first map change
Jacoby6000 Mar 21, 2026
73c6174
Cargo update
Jacoby6000 Mar 21, 2026
b411bac
Clean up in-game chat output
Jacoby6000 Mar 21, 2026
e8559ee
Short pause after a vote passes before executing
Jacoby6000 Mar 21, 2026
f318038
Add server restart event and vote
Jacoby6000 Mar 21, 2026
19cad11
Bump cargo version
Jacoby6000 Mar 21, 2026
6daec01
Update lockfile
Jacoby6000 Mar 21, 2026
ec7af5e
Capitalize RC
Jacoby6000 Mar 21, 2026
b5ba0c6
Don't log player ip on join
Jacoby6000 Mar 21, 2026
0d5a51a
Fix bug breaking server registration in rare cases
Jacoby6000 Mar 22, 2026
a5cab7b
Start tracking kill events
Jacoby6000 Mar 22, 2026
19b20ef
Remove redundant fields and checks relate dto kill events
Jacoby6000 Mar 23, 2026
08aa020
Add weapon name to damage event
Jacoby6000 Mar 23, 2026
963a921
Add damage events
Jacoby6000 Mar 23, 2026
ba2c9a9
Stop announcing bot leave events
Jacoby6000 Mar 23, 2026
2301751
Buffer events in eventlog
Jacoby6000 Mar 23, 2026
ccc7ef5
fix multi-embed event
Jacoby6000 Mar 23, 2026
13ffa17
Fix map change events
Jacoby6000 Mar 23, 2026
b074983
Document PostLoadMap event publish
Jacoby6000 Mar 23, 2026
7e802b0
Make custom commands case-insensitive and forward unrecognized server…
Jacoby6000 Mar 23, 2026
eaef07f
Clean up help output
Jacoby6000 Mar 23, 2026
1ea9549
Fix type error
Jacoby6000 Mar 23, 2026
4c3373a
Bump version
Jacoby6000 Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[alias]
xtask = "run --package xtask --"
1 change: 1 addition & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
CHIVALRY2_DIR='C:\Program Files (x86)\Steam\steamapps\common\Chivalry 2'
35 changes: 20 additions & 15 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: C++ CI
name: Rust CI

on:
push:
Expand All @@ -10,7 +10,7 @@ jobs:
runs-on: windows-2022
strategy:
matrix:
build_type: [Debug, Release]
build_type: [debug, release]

steps:
- uses: actions/checkout@v3
Expand All @@ -26,31 +26,36 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
sleuth/target
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-${{ matrix.build_type }}

- uses: lukka/get-cmake@latest

- uses: actions-rust-lang/setup-rust-toolchain@v1

# Ensure build directory exists
- name: Create build directory
run: mkdir -p ${{github.workspace}}/build

# Use the latest Visual Studio toolset in CMake
- name: Configure CMake
# Run tests
- name: Test
shell: bash
run: |
cmake -B ${{github.workspace}}/build -G "Visual Studio 17 2022" -A x64 -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -T v143 -DCMAKE_BUILD_TYPE=${{matrix.build_type}}
if [ "${{ matrix.build_type }}" == "release" ]; then
cargo test --release
else
cargo test
fi

# Build the project
- name: Build
shell: bash
run: |
cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}}
if [ "${{ matrix.build_type }}" == "release" ]; then
cargo build --release
else
cargo build
fi

# Upload artifacts if build succeeds
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: UnchainedPlugin-${{matrix.build_type}}
path: ${{github.workspace}}/build/Output/*
if-no-files-found: warn # Don't fail if no files are found
path: |
target/${{ matrix.build_type }}/UnchainedPlugin.dll
if-no-files-found: warn
36 changes: 20 additions & 16 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ permissions:
on:
push:
tags:
- 'v*' # Trigger on tags starting with 'v'
- 'v*'

jobs:
build:
Expand All @@ -25,34 +25,38 @@ jobs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
sleuth/target
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}-Release

- uses: lukka/get-cmake@latest

- uses: actions-rust-lang/setup-rust-toolchain@v1

# Extract version from tag (remove 'v' prefix)
- name: Get version from tag
id: get_version
shell: bash
run: |
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
echo "Extracted version: ${GITHUB_REF#refs/tags/v}"

# Create build directory
- name: Create build directory
run: mkdir -p ${{github.workspace}}/build
VERSION=${GITHUB_REF#refs/tags/v}
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Extracted version: $VERSION"

# Configure CMake with the version from tag
- name: Configure CMake
# Check if version in Cargo.toml matches the tag
- name: Verify version matches tag
shell: bash
run: |
cmake -B ${{github.workspace}}/build -G "Visual Studio 17 2022" -A x64 -DCMAKE_CXX_COMPILER=cl -DCMAKE_C_COMPILER=cl -T v143 -DCMAKE_BUILD_TYPE=Release -DVERSION="${{ steps.get_version.outputs.VERSION }}"
CARGO_VERSION=$(grep -m 1 '^version = ' Cargo.toml | sed 's/version = "\(.*\)"/\1/')
TAG_VERSION=${{ steps.get_version.outputs.VERSION }}
if [ "$CARGO_VERSION" != "$TAG_VERSION" ]; then
echo "Error: Cargo.toml version ($CARGO_VERSION) does not match tag version ($TAG_VERSION)"
exit 1
fi

# Run tests
- name: Test
run: cargo test --release

# Build the project
- name: Build
run: |
cmake --build ${{github.workspace}}/build --config Release
run: cargo build --release

# Create GitHub Release
- name: Create Release
Expand All @@ -62,7 +66,7 @@ jobs:
name: UnchainedPlugin v${{ steps.get_version.outputs.VERSION }}
draft: false
prerelease: false
files: ${{github.workspace}}/build/Output/Release/UnchainedPlugin.dll
files: target/release/UnchainedPlugin.dll
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26 changes: 21 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,24 @@
*.userosscache
*.sln.docstates

sleuth/target/
# Crate-specific ignore patterns (Cleanup from previous reorganization)
# (Removing old sleuth/ references since it was moved to root)

CMakeFiles
Output
.vscode
# .vscode files
.vscode/*
!.vscode/launch.json
!.vscode/tasks.json
.env

# RustRover / IntelliJ IDEA
.idea/*
!.idea/runConfigurations
!.idea/modules.xml
!.idea/vcs.xml
!.idea/misc.xml
!.idea/UnchainedPlugin.iml

# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
Expand All @@ -41,7 +54,8 @@ bld/
[Bb]uild/
[Bb]uild[Ff]iles/

.idea
# Removed sleuth directory structure
# .idea is now partially tracked

# Visual Studio 2015/2017 cache/options directory
.vs/
Expand Down Expand Up @@ -369,5 +383,7 @@ MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/

# Fody - auto-generated XML schema
FodyWeavers.xsd

target/

extra-context
15 changes: 15 additions & 0 deletions .idea/UnchainedPlugin.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/runConfigurations/Attach_to_Chivalry_2.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

20 changes: 20 additions & 0 deletions .idea/runConfigurations/Build_UnchainedPlugin.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions .idea/runConfigurations/Build_and_Install_UnchainedPlugin.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions .idea/runConfigurations/Debug_Mock_Server.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions .idea/runConfigurations/Debug_Mock_Server__Integrated_.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 18 additions & 0 deletions .idea/runConfigurations/Install_UnchainedPlugin.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 11 additions & 0 deletions .idea/runConfigurations/Launch_Chivalry2_with_Unchained_Plugin.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/runConfigurations/Launch_Chivalry_2.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 16 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading