Should there be an API to manage this? For example, a PlayerSendPopupEvent and PlayerSendTip event? Since the "popup" and "tip" areas are shared resource which plugins will contend for, it probably would be good to somehow control this. For example, My new plugin, BasicHUD shows continuous Popups. SimpleAuth also shows a popup ("login please"). Right now, BasicHUD has code that checks if SimpleAuth is doing its thing and stops it from doing popups. Also BasicHUD has code to allow other plugins to "sendPopups" through BasicHUD (so as the HUD popups do not get overwritten). Obviously as we start having more Plugins that make use of the popup/tip area, this is bound to get messy. Would it be a good to have an API that can arbitrate the use of popups? (And let the server owner decide to control what happens?)
DataPacketSendEvent? (Bad practice) There should be a common library (I tried working on one but didn't have time) that plugins use together, updated frequently to provide the latest API support. Plugins using this API can be inter-compatible in using some non-strictly-controlled API functions like the above case.
I have my own library: https://github.com/alejandroliu/pocketmine-plugins/tree/master/lib/common It is very geared towards how I do things (and some of the tools are Linux oriented). The most reusable components would be the "mc" (translations) and MPMU (My PocketMine Utils).