How benjaminl11-au/fallingtimber works
FallingTimber is a Paper plugin whose main workflow starts with a player breaking a log: the listener checks eligibility and safeguards, asks the scanner to validate and collect a natural tree, then schedules batched felling and optional replanting/leaf decay. Plugin command handling also exposes preferences, inspection, statistics and global controls; durable player state and settings support these features. README documents capabilities such as sounds, particles, leaderboards and TPS/rate limits beyond the sampled excerpts, so their internal links are not asserted. The update checker’s GitHub integration is shown directly; unsampled configuration details are represented conservatively.
Main entry points: FallingTimberPlugin.java Plugin lifecycle and commands · TimberListener.java Break-event handling · UpdateChecker.java Update checker and notices · PlayerDataStore.java Preferences and statistics
Components 15
Plugin runtime
- Plugin lifecycle and commands
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java
Tree felling
- Break-event handling
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Natural-tree scanner
src/main/java/io/github/benjaminl11au/fallingtimber/TreeScanner.java - Cascade and effects
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Leaf decay
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Sapling replanting
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java
Settings and player state
- Runtime settings
src/main/java/io/github/benjaminl11au/fallingtimber/TimberSettings.java - Preferences and statistics
src/main/java/io/github/benjaminl11au/fallingtimber/PlayerDataStore.java - player-data.yml
- Configuration migration
src/main/java/io/github/benjaminl11au/fallingtimber/ConfigMigrator.java - config.yml
src/main/resources/config.yml
Version updates
- Update checker and notices
src/main/java/io/github/benjaminl11au/fallingtimber/UpdateChecker.java
Other components
- Player
- GitHub releases API
- Paper server
Connections 19
- Player → Paper server: breaks log
README.md - Paper server → Break-event handling: dispatches event
- Plugin lifecycle and commands → Break-event handling: registers events
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java - Break-event handling → Natural-tree scanner: scans tree
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Natural-tree scanner → Runtime settings: reads limits
src/main/java/io/github/benjaminl11au/fallingtimber/TreeScanner.java - Break-event handling → Runtime settings: reads rules
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Break-event handling → Preferences and statistics: reads preferences
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Break-event handling → Cascade and effects: starts cascade
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Cascade and effects → Leaf decay: schedules decay
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Cascade and effects → Sapling replanting: schedules replanting
src/main/java/io/github/benjaminl11au/fallingtimber/TimberListener.java - Plugin lifecycle and commands → Runtime settings: loads settings
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java - Plugin lifecycle and commands → Preferences and statistics: creates store
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java - Preferences and statistics → player-data.yml: loads and saves
src/main/java/io/github/benjaminl11au/fallingtimber/PlayerDataStore.java - Plugin lifecycle and commands → Configuration migration: migrates config
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java - Configuration migration → config.yml: backs up and updates
src/main/java/io/github/benjaminl11au/fallingtimber/ConfigMigrator.java - Plugin lifecycle and commands → Update checker and notices: starts checker
src/main/java/io/github/benjaminl11au/fallingtimber/FallingTimberPlugin.java - Update checker and notices → GitHub releases API: requests release
src/main/java/io/github/benjaminl11au/fallingtimber/UpdateChecker.java - Player → Plugin lifecycle and commands: uses commands
- Update checker and notices → Player: sends notices
src/main/java/io/github/benjaminl11au/fallingtimber/UpdateChecker.java