Skip to content

Open the loadout to Bandits and remove /handsup - #53

Merged
XxFran10xX merged 2 commits into
mainfrom
bandit-loadout
Oct 23, 2026
Merged

XxFran10xX merged 2 commits into
mainfrom
bandit-loadout

Conversation

@XxFran10xX

@XxFran10xX XxFran10xX commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Bandits can use the loadout

  • /thievery loadout now opens for any character with a lockpicking trait (top-level traits:), a robbery trait (robbery.traits) or a pickpocket trait (pickpocket.traits). On Main that means thief or bandit.
  • Robbery's coin pouch and grave looting depend on loadout categories, which is why Bandits need it.
  • Chest and display lockpicking keep the same gate as before (TraitChecker.hasLockpickingTraits, top-level traits: only), so Bandits still cannot pick locks.
  • If any of the three activities has no traits configured, it is open to everyone, so the loadout is too. This matches the old behaviour, where an empty traits: list opened the loadout.
  • TraitChecker.hasRequiredTraits is replaced by hasLoadoutTraits. Its only caller was the loadout command. The missing-trait message is unchanged ("You lack the training for thievery!"). The help listing and tab-complete already show loadout to every player, and no GUI opens the loadout, so nothing else needed changing.
  • No config change is needed on Main.

/handsup removed

  • Removed the /handsup command, the inspection/ package (HandsUpManager, HandsUpCharacterListener, InspectionInventory, HandsUpAnimation, ItemsAdderHandsUpAnimation) and their tests.
  • Removed the plugin.yml command entry.
  • The feature had no config keys or messages of its own.

Character skins on ItemsAdder emotes kept

  • The deleted ItemsAdderHandsUpAnimation also re-skinned every ItemsAdder emote, not just the hands-up pose, using the player's active character profile textures. ItemsAdder 4.0.18 otherwise renders emotes with the account's Mojang skin.
  • That part now lives in emote/EmoteSkinListener, which is registered when ItemsAdder is enabled. It keeps the original next-tick skinning and its test (anyEmoteIsSkinnedFromTheActiveProfileOnTheNextTick).
  • The ItemsAdder dependency stays for this listener: the pom dependency, the ItemsAdder softdepend and the .github/ JAR download, checksum and install step are unchanged from main.
  • The emote assets in ServerAssets (tfmc_emotes/handsup) and the Docs pages that mention it are separate repositories and are not touched here.

Default config

  • The bundled config.yml now ships lockpicking.debug-allow-own-chest: false. The code default was already false.

Tests

  • New AccessUtilitiesTest case covers the loadout gate: a bandit, a pickpocket-only character and a thief can open it, a scholar cannot, Bandits and pickpockets still fail the lock-picking check, and an open (empty or null) gate opens the loadout.
  • ThieveryTest now asserts that /handsup is no longer registered, and that EmoteSkinListener is registered only when ItemsAdder is present.
  • EmoteSkinListenerTest covers next-tick skinning of any emote, a missing profile, missing or empty textures, a missing renderer, and failures being logged.
  • On Windows, mvn clean verify passes for every class touched here, with full coverage on TraitChecker, CommandManager, EmoteSkinListener and the loaders. The tests that fail locally are the known Windows file-locking/path failures in the lock-store tests, and they fail the same way on origin/main. Linux CI is authoritative.

🤖 Generated with Claude Code

The loadout now opens for any character with a lockpicking, robbery or
pickpocket trait, since robbery's coin pouch and grave looting read the
loadout categories. Chest and display lockpicking keep the top-level
traits gate.

/handsup, its inspection listeners and the ItemsAdder pose are removed,
along with the ItemsAdder build dependency only they used. The bundled
config now ships debug-allow-own-chest off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 23, 2026 •

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 0611274f-b3e9-4346-b3f5-51422db7c451
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the size:L 100-499 effective changed lines (tests excluded in mixed PRs). label Oct 23, 2026
The removed hands-up animation also re-skinned every ItemsAdder emote
from the active character profile. Keep that as EmoteSkinListener,
registered when ItemsAdder is enabled, with the ItemsAdder dependency
and softdepend it needs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@XxFran10xX
XxFran10xX merged commit 937f80f into main Oct 23, 2026
3 checks passed
@XxFran10xX
XxFran10xX deleted the bandit-loadout branch October 23, 2026 18:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 100-499 effective changed lines (tests excluded in mixed PRs).

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant