package Ġde . blue box . w ol ff . s ino pe . protocol . packet Ċ Ċ class ĠPacket Definition Ġprivate Ġconstructor ( private Ġval Ġpacket Class : ĠClass < out ĠPacket >, Ġprivate Ġval Ġid : ĠInt ) Ġ{ ĊĠ Ġfun Ġpacket Class (): ĠClass < out ĠPacket > Ġ= Ġthis . packet Class ĊĊĠ Ġfun Ġid (): ĠInt Ġ= Ġthis . id ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġof ( packet Class : ĠClass < out ĠPacket >): ĠPacket Definition Ġ{ ĊĠĠĠĠĠ Ġif Ġ(! packet Class . is Annotation Present ( Packet Meta :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠInvalid Packet Exception . of (" No ĠPacket Meta Ġannotation Ġpresent ") ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġval Ġpacket Meta Ġ= Ġpacket Class . getAnnotation ( Packet Meta :: class . java ) ĊĠĠĠĠĠ Ġval Ġid : ĠInt Ġ= Ġpacket Meta . id ĊĠĠĠĠĠ Ġreturn ĠPacket Definition ( packet Class , Ġid ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }