How ozpyn/minecraftbutx works
MinecraftButX is a PaperMC plugin for enabling multiple gameplay-changing scenarios through admin commands. The main flow is command input → scenario manager → scenario activation, after which scenarios modify drops, fishing, chunks, or team-scoped player state in response to game events or scheduled synchronization. Startup registers the available scenarios and commands; shutdown disables active scenarios. The README documents additional shared-inventory variants built through a common builder. Some scenario implementations were not excerpted, so their internal event behavior is represented only at the documented capability level.
Main entry points: MinecraftButX.java Plugin startup · ScenarioUtils.java Scenario utilities · ScenarioManager.java Scenario manager · EnableCommand.java Enable command
Components 17
Plugin and control
- Plugin startup
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Enable command
src/main/java/dev/ozpyn/minecraftButX/command/EnableCommand.java - Disable command
src/main/java/dev/ozpyn/minecraftButX/command/DisableCommand.java - Scenario manager
src/main/java/dev/ozpyn/minecraftButX/scenario/ScenarioManager.java - Scenario lifecycle
src/main/java/dev/ozpyn/minecraftButX/scenario/Scenario.java
Drop and world changes
- Mob drops
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/MobDropsScenario.java - Block drops
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/BlockDropsScenario.java - Combined drops
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/AllDropsScenario.java - Fishing loot
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/FishingLootScenario.java - Random chunks
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/RandomChunkScenario.java
Team sharing
- Shared hunger
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedHungerScenario.java - Shared health
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedHealthScenario.java - Shared effects
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedEffectsScenario.java - Shared inventory
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedInventoryScenario.java - Inventory variants
src/main/java/dev/ozpyn/minecraftButX/scenario/SharedInventoryBuilder.java
Scenario support
- Scenario utilities
src/main/java/dev/ozpyn/minecraftButX/scenario/ScenarioUtils.java
Other components
- Server admins
Connections 27
- Server admins → Enable command: enable scenario
README.md - Server admins → Disable command: disable scenario
README.md - Plugin startup → Scenario manager: creates and registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Enable command: registers command
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Disable command: registers command
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Enable command → Scenario manager: enables and lists
src/main/java/dev/ozpyn/minecraftButX/command/EnableCommand.java - Disable command → Scenario manager: disables and lists
src/main/java/dev/ozpyn/minecraftButX/command/DisableCommand.java - Scenario manager → Scenario lifecycle: calls lifecycle
src/main/java/dev/ozpyn/minecraftButX/scenario/ScenarioManager.java - Plugin startup → Mob drops: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Block drops: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Combined drops: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Fishing loot: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Random chunks: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Shared hunger: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Shared health: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Shared effects: registers
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Plugin startup → Inventory variants: builds inventory variants
src/main/java/dev/ozpyn/minecraftButX/MinecraftButX.java - Inventory variants → Shared inventory: creates scenarios
src/main/java/dev/ozpyn/minecraftButX/scenario/SharedInventoryBuilder.java - Mob drops → Scenario utilities: chooses random items
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/MobDropsScenario.java - Block drops → Scenario utilities: chooses random items
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/BlockDropsScenario.java - Combined drops → Scenario utilities: chooses random items
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/AllDropsScenario.java - Fishing loot → Scenario utilities: uses item utilities
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/FishingLootScenario.java - Random chunks → Scenario utilities: uses scenario utilities
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/RandomChunkScenario.java - Shared hunger → Scenario utilities: finds teammates
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedHungerScenario.java - Shared health → Scenario utilities: finds teammates
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedHealthScenario.java - Shared effects → Scenario utilities: finds teammates
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedEffectsScenario.java - Shared inventory → Scenario utilities: groups by team
src/main/java/dev/ozpyn/minecraftButX/scenario/impl/SharedInventoryScenario.java