I am new to Java / Bukkit plugin coding ... and am currently writing code for multiple "things", on a not-yet-live server. Basically, the server will have a number of challenges that need various coding to make work - and to reset for future players. At the moment, I have .java files for different types of listener, e.g. player actions, block interactions, etc. That seemed like a good idea to start with, but now I am not sure!! Would it be better to keep code together based on the "challenge"? So, 10 challenges = 10 classes / .java files. For example, there is one called "speed run" and one called "find the block". "Speed run" needs to detect activating a pressure plate, entering a specific region, clicking on a specific block. "find the block" needs to detect clicking a specific block. There are many more challenges with different combinations of interaction checking, etc. Would it be better to group all coding into a .java /class file per challenge, or keep it grouped by interaction type (player, block, etc). It seems like a better idea, but is it a problem to be creating a lot more "listener" classes and probably multiple handler events (e.g. for BlockBreakEvent)? This plugin is not intended to be installed in parts, nor is it ever intended to be installed on any server not owned by me! (so it's environment is very controlled / known).