Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.degrazia.anadyr.network.procedure;
- import java.io.File;
- import org.degrazia.anadyr.io.Control;
- import org.degrazia.anadyr.network.Packet;
- import org.degrazia.anadyr.network.PacketBuilder;
- import org.degrazia.anadyr.utility.Logging;
- import org.degrazia.anadyr.utility.decode.UtilDecoder;
- import org.degrazia.anadyr.utility.storage.Constants;
- import org.jboss.netty.buffer.ChannelBuffer;
- import org.jboss.netty.channel.Channel;
- import org.jboss.netty.channel.ChannelPipelineCoverage;
- /*
- * @Author John/Anadyr
- */
- @ChannelPipelineCoverage("all")
- public final class CreationProcedure implements Constants {
- private static boolean isTaken(String name) {
- return new File("./data/players/" + name + ".bin").exists();
- }
- public enum CreationFundamentals {
- USER_CHECK, USER_FINALIZE;
- public static CreationFundamentals forValue(int id) {
- switch (id) {
- case 21:
- return USER_CHECK;
- case 22:
- return USER_FINALIZE;
- default:
- return null;
- }
- }
- }
- public CreationProcedure(int id, ChannelBuffer buffer, Channel channel, PacketBuilder pb) {
- String ip = channel.getRemoteAddress().toString().substring(1, channel.getRemoteAddress().toString().indexOf(":"));
- switch(CreationFundamentals.forValue(id)) {
- case USER_CHECK:
- int code = isTaken(UtilDecoder.longToString(buffer.readLong())) ? UNVAIL : VAIL;
- pb.putByte(code);
- channel.write(pb.toPacket());
- break;
- case USER_FINALIZE:
- if(buffer.readableBytes() < 8)
- channel.close();
- else
- for(int i = 0;i < 3; i++) {
- buffer.readShort();
- }
- buffer.skipBytes(29 & 0xff);
- String User = UtilDecoder.longToString(buffer.readLong());
- buffer.readShort();
- String password = Packet.readString(buffer);
- for(int i = 0; i < 2; i++){
- buffer.readInt();
- buffer.readLong();
- }
- if(Control.isDebug())
- Logging.log("CreationProcedure", "Creating [ "+ User +" : "+ password + " - <" + ip + "> ]");
- //TODO add player creation
- pb.putByte(2);
- channel.write(pb.toPacket());
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement