The jDCBot package consists of some sub-projects that have been build using it and they have practical usefulness. We thought of mentioning them explicitly so that people who need such applications can easily locate them.
SheriffBot
Package: org.ag.sheriffbot
Due to a case of sharing of a particular file on our college LAN network, DC++ was banned. DC++ was blamed for spreading the file (while the in actuality it originated and spread initially via Windows LAN share). None-the-less, DC++ was blamed for spreading the file. The college authorities needed logs of all files that were shared via DC++ from all the admins of the DC++ hubs of the college. I being one of the admins, but as DC++ hubs provide no such facility, we couldn't provide one. The administration was shocked as to how such a system was allowed to run which provided no method to trace back culprits and thus it was banned.
After one semester went by a friend of mine suggested to me of finding out a system that periodically downloads file lists of all logged-in users. I couldn't find one. So, I set off to develope SheriffBot.
SheriffBot was not as simple to develope as I had thought. There were problems like if I periodically download file lists then if some users who stay online for very few moments come online when SheriffBot is not scheduled to download. In this case some users' file list may never be downloaded. Hence, SheriffBot downloads any new user's file list even between schedules, but if he goes offline and re-loggs-in then SheriffBot will remember that and won't download his file list again. Then I got into another problem. What will happen if the thread that dowloads from new users is running and that same instant the schedule thread runs and they both try to download from the same user? This was solved by providing a logic that serializes them. During schedule runs SheriffBot downloads all the file lists and combines them into a single file list with user names intact and then compresses it using BZip2. You can go through the code and see some more features it provides.
In process of developing SheriffBot I gave new code back into jDCBot and eventually I become one of its developers. Anyway, SheriffBot paved the way. We proposed this system to the authorities and they agreed. Now ban over DC++ has been lifted in our college. In fact now our college runs an Official Hub, I being one of its admins. ;-)
Hope you too find this as useful as much I found.
AppleGrew