Xray is pretty simple, you just have to select what blocks you would want to render and the rest dont render them. So use if statements for that.
Speed hacks are rulled out by nc+. But you could still attempt something via landMovementFactor. Change the values. Play around with it. Theres no bypass for fly with servers using nc+, but there are a lot of tutorials on flying. Killaura, need to use nested for loops and grab the entitylist. If entityMob/Player/Animal is near you, then send hit packets.
Friend settings - Just create an array, add a command something similar to this
Code:
if(command == "add <player>") {
add.(a); // Not sure on what the add method is for arrays but lets say 'a' is the player
}
So you would need to split up the command string, and add the player name which is 'a' into the array.
Friend chat, as far as I know would require an IRC (Internet Relay Chat) which would require a lot of hard-coding into the client and would require your own server.
This should guide you on the right tracks, if youre really stuck then sure just ask for the code. But google Java tutorials and there are a few good web pages talking about arrays, multithreading, streams, networking...

Good luck :P