@Override
 public void toBytes(ByteBuf buf) {
   super.toBytes(buf);
   if (mat != null) {
     buf.writeByte(0);
     buf.writeByte(mat.ordinal());
   } else if (enchant >= 0) {
     buf.writeByte(1);
     buf.writeShort(enchant);
   } else {
     buf.writeByte(2);
   }
 }