I picked up Lyxnx's scala template a while ago (https://www.spigotmc.org/resources/example-plugin-in-scala.36783/ -- github link no longer working) and haven't looked back. I begrudgingly revert to Java when I need to patch another plugin or support something I haven't rewritten yet. wondering if i'm the only one doing Scala + Minecraft and if not, what others are up to. my first enhancement was an immutable value class to replace Location so I didn't need to worry about mutability and forgetting to clone objects (which lead to all sorts of off-by-1 type logic errors and defects in my Java code - eventually making me litter .clone() calls everywhere). next I worked on getting rid of all my plugin's side-effects by introducing an Effect trait and having all my code return one of those. the GameMutator does all the nasty Unit function calling stuff -- which had the super nice result of me being able to unit-test the higher level parts of my plugins for once. then i dorked around and wanted a different paradigm to program plugins in so I borrowed Akka's FSM interface and fixed it because it was crap and had Unit/mutation all over the place. so now I have a pure/side-effect free FSM getup to track game/player states which react to various in-game or external events (like a scheduled heart-beat event for cool downs, etc.).