This isn't a coding question more than a general open ended question. What are your thoughts on plugin dependencies? Should plugins be as self contained as possible (Ideally a simply drag and drop of a jar file). I find myself going for the most general solution to a problem often. For example i wanted to manage the gamestate of a game (Starting, Running, Deathmatch, Restarting) and instead of using a simple enum, i went straight to maven and got an Abstract Finite State Machine library that handle transitions and such. It grew my jar file from ~10kb to 7mb. Not to mention i see myself including large libs (worldedit, protocollib etc) for simple plugins. I guess i tend to over-engineer things too much but is it really that bad? Share your opinions on this subject.