The more I think on this, the more even TREATED seems like just another synonym for LOSS.

What about ITEM?  Then the Javadoc could perhaps be ```Result of an item being used```.  This would also encompass POTION.  I'm not sure those really need to be split out anyways?

For that matter, I just looked more and now see PLUGIN_ADDED and PLUGIN_REMOVED.  Same concern there in that _ADDED and _REMOVED tell you already what ```isGainingEffect`` should.  That should just be PLUGIN.

That'd leave MOB, BEACON, ITEM, PLUGIN, EXPIRED.  Seems basic and straight forward.

And did I miss a change somewhere along the way or has ```isGainingEffect``` always been based on the cause value?  I thought it was passed in for the constructor before?  That makes a lot more sense to me.  If you are saying you want the cause enum to indicate gain or loss of the effect, then we are working backwards here in regards to simplifying the enum.

Ideally I think you would want to pass in the gain/loss boolean at construction and have the cause enum clarify the reason.  Otherwise it's just a convenience method to interpret the overly complex enum.