OppOfferPacket.java :  » Game » cs544-checkers » egs » packets » Java Open Source

Java Open Source » Game » cs544 checkers 
cs544 checkers » egs » packets » OppOfferPacket.java
/*
 * This packet is an offer of an opponent to a waiting client
 *
 * @author Jonathan Walsh (jwalsh8484@gmail.com)
 */

package egs.packets;

import java.nio.ByteBuffer;
import java.nio.CharBuffer;

public class OppOfferPacket extends Packet {

    short options;
    String user_name;
    
    public OppOfferPacket( short game_name, short game_version,
                           String user_name ) throws PacketException {
        
        /*Set up the header*/
        message_type = MSG_OPP_OFFER;
        this.game_name = game_name;
        this.game_version = game_version;
        
        /*fill in rest of packet*/
        if ( user_name.length() > 30 ) {
            throw new PacketException( "Invalid user length (must be <30)" );
        } 
        this.user_name = user_name;
        
        data_area_size = 4 + 30*2;
    }
    
    public OppOfferPacket( byte[] raw ) {
        ByteBuffer buf = setHeaderNew( raw );
        
        options = buf.getShort();
        short empty = buf.getShort();
        
        /*get user name*/
        char[] un = new char[30];
        for ( int i = 0; i < 30; i++ )
            un[i] = buf.getChar();
        user_name = new String(un);
    }
  
    public byte[] getRaw() {
        ByteBuffer buf = makeBufferWithHeader( data_area_size );
        
        buf.putShort( options );
        buf.putShort( (short)0 );
        
        /*put in the username*/
        int i = 0;
        for ( ; i < user_name.length(); i++ )
            buf.putChar( user_name.charAt( i ) );
        for ( ; i < 30; i++ ) 
            buf.putChar( '\0' );
        
        return buf.array();
    }
    
    public String toString() {
        String ret = super.toString() + "\noptions = " + options;
        ret = ret + "\nuser_name=" + user_name;
        return ret;
    }
    
    public short get_options() { return options; }
    public String get_user_name() { return user_name; }
    
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.