How run2go/java-minecraft-smartmoving works
SmartMoving is a Paper Minecraft plugin for player movement abilities, notably crawling and wall jumping. Players trigger crawling and wall-jump behavior through game events; listeners check eligibility and delegate movement state changes to per-player logic. Crawling uses temporary client-side block changes, while wall jumping checks movement and wall conditions. Configuration and translations support tuning and administration. The README documents the combined movement capabilities; sampled source supports the described checks and delegation, but plugin startup and several listeners were not sampled, so those links are omitted.
Main entry points: ConfigManager.java Settings and Locale · PlayerToggleSneak.java Sneak Listener · WallJumpUtil.java Wall-Jump Checks · SMPlayer.java Player Movement State
Components 21
Plugin Entry
- Plugin Lifecycle
src/main/java/com/github/ipecter/smartmoving/SmartMoving.java - Player Manager
src/main/java/com/github/ipecter/smartmoving/SmartMovingManager.java - Join Listener
src/main/java/com/github/ipecter/smartmoving/listeners/PlayerJoin.java - Sneak Listener
src/main/java/com/github/ipecter/smartmoving/listeners/PlayerToggleSneak.java - Other Event Listeners
src/main/java/com/github/ipecter/smartmoving/listeners - Admin Command
src/main/java/com/github/ipecter/smartmoving/commands/Command.java
Movement Features
- Player Movement State
src/main/java/com/github/ipecter/smartmoving/SMPlayer.java - Crawling Checks
src/main/java/com/github/ipecter/smartmoving/utils/CrawlingUtil.java - Wall-Jump Checks
src/main/java/com/github/ipecter/smartmoving/utils/WallJumpUtil.java - Wall Direction
src/main/java/com/github/ipecter/smartmoving/enums/WallJumpWallFace.java
Configuration
- Settings and Locale
src/main/java/com/github/ipecter/smartmoving/managers/ConfigManager.java - Plugin Settings
src/main/resources/Setting.yml - Translation Files
src/main/resources/Translations
Integrations
- Packet Interface
NMS/src/main/java/com/github/ipecter/nms/NmsPackets.java - Fake Block Packets
VersionIndependentNMS/src/main/java/com/github/ipecter/smartmoving/nms/VersionIndependentNmsPackets.java - Region Rules
src/main/java/com/github/ipecter/smartmoving/dependencies/WorldGuard.java - Text and File Helpers
src/main/java/com/github/ipecter/smartmoving/lib/RTUPluginLib.java
Other components
- Minecraft Player
- Server Admin
- WorldGuard
- PlaceholderAPI
Connections 24
- Minecraft Player → Sneak Listener: sneak event
- Minecraft Player → Other Event Listeners: game events
- Server Admin → Admin Command: runs command
- Join Listener → Player Manager: adds player
- Sneak Listener → Player Manager: gets player state
- Sneak Listener → Crawling Checks: checks crawling
- Sneak Listener → Wall-Jump Checks: checks wall
- Sneak Listener → Player Movement State: starts or stops movement
- Player Movement State → Crawling Checks: checks blocks
- Player Movement State → Wall-Jump Checks: checks wall state
- Wall-Jump Checks → Wall Direction: uses direction
- Player Movement State → Packet Interface: requests fake blocks
- Fake Block Packets → Packet Interface: implements packets
- Player Manager → Settings and Locale: uses settings
- Crawling Checks → Settings and Locale: reads rules
- Wall-Jump Checks → Settings and Locale: reads rules
- Admin Command → Settings and Locale: reloads settings
- Settings and Locale → Plugin Settings: loads settings
- Settings and Locale → Translation Files: loads locale
- Settings and Locale → Text and File Helpers: copies resources
- Text and File Helpers → PlaceholderAPI: parses placeholders
- Crawling Checks → Region Rules: checks region
- Wall-Jump Checks → Region Rules: checks region
- Region Rules → WorldGuard: queries flags