tUtils – A collection of useful classes for bukkit

tUtils is a collection of classes I used in my own plugin-projects. Some of them are used many times, so I thought about uploading them here to make them available for everyone. It does not bring gigantic new function, but it has a bunch of useful stuff that just makes your plugin-projects easier. There is javadoc-metadata included in the files which gives neccessary information about method parameters, return types, exceptions, etc.
Some of the classes (such as Sort.java or WebsiteReader.java) do even work without bukkit.
You can download the latest build here.
If you want to get the source code for any classes to tweak them like you need let me know (contact information in “contact”). I’d love to help.

Overview of classes

(c) = class, (e) = enum, (i) = interface 


- (c) Bool : A wrapper-class for booleans, allows to change it’s value later. Useful to change booleans which are “final”
- (c) Cord2D : Stores 2D-coordinates (x-y)
- (c) DInt : A wrapper for double-integers (holds 2 integers). Useful when handling itemstacks, as they’re not serializable
- (e) DirectionIdent :  Shows in what direction a MoveVector goes
- (c) DirectionVector : A helperclass for easy iterating through MoveVectors
- (c) LicenseCheck : Private class
 (c) MoveVector : A 3D-Vector representing a movement from one location to another
- (c) Region : A cuboid-like region defined by two points. Has various methods such as getting all entities inside the region
- (c) Selection :  A selection from a player, defined by two points. Use a listener to set the points when a player clicks
- (c) SerializableLocation : As native-bukkit-locations are not serializable, use this class instead. It has a method to get the native location
- (c) Sort : The natural-merge-sort utility. A precise documentation and source can be found here.
- (c) StopWatch : A utility for measuring time
- (c) Util : A class containing a lot of miscellaneous methods


- (c) Crypt : A Cipher for encrypting/decrypting byte-arrays with my custom enhanced ROT13 algorithm
- (c) Key : A Key used for Crypt-objects. It can almost be infinite long.


- (c) PhantomProperty : A wrapper class for 2 strings (key & value) used for dealing with property-files
- (c) PropertyHelper : Enables map-like selection when dealing with a list of phantomproperties
- (c) Serilizer : A powerful tool to easily serialize and deserialize any object (save it’s current state to harddrive). Precise information here
- (c) WebsiteReader : A class used to read content of a website by a given URL


- (c) Gui : A gui-system that enables menu-like use of ingame minecraft inventories
- (c) MenuItem : An item that can be added as clickable-option to a Gui
- (c) MenuListener : An example for a listener which is required to effectively deal with Gui’s


- (c) RepeatingScheduler :  Async self-repeating scheduler
- (c) Scheduler :  Runs code delayed by a given time on a seperate thread. It’s asynchronous, so use with caution
- (c) SyncedScheduler : Same as the scheduler, but runs it’s code synchronously within the bukkit-main-thread
- (c) SyncedRepeatingScheduler : Same as the SyncedScheduler, repeats itself
- (c) SyncedTickScheduler : Same as SyncedScheduler, but onTick(long) – method is also synced