{"id":49745455,"url":"https://github.com/riqqqque/ruinedwardrobe","last_synced_at":"2026-05-30T10:00:24.743Z","repository":{"id":356837011,"uuid":"1153256663","full_name":"Riqqqque/RuinedWardrobe","owner":"Riqqqque","description":"High-performance Paper/Folia wardrobe plugin with anti-dupe protection, audit logs, migrations, and source-available free server use.","archived":false,"fork":false,"pushed_at":"2026-05-10T02:20:17.000Z","size":362,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-10T02:42:54.773Z","etag":null,"topics":["folia","java","minecraft","minecraft-plugin","paper","server-plugin","spigot","wardrobe"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Riqqqque.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-09T04:57:12.000Z","updated_at":"2026-05-10T02:18:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Riqqqque/RuinedWardrobe","commit_stats":null,"previous_names":["riqqqque/ruinedwardrobe"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/Riqqqque/RuinedWardrobe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Riqqqque%2FRuinedWardrobe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Riqqqque%2FRuinedWardrobe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Riqqqque%2FRuinedWardrobe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Riqqqque%2FRuinedWardrobe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Riqqqque","download_url":"https://codeload.github.com/Riqqqque/RuinedWardrobe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Riqqqque%2FRuinedWardrobe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33687722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["folia","java","minecraft","minecraft-plugin","paper","server-plugin","spigot","wardrobe"],"created_at":"2026-05-10T03:56:01.193Z","updated_at":"2026-05-30T10:00:24.715Z","avatar_url":"https://github.com/Riqqqque.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RuinedWardrobe\n\n[![Release](https://img.shields.io/github/v/release/Riqqqque/RuinedWardrobe?label=release\u0026cacheSeconds=60)](https://github.com/Riqqqque/RuinedWardrobe/releases/latest)\n[![Download](https://img.shields.io/badge/download-jar-2ea44f)](https://github.com/Riqqqque/RuinedWardrobe/releases/latest/download/RuinedWardrobe.jar)\n[![Paper/Folia](https://img.shields.io/badge/Paper%2FFolia-1.21--26.1.2-2f3136)](https://papermc.io/)\n[![Java](https://img.shields.io/badge/Java-21%2B-b07219)](https://adoptium.net/)\n[![License](https://img.shields.io/badge/license-free%20use%2C%20no%20resale-blue)](LICENSE)\n\nRuinedWardrobe is a high-performance Paper/Folia wardrobe plugin built for large Minecraft servers that need a polished armor wardrobe, strict anti-dupe behavior, safe storage, and useful diagnostics when something goes wrong.\n\nIt is free to use on any server, including monetized servers. The source and jar can be used, modified, and shared for free, but the plugin itself cannot be resold or commercially redistributed. See [LICENSE](LICENSE).\n\n## Highlights\n\n- Hypixel-style wardrobe GUI with drag/drop armor editing, page navigation, locked slots, and equip/unequip buttons.\n- Full Paper and Folia scheduler support.\n- Target API: `io.papermc.paper:paper-api:1.21-R0.1-SNAPSHOT`.\n- Runtime support: Paper/Folia `1.21` through `26.1.2`.\n- Java target: `21+`.\n- Permission-tier slots through `ruinedwardrobe.slots.\u003camount\u003e` plus admin bonus slots.\n- SQLite by default, optional MySQL/MariaDB for networks.\n- Async database pipeline with queue limits, retries, health metrics, and batch sync.\n- Bound-armor anti-dupe protection for inventory clicks, drags, drops, swaps, armor dispense, and optional container locking.\n- Vanilla-compatible death behavior by default, with a config option to preserve wardrobe sets on death.\n- Wardrobe audit log for tracing equips, edits, deaths, sanitizer removals, sync changes, storage errors, and item deserialization failures.\n- Config, GUI, language, and permission templates designed for server owners instead of just developers.\n- Automatic config backup/regeneration on template version changes.\n- Legacy schema import with verified backup before old tables are removed.\n- Snapshot-based storage migration with digest verification.\n- PlaceholderAPI expansion and optional Vault/combat integration hooks.\n\n## Download\n\nLatest jar:\n\n[Download RuinedWardrobe](https://github.com/Riqqqque/RuinedWardrobe/releases/latest/download/RuinedWardrobe.jar)\n\n## Install\n\n1. Download `RuinedWardrobe.jar` from the latest GitHub release.\n2. Put the jar in your server `plugins` folder.\n3. Start the server once so RuinedWardrobe creates its config files.\n4. Edit `plugins/RuinedWardrobe/config.yml`, `gui.yml`, `lang/en_US.yml`, and permissions as needed.\n5. Restart the server, or use `/wardrobe reload` after config-only changes.\n\nJar output when building locally:\n\n```bash\n./gradlew clean build\n```\n\n```text\nbuild/libs/RuinedWardrobe-1.0.4.jar\n```\n\n## Commands\n\n- `/wardrobe` or `/rw` opens the wardrobe GUI.\n- `/wardrobe help` shows command help.\n- `/wardrobe list [player]` lists saved wardrobe sets.\n- `/wardrobe doctor` prints runtime diagnostics.\n- `/wardrobe reload` reloads config, GUI, and language files.\n- `/wardrobe migrate \u003csqlite|mysql\u003e [--dry-run] [--force]` migrates storage with snapshot verification.\n- `/wardrobe admin open \u003cplayer\u003e` opens another player's wardrobe.\n- `/wardrobe admin setslots \u003cplayer\u003e \u003camount\u003e` adds admin bonus slots.\n- `/wardrobe admin clearslots \u003cplayer\u003e` removes admin bonus slots.\n\n## Main Permissions\n\n- `ruinedwardrobe.use`\n- `ruinedwardrobe.command.help`\n- `ruinedwardrobe.command.list`\n- `ruinedwardrobe.command.doctor`\n- `ruinedwardrobe.command.reload`\n- `ruinedwardrobe.command.migrate`\n- `ruinedwardrobe.admin.*`\n- `ruinedwardrobe.slots.\u003camount\u003e`\n- `ruinedwardrobe.bypass.cooldown`\n- `ruinedwardrobe.bypass.restrictions`\n- `ruinedwardrobe.bypass.emptycheck`\n- `ruinedwardrobe.bypass.combat`\n\nSee [docs/permissions.md](docs/permissions.md) and [src/main/resources/permissions.yml](src/main/resources/permissions.yml).\n\n## Configuration\n\nCore config lives in `plugins/RuinedWardrobe/config.yml`.\n\nImportant sections:\n\n- `wardrobe`: slot caps, pages, equip cooldown.\n- `death`: vanilla-loss behavior or protected wardrobe behavior.\n- `storage`: SQLite or MySQL/MariaDB setup.\n- `performance`: cache, session, sync, armor scan, DB queue, and health logging.\n- `audit`: separate activity log for debugging missing armor or bad sync behavior.\n- `restrictions`: world, gamemode, combat, and PlaceholderAPI rules.\n- `integrations`: PlaceholderAPI, Vault, and combat hooks.\n- `anti-dupe`: strict container interaction lock.\n\nGUI layout is in `gui.yml`. Player-facing messages are in `lang/en_US.yml`.\n\n## Audit Logs\n\nThe audit log is meant for real debugging on live servers.\n\nDefault path:\n\n```text\nplugins/RuinedWardrobe/logs/wardrobe-audit-YYYY-MM-DD.log\n```\n\nIt records meaningful wardrobe actions and failures without flooding the console. If armor disappears, send the audit log for the same timestamp plus the server console around that time.\n\nUseful actions to look for:\n\n- `EQUIP`\n- `UNEQUIP`\n- `ARMOR_PLACE`\n- `ARMOR_TAKE`\n- `DEATH_VANILLA_LOSS`\n- `DEATH_PRESERVE`\n- `FOREIGN_BOUND_ARMOR_REMOVED`\n- `ITEM_DESERIALIZE_ERROR`\n- `ARMOR_SYNC_ERROR`\n- `SAVE_SET_ERROR`\n- `EQUIP_ERROR`\n\n## Server Monetization\n\nYou may use RuinedWardrobe on servers that make money from ranks, donations, cosmetics, memberships, stores, ads, or paid access.\n\nYou may not sell the RuinedWardrobe jar, source code, fork, modified copy, update access, or a paid bundle that charges for the plugin itself.\n\nSee [LICENSE](LICENSE) and [docs/wiki/License-And-Server-Monetization.md](docs/wiki/License-And-Server-Monetization.md).\n\n## Documentation\n\nStart with the wiki-style docs:\n\n- [Wiki Home](docs/wiki/Home.md)\n- [Quick Start](docs/wiki/Quick-Start.md)\n- [Configuration Guide](docs/wiki/Configuration.md)\n- [Permissions And Commands](docs/wiki/Permissions-And-Commands.md)\n- [GUI And Language Customization](docs/wiki/GUI-And-Language-Customization.md)\n- [Placeholders And Integrations](docs/wiki/Placeholders-And-Integrations.md)\n- [Storage, Migration, And Backups](docs/wiki/Storage-Migration-And-Backups.md)\n- [Audit Logs And Troubleshooting](docs/wiki/Audit-Logs-And-Troubleshooting.md)\n- [Upgrade And Release Checklist](docs/wiki/Upgrade-And-Release-Checklist.md)\n- [License And Server Monetization](docs/wiki/License-And-Server-Monetization.md)\n- [FAQ](docs/wiki/FAQ.md)\n\nReference docs:\n\n- [Config Reference](docs/config-reference.md)\n- [Migration Guide](docs/migration-guide.md)\n- [Permissions](docs/permissions.md)\n- [Placeholders](docs/placeholders.md)\n- [Ruined Ecosystem Parity](docs/ruined-ecosystem-parity.md)\n\n## Development\n\nRequirements:\n\n- JDK 21+\n- Gradle wrapper included\n\nBuild and test:\n\n```bash\n./gradlew clean test build\n```\n\nThe shaded jar includes SQLite, MariaDB, HikariCP, Caffeine, and bStats dependencies so normal installs do not need extra jars.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friqqqque%2Fruinedwardrobe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Friqqqque%2Fruinedwardrobe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Friqqqque%2Fruinedwardrobe/lists"}