Advertisement
Guest User

Untitled

a guest
Jul 30th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.59 KB | None | 0 0
  1. package org.degrazia.anadyr.network.procedure;
  2.  
  3. import java.io.File;
  4. import org.degrazia.anadyr.io.Control;
  5. import org.degrazia.anadyr.network.Packet;
  6. import org.degrazia.anadyr.network.PacketBuilder;
  7. import org.degrazia.anadyr.utility.Logging;
  8. import org.degrazia.anadyr.utility.decode.UtilDecoder;
  9. import org.degrazia.anadyr.utility.storage.Constants;
  10. import org.jboss.netty.buffer.ChannelBuffer;
  11. import org.jboss.netty.channel.Channel;
  12. import org.jboss.netty.channel.ChannelPipelineCoverage;
  13.  
  14. /*
  15. * @Author John/Anadyr
  16. */
  17. @ChannelPipelineCoverage("all")
  18. public final class CreationProcedure implements Constants {
  19.  
  20. private static boolean isTaken(String name) {
  21. return new File("./data/players/" + name + ".bin").exists();
  22. }
  23.  
  24. public enum CreationFundamentals {
  25. USER_CHECK, USER_FINALIZE;
  26.  
  27. public static CreationFundamentals forValue(int id) {
  28. switch (id) {
  29. case 21:
  30. return USER_CHECK;
  31. case 22:
  32. return USER_FINALIZE;
  33. default:
  34. return null;
  35. }
  36. }
  37.  
  38. }
  39.  
  40. public CreationProcedure(int id, ChannelBuffer buffer, Channel channel, PacketBuilder pb) {
  41. String ip = channel.getRemoteAddress().toString().substring(1, channel.getRemoteAddress().toString().indexOf(":"));
  42. switch(CreationFundamentals.forValue(id)) {
  43. case USER_CHECK:
  44. int code = isTaken(UtilDecoder.longToString(buffer.readLong())) ? UNVAIL : VAIL;
  45. pb.putByte(code);
  46. channel.write(pb.toPacket());
  47. break;
  48. case USER_FINALIZE:
  49. if(buffer.readableBytes() < 8)
  50. channel.close();
  51. else
  52. for(int i = 0;i < 3; i++) {
  53. buffer.readShort();
  54. }
  55. buffer.skipBytes(29 & 0xff);
  56. String User = UtilDecoder.longToString(buffer.readLong());
  57. buffer.readShort();
  58. String password = Packet.readString(buffer);
  59. for(int i = 0; i < 2; i++){
  60. buffer.readInt();
  61. buffer.readLong();
  62. }
  63. if(Control.isDebug())
  64. Logging.log("CreationProcedure", "Creating [ "+ User +" : "+ password + " - <" + ip + "> ]");
  65. //TODO add player creation
  66. pb.putByte(2);
  67. channel.write(pb.toPacket());
  68. break;
  69. }
  70. }
  71.  
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement